workflow-bpmn-modeler-andtv-vue3 10.0.8 → 10.1.0

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.
@@ -565,7 +565,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var vue
565
565
  /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
566
566
 
567
567
  "use strict";
568
- eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/.pnpm/vue@3.5.21_typescript@5.9.2/node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n/* harmony import */ var _common_customTranslate__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./common/customTranslate */ \"./package/common/customTranslate.js\");\n/* harmony import */ var bpmn_js_lib_Modeler__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! bpmn-js/lib/Modeler */ \"./node_modules/.pnpm/bpmn-js@8.10.0/node_modules/bpmn-js/lib/Modeler.js\");\n/* harmony import */ var _PropertyPanel_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./PropertyPanel.vue */ \"./package/PropertyPanel.vue\");\n/* harmony import */ var _BpmData__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./BpmData */ \"./package/BpmData.js\");\n/* harmony import */ var _flowable_init__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./flowable/init */ \"./package/flowable/init.js\");\n/* harmony import */ var _flowable_flowable_json__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./flowable/flowable.json */ \"./package/flowable/flowable.json\");\n/* harmony import */ var _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @ant-design/icons-vue */ \"./node_modules/.pnpm/@ant-design+icons-vue@7.0.1_vue@3.5.21_typescript@5.9.2_/node_modules/@ant-design/icons-vue/es/icons/DownloadOutlined.js\");\n/* harmony import */ var _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @ant-design/icons-vue */ \"./node_modules/.pnpm/@ant-design+icons-vue@7.0.1_vue@3.5.21_typescript@5.9.2_/node_modules/@ant-design/icons-vue/es/icons/FolderOpenOutlined.js\");\n/* harmony import */ var _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @ant-design/icons-vue */ \"./node_modules/.pnpm/@ant-design+icons-vue@7.0.1_vue@3.5.21_typescript@5.9.2_/node_modules/@ant-design/icons-vue/es/icons/FullscreenOutlined.js\");\n/* harmony import */ var _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @ant-design/icons-vue */ \"./node_modules/.pnpm/@ant-design+icons-vue@7.0.1_vue@3.5.21_typescript@5.9.2_/node_modules/@ant-design/icons-vue/es/icons/PictureOutlined.js\");\n/* harmony import */ var _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @ant-design/icons-vue */ \"./node_modules/.pnpm/@ant-design+icons-vue@7.0.1_vue@3.5.21_typescript@5.9.2_/node_modules/@ant-design/icons-vue/es/icons/PlusCircleOutlined.js\");\n/* harmony import */ var _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @ant-design/icons-vue */ \"./node_modules/.pnpm/@ant-design+icons-vue@7.0.1_vue@3.5.21_typescript@5.9.2_/node_modules/@ant-design/icons-vue/es/icons/RedoOutlined.js\");\n/* harmony import */ var _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @ant-design/icons-vue */ \"./node_modules/.pnpm/@ant-design+icons-vue@7.0.1_vue@3.5.21_typescript@5.9.2_/node_modules/@ant-design/icons-vue/es/icons/UndoOutlined.js\");\n/* harmony import */ var _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @ant-design/icons-vue */ \"./node_modules/.pnpm/@ant-design+icons-vue@7.0.1_vue@3.5.21_typescript@5.9.2_/node_modules/@ant-design/icons-vue/es/icons/ZoomInOutlined.js\");\n/* harmony import */ var _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @ant-design/icons-vue */ \"./node_modules/.pnpm/@ant-design+icons-vue@7.0.1_vue@3.5.21_typescript@5.9.2_/node_modules/@ant-design/icons-vue/es/icons/ZoomOutOutlined.js\");\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = \"function\" == typeof Symbol ? Symbol : {}, n = r.iterator || \"@@iterator\", o = r.toStringTag || \"@@toStringTag\"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return _regeneratorDefine2(u, \"_invoke\", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError(\"Generator is already running\"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = \"next\"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError(\"iterator result is not an object\"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i.return) && t.call(i), c < 2 && (u = TypeError(\"The iterator does not provide a '\" + o + \"' method\"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine2(e, o, \"GeneratorFunction\")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine2(u, \"constructor\", GeneratorFunctionPrototype), _regeneratorDefine2(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction), GeneratorFunction.displayName = \"GeneratorFunction\", _regeneratorDefine2(GeneratorFunctionPrototype, o, \"GeneratorFunction\"), _regeneratorDefine2(u), _regeneratorDefine2(u, o, \"Generator\"), _regeneratorDefine2(u, n, function () { return this; }), _regeneratorDefine2(u, \"toString\", function () { return \"[object Generator]\"; }), (_regenerator = function _regenerator() { return { w: i, m: f }; })(); }\nfunction _regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, \"\", {}); } catch (e) { i = 0; } _regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { _regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o(\"next\", 0), o(\"throw\", 1), o(\"return\", 2)); }, _regeneratorDefine2(e, r, n, t); }\nfunction asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }\nfunction _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n); } _next(void 0); }); }; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n\n\n\n\n\n\n\n// 引入flowable的节点文件\n\n// 引入图标\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (/*@__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.defineComponent)(_objectSpread(_objectSpread({}, {\n name: 'WorkflowBpmnModeler'\n}), {}, {\n __name: 'index',\n props: {\n xml: {\n type: String,\n required: false,\n default: ''\n },\n users: {\n type: Array,\n required: false,\n default: function _default() {\n return [];\n }\n },\n groups: {\n type: Array,\n required: false,\n default: function _default() {\n return [];\n }\n },\n categorys: {\n type: Array,\n required: false,\n default: function _default() {\n return [];\n }\n },\n isView: {\n type: Boolean,\n required: false,\n default: false\n }\n },\n emits: [\"save\"],\n setup: function setup(__props, _ref) {\n var __expose = _ref.expose,\n __emit = _ref.emit;\n // 汉化\n var props = __props;\n var emit = __emit;\n // 暴露手动初始化方法\n var manualInit = function manualInit() {\n if (!modeler.value && canvas.value) {\n console.log('Manual initialization triggered');\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.onMounted)();\n }\n };\n // 暴露给父组件\n __expose({\n manualInit: manualInit,\n getProcess: getProcess,\n saveXML: saveXML,\n saveImg: saveImg,\n save: save\n });\n var canvas = (0,vue__WEBPACK_IMPORTED_MODULE_0__.ref)(null);\n var modeler = (0,vue__WEBPACK_IMPORTED_MODULE_0__.ref)(null);\n var taskList = (0,vue__WEBPACK_IMPORTED_MODULE_0__.ref)([]);\n var zoom = (0,vue__WEBPACK_IMPORTED_MODULE_0__.ref)(1);\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.watch)(function () {\n return props.xml;\n }, function (val) {\n if (val) {\n createNewDiagram(val);\n }\n });\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.onMounted)(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee4() {\n var initializeModeler, initialized, _canvas$value, observer, retryCount, maxRetries, retryTimer;\n return _regenerator().w(function (_context4) {\n while (1) switch (_context4.n) {\n case 0:\n _context4.n = 1;\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.nextTick)();\n case 1:\n initializeModeler = /*#__PURE__*/function () {\n var _ref3 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee() {\n var _t;\n return _regenerator().w(function (_context) {\n while (1) switch (_context.p = _context.n) {\n case 0:\n _context.p = 0;\n if (!(!canvas.value || canvas.value.offsetWidth === 0 || canvas.value.offsetHeight === 0)) {\n _context.n = 1;\n break;\n }\n console.log('Canvas container not ready, waiting...');\n return _context.a(2, false);\n case 1:\n console.log('Canvas container found, initializing modeler...');\n // 生成实例\n modeler.value = new bpmn_js_lib_Modeler__WEBPACK_IMPORTED_MODULE_2__[\"default\"]({\n container: canvas.value,\n additionalModules: [{\n translate: ['value', _common_customTranslate__WEBPACK_IMPORTED_MODULE_1__[\"default\"]]\n }],\n moddleExtensions: {\n flowable: _flowable_flowable_json__WEBPACK_IMPORTED_MODULE_6__\n }\n });\n // 等待下一个tick确保DOM更新\n _context.n = 2;\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.nextTick)();\n case 2:\n // 新增流程定义\n if (!props.xml) {\n newDiagram();\n } else {\n createNewDiagram(props.xml);\n }\n console.log('BPMN Modeler initialized successfully');\n return _context.a(2, true);\n case 3:\n _context.p = 3;\n _t = _context.v;\n console.error('BPMN Modeler initialization failed:', _t);\n return _context.a(2, false);\n }\n }, _callee, null, [[0, 3]]);\n }));\n return function initializeModeler() {\n return _ref3.apply(this, arguments);\n };\n }(); // 立即尝试初始化\n _context4.n = 2;\n return initializeModeler();\n case 2:\n initialized = _context4.v;\n // 如果初始化失败,使用多种策略重试\n if (!initialized) {\n // 策略1: 使用MutationObserver监听DOM变化\n observer = new MutationObserver(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2() {\n return _regenerator().w(function (_context2) {\n while (1) switch (_context2.n) {\n case 0:\n if (!(canvas.value && canvas.value.offsetWidth > 0 && canvas.value.offsetHeight > 0)) {\n _context2.n = 1;\n break;\n }\n observer.disconnect();\n _context2.n = 1;\n return initializeModeler();\n case 1:\n return _context2.a(2);\n }\n }, _callee2);\n }))); // 监听父容器变化\n if ((_canvas$value = canvas.value) !== null && _canvas$value !== void 0 && _canvas$value.parentElement) {\n observer.observe(canvas.value.parentElement, {\n childList: true,\n subtree: true,\n attributes: true,\n attributeFilter: ['style', 'class']\n });\n }\n // 策略2: 定时重试(最多10秒)\n retryCount = 0;\n maxRetries = 50; // 10秒,每200ms重试一次\n retryTimer = setInterval(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee3() {\n return _regenerator().w(function (_context3) {\n while (1) switch (_context3.n) {\n case 0:\n retryCount++;\n _context3.n = 1;\n return initializeModeler();\n case 1:\n initialized = _context3.v;\n if (initialized || retryCount >= maxRetries) {\n clearInterval(retryTimer);\n observer.disconnect();\n if (!initialized) {\n console.error('Failed to initialize BPMN Modeler after maximum retries');\n }\n }\n case 2:\n return _context3.a(2);\n }\n }, _callee3);\n })), 200);\n }\n case 3:\n return _context4.a(2);\n }\n }, _callee4);\n })));\n var newDiagram = function newDiagram() {\n createNewDiagram((0,_flowable_init__WEBPACK_IMPORTED_MODULE_5__[\"default\"])());\n };\n // 让图能自适应屏幕\n var fitViewport = function fitViewport() {\n if (!modeler.value) return;\n zoom.value = modeler.value.get('canvas').zoom('fit-viewport');\n var viewport = document.querySelector('.flow-containers .viewport');\n var bbox = viewport === null || viewport === void 0 ? void 0 : viewport.getBBox();\n if (!bbox) return;\n var currentViewbox = modeler.value.get('canvas').viewbox();\n var elementMid = {\n x: bbox.x + bbox.width / 2 - 65,\n y: bbox.y + bbox.height / 2\n };\n modeler.value.get('canvas').viewbox({\n x: elementMid.x - currentViewbox.width / 2,\n y: elementMid.y - currentViewbox.height / 2,\n width: currentViewbox.width,\n height: currentViewbox.height\n });\n zoom.value = bbox.width / currentViewbox.width * 1.8;\n };\n // 放大缩小\n var zoomViewport = function zoomViewport() {\n var zoomIn = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n if (!modeler.value) return;\n zoom.value = modeler.value.get('canvas').zoom();\n zoom.value += zoomIn ? 0.1 : -0.1;\n modeler.value.get('canvas').zoom(zoom.value);\n };\n var createNewDiagram = /*#__PURE__*/function () {\n var _ref6 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee5(data) {\n var _t2;\n return _regenerator().w(function (_context5) {\n while (1) switch (_context5.p = _context5.n) {\n case 0:\n // 将字符串转换成图显示出来\n // data = data.replace(/<!\\[CDATA\\[(.+?)]]>/g, '&lt;![CDATA[$1]]&gt;')\n data = data.replace(/<!\\[CDATA\\[(.+?)]]>/g, function (match, str) {\n return str.replace(/</g, '&lt;');\n });\n _context5.p = 1;\n if (modeler.value) {\n _context5.n = 2;\n break;\n }\n console.error('Modeler not initialized');\n return _context5.a(2);\n case 2:\n console.log('Importing XML data...', data.substring(0, 200) + '...');\n _context5.n = 3;\n return modeler.value.importXML(data);\n case 3:\n console.log('XML imported successfully');\n // 等待DOM更新\n _context5.n = 4;\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.nextTick)();\n case 4:\n adjustPalette();\n fitViewport();\n console.log('Diagram created successfully');\n // fillColor()\n _context5.n = 6;\n break;\n case 5:\n _context5.p = 5;\n _t2 = _context5.v;\n console.error('Failed to create diagram:', _t2.message, _t2.warnings);\n case 6:\n return _context5.a(2);\n }\n }, _callee5, null, [[1, 5]]);\n }));\n return function createNewDiagram(_x) {\n return _ref6.apply(this, arguments);\n };\n }();\n // 调整左侧工具栏排版\n var adjustPalette = function adjustPalette() {\n try {\n // 获取 bpmn 设计器实例\n var canvasElement = canvas.value;\n if (!canvasElement) return;\n var djsPalette = canvasElement.children[0].children[1].children[4];\n var djsPalStyle = {\n width: '130px',\n padding: '5px',\n background: 'white',\n left: '20px',\n borderRadius: '0'\n };\n for (var key in djsPalStyle) {\n djsPalette.style[key] = djsPalStyle[key];\n }\n var palette = djsPalette.children[0];\n var allGroups = palette.children;\n allGroups[0].style.display = 'none';\n // 修改控件样式\n for (var gKey = 0; gKey < allGroups.length; gKey++) {\n var group = allGroups[gKey];\n for (var cKey = 0; cKey < group.children.length; cKey++) {\n var control = group.children[cKey];\n var controlStyle = {\n display: 'flex',\n justifyContent: 'flex-start',\n alignItems: 'center',\n width: '100%',\n padding: '5px'\n };\n if (control.className && control.dataset && control.className.indexOf('entry') !== -1) {\n var controlProps = new _BpmData__WEBPACK_IMPORTED_MODULE_4__[\"default\"]().getControl(control.dataset.action);\n control.innerHTML = \"<div style='font-size: 14px;font-weight:500;margin-left:15px;'>\".concat(controlProps['title'], \"</div>\");\n for (var csKey in controlStyle) {\n control.style[csKey] = controlStyle[csKey];\n }\n }\n }\n }\n } catch (e) {\n console.log(e);\n }\n };\n var fillColor = function fillColor() {\n if (!modeler.value) return;\n var canvasElement = modeler.value.get('canvas')(modeler.value)._definitions.rootElements[0].flowElements.forEach(function (n) {\n if (n.$type === 'bpmn:UserTask') {\n var completeTask = taskList.value.find(function (m) {\n return m.key === n.id;\n }) || {\n completed: true\n };\n var todoTask = taskList.value.find(function (m) {\n return !m.completed;\n });\n var endTask = taskList.value[taskList.value.length - 1];\n if (completeTask) {\n var _n$outgoing;\n canvasElement.addMarker(n.id, completeTask.completed ? 'highlight' : 'highlight-todo');\n (_n$outgoing = n.outgoing) === null || _n$outgoing === void 0 || _n$outgoing.forEach(function (nn) {\n var targetTask = taskList.value.find(function (m) {\n return m.key === nn.targetRef.id;\n });\n if (targetTask) {\n canvasElement.addMarker(nn.id, targetTask.completed ? 'highlight' : 'highlight-todo');\n } else if (nn.targetRef.$type === 'bpmn:ExclusiveGateway') {\n // canvasElement.addMarker(nn.id, 'highlight');\n canvasElement.addMarker(nn.id, completeTask.completed ? 'highlight' : 'highlight-todo');\n canvasElement.addMarker(nn.targetRef.id, completeTask.completed ? 'highlight' : 'highlight-todo');\n } else if (nn.targetRef.$type === 'bpmn:EndEvent') {\n if (!todoTask && endTask.key === n.id) {\n canvasElement.addMarker(nn.id, 'highlight');\n canvasElement.addMarker(nn.targetRef.id, 'highlight');\n }\n if (!completeTask.completed) {\n canvasElement.addMarker(nn.id, 'highlight-todo');\n canvasElement.addMarker(nn.targetRef.id, 'highlight-todo');\n }\n }\n });\n }\n } else if (n.$type === 'bpmn:ExclusiveGateway') {\n n.outgoing.forEach(function (nn) {\n var targetTask = taskList.value.find(function (m) {\n return m.key === nn.targetRef.id;\n });\n if (targetTask) {\n canvasElement.addMarker(nn.id, targetTask.completed ? 'highlight' : 'highlight-todo');\n }\n });\n }\n if (n.$type === 'bpmn:StartEvent') {\n n.outgoing.forEach(function (nn) {\n var completeTask = taskList.value.find(function (m) {\n return m.key === nn.targetRef.id;\n });\n if (completeTask) {\n canvasElement.addMarker(nn.id, 'highlight');\n canvasElement.addMarker(n.id, 'highlight');\n return;\n }\n });\n }\n });\n };\n // 对外 api\n var getProcess = function getProcess() {\n var element = getProcessElement();\n return {\n id: element.id,\n name: element.name,\n category: element.$attrs['flowable:processCategory']\n };\n };\n var getProcessElement = function getProcessElement() {\n if (!modeler.value) return null;\n var rootElements = modeler.value.getDefinitions().rootElements;\n for (var i = 0; i < rootElements.length; i++) {\n if (rootElements[i].$type === 'bpmn:Process') return rootElements[i];\n }\n };\n var saveXML = /*#__PURE__*/function () {\n var _ref7 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee6() {\n var download,\n _yield$modeler$value$,\n xml,\n processElement,\n _args6 = arguments,\n _t3;\n return _regenerator().w(function (_context6) {\n while (1) switch (_context6.p = _context6.n) {\n case 0:\n download = _args6.length > 0 && _args6[0] !== undefined ? _args6[0] : false;\n _context6.p = 1;\n if (modeler.value) {\n _context6.n = 2;\n break;\n }\n return _context6.a(2);\n case 2:\n _context6.n = 3;\n return modeler.value.saveXML({\n format: true\n });\n case 3:\n _yield$modeler$value$ = _context6.v;\n xml = _yield$modeler$value$.xml;\n if (download) {\n processElement = getProcessElement();\n if (processElement) {\n downloadFile(\"\".concat(processElement.name, \".bpmn20.xml\"), xml, 'application/xml');\n }\n }\n return _context6.a(2, xml);\n case 4:\n _context6.p = 4;\n _t3 = _context6.v;\n console.log(_t3);\n case 5:\n return _context6.a(2);\n }\n }, _callee6, null, [[1, 4]]);\n }));\n return function saveXML() {\n return _ref7.apply(this, arguments);\n };\n }();\n var saveImg = /*#__PURE__*/function () {\n var _ref8 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee7() {\n var type,\n download,\n _yield$modeler$value$2,\n svg,\n processElement,\n _args7 = arguments,\n _t4;\n return _regenerator().w(function (_context7) {\n while (1) switch (_context7.p = _context7.n) {\n case 0:\n type = _args7.length > 0 && _args7[0] !== undefined ? _args7[0] : 'svg';\n download = _args7.length > 1 && _args7[1] !== undefined ? _args7[1] : false;\n _context7.p = 1;\n if (modeler.value) {\n _context7.n = 2;\n break;\n }\n return _context7.a(2);\n case 2:\n _context7.n = 3;\n return modeler.value.saveSVG({\n format: true\n });\n case 3:\n _yield$modeler$value$2 = _context7.v;\n svg = _yield$modeler$value$2.svg;\n if (download) {\n processElement = getProcessElement();\n if (processElement) {\n downloadFile(processElement.name, svg, 'image/svg+xml');\n }\n }\n return _context7.a(2, svg);\n case 4:\n _context7.p = 4;\n _t4 = _context7.v;\n console.log(_t4);\n case 5:\n return _context7.a(2);\n }\n }, _callee7, null, [[1, 4]]);\n }));\n return function saveImg() {\n return _ref8.apply(this, arguments);\n };\n }();\n var save = /*#__PURE__*/function () {\n var _ref9 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee8() {\n var process, xml, svg, result;\n return _regenerator().w(function (_context8) {\n while (1) switch (_context8.n) {\n case 0:\n process = getProcess();\n _context8.n = 1;\n return saveXML();\n case 1:\n xml = _context8.v;\n _context8.n = 2;\n return saveImg();\n case 2:\n svg = _context8.v;\n result = {\n process: process,\n xml: xml,\n svg: svg\n };\n emit('save', result);\n window.parent.postMessage(result, '*');\n case 3:\n return _context8.a(2);\n }\n }, _callee8);\n }));\n return function save() {\n return _ref9.apply(this, arguments);\n };\n }();\n var openBpmn = function openBpmn(file) {\n var reader = new FileReader();\n reader.readAsText(file, 'utf-8');\n reader.onload = function () {\n createNewDiagram(reader.result);\n };\n return false;\n };\n var downloadFile = function downloadFile(filename, data, type) {\n var a = document.createElement('a');\n var url = window.URL.createObjectURL(new Blob([data], {\n type: type\n }));\n a.href = url;\n a.download = filename;\n a.click();\n window.URL.revokeObjectURL(url);\n };\n var __returned__ = {\n props: props,\n emit: emit,\n manualInit: manualInit,\n canvas: canvas,\n modeler: modeler,\n taskList: taskList,\n zoom: zoom,\n newDiagram: newDiagram,\n fitViewport: fitViewport,\n zoomViewport: zoomViewport,\n createNewDiagram: createNewDiagram,\n adjustPalette: adjustPalette,\n fillColor: fillColor,\n getProcess: getProcess,\n getProcessElement: getProcessElement,\n saveXML: saveXML,\n saveImg: saveImg,\n save: save,\n openBpmn: openBpmn,\n downloadFile: downloadFile,\n PropertyPanel: _PropertyPanel_vue__WEBPACK_IMPORTED_MODULE_3__[\"default\"],\n get FolderOpenOutlined() {\n return _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_8__[\"default\"];\n },\n get PlusCircleOutlined() {\n return _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_11__[\"default\"];\n },\n get FullscreenOutlined() {\n return _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_9__[\"default\"];\n },\n get ZoomInOutlined() {\n return _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_14__[\"default\"];\n },\n get ZoomOutOutlined() {\n return _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_15__[\"default\"];\n },\n get UndoOutlined() {\n return _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_13__[\"default\"];\n },\n get RedoOutlined() {\n return _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_12__[\"default\"];\n },\n get DownloadOutlined() {\n return _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_7__[\"default\"];\n },\n get PictureOutlined() {\n return _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_10__[\"default\"];\n }\n };\n Object.defineProperty(__returned__, '__isScriptSetup', {\n enumerable: false,\n value: true\n });\n return __returned__;\n }\n})));\n\n//# sourceURL=webpack://workflow-bpmn-modeler-andtv-vue3/./package/index.vue?./node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.28.3_webpack@5.101.3/node_modules/babel-loader/lib/index.js!./node_modules/.pnpm/ts-loader@9.5.4_typescript@5.9.2_webpack@5.101.3/node_modules/ts-loader/index.js??clonedRuleSet-41.use%5B1%5D!./node_modules/.pnpm/vue-loader@17.4.2_@vue+compiler-sfc@3.5.21_vue@3.5.21_typescript@5.9.2__webpack@5.101.3/node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D\n}");
568
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/.pnpm/vue@3.5.21_typescript@5.9.2/node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n/* harmony import */ var _common_customTranslate__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./common/customTranslate */ \"./package/common/customTranslate.js\");\n/* harmony import */ var bpmn_js_lib_Modeler__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! bpmn-js/lib/Modeler */ \"./node_modules/.pnpm/bpmn-js@8.10.0/node_modules/bpmn-js/lib/Modeler.js\");\n/* harmony import */ var _PropertyPanel_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./PropertyPanel.vue */ \"./package/PropertyPanel.vue\");\n/* harmony import */ var _BpmData__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./BpmData */ \"./package/BpmData.js\");\n/* harmony import */ var _flowable_init__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./flowable/init */ \"./package/flowable/init.js\");\n/* harmony import */ var _flowable_flowable_json__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./flowable/flowable.json */ \"./package/flowable/flowable.json\");\n/* harmony import */ var _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @ant-design/icons-vue */ \"./node_modules/.pnpm/@ant-design+icons-vue@7.0.1_vue@3.5.21_typescript@5.9.2_/node_modules/@ant-design/icons-vue/es/icons/DownloadOutlined.js\");\n/* harmony import */ var _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @ant-design/icons-vue */ \"./node_modules/.pnpm/@ant-design+icons-vue@7.0.1_vue@3.5.21_typescript@5.9.2_/node_modules/@ant-design/icons-vue/es/icons/FolderOpenOutlined.js\");\n/* harmony import */ var _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @ant-design/icons-vue */ \"./node_modules/.pnpm/@ant-design+icons-vue@7.0.1_vue@3.5.21_typescript@5.9.2_/node_modules/@ant-design/icons-vue/es/icons/FullscreenOutlined.js\");\n/* harmony import */ var _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @ant-design/icons-vue */ \"./node_modules/.pnpm/@ant-design+icons-vue@7.0.1_vue@3.5.21_typescript@5.9.2_/node_modules/@ant-design/icons-vue/es/icons/PictureOutlined.js\");\n/* harmony import */ var _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @ant-design/icons-vue */ \"./node_modules/.pnpm/@ant-design+icons-vue@7.0.1_vue@3.5.21_typescript@5.9.2_/node_modules/@ant-design/icons-vue/es/icons/PlusCircleOutlined.js\");\n/* harmony import */ var _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @ant-design/icons-vue */ \"./node_modules/.pnpm/@ant-design+icons-vue@7.0.1_vue@3.5.21_typescript@5.9.2_/node_modules/@ant-design/icons-vue/es/icons/RedoOutlined.js\");\n/* harmony import */ var _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @ant-design/icons-vue */ \"./node_modules/.pnpm/@ant-design+icons-vue@7.0.1_vue@3.5.21_typescript@5.9.2_/node_modules/@ant-design/icons-vue/es/icons/UndoOutlined.js\");\n/* harmony import */ var _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @ant-design/icons-vue */ \"./node_modules/.pnpm/@ant-design+icons-vue@7.0.1_vue@3.5.21_typescript@5.9.2_/node_modules/@ant-design/icons-vue/es/icons/ZoomInOutlined.js\");\n/* harmony import */ var _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @ant-design/icons-vue */ \"./node_modules/.pnpm/@ant-design+icons-vue@7.0.1_vue@3.5.21_typescript@5.9.2_/node_modules/@ant-design/icons-vue/es/icons/ZoomOutOutlined.js\");\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = \"function\" == typeof Symbol ? Symbol : {}, n = r.iterator || \"@@iterator\", o = r.toStringTag || \"@@toStringTag\"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return _regeneratorDefine2(u, \"_invoke\", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError(\"Generator is already running\"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = \"next\"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError(\"iterator result is not an object\"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i.return) && t.call(i), c < 2 && (u = TypeError(\"The iterator does not provide a '\" + o + \"' method\"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine2(e, o, \"GeneratorFunction\")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine2(u, \"constructor\", GeneratorFunctionPrototype), _regeneratorDefine2(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction), GeneratorFunction.displayName = \"GeneratorFunction\", _regeneratorDefine2(GeneratorFunctionPrototype, o, \"GeneratorFunction\"), _regeneratorDefine2(u), _regeneratorDefine2(u, o, \"Generator\"), _regeneratorDefine2(u, n, function () { return this; }), _regeneratorDefine2(u, \"toString\", function () { return \"[object Generator]\"; }), (_regenerator = function _regenerator() { return { w: i, m: f }; })(); }\nfunction _regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, \"\", {}); } catch (e) { i = 0; } _regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { _regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o(\"next\", 0), o(\"throw\", 1), o(\"return\", 2)); }, _regeneratorDefine2(e, r, n, t); }\nfunction asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }\nfunction _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n); } _next(void 0); }); }; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n\n\n\n\n\n\n\n// 引入flowable的节点文件\n\n// 引入图标\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (/*@__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.defineComponent)(_objectSpread(_objectSpread({}, {\n name: 'WorkflowBpmnModeler'\n}), {}, {\n __name: 'index',\n props: {\n xml: {\n type: String,\n required: false,\n default: ''\n },\n users: {\n type: Array,\n required: false,\n default: function _default() {\n return [];\n }\n },\n groups: {\n type: Array,\n required: false,\n default: function _default() {\n return [];\n }\n },\n categorys: {\n type: Array,\n required: false,\n default: function _default() {\n return [];\n }\n },\n isView: {\n type: Boolean,\n required: false,\n default: false\n }\n },\n emits: [\"save\"],\n setup: function setup(__props, _ref) {\n var __expose = _ref.expose,\n __emit = _ref.emit;\n // 汉化\n var props = __props;\n var emit = __emit;\n // 暴露手动初始化方法\n var manualInit = function manualInit() {\n if (!modeler.value && canvas.value) {\n console.log('Manual initialization triggered');\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.onMounted)();\n }\n };\n // 简化的初始化方法,专门用于XML加载失败的情况\n var simpleInit = /*#__PURE__*/function () {\n var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee() {\n var _t;\n return _regenerator().w(function (_context) {\n while (1) switch (_context.p = _context.n) {\n case 0:\n _context.p = 0;\n if (canvas.value) {\n _context.n = 1;\n break;\n }\n console.error('Canvas container not found for simple init');\n return _context.a(2, false);\n case 1:\n console.log('Starting simple initialization...');\n // 强制设置容器样式\n canvas.value.style.width = '100%';\n canvas.value.style.height = '100%';\n canvas.value.style.minHeight = '400px';\n canvas.value.style.display = 'block';\n // 等待DOM更新\n _context.n = 2;\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.nextTick)();\n case 2:\n _context.n = 3;\n return new Promise(function (resolve) {\n return setTimeout(resolve, 50);\n });\n case 3:\n // 创建简单的BPMN模型器实例\n modeler.value = new bpmn_js_lib_Modeler__WEBPACK_IMPORTED_MODULE_2__[\"default\"]({\n container: canvas.value,\n additionalModules: [{\n translate: ['value', _common_customTranslate__WEBPACK_IMPORTED_MODULE_1__[\"default\"]]\n }],\n moddleExtensions: {\n flowable: _flowable_flowable_json__WEBPACK_IMPORTED_MODULE_6__\n }\n });\n // 等待下一个tick\n _context.n = 4;\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.nextTick)();\n case 4:\n _context.n = 5;\n return modeler.value.importXML((0,_flowable_init__WEBPACK_IMPORTED_MODULE_5__[\"default\"])());\n case 5:\n isInitialized.value = true;\n console.log('Simple initialization completed successfully');\n return _context.a(2, true);\n case 6:\n _context.p = 6;\n _t = _context.v;\n console.error('Simple initialization failed:', _t);\n return _context.a(2, false);\n }\n }, _callee, null, [[0, 6]]);\n }));\n return function simpleInit() {\n return _ref2.apply(this, arguments);\n };\n }();\n // 强制重新初始化方法\n var forceReinit = /*#__PURE__*/function () {\n var _ref3 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2() {\n var success, _t2;\n return _regenerator().w(function (_context2) {\n while (1) switch (_context2.p = _context2.n) {\n case 0:\n _context2.p = 0;\n console.log('Force reinitializing BPMN Modeler...');\n // 清理现有实例\n if (modeler.value) {\n modeler.value.destroy();\n modeler.value = null;\n }\n isInitialized.value = false;\n // 等待一段时间\n _context2.n = 1;\n return new Promise(function (resolve) {\n return setTimeout(resolve, 100);\n });\n case 1:\n _context2.n = 2;\n return simpleInit();\n case 2:\n success = _context2.v;\n if (success) {\n console.log('Force reinitialization successful');\n } else {\n console.error('Force reinitialization failed');\n }\n return _context2.a(2, success);\n case 3:\n _context2.p = 3;\n _t2 = _context2.v;\n console.error('Force reinitialization error:', _t2);\n return _context2.a(2, false);\n }\n }, _callee2, null, [[0, 3]]);\n }));\n return function forceReinit() {\n return _ref3.apply(this, arguments);\n };\n }();\n // 暴露给父组件\n __expose({\n manualInit: manualInit,\n simpleInit: simpleInit,\n forceReinit: forceReinit,\n isInitialized: isInitialized,\n getProcess: getProcess,\n saveXML: saveXML,\n saveImg: saveImg,\n save: save\n });\n // 生成唯一的canvas ID\n var canvasId = \"bpmn-canvas-\".concat(Date.now(), \"-\").concat(Math.random().toString(36).substr(2, 9));\n var canvas = (0,vue__WEBPACK_IMPORTED_MODULE_0__.ref)(null);\n var modeler = (0,vue__WEBPACK_IMPORTED_MODULE_0__.ref)(null);\n var taskList = (0,vue__WEBPACK_IMPORTED_MODULE_0__.ref)([]);\n var zoom = (0,vue__WEBPACK_IMPORTED_MODULE_0__.ref)(1);\n var isInitialized = (0,vue__WEBPACK_IMPORTED_MODULE_0__.ref)(false);\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.watch)(function () {\n return props.xml;\n }, function (val) {\n if (val) {\n createNewDiagram(val);\n }\n });\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.onMounted)(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee6() {\n var initializeModeler, initialized, tryWithRAF;\n return _regenerator().w(function (_context6) {\n while (1) switch (_context6.n) {\n case 0:\n console.log('Component mounted, starting initialization...');\n // 等待DOM完全渲染\n _context6.n = 1;\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.nextTick)();\n case 1:\n _context6.n = 2;\n return new Promise(function (resolve) {\n return setTimeout(resolve, 100);\n });\n case 2:\n initializeModeler = /*#__PURE__*/function () {\n var _ref5 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee3() {\n var _t3;\n return _regenerator().w(function (_context3) {\n while (1) switch (_context3.p = _context3.n) {\n case 0:\n _context3.p = 0;\n if (canvas.value) {\n _context3.n = 1;\n break;\n }\n console.error('Canvas ref not found');\n return _context3.a(2, false);\n case 1:\n // 强制设置容器尺寸\n canvas.value.style.width = '100%';\n canvas.value.style.height = '100%';\n canvas.value.style.minHeight = '400px';\n canvas.value.style.display = 'block';\n console.log('Canvas container prepared, initializing modeler...');\n // 生成实例\n modeler.value = new bpmn_js_lib_Modeler__WEBPACK_IMPORTED_MODULE_2__[\"default\"]({\n container: canvas.value,\n additionalModules: [{\n translate: ['value', _common_customTranslate__WEBPACK_IMPORTED_MODULE_1__[\"default\"]]\n }],\n moddleExtensions: {\n flowable: _flowable_flowable_json__WEBPACK_IMPORTED_MODULE_6__\n }\n });\n // 等待下一个tick确保DOM更新\n _context3.n = 2;\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.nextTick)();\n case 2:\n // 标记为已初始化\n isInitialized.value = true;\n // 新增流程定义\n if (props.xml) {\n _context3.n = 4;\n break;\n }\n _context3.n = 3;\n return newDiagram();\n case 3:\n _context3.n = 5;\n break;\n case 4:\n _context3.n = 5;\n return createNewDiagram(props.xml);\n case 5:\n console.log('BPMN Modeler initialized successfully');\n return _context3.a(2, true);\n case 6:\n _context3.p = 6;\n _t3 = _context3.v;\n console.error('BPMN Modeler initialization failed:', _t3);\n return _context3.a(2, false);\n }\n }, _callee3, null, [[0, 6]]);\n }));\n return function initializeModeler() {\n return _ref5.apply(this, arguments);\n };\n }(); // 尝试初始化\n _context6.n = 3;\n return initializeModeler();\n case 3:\n initialized = _context6.v;\n // 如果失败,使用更激进的重试策略\n if (!initialized) {\n console.log('Initial initialization failed, trying alternative approach...');\n // 使用requestAnimationFrame确保在下一帧尝试\n tryWithRAF = function tryWithRAF() {\n requestAnimationFrame(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee5() {\n return _regenerator().w(function (_context5) {\n while (1) switch (_context5.n) {\n case 0:\n _context5.n = 1;\n return initializeModeler();\n case 1:\n initialized = _context5.v;\n if (!initialized) {\n // 如果还是失败,再等一帧\n requestAnimationFrame(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee4() {\n return _regenerator().w(function (_context4) {\n while (1) switch (_context4.n) {\n case 0:\n _context4.n = 1;\n return initializeModeler();\n case 1:\n initialized = _context4.v;\n if (!initialized) {\n console.error('All initialization attempts failed');\n }\n case 2:\n return _context4.a(2);\n }\n }, _callee4);\n })));\n }\n case 2:\n return _context5.a(2);\n }\n }, _callee5);\n })));\n };\n tryWithRAF();\n }\n case 4:\n return _context6.a(2);\n }\n }, _callee6);\n })));\n var newDiagram = /*#__PURE__*/function () {\n var _ref8 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee7() {\n return _regenerator().w(function (_context7) {\n while (1) switch (_context7.n) {\n case 0:\n _context7.n = 1;\n return createNewDiagram((0,_flowable_init__WEBPACK_IMPORTED_MODULE_5__[\"default\"])());\n case 1:\n return _context7.a(2);\n }\n }, _callee7);\n }));\n return function newDiagram() {\n return _ref8.apply(this, arguments);\n };\n }();\n // 让图能自适应屏幕\n var fitViewport = function fitViewport() {\n try {\n if (!modeler.value) {\n console.warn('Modeler not available for viewport fitting');\n return;\n }\n zoom.value = modeler.value.get('canvas').zoom('fit-viewport');\n var viewport = document.querySelector('.flow-containers .viewport');\n if (!viewport) {\n console.warn('Viewport element not found');\n return;\n }\n var bbox = viewport.getBBox();\n if (!bbox) {\n console.warn('Viewport bbox not available');\n return;\n }\n var currentViewbox = modeler.value.get('canvas').viewbox();\n var elementMid = {\n x: bbox.x + bbox.width / 2 - 65,\n y: bbox.y + bbox.height / 2\n };\n modeler.value.get('canvas').viewbox({\n x: elementMid.x - currentViewbox.width / 2,\n y: elementMid.y - currentViewbox.height / 2,\n width: currentViewbox.width,\n height: currentViewbox.height\n });\n zoom.value = bbox.width / currentViewbox.width * 1.8;\n } catch (e) {\n console.warn('Failed to fit viewport:', e);\n }\n };\n // 放大缩小\n var zoomViewport = function zoomViewport() {\n var zoomIn = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n if (!modeler.value) return;\n zoom.value = modeler.value.get('canvas').zoom();\n zoom.value += zoomIn ? 0.1 : -0.1;\n modeler.value.get('canvas').zoom(zoom.value);\n };\n var createNewDiagram = /*#__PURE__*/function () {\n var _ref9 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee8(data) {\n var _t4;\n return _regenerator().w(function (_context8) {\n while (1) switch (_context8.p = _context8.n) {\n case 0:\n // 将字符串转换成图显示出来\n // data = data.replace(/<!\\[CDATA\\[(.+?)]]>/g, '&lt;![CDATA[$1]]&gt;')\n data = data.replace(/<!\\[CDATA\\[(.+?)]]>/g, function (match, str) {\n return str.replace(/</g, '&lt;');\n });\n _context8.p = 1;\n if (modeler.value) {\n _context8.n = 2;\n break;\n }\n console.error('Modeler not initialized');\n return _context8.a(2);\n case 2:\n console.log('Importing XML data...', data.substring(0, 200) + '...');\n _context8.n = 3;\n return modeler.value.importXML(data);\n case 3:\n console.log('XML imported successfully');\n // 等待DOM更新\n _context8.n = 4;\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.nextTick)();\n case 4:\n // 延迟执行调整方法,确保DOM完全渲染\n setTimeout(function () {\n try {\n adjustPalette();\n fitViewport();\n console.log('Diagram created successfully');\n } catch (adjustError) {\n console.warn('Failed to adjust palette or viewport:', adjustError);\n // 即使调整失败,也不影响基本功能\n }\n }, 100);\n // fillColor()\n _context8.n = 6;\n break;\n case 5:\n _context8.p = 5;\n _t4 = _context8.v;\n console.error('Failed to create diagram:', _t4.message, _t4.warnings);\n throw _t4;\n case 6:\n return _context8.a(2);\n }\n }, _callee8, null, [[1, 5]]);\n }));\n return function createNewDiagram(_x) {\n return _ref9.apply(this, arguments);\n };\n }();\n // 调整左侧工具栏排版\n var adjustPalette = function adjustPalette() {\n try {\n var _canvasElement$childr;\n // 获取 bpmn 设计器实例\n var canvasElement = canvas.value;\n if (!canvasElement) {\n console.warn('Canvas element not found for palette adjustment');\n return;\n }\n // 检查DOM结构是否存在\n if (!canvasElement.children || canvasElement.children.length === 0) {\n console.warn('Canvas children not found for palette adjustment');\n return;\n }\n var djsPalette = (_canvasElement$childr = canvasElement.children[0]) === null || _canvasElement$childr === void 0 || (_canvasElement$childr = _canvasElement$childr.children[1]) === null || _canvasElement$childr === void 0 ? void 0 : _canvasElement$childr.children[4];\n if (!djsPalette) {\n console.warn('BPMN palette element not found');\n return;\n }\n var djsPalStyle = {\n width: '130px',\n padding: '5px',\n background: 'white',\n left: '20px',\n borderRadius: '0'\n };\n for (var key in djsPalStyle) {\n djsPalette.style[key] = djsPalStyle[key];\n }\n var palette = djsPalette.children[0];\n if (!palette) {\n console.warn('Palette children not found');\n return;\n }\n var allGroups = palette.children;\n if (allGroups.length === 0) {\n console.warn('No palette groups found');\n return;\n }\n ;\n allGroups[0].style.display = 'none';\n // 修改控件样式\n for (var gKey = 0; gKey < allGroups.length; gKey++) {\n var group = allGroups[gKey];\n for (var cKey = 0; cKey < group.children.length; cKey++) {\n var control = group.children[cKey];\n var controlStyle = {\n display: 'flex',\n justifyContent: 'flex-start',\n alignItems: 'center',\n width: '100%',\n padding: '5px'\n };\n if (control.className && control.dataset && control.className.indexOf('entry') !== -1) {\n var controlProps = new _BpmData__WEBPACK_IMPORTED_MODULE_4__[\"default\"]().getControl(control.dataset.action);\n control.innerHTML = \"<div style='font-size: 14px;font-weight:500;margin-left:15px;'>\".concat(controlProps['title'], \"</div>\");\n for (var csKey in controlStyle) {\n control.style[csKey] = controlStyle[csKey];\n }\n }\n }\n }\n } catch (e) {\n console.warn('Failed to adjust palette:', e);\n }\n };\n var fillColor = function fillColor() {\n if (!modeler.value) return;\n var canvasElement = modeler.value.get('canvas')(modeler.value)._definitions.rootElements[0].flowElements.forEach(function (n) {\n if (n.$type === 'bpmn:UserTask') {\n var completeTask = taskList.value.find(function (m) {\n return m.key === n.id;\n }) || {\n completed: true\n };\n var todoTask = taskList.value.find(function (m) {\n return !m.completed;\n });\n var endTask = taskList.value[taskList.value.length - 1];\n if (completeTask) {\n var _n$outgoing;\n canvasElement.addMarker(n.id, completeTask.completed ? 'highlight' : 'highlight-todo');\n (_n$outgoing = n.outgoing) === null || _n$outgoing === void 0 || _n$outgoing.forEach(function (nn) {\n var targetTask = taskList.value.find(function (m) {\n return m.key === nn.targetRef.id;\n });\n if (targetTask) {\n canvasElement.addMarker(nn.id, targetTask.completed ? 'highlight' : 'highlight-todo');\n } else if (nn.targetRef.$type === 'bpmn:ExclusiveGateway') {\n // canvasElement.addMarker(nn.id, 'highlight');\n canvasElement.addMarker(nn.id, completeTask.completed ? 'highlight' : 'highlight-todo');\n canvasElement.addMarker(nn.targetRef.id, completeTask.completed ? 'highlight' : 'highlight-todo');\n } else if (nn.targetRef.$type === 'bpmn:EndEvent') {\n if (!todoTask && endTask.key === n.id) {\n canvasElement.addMarker(nn.id, 'highlight');\n canvasElement.addMarker(nn.targetRef.id, 'highlight');\n }\n if (!completeTask.completed) {\n canvasElement.addMarker(nn.id, 'highlight-todo');\n canvasElement.addMarker(nn.targetRef.id, 'highlight-todo');\n }\n }\n });\n }\n } else if (n.$type === 'bpmn:ExclusiveGateway') {\n n.outgoing.forEach(function (nn) {\n var targetTask = taskList.value.find(function (m) {\n return m.key === nn.targetRef.id;\n });\n if (targetTask) {\n canvasElement.addMarker(nn.id, targetTask.completed ? 'highlight' : 'highlight-todo');\n }\n });\n }\n if (n.$type === 'bpmn:StartEvent') {\n n.outgoing.forEach(function (nn) {\n var completeTask = taskList.value.find(function (m) {\n return m.key === nn.targetRef.id;\n });\n if (completeTask) {\n canvasElement.addMarker(nn.id, 'highlight');\n canvasElement.addMarker(n.id, 'highlight');\n return;\n }\n });\n }\n });\n };\n // 对外 api\n var getProcess = function getProcess() {\n var element = getProcessElement();\n return {\n id: element.id,\n name: element.name,\n category: element.$attrs['flowable:processCategory']\n };\n };\n var getProcessElement = function getProcessElement() {\n if (!modeler.value) return null;\n var rootElements = modeler.value.getDefinitions().rootElements;\n for (var i = 0; i < rootElements.length; i++) {\n if (rootElements[i].$type === 'bpmn:Process') return rootElements[i];\n }\n };\n var saveXML = /*#__PURE__*/function () {\n var _ref0 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee9() {\n var download,\n _yield$modeler$value$,\n xml,\n processElement,\n _args9 = arguments,\n _t5;\n return _regenerator().w(function (_context9) {\n while (1) switch (_context9.p = _context9.n) {\n case 0:\n download = _args9.length > 0 && _args9[0] !== undefined ? _args9[0] : false;\n _context9.p = 1;\n if (modeler.value) {\n _context9.n = 2;\n break;\n }\n return _context9.a(2);\n case 2:\n _context9.n = 3;\n return modeler.value.saveXML({\n format: true\n });\n case 3:\n _yield$modeler$value$ = _context9.v;\n xml = _yield$modeler$value$.xml;\n if (download) {\n processElement = getProcessElement();\n if (processElement) {\n downloadFile(\"\".concat(processElement.name, \".bpmn20.xml\"), xml, 'application/xml');\n }\n }\n return _context9.a(2, xml);\n case 4:\n _context9.p = 4;\n _t5 = _context9.v;\n console.log(_t5);\n case 5:\n return _context9.a(2);\n }\n }, _callee9, null, [[1, 4]]);\n }));\n return function saveXML() {\n return _ref0.apply(this, arguments);\n };\n }();\n var saveImg = /*#__PURE__*/function () {\n var _ref1 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee0() {\n var type,\n download,\n _yield$modeler$value$2,\n svg,\n processElement,\n _args0 = arguments,\n _t6;\n return _regenerator().w(function (_context0) {\n while (1) switch (_context0.p = _context0.n) {\n case 0:\n type = _args0.length > 0 && _args0[0] !== undefined ? _args0[0] : 'svg';\n download = _args0.length > 1 && _args0[1] !== undefined ? _args0[1] : false;\n _context0.p = 1;\n if (modeler.value) {\n _context0.n = 2;\n break;\n }\n return _context0.a(2);\n case 2:\n _context0.n = 3;\n return modeler.value.saveSVG({\n format: true\n });\n case 3:\n _yield$modeler$value$2 = _context0.v;\n svg = _yield$modeler$value$2.svg;\n if (download) {\n processElement = getProcessElement();\n if (processElement) {\n downloadFile(processElement.name, svg, 'image/svg+xml');\n }\n }\n return _context0.a(2, svg);\n case 4:\n _context0.p = 4;\n _t6 = _context0.v;\n console.log(_t6);\n case 5:\n return _context0.a(2);\n }\n }, _callee0, null, [[1, 4]]);\n }));\n return function saveImg() {\n return _ref1.apply(this, arguments);\n };\n }();\n var save = /*#__PURE__*/function () {\n var _ref10 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee1() {\n var process, xml, svg, result;\n return _regenerator().w(function (_context1) {\n while (1) switch (_context1.n) {\n case 0:\n process = getProcess();\n _context1.n = 1;\n return saveXML();\n case 1:\n xml = _context1.v;\n _context1.n = 2;\n return saveImg();\n case 2:\n svg = _context1.v;\n result = {\n process: process,\n xml: xml,\n svg: svg\n };\n emit('save', result);\n window.parent.postMessage(result, '*');\n case 3:\n return _context1.a(2);\n }\n }, _callee1);\n }));\n return function save() {\n return _ref10.apply(this, arguments);\n };\n }();\n var openBpmn = function openBpmn(file) {\n var reader = new FileReader();\n reader.readAsText(file, 'utf-8');\n reader.onload = function () {\n createNewDiagram(reader.result);\n };\n return false;\n };\n var downloadFile = function downloadFile(filename, data, type) {\n var a = document.createElement('a');\n var url = window.URL.createObjectURL(new Blob([data], {\n type: type\n }));\n a.href = url;\n a.download = filename;\n a.click();\n window.URL.revokeObjectURL(url);\n };\n var __returned__ = {\n props: props,\n emit: emit,\n manualInit: manualInit,\n simpleInit: simpleInit,\n forceReinit: forceReinit,\n canvasId: canvasId,\n canvas: canvas,\n modeler: modeler,\n taskList: taskList,\n zoom: zoom,\n isInitialized: isInitialized,\n newDiagram: newDiagram,\n fitViewport: fitViewport,\n zoomViewport: zoomViewport,\n createNewDiagram: createNewDiagram,\n adjustPalette: adjustPalette,\n fillColor: fillColor,\n getProcess: getProcess,\n getProcessElement: getProcessElement,\n saveXML: saveXML,\n saveImg: saveImg,\n save: save,\n openBpmn: openBpmn,\n downloadFile: downloadFile,\n PropertyPanel: _PropertyPanel_vue__WEBPACK_IMPORTED_MODULE_3__[\"default\"],\n get FolderOpenOutlined() {\n return _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_8__[\"default\"];\n },\n get PlusCircleOutlined() {\n return _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_11__[\"default\"];\n },\n get FullscreenOutlined() {\n return _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_9__[\"default\"];\n },\n get ZoomInOutlined() {\n return _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_14__[\"default\"];\n },\n get ZoomOutOutlined() {\n return _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_15__[\"default\"];\n },\n get UndoOutlined() {\n return _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_13__[\"default\"];\n },\n get RedoOutlined() {\n return _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_12__[\"default\"];\n },\n get DownloadOutlined() {\n return _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_7__[\"default\"];\n },\n get PictureOutlined() {\n return _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_10__[\"default\"];\n }\n };\n Object.defineProperty(__returned__, '__isScriptSetup', {\n enumerable: false,\n value: true\n });\n return __returned__;\n }\n})));\n\n//# sourceURL=webpack://workflow-bpmn-modeler-andtv-vue3/./package/index.vue?./node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.28.3_webpack@5.101.3/node_modules/babel-loader/lib/index.js!./node_modules/.pnpm/ts-loader@9.5.4_typescript@5.9.2_webpack@5.101.3/node_modules/ts-loader/index.js??clonedRuleSet-41.use%5B1%5D!./node_modules/.pnpm/vue-loader@17.4.2_@vue+compiler-sfc@3.5.21_vue@3.5.21_typescript@5.9.2__webpack@5.101.3/node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D\n}");
569
569
 
570
570
  /***/ }),
571
571
 
@@ -697,7 +697,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpa
697
697
  /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
698
698
 
699
699
  "use strict";
700
- eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: function() { return /* binding */ render; }\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/.pnpm/vue@3.5.21_typescript@5.9.2/node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n\nvar _hoisted_1 = {\n class: \"toolbar-container\"\n};\nvar _hoisted_2 = {\n class: \"toolbar-left\"\n};\nvar _hoisted_3 = {\n class: \"toolbar-group\"\n};\nvar _hoisted_4 = {\n class: \"toolbar-group\"\n};\nvar _hoisted_5 = {\n class: \"toolbar-group\"\n};\nvar _hoisted_6 = {\n class: \"toolbar-right\"\n};\nvar _hoisted_7 = {\n class: \"toolbar-group\"\n};\nvar _hoisted_8 = {\n ref: \"canvas\",\n class: \"canvas\"\n};\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_a_button = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-button\");\n var _component_a_tooltip = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-tooltip\");\n var _component_a_upload = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-upload\");\n var _component_a_layout_header = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-layout-header\");\n var _component_a_layout_content = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-layout-content\");\n var _component_a_layout_sider = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-layout-sider\");\n var _component_a_layout = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-layout\");\n var _directive_loading = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveDirective)(\"loading\");\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)(((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"div\", {\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)([\"flow-containers\", {\n 'view-mode': $props.isView\n }])\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_layout, {\n class: \"main-layout\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\" 顶部工具栏 \"), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_layout_header, {\n class: \"toolbar-header\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_1, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\" 左侧工具组 \"), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_2, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_3, [_cache[6] || (_cache[6] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", {\n class: \"group-label\"\n }, \"文件操作\", -1 /* CACHED */)), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_upload, {\n \"before-upload\": $setup.openBpmn,\n class: \"toolbar-item\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_tooltip, {\n title: \"加载XML文件\",\n placement: \"bottom\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_button, {\n class: \"toolbar-btn\",\n size: \"small\"\n }, {\n icon: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"FolderOpenOutlined\"])];\n }),\n _: 1 /* STABLE */\n })];\n }),\n _: 1 /* STABLE */\n })];\n }),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_tooltip, {\n title: \"新建流程图\",\n placement: \"bottom\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_button, {\n class: \"toolbar-btn\",\n size: \"small\",\n onClick: $setup.newDiagram\n }, {\n icon: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"PlusCircleOutlined\"])];\n }),\n _: 1 /* STABLE */\n })];\n }),\n _: 1 /* STABLE */\n })]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_4, [_cache[7] || (_cache[7] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", {\n class: \"group-label\"\n }, \"视图控制\", -1 /* CACHED */)), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_tooltip, {\n title: \"自适应屏幕\",\n placement: \"bottom\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_button, {\n class: \"toolbar-btn\",\n size: \"small\",\n onClick: $setup.fitViewport\n }, {\n icon: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"FullscreenOutlined\"])];\n }),\n _: 1 /* STABLE */\n })];\n }),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_tooltip, {\n title: \"放大视图\",\n placement: \"bottom\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_button, {\n class: \"toolbar-btn\",\n size: \"small\",\n onClick: _cache[0] || (_cache[0] = function ($event) {\n return $setup.zoomViewport(true);\n })\n }, {\n icon: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"ZoomInOutlined\"])];\n }),\n _: 1 /* STABLE */\n })];\n }),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_tooltip, {\n title: \"缩小视图\",\n placement: \"bottom\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_button, {\n class: \"toolbar-btn\",\n size: \"small\",\n onClick: _cache[1] || (_cache[1] = function ($event) {\n return $setup.zoomViewport(false);\n })\n }, {\n icon: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"ZoomOutOutlined\"])];\n }),\n _: 1 /* STABLE */\n })];\n }),\n _: 1 /* STABLE */\n })]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_5, [_cache[8] || (_cache[8] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", {\n class: \"group-label\"\n }, \"历史操作\", -1 /* CACHED */)), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_tooltip, {\n title: \"撤销操作\",\n placement: \"bottom\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_button, {\n class: \"toolbar-btn\",\n size: \"small\",\n onClick: _cache[2] || (_cache[2] = function () {\n var _$setup$modeler;\n return (_$setup$modeler = $setup.modeler) === null || _$setup$modeler === void 0 ? void 0 : _$setup$modeler.get('commandStack').undo();\n })\n }, {\n icon: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"UndoOutlined\"])];\n }),\n _: 1 /* STABLE */\n })];\n }),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_tooltip, {\n title: \"重做操作\",\n placement: \"bottom\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_button, {\n class: \"toolbar-btn\",\n size: \"small\",\n onClick: _cache[3] || (_cache[3] = function () {\n var _$setup$modeler2;\n return (_$setup$modeler2 = $setup.modeler) === null || _$setup$modeler2 === void 0 ? void 0 : _$setup$modeler2.get('commandStack').redo();\n })\n }, {\n icon: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"RedoOutlined\"])];\n }),\n _: 1 /* STABLE */\n })];\n }),\n _: 1 /* STABLE */\n })])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\" 右侧操作组 \"), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_6, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_7, [_cache[11] || (_cache[11] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", {\n class: \"group-label\"\n }, \"导出\", -1 /* CACHED */)), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_button, {\n class: \"toolbar-btn export-btn\",\n size: \"small\",\n onClick: _cache[4] || (_cache[4] = function ($event) {\n return $setup.saveXML(true);\n })\n }, {\n icon: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"DownloadOutlined\"])];\n }),\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [_cache[9] || (_cache[9] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\" 下载XML \", -1 /* CACHED */))];\n }),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_button, {\n class: \"toolbar-btn export-btn\",\n size: \"small\",\n onClick: _cache[5] || (_cache[5] = function ($event) {\n return $setup.saveImg('svg', true);\n })\n }, {\n icon: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"PictureOutlined\"])];\n }),\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [_cache[10] || (_cache[10] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\" 下载SVG \", -1 /* CACHED */))];\n }),\n _: 1 /* STABLE */\n })]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_button, {\n class: \"save-btn\",\n type: \"primary\",\n onClick: $setup.save\n }, {\n icon: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"DownloadOutlined\"])];\n }),\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [_cache[12] || (_cache[12] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\" 保存模型 \", -1 /* CACHED */))];\n }),\n _: 1 /* STABLE */\n })])])];\n }),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\" 主内容区域 \"), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_layout, {\n class: \"content-layout\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_layout_content, {\n class: \"canvas-container\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_8, null, 512 /* NEED_PATCH */)];\n }),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_layout_sider, {\n class: \"property-panel\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [$setup.modeler ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)($setup[\"PropertyPanel\"], {\n key: 0,\n modeler: $setup.modeler,\n users: $props.users,\n groups: $props.groups,\n categorys: $props.categorys\n }, null, 8 /* PROPS */, [\"modeler\", \"users\", \"groups\", \"categorys\"])) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true)];\n }),\n _: 1 /* STABLE */\n })];\n }),\n _: 1 /* STABLE */\n })];\n }),\n _: 1 /* STABLE */\n })], 2 /* CLASS */)), [[_directive_loading, $props.isView]]);\n}\n\n//# sourceURL=webpack://workflow-bpmn-modeler-andtv-vue3/./package/index.vue?./node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.28.3_webpack@5.101.3/node_modules/babel-loader/lib/index.js!./node_modules/.pnpm/ts-loader@9.5.4_typescript@5.9.2_webpack@5.101.3/node_modules/ts-loader/index.js??clonedRuleSet-41.use%5B1%5D!./node_modules/.pnpm/vue-loader@17.4.2_@vue+compiler-sfc@3.5.21_vue@3.5.21_typescript@5.9.2__webpack@5.101.3/node_modules/vue-loader/dist/templateLoader.js??ruleSet%5B1%5D.rules%5B4%5D!./node_modules/.pnpm/vue-loader@17.4.2_@vue+compiler-sfc@3.5.21_vue@3.5.21_typescript@5.9.2__webpack@5.101.3/node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D\n}");
700
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: function() { return /* binding */ render; }\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/.pnpm/vue@3.5.21_typescript@5.9.2/node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n\nvar _hoisted_1 = {\n class: \"toolbar-container\"\n};\nvar _hoisted_2 = {\n class: \"toolbar-left\"\n};\nvar _hoisted_3 = {\n class: \"toolbar-group\"\n};\nvar _hoisted_4 = {\n class: \"toolbar-group\"\n};\nvar _hoisted_5 = {\n class: \"toolbar-group\"\n};\nvar _hoisted_6 = {\n class: \"toolbar-right\"\n};\nvar _hoisted_7 = {\n class: \"toolbar-group\"\n};\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_a_button = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-button\");\n var _component_a_tooltip = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-tooltip\");\n var _component_a_upload = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-upload\");\n var _component_a_layout_header = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-layout-header\");\n var _component_a_layout_content = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-layout-content\");\n var _component_a_layout_sider = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-layout-sider\");\n var _component_a_layout = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-layout\");\n var _directive_loading = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveDirective)(\"loading\");\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)(((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"div\", {\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)([\"flow-containers\", {\n 'view-mode': $props.isView\n }])\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_layout, {\n class: \"main-layout\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\" 顶部工具栏 \"), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_layout_header, {\n class: \"toolbar-header\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_1, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\" 左侧工具组 \"), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_2, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_3, [_cache[6] || (_cache[6] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", {\n class: \"group-label\"\n }, \"文件操作\", -1 /* CACHED */)), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_upload, {\n \"before-upload\": $setup.openBpmn,\n class: \"toolbar-item\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_tooltip, {\n title: \"加载XML文件\",\n placement: \"bottom\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_button, {\n class: \"toolbar-btn\",\n size: \"small\"\n }, {\n icon: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"FolderOpenOutlined\"])];\n }),\n _: 1 /* STABLE */\n })];\n }),\n _: 1 /* STABLE */\n })];\n }),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_tooltip, {\n title: \"新建流程图\",\n placement: \"bottom\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_button, {\n class: \"toolbar-btn\",\n size: \"small\",\n onClick: $setup.newDiagram\n }, {\n icon: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"PlusCircleOutlined\"])];\n }),\n _: 1 /* STABLE */\n })];\n }),\n _: 1 /* STABLE */\n })]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_4, [_cache[7] || (_cache[7] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", {\n class: \"group-label\"\n }, \"视图控制\", -1 /* CACHED */)), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_tooltip, {\n title: \"自适应屏幕\",\n placement: \"bottom\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_button, {\n class: \"toolbar-btn\",\n size: \"small\",\n onClick: $setup.fitViewport\n }, {\n icon: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"FullscreenOutlined\"])];\n }),\n _: 1 /* STABLE */\n })];\n }),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_tooltip, {\n title: \"放大视图\",\n placement: \"bottom\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_button, {\n class: \"toolbar-btn\",\n size: \"small\",\n onClick: _cache[0] || (_cache[0] = function ($event) {\n return $setup.zoomViewport(true);\n })\n }, {\n icon: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"ZoomInOutlined\"])];\n }),\n _: 1 /* STABLE */\n })];\n }),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_tooltip, {\n title: \"缩小视图\",\n placement: \"bottom\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_button, {\n class: \"toolbar-btn\",\n size: \"small\",\n onClick: _cache[1] || (_cache[1] = function ($event) {\n return $setup.zoomViewport(false);\n })\n }, {\n icon: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"ZoomOutOutlined\"])];\n }),\n _: 1 /* STABLE */\n })];\n }),\n _: 1 /* STABLE */\n })]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_5, [_cache[8] || (_cache[8] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", {\n class: \"group-label\"\n }, \"历史操作\", -1 /* CACHED */)), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_tooltip, {\n title: \"撤销操作\",\n placement: \"bottom\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_button, {\n class: \"toolbar-btn\",\n size: \"small\",\n onClick: _cache[2] || (_cache[2] = function () {\n var _$setup$modeler;\n return (_$setup$modeler = $setup.modeler) === null || _$setup$modeler === void 0 ? void 0 : _$setup$modeler.get('commandStack').undo();\n })\n }, {\n icon: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"UndoOutlined\"])];\n }),\n _: 1 /* STABLE */\n })];\n }),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_tooltip, {\n title: \"重做操作\",\n placement: \"bottom\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_button, {\n class: \"toolbar-btn\",\n size: \"small\",\n onClick: _cache[3] || (_cache[3] = function () {\n var _$setup$modeler2;\n return (_$setup$modeler2 = $setup.modeler) === null || _$setup$modeler2 === void 0 ? void 0 : _$setup$modeler2.get('commandStack').redo();\n })\n }, {\n icon: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"RedoOutlined\"])];\n }),\n _: 1 /* STABLE */\n })];\n }),\n _: 1 /* STABLE */\n })])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\" 右侧操作组 \"), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_6, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_7, [_cache[11] || (_cache[11] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", {\n class: \"group-label\"\n }, \"导出\", -1 /* CACHED */)), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_button, {\n class: \"toolbar-btn export-btn\",\n size: \"small\",\n onClick: _cache[4] || (_cache[4] = function ($event) {\n return $setup.saveXML(true);\n })\n }, {\n icon: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"DownloadOutlined\"])];\n }),\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [_cache[9] || (_cache[9] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\" 下载XML \", -1 /* CACHED */))];\n }),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_button, {\n class: \"toolbar-btn export-btn\",\n size: \"small\",\n onClick: _cache[5] || (_cache[5] = function ($event) {\n return $setup.saveImg('svg', true);\n })\n }, {\n icon: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"PictureOutlined\"])];\n }),\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [_cache[10] || (_cache[10] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\" 下载SVG \", -1 /* CACHED */))];\n }),\n _: 1 /* STABLE */\n })]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_button, {\n class: \"save-btn\",\n type: \"primary\",\n onClick: $setup.save\n }, {\n icon: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"DownloadOutlined\"])];\n }),\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [_cache[12] || (_cache[12] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\" 保存模型 \", -1 /* CACHED */))];\n }),\n _: 1 /* STABLE */\n })])])];\n }),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\" 主内容区域 \"), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_layout, {\n class: \"content-layout\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_layout_content, {\n class: \"canvas-container\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", {\n ref: \"canvas\",\n class: \"canvas\",\n id: $setup.canvasId\n }, null, 512 /* NEED_PATCH */)];\n }),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_layout_sider, {\n class: \"property-panel\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [$setup.modeler ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)($setup[\"PropertyPanel\"], {\n key: 0,\n modeler: $setup.modeler,\n users: $props.users,\n groups: $props.groups,\n categorys: $props.categorys\n }, null, 8 /* PROPS */, [\"modeler\", \"users\", \"groups\", \"categorys\"])) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true)];\n }),\n _: 1 /* STABLE */\n })];\n }),\n _: 1 /* STABLE */\n })];\n }),\n _: 1 /* STABLE */\n })], 2 /* CLASS */)), [[_directive_loading, $props.isView]]);\n}\n\n//# sourceURL=webpack://workflow-bpmn-modeler-andtv-vue3/./package/index.vue?./node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.28.3_webpack@5.101.3/node_modules/babel-loader/lib/index.js!./node_modules/.pnpm/ts-loader@9.5.4_typescript@5.9.2_webpack@5.101.3/node_modules/ts-loader/index.js??clonedRuleSet-41.use%5B1%5D!./node_modules/.pnpm/vue-loader@17.4.2_@vue+compiler-sfc@3.5.21_vue@3.5.21_typescript@5.9.2__webpack@5.101.3/node_modules/vue-loader/dist/templateLoader.js??ruleSet%5B1%5D.rules%5B4%5D!./node_modules/.pnpm/vue-loader@17.4.2_@vue+compiler-sfc@3.5.21_vue@3.5.21_typescript@5.9.2__webpack@5.101.3/node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D\n}");
701
701
 
702
702
  /***/ }),
703
703
 
@@ -565,7 +565,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var vue
565
565
  /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
566
566
 
567
567
  "use strict";
568
- eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/.pnpm/vue@3.5.21_typescript@5.9.2/node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n/* harmony import */ var _common_customTranslate__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./common/customTranslate */ \"./package/common/customTranslate.js\");\n/* harmony import */ var bpmn_js_lib_Modeler__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! bpmn-js/lib/Modeler */ \"./node_modules/.pnpm/bpmn-js@8.10.0/node_modules/bpmn-js/lib/Modeler.js\");\n/* harmony import */ var _PropertyPanel_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./PropertyPanel.vue */ \"./package/PropertyPanel.vue\");\n/* harmony import */ var _BpmData__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./BpmData */ \"./package/BpmData.js\");\n/* harmony import */ var _flowable_init__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./flowable/init */ \"./package/flowable/init.js\");\n/* harmony import */ var _flowable_flowable_json__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./flowable/flowable.json */ \"./package/flowable/flowable.json\");\n/* harmony import */ var _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @ant-design/icons-vue */ \"./node_modules/.pnpm/@ant-design+icons-vue@7.0.1_vue@3.5.21_typescript@5.9.2_/node_modules/@ant-design/icons-vue/es/icons/DownloadOutlined.js\");\n/* harmony import */ var _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @ant-design/icons-vue */ \"./node_modules/.pnpm/@ant-design+icons-vue@7.0.1_vue@3.5.21_typescript@5.9.2_/node_modules/@ant-design/icons-vue/es/icons/FolderOpenOutlined.js\");\n/* harmony import */ var _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @ant-design/icons-vue */ \"./node_modules/.pnpm/@ant-design+icons-vue@7.0.1_vue@3.5.21_typescript@5.9.2_/node_modules/@ant-design/icons-vue/es/icons/FullscreenOutlined.js\");\n/* harmony import */ var _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @ant-design/icons-vue */ \"./node_modules/.pnpm/@ant-design+icons-vue@7.0.1_vue@3.5.21_typescript@5.9.2_/node_modules/@ant-design/icons-vue/es/icons/PictureOutlined.js\");\n/* harmony import */ var _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @ant-design/icons-vue */ \"./node_modules/.pnpm/@ant-design+icons-vue@7.0.1_vue@3.5.21_typescript@5.9.2_/node_modules/@ant-design/icons-vue/es/icons/PlusCircleOutlined.js\");\n/* harmony import */ var _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @ant-design/icons-vue */ \"./node_modules/.pnpm/@ant-design+icons-vue@7.0.1_vue@3.5.21_typescript@5.9.2_/node_modules/@ant-design/icons-vue/es/icons/RedoOutlined.js\");\n/* harmony import */ var _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @ant-design/icons-vue */ \"./node_modules/.pnpm/@ant-design+icons-vue@7.0.1_vue@3.5.21_typescript@5.9.2_/node_modules/@ant-design/icons-vue/es/icons/UndoOutlined.js\");\n/* harmony import */ var _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @ant-design/icons-vue */ \"./node_modules/.pnpm/@ant-design+icons-vue@7.0.1_vue@3.5.21_typescript@5.9.2_/node_modules/@ant-design/icons-vue/es/icons/ZoomInOutlined.js\");\n/* harmony import */ var _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @ant-design/icons-vue */ \"./node_modules/.pnpm/@ant-design+icons-vue@7.0.1_vue@3.5.21_typescript@5.9.2_/node_modules/@ant-design/icons-vue/es/icons/ZoomOutOutlined.js\");\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = \"function\" == typeof Symbol ? Symbol : {}, n = r.iterator || \"@@iterator\", o = r.toStringTag || \"@@toStringTag\"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return _regeneratorDefine2(u, \"_invoke\", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError(\"Generator is already running\"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = \"next\"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError(\"iterator result is not an object\"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i.return) && t.call(i), c < 2 && (u = TypeError(\"The iterator does not provide a '\" + o + \"' method\"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine2(e, o, \"GeneratorFunction\")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine2(u, \"constructor\", GeneratorFunctionPrototype), _regeneratorDefine2(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction), GeneratorFunction.displayName = \"GeneratorFunction\", _regeneratorDefine2(GeneratorFunctionPrototype, o, \"GeneratorFunction\"), _regeneratorDefine2(u), _regeneratorDefine2(u, o, \"Generator\"), _regeneratorDefine2(u, n, function () { return this; }), _regeneratorDefine2(u, \"toString\", function () { return \"[object Generator]\"; }), (_regenerator = function _regenerator() { return { w: i, m: f }; })(); }\nfunction _regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, \"\", {}); } catch (e) { i = 0; } _regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { _regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o(\"next\", 0), o(\"throw\", 1), o(\"return\", 2)); }, _regeneratorDefine2(e, r, n, t); }\nfunction asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }\nfunction _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n); } _next(void 0); }); }; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n\n\n\n\n\n\n\n// 引入flowable的节点文件\n\n// 引入图标\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (/*@__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.defineComponent)(_objectSpread(_objectSpread({}, {\n name: 'WorkflowBpmnModeler'\n}), {}, {\n __name: 'index',\n props: {\n xml: {\n type: String,\n required: false,\n default: ''\n },\n users: {\n type: Array,\n required: false,\n default: function _default() {\n return [];\n }\n },\n groups: {\n type: Array,\n required: false,\n default: function _default() {\n return [];\n }\n },\n categorys: {\n type: Array,\n required: false,\n default: function _default() {\n return [];\n }\n },\n isView: {\n type: Boolean,\n required: false,\n default: false\n }\n },\n emits: [\"save\"],\n setup: function setup(__props, _ref) {\n var __expose = _ref.expose,\n __emit = _ref.emit;\n // 汉化\n var props = __props;\n var emit = __emit;\n // 暴露手动初始化方法\n var manualInit = function manualInit() {\n if (!modeler.value && canvas.value) {\n console.log('Manual initialization triggered');\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.onMounted)();\n }\n };\n // 暴露给父组件\n __expose({\n manualInit: manualInit,\n getProcess: getProcess,\n saveXML: saveXML,\n saveImg: saveImg,\n save: save\n });\n var canvas = (0,vue__WEBPACK_IMPORTED_MODULE_0__.ref)(null);\n var modeler = (0,vue__WEBPACK_IMPORTED_MODULE_0__.ref)(null);\n var taskList = (0,vue__WEBPACK_IMPORTED_MODULE_0__.ref)([]);\n var zoom = (0,vue__WEBPACK_IMPORTED_MODULE_0__.ref)(1);\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.watch)(function () {\n return props.xml;\n }, function (val) {\n if (val) {\n createNewDiagram(val);\n }\n });\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.onMounted)(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee4() {\n var initializeModeler, initialized, _canvas$value, observer, retryCount, maxRetries, retryTimer;\n return _regenerator().w(function (_context4) {\n while (1) switch (_context4.n) {\n case 0:\n _context4.n = 1;\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.nextTick)();\n case 1:\n initializeModeler = /*#__PURE__*/function () {\n var _ref3 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee() {\n var _t;\n return _regenerator().w(function (_context) {\n while (1) switch (_context.p = _context.n) {\n case 0:\n _context.p = 0;\n if (!(!canvas.value || canvas.value.offsetWidth === 0 || canvas.value.offsetHeight === 0)) {\n _context.n = 1;\n break;\n }\n console.log('Canvas container not ready, waiting...');\n return _context.a(2, false);\n case 1:\n console.log('Canvas container found, initializing modeler...');\n // 生成实例\n modeler.value = new bpmn_js_lib_Modeler__WEBPACK_IMPORTED_MODULE_2__[\"default\"]({\n container: canvas.value,\n additionalModules: [{\n translate: ['value', _common_customTranslate__WEBPACK_IMPORTED_MODULE_1__[\"default\"]]\n }],\n moddleExtensions: {\n flowable: _flowable_flowable_json__WEBPACK_IMPORTED_MODULE_6__\n }\n });\n // 等待下一个tick确保DOM更新\n _context.n = 2;\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.nextTick)();\n case 2:\n // 新增流程定义\n if (!props.xml) {\n newDiagram();\n } else {\n createNewDiagram(props.xml);\n }\n console.log('BPMN Modeler initialized successfully');\n return _context.a(2, true);\n case 3:\n _context.p = 3;\n _t = _context.v;\n console.error('BPMN Modeler initialization failed:', _t);\n return _context.a(2, false);\n }\n }, _callee, null, [[0, 3]]);\n }));\n return function initializeModeler() {\n return _ref3.apply(this, arguments);\n };\n }(); // 立即尝试初始化\n _context4.n = 2;\n return initializeModeler();\n case 2:\n initialized = _context4.v;\n // 如果初始化失败,使用多种策略重试\n if (!initialized) {\n // 策略1: 使用MutationObserver监听DOM变化\n observer = new MutationObserver(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2() {\n return _regenerator().w(function (_context2) {\n while (1) switch (_context2.n) {\n case 0:\n if (!(canvas.value && canvas.value.offsetWidth > 0 && canvas.value.offsetHeight > 0)) {\n _context2.n = 1;\n break;\n }\n observer.disconnect();\n _context2.n = 1;\n return initializeModeler();\n case 1:\n return _context2.a(2);\n }\n }, _callee2);\n }))); // 监听父容器变化\n if ((_canvas$value = canvas.value) !== null && _canvas$value !== void 0 && _canvas$value.parentElement) {\n observer.observe(canvas.value.parentElement, {\n childList: true,\n subtree: true,\n attributes: true,\n attributeFilter: ['style', 'class']\n });\n }\n // 策略2: 定时重试(最多10秒)\n retryCount = 0;\n maxRetries = 50; // 10秒,每200ms重试一次\n retryTimer = setInterval(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee3() {\n return _regenerator().w(function (_context3) {\n while (1) switch (_context3.n) {\n case 0:\n retryCount++;\n _context3.n = 1;\n return initializeModeler();\n case 1:\n initialized = _context3.v;\n if (initialized || retryCount >= maxRetries) {\n clearInterval(retryTimer);\n observer.disconnect();\n if (!initialized) {\n console.error('Failed to initialize BPMN Modeler after maximum retries');\n }\n }\n case 2:\n return _context3.a(2);\n }\n }, _callee3);\n })), 200);\n }\n case 3:\n return _context4.a(2);\n }\n }, _callee4);\n })));\n var newDiagram = function newDiagram() {\n createNewDiagram((0,_flowable_init__WEBPACK_IMPORTED_MODULE_5__[\"default\"])());\n };\n // 让图能自适应屏幕\n var fitViewport = function fitViewport() {\n if (!modeler.value) return;\n zoom.value = modeler.value.get('canvas').zoom('fit-viewport');\n var viewport = document.querySelector('.flow-containers .viewport');\n var bbox = viewport === null || viewport === void 0 ? void 0 : viewport.getBBox();\n if (!bbox) return;\n var currentViewbox = modeler.value.get('canvas').viewbox();\n var elementMid = {\n x: bbox.x + bbox.width / 2 - 65,\n y: bbox.y + bbox.height / 2\n };\n modeler.value.get('canvas').viewbox({\n x: elementMid.x - currentViewbox.width / 2,\n y: elementMid.y - currentViewbox.height / 2,\n width: currentViewbox.width,\n height: currentViewbox.height\n });\n zoom.value = bbox.width / currentViewbox.width * 1.8;\n };\n // 放大缩小\n var zoomViewport = function zoomViewport() {\n var zoomIn = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n if (!modeler.value) return;\n zoom.value = modeler.value.get('canvas').zoom();\n zoom.value += zoomIn ? 0.1 : -0.1;\n modeler.value.get('canvas').zoom(zoom.value);\n };\n var createNewDiagram = /*#__PURE__*/function () {\n var _ref6 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee5(data) {\n var _t2;\n return _regenerator().w(function (_context5) {\n while (1) switch (_context5.p = _context5.n) {\n case 0:\n // 将字符串转换成图显示出来\n // data = data.replace(/<!\\[CDATA\\[(.+?)]]>/g, '&lt;![CDATA[$1]]&gt;')\n data = data.replace(/<!\\[CDATA\\[(.+?)]]>/g, function (match, str) {\n return str.replace(/</g, '&lt;');\n });\n _context5.p = 1;\n if (modeler.value) {\n _context5.n = 2;\n break;\n }\n console.error('Modeler not initialized');\n return _context5.a(2);\n case 2:\n console.log('Importing XML data...', data.substring(0, 200) + '...');\n _context5.n = 3;\n return modeler.value.importXML(data);\n case 3:\n console.log('XML imported successfully');\n // 等待DOM更新\n _context5.n = 4;\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.nextTick)();\n case 4:\n adjustPalette();\n fitViewport();\n console.log('Diagram created successfully');\n // fillColor()\n _context5.n = 6;\n break;\n case 5:\n _context5.p = 5;\n _t2 = _context5.v;\n console.error('Failed to create diagram:', _t2.message, _t2.warnings);\n case 6:\n return _context5.a(2);\n }\n }, _callee5, null, [[1, 5]]);\n }));\n return function createNewDiagram(_x) {\n return _ref6.apply(this, arguments);\n };\n }();\n // 调整左侧工具栏排版\n var adjustPalette = function adjustPalette() {\n try {\n // 获取 bpmn 设计器实例\n var canvasElement = canvas.value;\n if (!canvasElement) return;\n var djsPalette = canvasElement.children[0].children[1].children[4];\n var djsPalStyle = {\n width: '130px',\n padding: '5px',\n background: 'white',\n left: '20px',\n borderRadius: '0'\n };\n for (var key in djsPalStyle) {\n djsPalette.style[key] = djsPalStyle[key];\n }\n var palette = djsPalette.children[0];\n var allGroups = palette.children;\n allGroups[0].style.display = 'none';\n // 修改控件样式\n for (var gKey = 0; gKey < allGroups.length; gKey++) {\n var group = allGroups[gKey];\n for (var cKey = 0; cKey < group.children.length; cKey++) {\n var control = group.children[cKey];\n var controlStyle = {\n display: 'flex',\n justifyContent: 'flex-start',\n alignItems: 'center',\n width: '100%',\n padding: '5px'\n };\n if (control.className && control.dataset && control.className.indexOf('entry') !== -1) {\n var controlProps = new _BpmData__WEBPACK_IMPORTED_MODULE_4__[\"default\"]().getControl(control.dataset.action);\n control.innerHTML = \"<div style='font-size: 14px;font-weight:500;margin-left:15px;'>\".concat(controlProps['title'], \"</div>\");\n for (var csKey in controlStyle) {\n control.style[csKey] = controlStyle[csKey];\n }\n }\n }\n }\n } catch (e) {\n console.log(e);\n }\n };\n var fillColor = function fillColor() {\n if (!modeler.value) return;\n var canvasElement = modeler.value.get('canvas')(modeler.value)._definitions.rootElements[0].flowElements.forEach(function (n) {\n if (n.$type === 'bpmn:UserTask') {\n var completeTask = taskList.value.find(function (m) {\n return m.key === n.id;\n }) || {\n completed: true\n };\n var todoTask = taskList.value.find(function (m) {\n return !m.completed;\n });\n var endTask = taskList.value[taskList.value.length - 1];\n if (completeTask) {\n var _n$outgoing;\n canvasElement.addMarker(n.id, completeTask.completed ? 'highlight' : 'highlight-todo');\n (_n$outgoing = n.outgoing) === null || _n$outgoing === void 0 || _n$outgoing.forEach(function (nn) {\n var targetTask = taskList.value.find(function (m) {\n return m.key === nn.targetRef.id;\n });\n if (targetTask) {\n canvasElement.addMarker(nn.id, targetTask.completed ? 'highlight' : 'highlight-todo');\n } else if (nn.targetRef.$type === 'bpmn:ExclusiveGateway') {\n // canvasElement.addMarker(nn.id, 'highlight');\n canvasElement.addMarker(nn.id, completeTask.completed ? 'highlight' : 'highlight-todo');\n canvasElement.addMarker(nn.targetRef.id, completeTask.completed ? 'highlight' : 'highlight-todo');\n } else if (nn.targetRef.$type === 'bpmn:EndEvent') {\n if (!todoTask && endTask.key === n.id) {\n canvasElement.addMarker(nn.id, 'highlight');\n canvasElement.addMarker(nn.targetRef.id, 'highlight');\n }\n if (!completeTask.completed) {\n canvasElement.addMarker(nn.id, 'highlight-todo');\n canvasElement.addMarker(nn.targetRef.id, 'highlight-todo');\n }\n }\n });\n }\n } else if (n.$type === 'bpmn:ExclusiveGateway') {\n n.outgoing.forEach(function (nn) {\n var targetTask = taskList.value.find(function (m) {\n return m.key === nn.targetRef.id;\n });\n if (targetTask) {\n canvasElement.addMarker(nn.id, targetTask.completed ? 'highlight' : 'highlight-todo');\n }\n });\n }\n if (n.$type === 'bpmn:StartEvent') {\n n.outgoing.forEach(function (nn) {\n var completeTask = taskList.value.find(function (m) {\n return m.key === nn.targetRef.id;\n });\n if (completeTask) {\n canvasElement.addMarker(nn.id, 'highlight');\n canvasElement.addMarker(n.id, 'highlight');\n return;\n }\n });\n }\n });\n };\n // 对外 api\n var getProcess = function getProcess() {\n var element = getProcessElement();\n return {\n id: element.id,\n name: element.name,\n category: element.$attrs['flowable:processCategory']\n };\n };\n var getProcessElement = function getProcessElement() {\n if (!modeler.value) return null;\n var rootElements = modeler.value.getDefinitions().rootElements;\n for (var i = 0; i < rootElements.length; i++) {\n if (rootElements[i].$type === 'bpmn:Process') return rootElements[i];\n }\n };\n var saveXML = /*#__PURE__*/function () {\n var _ref7 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee6() {\n var download,\n _yield$modeler$value$,\n xml,\n processElement,\n _args6 = arguments,\n _t3;\n return _regenerator().w(function (_context6) {\n while (1) switch (_context6.p = _context6.n) {\n case 0:\n download = _args6.length > 0 && _args6[0] !== undefined ? _args6[0] : false;\n _context6.p = 1;\n if (modeler.value) {\n _context6.n = 2;\n break;\n }\n return _context6.a(2);\n case 2:\n _context6.n = 3;\n return modeler.value.saveXML({\n format: true\n });\n case 3:\n _yield$modeler$value$ = _context6.v;\n xml = _yield$modeler$value$.xml;\n if (download) {\n processElement = getProcessElement();\n if (processElement) {\n downloadFile(\"\".concat(processElement.name, \".bpmn20.xml\"), xml, 'application/xml');\n }\n }\n return _context6.a(2, xml);\n case 4:\n _context6.p = 4;\n _t3 = _context6.v;\n console.log(_t3);\n case 5:\n return _context6.a(2);\n }\n }, _callee6, null, [[1, 4]]);\n }));\n return function saveXML() {\n return _ref7.apply(this, arguments);\n };\n }();\n var saveImg = /*#__PURE__*/function () {\n var _ref8 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee7() {\n var type,\n download,\n _yield$modeler$value$2,\n svg,\n processElement,\n _args7 = arguments,\n _t4;\n return _regenerator().w(function (_context7) {\n while (1) switch (_context7.p = _context7.n) {\n case 0:\n type = _args7.length > 0 && _args7[0] !== undefined ? _args7[0] : 'svg';\n download = _args7.length > 1 && _args7[1] !== undefined ? _args7[1] : false;\n _context7.p = 1;\n if (modeler.value) {\n _context7.n = 2;\n break;\n }\n return _context7.a(2);\n case 2:\n _context7.n = 3;\n return modeler.value.saveSVG({\n format: true\n });\n case 3:\n _yield$modeler$value$2 = _context7.v;\n svg = _yield$modeler$value$2.svg;\n if (download) {\n processElement = getProcessElement();\n if (processElement) {\n downloadFile(processElement.name, svg, 'image/svg+xml');\n }\n }\n return _context7.a(2, svg);\n case 4:\n _context7.p = 4;\n _t4 = _context7.v;\n console.log(_t4);\n case 5:\n return _context7.a(2);\n }\n }, _callee7, null, [[1, 4]]);\n }));\n return function saveImg() {\n return _ref8.apply(this, arguments);\n };\n }();\n var save = /*#__PURE__*/function () {\n var _ref9 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee8() {\n var process, xml, svg, result;\n return _regenerator().w(function (_context8) {\n while (1) switch (_context8.n) {\n case 0:\n process = getProcess();\n _context8.n = 1;\n return saveXML();\n case 1:\n xml = _context8.v;\n _context8.n = 2;\n return saveImg();\n case 2:\n svg = _context8.v;\n result = {\n process: process,\n xml: xml,\n svg: svg\n };\n emit('save', result);\n window.parent.postMessage(result, '*');\n case 3:\n return _context8.a(2);\n }\n }, _callee8);\n }));\n return function save() {\n return _ref9.apply(this, arguments);\n };\n }();\n var openBpmn = function openBpmn(file) {\n var reader = new FileReader();\n reader.readAsText(file, 'utf-8');\n reader.onload = function () {\n createNewDiagram(reader.result);\n };\n return false;\n };\n var downloadFile = function downloadFile(filename, data, type) {\n var a = document.createElement('a');\n var url = window.URL.createObjectURL(new Blob([data], {\n type: type\n }));\n a.href = url;\n a.download = filename;\n a.click();\n window.URL.revokeObjectURL(url);\n };\n var __returned__ = {\n props: props,\n emit: emit,\n manualInit: manualInit,\n canvas: canvas,\n modeler: modeler,\n taskList: taskList,\n zoom: zoom,\n newDiagram: newDiagram,\n fitViewport: fitViewport,\n zoomViewport: zoomViewport,\n createNewDiagram: createNewDiagram,\n adjustPalette: adjustPalette,\n fillColor: fillColor,\n getProcess: getProcess,\n getProcessElement: getProcessElement,\n saveXML: saveXML,\n saveImg: saveImg,\n save: save,\n openBpmn: openBpmn,\n downloadFile: downloadFile,\n PropertyPanel: _PropertyPanel_vue__WEBPACK_IMPORTED_MODULE_3__[\"default\"],\n get FolderOpenOutlined() {\n return _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_8__[\"default\"];\n },\n get PlusCircleOutlined() {\n return _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_11__[\"default\"];\n },\n get FullscreenOutlined() {\n return _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_9__[\"default\"];\n },\n get ZoomInOutlined() {\n return _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_14__[\"default\"];\n },\n get ZoomOutOutlined() {\n return _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_15__[\"default\"];\n },\n get UndoOutlined() {\n return _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_13__[\"default\"];\n },\n get RedoOutlined() {\n return _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_12__[\"default\"];\n },\n get DownloadOutlined() {\n return _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_7__[\"default\"];\n },\n get PictureOutlined() {\n return _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_10__[\"default\"];\n }\n };\n Object.defineProperty(__returned__, '__isScriptSetup', {\n enumerable: false,\n value: true\n });\n return __returned__;\n }\n})));\n\n//# sourceURL=webpack://WorkflowBpmnModelerAndtvVue/./package/index.vue?./node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.28.3_webpack@5.101.3/node_modules/babel-loader/lib/index.js!./node_modules/.pnpm/ts-loader@9.5.4_typescript@5.9.2_webpack@5.101.3/node_modules/ts-loader/index.js??clonedRuleSet-86.use%5B1%5D!./node_modules/.pnpm/vue-loader@17.4.2_@vue+compiler-sfc@3.5.21_vue@3.5.21_typescript@5.9.2__webpack@5.101.3/node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D\n}");
568
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/.pnpm/vue@3.5.21_typescript@5.9.2/node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n/* harmony import */ var _common_customTranslate__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./common/customTranslate */ \"./package/common/customTranslate.js\");\n/* harmony import */ var bpmn_js_lib_Modeler__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! bpmn-js/lib/Modeler */ \"./node_modules/.pnpm/bpmn-js@8.10.0/node_modules/bpmn-js/lib/Modeler.js\");\n/* harmony import */ var _PropertyPanel_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./PropertyPanel.vue */ \"./package/PropertyPanel.vue\");\n/* harmony import */ var _BpmData__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./BpmData */ \"./package/BpmData.js\");\n/* harmony import */ var _flowable_init__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./flowable/init */ \"./package/flowable/init.js\");\n/* harmony import */ var _flowable_flowable_json__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./flowable/flowable.json */ \"./package/flowable/flowable.json\");\n/* harmony import */ var _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @ant-design/icons-vue */ \"./node_modules/.pnpm/@ant-design+icons-vue@7.0.1_vue@3.5.21_typescript@5.9.2_/node_modules/@ant-design/icons-vue/es/icons/DownloadOutlined.js\");\n/* harmony import */ var _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @ant-design/icons-vue */ \"./node_modules/.pnpm/@ant-design+icons-vue@7.0.1_vue@3.5.21_typescript@5.9.2_/node_modules/@ant-design/icons-vue/es/icons/FolderOpenOutlined.js\");\n/* harmony import */ var _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @ant-design/icons-vue */ \"./node_modules/.pnpm/@ant-design+icons-vue@7.0.1_vue@3.5.21_typescript@5.9.2_/node_modules/@ant-design/icons-vue/es/icons/FullscreenOutlined.js\");\n/* harmony import */ var _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @ant-design/icons-vue */ \"./node_modules/.pnpm/@ant-design+icons-vue@7.0.1_vue@3.5.21_typescript@5.9.2_/node_modules/@ant-design/icons-vue/es/icons/PictureOutlined.js\");\n/* harmony import */ var _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @ant-design/icons-vue */ \"./node_modules/.pnpm/@ant-design+icons-vue@7.0.1_vue@3.5.21_typescript@5.9.2_/node_modules/@ant-design/icons-vue/es/icons/PlusCircleOutlined.js\");\n/* harmony import */ var _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @ant-design/icons-vue */ \"./node_modules/.pnpm/@ant-design+icons-vue@7.0.1_vue@3.5.21_typescript@5.9.2_/node_modules/@ant-design/icons-vue/es/icons/RedoOutlined.js\");\n/* harmony import */ var _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @ant-design/icons-vue */ \"./node_modules/.pnpm/@ant-design+icons-vue@7.0.1_vue@3.5.21_typescript@5.9.2_/node_modules/@ant-design/icons-vue/es/icons/UndoOutlined.js\");\n/* harmony import */ var _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @ant-design/icons-vue */ \"./node_modules/.pnpm/@ant-design+icons-vue@7.0.1_vue@3.5.21_typescript@5.9.2_/node_modules/@ant-design/icons-vue/es/icons/ZoomInOutlined.js\");\n/* harmony import */ var _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @ant-design/icons-vue */ \"./node_modules/.pnpm/@ant-design+icons-vue@7.0.1_vue@3.5.21_typescript@5.9.2_/node_modules/@ant-design/icons-vue/es/icons/ZoomOutOutlined.js\");\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = \"function\" == typeof Symbol ? Symbol : {}, n = r.iterator || \"@@iterator\", o = r.toStringTag || \"@@toStringTag\"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return _regeneratorDefine2(u, \"_invoke\", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError(\"Generator is already running\"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = \"next\"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError(\"iterator result is not an object\"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i.return) && t.call(i), c < 2 && (u = TypeError(\"The iterator does not provide a '\" + o + \"' method\"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine2(e, o, \"GeneratorFunction\")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine2(u, \"constructor\", GeneratorFunctionPrototype), _regeneratorDefine2(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction), GeneratorFunction.displayName = \"GeneratorFunction\", _regeneratorDefine2(GeneratorFunctionPrototype, o, \"GeneratorFunction\"), _regeneratorDefine2(u), _regeneratorDefine2(u, o, \"Generator\"), _regeneratorDefine2(u, n, function () { return this; }), _regeneratorDefine2(u, \"toString\", function () { return \"[object Generator]\"; }), (_regenerator = function _regenerator() { return { w: i, m: f }; })(); }\nfunction _regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, \"\", {}); } catch (e) { i = 0; } _regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { _regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o(\"next\", 0), o(\"throw\", 1), o(\"return\", 2)); }, _regeneratorDefine2(e, r, n, t); }\nfunction asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }\nfunction _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n); } _next(void 0); }); }; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n\n\n\n\n\n\n\n// 引入flowable的节点文件\n\n// 引入图标\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (/*@__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.defineComponent)(_objectSpread(_objectSpread({}, {\n name: 'WorkflowBpmnModeler'\n}), {}, {\n __name: 'index',\n props: {\n xml: {\n type: String,\n required: false,\n default: ''\n },\n users: {\n type: Array,\n required: false,\n default: function _default() {\n return [];\n }\n },\n groups: {\n type: Array,\n required: false,\n default: function _default() {\n return [];\n }\n },\n categorys: {\n type: Array,\n required: false,\n default: function _default() {\n return [];\n }\n },\n isView: {\n type: Boolean,\n required: false,\n default: false\n }\n },\n emits: [\"save\"],\n setup: function setup(__props, _ref) {\n var __expose = _ref.expose,\n __emit = _ref.emit;\n // 汉化\n var props = __props;\n var emit = __emit;\n // 暴露手动初始化方法\n var manualInit = function manualInit() {\n if (!modeler.value && canvas.value) {\n console.log('Manual initialization triggered');\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.onMounted)();\n }\n };\n // 简化的初始化方法,专门用于XML加载失败的情况\n var simpleInit = /*#__PURE__*/function () {\n var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee() {\n var _t;\n return _regenerator().w(function (_context) {\n while (1) switch (_context.p = _context.n) {\n case 0:\n _context.p = 0;\n if (canvas.value) {\n _context.n = 1;\n break;\n }\n console.error('Canvas container not found for simple init');\n return _context.a(2, false);\n case 1:\n console.log('Starting simple initialization...');\n // 强制设置容器样式\n canvas.value.style.width = '100%';\n canvas.value.style.height = '100%';\n canvas.value.style.minHeight = '400px';\n canvas.value.style.display = 'block';\n // 等待DOM更新\n _context.n = 2;\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.nextTick)();\n case 2:\n _context.n = 3;\n return new Promise(function (resolve) {\n return setTimeout(resolve, 50);\n });\n case 3:\n // 创建简单的BPMN模型器实例\n modeler.value = new bpmn_js_lib_Modeler__WEBPACK_IMPORTED_MODULE_2__[\"default\"]({\n container: canvas.value,\n additionalModules: [{\n translate: ['value', _common_customTranslate__WEBPACK_IMPORTED_MODULE_1__[\"default\"]]\n }],\n moddleExtensions: {\n flowable: _flowable_flowable_json__WEBPACK_IMPORTED_MODULE_6__\n }\n });\n // 等待下一个tick\n _context.n = 4;\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.nextTick)();\n case 4:\n _context.n = 5;\n return modeler.value.importXML((0,_flowable_init__WEBPACK_IMPORTED_MODULE_5__[\"default\"])());\n case 5:\n isInitialized.value = true;\n console.log('Simple initialization completed successfully');\n return _context.a(2, true);\n case 6:\n _context.p = 6;\n _t = _context.v;\n console.error('Simple initialization failed:', _t);\n return _context.a(2, false);\n }\n }, _callee, null, [[0, 6]]);\n }));\n return function simpleInit() {\n return _ref2.apply(this, arguments);\n };\n }();\n // 强制重新初始化方法\n var forceReinit = /*#__PURE__*/function () {\n var _ref3 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2() {\n var success, _t2;\n return _regenerator().w(function (_context2) {\n while (1) switch (_context2.p = _context2.n) {\n case 0:\n _context2.p = 0;\n console.log('Force reinitializing BPMN Modeler...');\n // 清理现有实例\n if (modeler.value) {\n modeler.value.destroy();\n modeler.value = null;\n }\n isInitialized.value = false;\n // 等待一段时间\n _context2.n = 1;\n return new Promise(function (resolve) {\n return setTimeout(resolve, 100);\n });\n case 1:\n _context2.n = 2;\n return simpleInit();\n case 2:\n success = _context2.v;\n if (success) {\n console.log('Force reinitialization successful');\n } else {\n console.error('Force reinitialization failed');\n }\n return _context2.a(2, success);\n case 3:\n _context2.p = 3;\n _t2 = _context2.v;\n console.error('Force reinitialization error:', _t2);\n return _context2.a(2, false);\n }\n }, _callee2, null, [[0, 3]]);\n }));\n return function forceReinit() {\n return _ref3.apply(this, arguments);\n };\n }();\n // 暴露给父组件\n __expose({\n manualInit: manualInit,\n simpleInit: simpleInit,\n forceReinit: forceReinit,\n isInitialized: isInitialized,\n getProcess: getProcess,\n saveXML: saveXML,\n saveImg: saveImg,\n save: save\n });\n // 生成唯一的canvas ID\n var canvasId = \"bpmn-canvas-\".concat(Date.now(), \"-\").concat(Math.random().toString(36).substr(2, 9));\n var canvas = (0,vue__WEBPACK_IMPORTED_MODULE_0__.ref)(null);\n var modeler = (0,vue__WEBPACK_IMPORTED_MODULE_0__.ref)(null);\n var taskList = (0,vue__WEBPACK_IMPORTED_MODULE_0__.ref)([]);\n var zoom = (0,vue__WEBPACK_IMPORTED_MODULE_0__.ref)(1);\n var isInitialized = (0,vue__WEBPACK_IMPORTED_MODULE_0__.ref)(false);\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.watch)(function () {\n return props.xml;\n }, function (val) {\n if (val) {\n createNewDiagram(val);\n }\n });\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.onMounted)(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee6() {\n var initializeModeler, initialized, tryWithRAF;\n return _regenerator().w(function (_context6) {\n while (1) switch (_context6.n) {\n case 0:\n console.log('Component mounted, starting initialization...');\n // 等待DOM完全渲染\n _context6.n = 1;\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.nextTick)();\n case 1:\n _context6.n = 2;\n return new Promise(function (resolve) {\n return setTimeout(resolve, 100);\n });\n case 2:\n initializeModeler = /*#__PURE__*/function () {\n var _ref5 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee3() {\n var _t3;\n return _regenerator().w(function (_context3) {\n while (1) switch (_context3.p = _context3.n) {\n case 0:\n _context3.p = 0;\n if (canvas.value) {\n _context3.n = 1;\n break;\n }\n console.error('Canvas ref not found');\n return _context3.a(2, false);\n case 1:\n // 强制设置容器尺寸\n canvas.value.style.width = '100%';\n canvas.value.style.height = '100%';\n canvas.value.style.minHeight = '400px';\n canvas.value.style.display = 'block';\n console.log('Canvas container prepared, initializing modeler...');\n // 生成实例\n modeler.value = new bpmn_js_lib_Modeler__WEBPACK_IMPORTED_MODULE_2__[\"default\"]({\n container: canvas.value,\n additionalModules: [{\n translate: ['value', _common_customTranslate__WEBPACK_IMPORTED_MODULE_1__[\"default\"]]\n }],\n moddleExtensions: {\n flowable: _flowable_flowable_json__WEBPACK_IMPORTED_MODULE_6__\n }\n });\n // 等待下一个tick确保DOM更新\n _context3.n = 2;\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.nextTick)();\n case 2:\n // 标记为已初始化\n isInitialized.value = true;\n // 新增流程定义\n if (props.xml) {\n _context3.n = 4;\n break;\n }\n _context3.n = 3;\n return newDiagram();\n case 3:\n _context3.n = 5;\n break;\n case 4:\n _context3.n = 5;\n return createNewDiagram(props.xml);\n case 5:\n console.log('BPMN Modeler initialized successfully');\n return _context3.a(2, true);\n case 6:\n _context3.p = 6;\n _t3 = _context3.v;\n console.error('BPMN Modeler initialization failed:', _t3);\n return _context3.a(2, false);\n }\n }, _callee3, null, [[0, 6]]);\n }));\n return function initializeModeler() {\n return _ref5.apply(this, arguments);\n };\n }(); // 尝试初始化\n _context6.n = 3;\n return initializeModeler();\n case 3:\n initialized = _context6.v;\n // 如果失败,使用更激进的重试策略\n if (!initialized) {\n console.log('Initial initialization failed, trying alternative approach...');\n // 使用requestAnimationFrame确保在下一帧尝试\n tryWithRAF = function tryWithRAF() {\n requestAnimationFrame(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee5() {\n return _regenerator().w(function (_context5) {\n while (1) switch (_context5.n) {\n case 0:\n _context5.n = 1;\n return initializeModeler();\n case 1:\n initialized = _context5.v;\n if (!initialized) {\n // 如果还是失败,再等一帧\n requestAnimationFrame(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee4() {\n return _regenerator().w(function (_context4) {\n while (1) switch (_context4.n) {\n case 0:\n _context4.n = 1;\n return initializeModeler();\n case 1:\n initialized = _context4.v;\n if (!initialized) {\n console.error('All initialization attempts failed');\n }\n case 2:\n return _context4.a(2);\n }\n }, _callee4);\n })));\n }\n case 2:\n return _context5.a(2);\n }\n }, _callee5);\n })));\n };\n tryWithRAF();\n }\n case 4:\n return _context6.a(2);\n }\n }, _callee6);\n })));\n var newDiagram = /*#__PURE__*/function () {\n var _ref8 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee7() {\n return _regenerator().w(function (_context7) {\n while (1) switch (_context7.n) {\n case 0:\n _context7.n = 1;\n return createNewDiagram((0,_flowable_init__WEBPACK_IMPORTED_MODULE_5__[\"default\"])());\n case 1:\n return _context7.a(2);\n }\n }, _callee7);\n }));\n return function newDiagram() {\n return _ref8.apply(this, arguments);\n };\n }();\n // 让图能自适应屏幕\n var fitViewport = function fitViewport() {\n try {\n if (!modeler.value) {\n console.warn('Modeler not available for viewport fitting');\n return;\n }\n zoom.value = modeler.value.get('canvas').zoom('fit-viewport');\n var viewport = document.querySelector('.flow-containers .viewport');\n if (!viewport) {\n console.warn('Viewport element not found');\n return;\n }\n var bbox = viewport.getBBox();\n if (!bbox) {\n console.warn('Viewport bbox not available');\n return;\n }\n var currentViewbox = modeler.value.get('canvas').viewbox();\n var elementMid = {\n x: bbox.x + bbox.width / 2 - 65,\n y: bbox.y + bbox.height / 2\n };\n modeler.value.get('canvas').viewbox({\n x: elementMid.x - currentViewbox.width / 2,\n y: elementMid.y - currentViewbox.height / 2,\n width: currentViewbox.width,\n height: currentViewbox.height\n });\n zoom.value = bbox.width / currentViewbox.width * 1.8;\n } catch (e) {\n console.warn('Failed to fit viewport:', e);\n }\n };\n // 放大缩小\n var zoomViewport = function zoomViewport() {\n var zoomIn = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n if (!modeler.value) return;\n zoom.value = modeler.value.get('canvas').zoom();\n zoom.value += zoomIn ? 0.1 : -0.1;\n modeler.value.get('canvas').zoom(zoom.value);\n };\n var createNewDiagram = /*#__PURE__*/function () {\n var _ref9 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee8(data) {\n var _t4;\n return _regenerator().w(function (_context8) {\n while (1) switch (_context8.p = _context8.n) {\n case 0:\n // 将字符串转换成图显示出来\n // data = data.replace(/<!\\[CDATA\\[(.+?)]]>/g, '&lt;![CDATA[$1]]&gt;')\n data = data.replace(/<!\\[CDATA\\[(.+?)]]>/g, function (match, str) {\n return str.replace(/</g, '&lt;');\n });\n _context8.p = 1;\n if (modeler.value) {\n _context8.n = 2;\n break;\n }\n console.error('Modeler not initialized');\n return _context8.a(2);\n case 2:\n console.log('Importing XML data...', data.substring(0, 200) + '...');\n _context8.n = 3;\n return modeler.value.importXML(data);\n case 3:\n console.log('XML imported successfully');\n // 等待DOM更新\n _context8.n = 4;\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.nextTick)();\n case 4:\n // 延迟执行调整方法,确保DOM完全渲染\n setTimeout(function () {\n try {\n adjustPalette();\n fitViewport();\n console.log('Diagram created successfully');\n } catch (adjustError) {\n console.warn('Failed to adjust palette or viewport:', adjustError);\n // 即使调整失败,也不影响基本功能\n }\n }, 100);\n // fillColor()\n _context8.n = 6;\n break;\n case 5:\n _context8.p = 5;\n _t4 = _context8.v;\n console.error('Failed to create diagram:', _t4.message, _t4.warnings);\n throw _t4;\n case 6:\n return _context8.a(2);\n }\n }, _callee8, null, [[1, 5]]);\n }));\n return function createNewDiagram(_x) {\n return _ref9.apply(this, arguments);\n };\n }();\n // 调整左侧工具栏排版\n var adjustPalette = function adjustPalette() {\n try {\n var _canvasElement$childr;\n // 获取 bpmn 设计器实例\n var canvasElement = canvas.value;\n if (!canvasElement) {\n console.warn('Canvas element not found for palette adjustment');\n return;\n }\n // 检查DOM结构是否存在\n if (!canvasElement.children || canvasElement.children.length === 0) {\n console.warn('Canvas children not found for palette adjustment');\n return;\n }\n var djsPalette = (_canvasElement$childr = canvasElement.children[0]) === null || _canvasElement$childr === void 0 || (_canvasElement$childr = _canvasElement$childr.children[1]) === null || _canvasElement$childr === void 0 ? void 0 : _canvasElement$childr.children[4];\n if (!djsPalette) {\n console.warn('BPMN palette element not found');\n return;\n }\n var djsPalStyle = {\n width: '130px',\n padding: '5px',\n background: 'white',\n left: '20px',\n borderRadius: '0'\n };\n for (var key in djsPalStyle) {\n djsPalette.style[key] = djsPalStyle[key];\n }\n var palette = djsPalette.children[0];\n if (!palette) {\n console.warn('Palette children not found');\n return;\n }\n var allGroups = palette.children;\n if (allGroups.length === 0) {\n console.warn('No palette groups found');\n return;\n }\n ;\n allGroups[0].style.display = 'none';\n // 修改控件样式\n for (var gKey = 0; gKey < allGroups.length; gKey++) {\n var group = allGroups[gKey];\n for (var cKey = 0; cKey < group.children.length; cKey++) {\n var control = group.children[cKey];\n var controlStyle = {\n display: 'flex',\n justifyContent: 'flex-start',\n alignItems: 'center',\n width: '100%',\n padding: '5px'\n };\n if (control.className && control.dataset && control.className.indexOf('entry') !== -1) {\n var controlProps = new _BpmData__WEBPACK_IMPORTED_MODULE_4__[\"default\"]().getControl(control.dataset.action);\n control.innerHTML = \"<div style='font-size: 14px;font-weight:500;margin-left:15px;'>\".concat(controlProps['title'], \"</div>\");\n for (var csKey in controlStyle) {\n control.style[csKey] = controlStyle[csKey];\n }\n }\n }\n }\n } catch (e) {\n console.warn('Failed to adjust palette:', e);\n }\n };\n var fillColor = function fillColor() {\n if (!modeler.value) return;\n var canvasElement = modeler.value.get('canvas')(modeler.value)._definitions.rootElements[0].flowElements.forEach(function (n) {\n if (n.$type === 'bpmn:UserTask') {\n var completeTask = taskList.value.find(function (m) {\n return m.key === n.id;\n }) || {\n completed: true\n };\n var todoTask = taskList.value.find(function (m) {\n return !m.completed;\n });\n var endTask = taskList.value[taskList.value.length - 1];\n if (completeTask) {\n var _n$outgoing;\n canvasElement.addMarker(n.id, completeTask.completed ? 'highlight' : 'highlight-todo');\n (_n$outgoing = n.outgoing) === null || _n$outgoing === void 0 || _n$outgoing.forEach(function (nn) {\n var targetTask = taskList.value.find(function (m) {\n return m.key === nn.targetRef.id;\n });\n if (targetTask) {\n canvasElement.addMarker(nn.id, targetTask.completed ? 'highlight' : 'highlight-todo');\n } else if (nn.targetRef.$type === 'bpmn:ExclusiveGateway') {\n // canvasElement.addMarker(nn.id, 'highlight');\n canvasElement.addMarker(nn.id, completeTask.completed ? 'highlight' : 'highlight-todo');\n canvasElement.addMarker(nn.targetRef.id, completeTask.completed ? 'highlight' : 'highlight-todo');\n } else if (nn.targetRef.$type === 'bpmn:EndEvent') {\n if (!todoTask && endTask.key === n.id) {\n canvasElement.addMarker(nn.id, 'highlight');\n canvasElement.addMarker(nn.targetRef.id, 'highlight');\n }\n if (!completeTask.completed) {\n canvasElement.addMarker(nn.id, 'highlight-todo');\n canvasElement.addMarker(nn.targetRef.id, 'highlight-todo');\n }\n }\n });\n }\n } else if (n.$type === 'bpmn:ExclusiveGateway') {\n n.outgoing.forEach(function (nn) {\n var targetTask = taskList.value.find(function (m) {\n return m.key === nn.targetRef.id;\n });\n if (targetTask) {\n canvasElement.addMarker(nn.id, targetTask.completed ? 'highlight' : 'highlight-todo');\n }\n });\n }\n if (n.$type === 'bpmn:StartEvent') {\n n.outgoing.forEach(function (nn) {\n var completeTask = taskList.value.find(function (m) {\n return m.key === nn.targetRef.id;\n });\n if (completeTask) {\n canvasElement.addMarker(nn.id, 'highlight');\n canvasElement.addMarker(n.id, 'highlight');\n return;\n }\n });\n }\n });\n };\n // 对外 api\n var getProcess = function getProcess() {\n var element = getProcessElement();\n return {\n id: element.id,\n name: element.name,\n category: element.$attrs['flowable:processCategory']\n };\n };\n var getProcessElement = function getProcessElement() {\n if (!modeler.value) return null;\n var rootElements = modeler.value.getDefinitions().rootElements;\n for (var i = 0; i < rootElements.length; i++) {\n if (rootElements[i].$type === 'bpmn:Process') return rootElements[i];\n }\n };\n var saveXML = /*#__PURE__*/function () {\n var _ref0 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee9() {\n var download,\n _yield$modeler$value$,\n xml,\n processElement,\n _args9 = arguments,\n _t5;\n return _regenerator().w(function (_context9) {\n while (1) switch (_context9.p = _context9.n) {\n case 0:\n download = _args9.length > 0 && _args9[0] !== undefined ? _args9[0] : false;\n _context9.p = 1;\n if (modeler.value) {\n _context9.n = 2;\n break;\n }\n return _context9.a(2);\n case 2:\n _context9.n = 3;\n return modeler.value.saveXML({\n format: true\n });\n case 3:\n _yield$modeler$value$ = _context9.v;\n xml = _yield$modeler$value$.xml;\n if (download) {\n processElement = getProcessElement();\n if (processElement) {\n downloadFile(\"\".concat(processElement.name, \".bpmn20.xml\"), xml, 'application/xml');\n }\n }\n return _context9.a(2, xml);\n case 4:\n _context9.p = 4;\n _t5 = _context9.v;\n console.log(_t5);\n case 5:\n return _context9.a(2);\n }\n }, _callee9, null, [[1, 4]]);\n }));\n return function saveXML() {\n return _ref0.apply(this, arguments);\n };\n }();\n var saveImg = /*#__PURE__*/function () {\n var _ref1 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee0() {\n var type,\n download,\n _yield$modeler$value$2,\n svg,\n processElement,\n _args0 = arguments,\n _t6;\n return _regenerator().w(function (_context0) {\n while (1) switch (_context0.p = _context0.n) {\n case 0:\n type = _args0.length > 0 && _args0[0] !== undefined ? _args0[0] : 'svg';\n download = _args0.length > 1 && _args0[1] !== undefined ? _args0[1] : false;\n _context0.p = 1;\n if (modeler.value) {\n _context0.n = 2;\n break;\n }\n return _context0.a(2);\n case 2:\n _context0.n = 3;\n return modeler.value.saveSVG({\n format: true\n });\n case 3:\n _yield$modeler$value$2 = _context0.v;\n svg = _yield$modeler$value$2.svg;\n if (download) {\n processElement = getProcessElement();\n if (processElement) {\n downloadFile(processElement.name, svg, 'image/svg+xml');\n }\n }\n return _context0.a(2, svg);\n case 4:\n _context0.p = 4;\n _t6 = _context0.v;\n console.log(_t6);\n case 5:\n return _context0.a(2);\n }\n }, _callee0, null, [[1, 4]]);\n }));\n return function saveImg() {\n return _ref1.apply(this, arguments);\n };\n }();\n var save = /*#__PURE__*/function () {\n var _ref10 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee1() {\n var process, xml, svg, result;\n return _regenerator().w(function (_context1) {\n while (1) switch (_context1.n) {\n case 0:\n process = getProcess();\n _context1.n = 1;\n return saveXML();\n case 1:\n xml = _context1.v;\n _context1.n = 2;\n return saveImg();\n case 2:\n svg = _context1.v;\n result = {\n process: process,\n xml: xml,\n svg: svg\n };\n emit('save', result);\n window.parent.postMessage(result, '*');\n case 3:\n return _context1.a(2);\n }\n }, _callee1);\n }));\n return function save() {\n return _ref10.apply(this, arguments);\n };\n }();\n var openBpmn = function openBpmn(file) {\n var reader = new FileReader();\n reader.readAsText(file, 'utf-8');\n reader.onload = function () {\n createNewDiagram(reader.result);\n };\n return false;\n };\n var downloadFile = function downloadFile(filename, data, type) {\n var a = document.createElement('a');\n var url = window.URL.createObjectURL(new Blob([data], {\n type: type\n }));\n a.href = url;\n a.download = filename;\n a.click();\n window.URL.revokeObjectURL(url);\n };\n var __returned__ = {\n props: props,\n emit: emit,\n manualInit: manualInit,\n simpleInit: simpleInit,\n forceReinit: forceReinit,\n canvasId: canvasId,\n canvas: canvas,\n modeler: modeler,\n taskList: taskList,\n zoom: zoom,\n isInitialized: isInitialized,\n newDiagram: newDiagram,\n fitViewport: fitViewport,\n zoomViewport: zoomViewport,\n createNewDiagram: createNewDiagram,\n adjustPalette: adjustPalette,\n fillColor: fillColor,\n getProcess: getProcess,\n getProcessElement: getProcessElement,\n saveXML: saveXML,\n saveImg: saveImg,\n save: save,\n openBpmn: openBpmn,\n downloadFile: downloadFile,\n PropertyPanel: _PropertyPanel_vue__WEBPACK_IMPORTED_MODULE_3__[\"default\"],\n get FolderOpenOutlined() {\n return _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_8__[\"default\"];\n },\n get PlusCircleOutlined() {\n return _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_11__[\"default\"];\n },\n get FullscreenOutlined() {\n return _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_9__[\"default\"];\n },\n get ZoomInOutlined() {\n return _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_14__[\"default\"];\n },\n get ZoomOutOutlined() {\n return _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_15__[\"default\"];\n },\n get UndoOutlined() {\n return _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_13__[\"default\"];\n },\n get RedoOutlined() {\n return _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_12__[\"default\"];\n },\n get DownloadOutlined() {\n return _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_7__[\"default\"];\n },\n get PictureOutlined() {\n return _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_10__[\"default\"];\n }\n };\n Object.defineProperty(__returned__, '__isScriptSetup', {\n enumerable: false,\n value: true\n });\n return __returned__;\n }\n})));\n\n//# sourceURL=webpack://WorkflowBpmnModelerAndtvVue/./package/index.vue?./node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.28.3_webpack@5.101.3/node_modules/babel-loader/lib/index.js!./node_modules/.pnpm/ts-loader@9.5.4_typescript@5.9.2_webpack@5.101.3/node_modules/ts-loader/index.js??clonedRuleSet-86.use%5B1%5D!./node_modules/.pnpm/vue-loader@17.4.2_@vue+compiler-sfc@3.5.21_vue@3.5.21_typescript@5.9.2__webpack@5.101.3/node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D\n}");
569
569
 
570
570
  /***/ }),
571
571
 
@@ -697,7 +697,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpa
697
697
  /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
698
698
 
699
699
  "use strict";
700
- eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: function() { return /* binding */ render; }\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/.pnpm/vue@3.5.21_typescript@5.9.2/node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n\nvar _hoisted_1 = {\n class: \"toolbar-container\"\n};\nvar _hoisted_2 = {\n class: \"toolbar-left\"\n};\nvar _hoisted_3 = {\n class: \"toolbar-group\"\n};\nvar _hoisted_4 = {\n class: \"toolbar-group\"\n};\nvar _hoisted_5 = {\n class: \"toolbar-group\"\n};\nvar _hoisted_6 = {\n class: \"toolbar-right\"\n};\nvar _hoisted_7 = {\n class: \"toolbar-group\"\n};\nvar _hoisted_8 = {\n ref: \"canvas\",\n class: \"canvas\"\n};\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_a_button = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-button\");\n var _component_a_tooltip = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-tooltip\");\n var _component_a_upload = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-upload\");\n var _component_a_layout_header = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-layout-header\");\n var _component_a_layout_content = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-layout-content\");\n var _component_a_layout_sider = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-layout-sider\");\n var _component_a_layout = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-layout\");\n var _directive_loading = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveDirective)(\"loading\");\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)(((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"div\", {\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)([\"flow-containers\", {\n 'view-mode': $props.isView\n }])\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_layout, {\n class: \"main-layout\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\" 顶部工具栏 \"), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_layout_header, {\n class: \"toolbar-header\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_1, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\" 左侧工具组 \"), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_2, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_3, [_cache[6] || (_cache[6] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", {\n class: \"group-label\"\n }, \"文件操作\", -1 /* CACHED */)), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_upload, {\n \"before-upload\": $setup.openBpmn,\n class: \"toolbar-item\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_tooltip, {\n title: \"加载XML文件\",\n placement: \"bottom\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_button, {\n class: \"toolbar-btn\",\n size: \"small\"\n }, {\n icon: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"FolderOpenOutlined\"])];\n }),\n _: 1 /* STABLE */\n })];\n }),\n _: 1 /* STABLE */\n })];\n }),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_tooltip, {\n title: \"新建流程图\",\n placement: \"bottom\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_button, {\n class: \"toolbar-btn\",\n size: \"small\",\n onClick: $setup.newDiagram\n }, {\n icon: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"PlusCircleOutlined\"])];\n }),\n _: 1 /* STABLE */\n })];\n }),\n _: 1 /* STABLE */\n })]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_4, [_cache[7] || (_cache[7] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", {\n class: \"group-label\"\n }, \"视图控制\", -1 /* CACHED */)), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_tooltip, {\n title: \"自适应屏幕\",\n placement: \"bottom\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_button, {\n class: \"toolbar-btn\",\n size: \"small\",\n onClick: $setup.fitViewport\n }, {\n icon: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"FullscreenOutlined\"])];\n }),\n _: 1 /* STABLE */\n })];\n }),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_tooltip, {\n title: \"放大视图\",\n placement: \"bottom\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_button, {\n class: \"toolbar-btn\",\n size: \"small\",\n onClick: _cache[0] || (_cache[0] = function ($event) {\n return $setup.zoomViewport(true);\n })\n }, {\n icon: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"ZoomInOutlined\"])];\n }),\n _: 1 /* STABLE */\n })];\n }),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_tooltip, {\n title: \"缩小视图\",\n placement: \"bottom\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_button, {\n class: \"toolbar-btn\",\n size: \"small\",\n onClick: _cache[1] || (_cache[1] = function ($event) {\n return $setup.zoomViewport(false);\n })\n }, {\n icon: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"ZoomOutOutlined\"])];\n }),\n _: 1 /* STABLE */\n })];\n }),\n _: 1 /* STABLE */\n })]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_5, [_cache[8] || (_cache[8] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", {\n class: \"group-label\"\n }, \"历史操作\", -1 /* CACHED */)), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_tooltip, {\n title: \"撤销操作\",\n placement: \"bottom\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_button, {\n class: \"toolbar-btn\",\n size: \"small\",\n onClick: _cache[2] || (_cache[2] = function () {\n var _$setup$modeler;\n return (_$setup$modeler = $setup.modeler) === null || _$setup$modeler === void 0 ? void 0 : _$setup$modeler.get('commandStack').undo();\n })\n }, {\n icon: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"UndoOutlined\"])];\n }),\n _: 1 /* STABLE */\n })];\n }),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_tooltip, {\n title: \"重做操作\",\n placement: \"bottom\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_button, {\n class: \"toolbar-btn\",\n size: \"small\",\n onClick: _cache[3] || (_cache[3] = function () {\n var _$setup$modeler2;\n return (_$setup$modeler2 = $setup.modeler) === null || _$setup$modeler2 === void 0 ? void 0 : _$setup$modeler2.get('commandStack').redo();\n })\n }, {\n icon: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"RedoOutlined\"])];\n }),\n _: 1 /* STABLE */\n })];\n }),\n _: 1 /* STABLE */\n })])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\" 右侧操作组 \"), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_6, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_7, [_cache[11] || (_cache[11] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", {\n class: \"group-label\"\n }, \"导出\", -1 /* CACHED */)), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_button, {\n class: \"toolbar-btn export-btn\",\n size: \"small\",\n onClick: _cache[4] || (_cache[4] = function ($event) {\n return $setup.saveXML(true);\n })\n }, {\n icon: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"DownloadOutlined\"])];\n }),\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [_cache[9] || (_cache[9] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\" 下载XML \", -1 /* CACHED */))];\n }),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_button, {\n class: \"toolbar-btn export-btn\",\n size: \"small\",\n onClick: _cache[5] || (_cache[5] = function ($event) {\n return $setup.saveImg('svg', true);\n })\n }, {\n icon: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"PictureOutlined\"])];\n }),\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [_cache[10] || (_cache[10] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\" 下载SVG \", -1 /* CACHED */))];\n }),\n _: 1 /* STABLE */\n })]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_button, {\n class: \"save-btn\",\n type: \"primary\",\n onClick: $setup.save\n }, {\n icon: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"DownloadOutlined\"])];\n }),\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [_cache[12] || (_cache[12] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\" 保存模型 \", -1 /* CACHED */))];\n }),\n _: 1 /* STABLE */\n })])])];\n }),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\" 主内容区域 \"), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_layout, {\n class: \"content-layout\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_layout_content, {\n class: \"canvas-container\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_8, null, 512 /* NEED_PATCH */)];\n }),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_layout_sider, {\n class: \"property-panel\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [$setup.modeler ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)($setup[\"PropertyPanel\"], {\n key: 0,\n modeler: $setup.modeler,\n users: $props.users,\n groups: $props.groups,\n categorys: $props.categorys\n }, null, 8 /* PROPS */, [\"modeler\", \"users\", \"groups\", \"categorys\"])) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true)];\n }),\n _: 1 /* STABLE */\n })];\n }),\n _: 1 /* STABLE */\n })];\n }),\n _: 1 /* STABLE */\n })], 2 /* CLASS */)), [[_directive_loading, $props.isView]]);\n}\n\n//# sourceURL=webpack://WorkflowBpmnModelerAndtvVue/./package/index.vue?./node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.28.3_webpack@5.101.3/node_modules/babel-loader/lib/index.js!./node_modules/.pnpm/ts-loader@9.5.4_typescript@5.9.2_webpack@5.101.3/node_modules/ts-loader/index.js??clonedRuleSet-86.use%5B1%5D!./node_modules/.pnpm/vue-loader@17.4.2_@vue+compiler-sfc@3.5.21_vue@3.5.21_typescript@5.9.2__webpack@5.101.3/node_modules/vue-loader/dist/templateLoader.js??ruleSet%5B1%5D.rules%5B4%5D!./node_modules/.pnpm/vue-loader@17.4.2_@vue+compiler-sfc@3.5.21_vue@3.5.21_typescript@5.9.2__webpack@5.101.3/node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D\n}");
700
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: function() { return /* binding */ render; }\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/.pnpm/vue@3.5.21_typescript@5.9.2/node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n\nvar _hoisted_1 = {\n class: \"toolbar-container\"\n};\nvar _hoisted_2 = {\n class: \"toolbar-left\"\n};\nvar _hoisted_3 = {\n class: \"toolbar-group\"\n};\nvar _hoisted_4 = {\n class: \"toolbar-group\"\n};\nvar _hoisted_5 = {\n class: \"toolbar-group\"\n};\nvar _hoisted_6 = {\n class: \"toolbar-right\"\n};\nvar _hoisted_7 = {\n class: \"toolbar-group\"\n};\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_a_button = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-button\");\n var _component_a_tooltip = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-tooltip\");\n var _component_a_upload = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-upload\");\n var _component_a_layout_header = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-layout-header\");\n var _component_a_layout_content = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-layout-content\");\n var _component_a_layout_sider = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-layout-sider\");\n var _component_a_layout = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-layout\");\n var _directive_loading = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveDirective)(\"loading\");\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)(((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"div\", {\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)([\"flow-containers\", {\n 'view-mode': $props.isView\n }])\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_layout, {\n class: \"main-layout\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\" 顶部工具栏 \"), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_layout_header, {\n class: \"toolbar-header\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_1, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\" 左侧工具组 \"), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_2, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_3, [_cache[6] || (_cache[6] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", {\n class: \"group-label\"\n }, \"文件操作\", -1 /* CACHED */)), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_upload, {\n \"before-upload\": $setup.openBpmn,\n class: \"toolbar-item\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_tooltip, {\n title: \"加载XML文件\",\n placement: \"bottom\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_button, {\n class: \"toolbar-btn\",\n size: \"small\"\n }, {\n icon: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"FolderOpenOutlined\"])];\n }),\n _: 1 /* STABLE */\n })];\n }),\n _: 1 /* STABLE */\n })];\n }),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_tooltip, {\n title: \"新建流程图\",\n placement: \"bottom\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_button, {\n class: \"toolbar-btn\",\n size: \"small\",\n onClick: $setup.newDiagram\n }, {\n icon: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"PlusCircleOutlined\"])];\n }),\n _: 1 /* STABLE */\n })];\n }),\n _: 1 /* STABLE */\n })]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_4, [_cache[7] || (_cache[7] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", {\n class: \"group-label\"\n }, \"视图控制\", -1 /* CACHED */)), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_tooltip, {\n title: \"自适应屏幕\",\n placement: \"bottom\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_button, {\n class: \"toolbar-btn\",\n size: \"small\",\n onClick: $setup.fitViewport\n }, {\n icon: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"FullscreenOutlined\"])];\n }),\n _: 1 /* STABLE */\n })];\n }),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_tooltip, {\n title: \"放大视图\",\n placement: \"bottom\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_button, {\n class: \"toolbar-btn\",\n size: \"small\",\n onClick: _cache[0] || (_cache[0] = function ($event) {\n return $setup.zoomViewport(true);\n })\n }, {\n icon: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"ZoomInOutlined\"])];\n }),\n _: 1 /* STABLE */\n })];\n }),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_tooltip, {\n title: \"缩小视图\",\n placement: \"bottom\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_button, {\n class: \"toolbar-btn\",\n size: \"small\",\n onClick: _cache[1] || (_cache[1] = function ($event) {\n return $setup.zoomViewport(false);\n })\n }, {\n icon: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"ZoomOutOutlined\"])];\n }),\n _: 1 /* STABLE */\n })];\n }),\n _: 1 /* STABLE */\n })]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_5, [_cache[8] || (_cache[8] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", {\n class: \"group-label\"\n }, \"历史操作\", -1 /* CACHED */)), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_tooltip, {\n title: \"撤销操作\",\n placement: \"bottom\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_button, {\n class: \"toolbar-btn\",\n size: \"small\",\n onClick: _cache[2] || (_cache[2] = function () {\n var _$setup$modeler;\n return (_$setup$modeler = $setup.modeler) === null || _$setup$modeler === void 0 ? void 0 : _$setup$modeler.get('commandStack').undo();\n })\n }, {\n icon: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"UndoOutlined\"])];\n }),\n _: 1 /* STABLE */\n })];\n }),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_tooltip, {\n title: \"重做操作\",\n placement: \"bottom\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_button, {\n class: \"toolbar-btn\",\n size: \"small\",\n onClick: _cache[3] || (_cache[3] = function () {\n var _$setup$modeler2;\n return (_$setup$modeler2 = $setup.modeler) === null || _$setup$modeler2 === void 0 ? void 0 : _$setup$modeler2.get('commandStack').redo();\n })\n }, {\n icon: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"RedoOutlined\"])];\n }),\n _: 1 /* STABLE */\n })];\n }),\n _: 1 /* STABLE */\n })])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\" 右侧操作组 \"), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_6, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_7, [_cache[11] || (_cache[11] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", {\n class: \"group-label\"\n }, \"导出\", -1 /* CACHED */)), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_button, {\n class: \"toolbar-btn export-btn\",\n size: \"small\",\n onClick: _cache[4] || (_cache[4] = function ($event) {\n return $setup.saveXML(true);\n })\n }, {\n icon: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"DownloadOutlined\"])];\n }),\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [_cache[9] || (_cache[9] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\" 下载XML \", -1 /* CACHED */))];\n }),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_button, {\n class: \"toolbar-btn export-btn\",\n size: \"small\",\n onClick: _cache[5] || (_cache[5] = function ($event) {\n return $setup.saveImg('svg', true);\n })\n }, {\n icon: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"PictureOutlined\"])];\n }),\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [_cache[10] || (_cache[10] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\" 下载SVG \", -1 /* CACHED */))];\n }),\n _: 1 /* STABLE */\n })]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_button, {\n class: \"save-btn\",\n type: \"primary\",\n onClick: $setup.save\n }, {\n icon: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"DownloadOutlined\"])];\n }),\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [_cache[12] || (_cache[12] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\" 保存模型 \", -1 /* CACHED */))];\n }),\n _: 1 /* STABLE */\n })])])];\n }),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\" 主内容区域 \"), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_layout, {\n class: \"content-layout\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_layout_content, {\n class: \"canvas-container\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", {\n ref: \"canvas\",\n class: \"canvas\",\n id: $setup.canvasId\n }, null, 512 /* NEED_PATCH */)];\n }),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_layout_sider, {\n class: \"property-panel\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [$setup.modeler ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)($setup[\"PropertyPanel\"], {\n key: 0,\n modeler: $setup.modeler,\n users: $props.users,\n groups: $props.groups,\n categorys: $props.categorys\n }, null, 8 /* PROPS */, [\"modeler\", \"users\", \"groups\", \"categorys\"])) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true)];\n }),\n _: 1 /* STABLE */\n })];\n }),\n _: 1 /* STABLE */\n })];\n }),\n _: 1 /* STABLE */\n })], 2 /* CLASS */)), [[_directive_loading, $props.isView]]);\n}\n\n//# sourceURL=webpack://WorkflowBpmnModelerAndtvVue/./package/index.vue?./node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.28.3_webpack@5.101.3/node_modules/babel-loader/lib/index.js!./node_modules/.pnpm/ts-loader@9.5.4_typescript@5.9.2_webpack@5.101.3/node_modules/ts-loader/index.js??clonedRuleSet-86.use%5B1%5D!./node_modules/.pnpm/vue-loader@17.4.2_@vue+compiler-sfc@3.5.21_vue@3.5.21_typescript@5.9.2__webpack@5.101.3/node_modules/vue-loader/dist/templateLoader.js??ruleSet%5B1%5D.rules%5B4%5D!./node_modules/.pnpm/vue-loader@17.4.2_@vue+compiler-sfc@3.5.21_vue@3.5.21_typescript@5.9.2__webpack@5.101.3/node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D\n}");
701
701
 
702
702
  /***/ }),
703
703
 
@@ -565,7 +565,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var vue
565
565
  /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
566
566
 
567
567
  "use strict";
568
- eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/.pnpm/vue@3.5.21_typescript@5.9.2/node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n/* harmony import */ var _common_customTranslate__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./common/customTranslate */ \"./package/common/customTranslate.js\");\n/* harmony import */ var bpmn_js_lib_Modeler__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! bpmn-js/lib/Modeler */ \"./node_modules/.pnpm/bpmn-js@8.10.0/node_modules/bpmn-js/lib/Modeler.js\");\n/* harmony import */ var _PropertyPanel_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./PropertyPanel.vue */ \"./package/PropertyPanel.vue\");\n/* harmony import */ var _BpmData__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./BpmData */ \"./package/BpmData.js\");\n/* harmony import */ var _flowable_init__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./flowable/init */ \"./package/flowable/init.js\");\n/* harmony import */ var _flowable_flowable_json__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./flowable/flowable.json */ \"./package/flowable/flowable.json\");\n/* harmony import */ var _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @ant-design/icons-vue */ \"./node_modules/.pnpm/@ant-design+icons-vue@7.0.1_vue@3.5.21_typescript@5.9.2_/node_modules/@ant-design/icons-vue/es/icons/DownloadOutlined.js\");\n/* harmony import */ var _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @ant-design/icons-vue */ \"./node_modules/.pnpm/@ant-design+icons-vue@7.0.1_vue@3.5.21_typescript@5.9.2_/node_modules/@ant-design/icons-vue/es/icons/FolderOpenOutlined.js\");\n/* harmony import */ var _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @ant-design/icons-vue */ \"./node_modules/.pnpm/@ant-design+icons-vue@7.0.1_vue@3.5.21_typescript@5.9.2_/node_modules/@ant-design/icons-vue/es/icons/FullscreenOutlined.js\");\n/* harmony import */ var _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @ant-design/icons-vue */ \"./node_modules/.pnpm/@ant-design+icons-vue@7.0.1_vue@3.5.21_typescript@5.9.2_/node_modules/@ant-design/icons-vue/es/icons/PictureOutlined.js\");\n/* harmony import */ var _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @ant-design/icons-vue */ \"./node_modules/.pnpm/@ant-design+icons-vue@7.0.1_vue@3.5.21_typescript@5.9.2_/node_modules/@ant-design/icons-vue/es/icons/PlusCircleOutlined.js\");\n/* harmony import */ var _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @ant-design/icons-vue */ \"./node_modules/.pnpm/@ant-design+icons-vue@7.0.1_vue@3.5.21_typescript@5.9.2_/node_modules/@ant-design/icons-vue/es/icons/RedoOutlined.js\");\n/* harmony import */ var _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @ant-design/icons-vue */ \"./node_modules/.pnpm/@ant-design+icons-vue@7.0.1_vue@3.5.21_typescript@5.9.2_/node_modules/@ant-design/icons-vue/es/icons/UndoOutlined.js\");\n/* harmony import */ var _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @ant-design/icons-vue */ \"./node_modules/.pnpm/@ant-design+icons-vue@7.0.1_vue@3.5.21_typescript@5.9.2_/node_modules/@ant-design/icons-vue/es/icons/ZoomInOutlined.js\");\n/* harmony import */ var _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @ant-design/icons-vue */ \"./node_modules/.pnpm/@ant-design+icons-vue@7.0.1_vue@3.5.21_typescript@5.9.2_/node_modules/@ant-design/icons-vue/es/icons/ZoomOutOutlined.js\");\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = \"function\" == typeof Symbol ? Symbol : {}, n = r.iterator || \"@@iterator\", o = r.toStringTag || \"@@toStringTag\"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return _regeneratorDefine2(u, \"_invoke\", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError(\"Generator is already running\"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = \"next\"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError(\"iterator result is not an object\"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i.return) && t.call(i), c < 2 && (u = TypeError(\"The iterator does not provide a '\" + o + \"' method\"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine2(e, o, \"GeneratorFunction\")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine2(u, \"constructor\", GeneratorFunctionPrototype), _regeneratorDefine2(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction), GeneratorFunction.displayName = \"GeneratorFunction\", _regeneratorDefine2(GeneratorFunctionPrototype, o, \"GeneratorFunction\"), _regeneratorDefine2(u), _regeneratorDefine2(u, o, \"Generator\"), _regeneratorDefine2(u, n, function () { return this; }), _regeneratorDefine2(u, \"toString\", function () { return \"[object Generator]\"; }), (_regenerator = function _regenerator() { return { w: i, m: f }; })(); }\nfunction _regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, \"\", {}); } catch (e) { i = 0; } _regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { _regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o(\"next\", 0), o(\"throw\", 1), o(\"return\", 2)); }, _regeneratorDefine2(e, r, n, t); }\nfunction asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }\nfunction _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n); } _next(void 0); }); }; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n\n\n\n\n\n\n\n// 引入flowable的节点文件\n\n// 引入图标\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (/*@__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.defineComponent)(_objectSpread(_objectSpread({}, {\n name: 'WorkflowBpmnModeler'\n}), {}, {\n __name: 'index',\n props: {\n xml: {\n type: String,\n required: false,\n default: ''\n },\n users: {\n type: Array,\n required: false,\n default: function _default() {\n return [];\n }\n },\n groups: {\n type: Array,\n required: false,\n default: function _default() {\n return [];\n }\n },\n categorys: {\n type: Array,\n required: false,\n default: function _default() {\n return [];\n }\n },\n isView: {\n type: Boolean,\n required: false,\n default: false\n }\n },\n emits: [\"save\"],\n setup: function setup(__props, _ref) {\n var __expose = _ref.expose,\n __emit = _ref.emit;\n // 汉化\n var props = __props;\n var emit = __emit;\n // 暴露手动初始化方法\n var manualInit = function manualInit() {\n if (!modeler.value && canvas.value) {\n console.log('Manual initialization triggered');\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.onMounted)();\n }\n };\n // 暴露给父组件\n __expose({\n manualInit: manualInit,\n getProcess: getProcess,\n saveXML: saveXML,\n saveImg: saveImg,\n save: save\n });\n var canvas = (0,vue__WEBPACK_IMPORTED_MODULE_0__.ref)(null);\n var modeler = (0,vue__WEBPACK_IMPORTED_MODULE_0__.ref)(null);\n var taskList = (0,vue__WEBPACK_IMPORTED_MODULE_0__.ref)([]);\n var zoom = (0,vue__WEBPACK_IMPORTED_MODULE_0__.ref)(1);\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.watch)(function () {\n return props.xml;\n }, function (val) {\n if (val) {\n createNewDiagram(val);\n }\n });\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.onMounted)(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee4() {\n var initializeModeler, initialized, _canvas$value, observer, retryCount, maxRetries, retryTimer;\n return _regenerator().w(function (_context4) {\n while (1) switch (_context4.n) {\n case 0:\n _context4.n = 1;\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.nextTick)();\n case 1:\n initializeModeler = /*#__PURE__*/function () {\n var _ref3 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee() {\n var _t;\n return _regenerator().w(function (_context) {\n while (1) switch (_context.p = _context.n) {\n case 0:\n _context.p = 0;\n if (!(!canvas.value || canvas.value.offsetWidth === 0 || canvas.value.offsetHeight === 0)) {\n _context.n = 1;\n break;\n }\n console.log('Canvas container not ready, waiting...');\n return _context.a(2, false);\n case 1:\n console.log('Canvas container found, initializing modeler...');\n // 生成实例\n modeler.value = new bpmn_js_lib_Modeler__WEBPACK_IMPORTED_MODULE_2__[\"default\"]({\n container: canvas.value,\n additionalModules: [{\n translate: ['value', _common_customTranslate__WEBPACK_IMPORTED_MODULE_1__[\"default\"]]\n }],\n moddleExtensions: {\n flowable: _flowable_flowable_json__WEBPACK_IMPORTED_MODULE_6__\n }\n });\n // 等待下一个tick确保DOM更新\n _context.n = 2;\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.nextTick)();\n case 2:\n // 新增流程定义\n if (!props.xml) {\n newDiagram();\n } else {\n createNewDiagram(props.xml);\n }\n console.log('BPMN Modeler initialized successfully');\n return _context.a(2, true);\n case 3:\n _context.p = 3;\n _t = _context.v;\n console.error('BPMN Modeler initialization failed:', _t);\n return _context.a(2, false);\n }\n }, _callee, null, [[0, 3]]);\n }));\n return function initializeModeler() {\n return _ref3.apply(this, arguments);\n };\n }(); // 立即尝试初始化\n _context4.n = 2;\n return initializeModeler();\n case 2:\n initialized = _context4.v;\n // 如果初始化失败,使用多种策略重试\n if (!initialized) {\n // 策略1: 使用MutationObserver监听DOM变化\n observer = new MutationObserver(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2() {\n return _regenerator().w(function (_context2) {\n while (1) switch (_context2.n) {\n case 0:\n if (!(canvas.value && canvas.value.offsetWidth > 0 && canvas.value.offsetHeight > 0)) {\n _context2.n = 1;\n break;\n }\n observer.disconnect();\n _context2.n = 1;\n return initializeModeler();\n case 1:\n return _context2.a(2);\n }\n }, _callee2);\n }))); // 监听父容器变化\n if ((_canvas$value = canvas.value) !== null && _canvas$value !== void 0 && _canvas$value.parentElement) {\n observer.observe(canvas.value.parentElement, {\n childList: true,\n subtree: true,\n attributes: true,\n attributeFilter: ['style', 'class']\n });\n }\n // 策略2: 定时重试(最多10秒)\n retryCount = 0;\n maxRetries = 50; // 10秒,每200ms重试一次\n retryTimer = setInterval(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee3() {\n return _regenerator().w(function (_context3) {\n while (1) switch (_context3.n) {\n case 0:\n retryCount++;\n _context3.n = 1;\n return initializeModeler();\n case 1:\n initialized = _context3.v;\n if (initialized || retryCount >= maxRetries) {\n clearInterval(retryTimer);\n observer.disconnect();\n if (!initialized) {\n console.error('Failed to initialize BPMN Modeler after maximum retries');\n }\n }\n case 2:\n return _context3.a(2);\n }\n }, _callee3);\n })), 200);\n }\n case 3:\n return _context4.a(2);\n }\n }, _callee4);\n })));\n var newDiagram = function newDiagram() {\n createNewDiagram((0,_flowable_init__WEBPACK_IMPORTED_MODULE_5__[\"default\"])());\n };\n // 让图能自适应屏幕\n var fitViewport = function fitViewport() {\n if (!modeler.value) return;\n zoom.value = modeler.value.get('canvas').zoom('fit-viewport');\n var viewport = document.querySelector('.flow-containers .viewport');\n var bbox = viewport === null || viewport === void 0 ? void 0 : viewport.getBBox();\n if (!bbox) return;\n var currentViewbox = modeler.value.get('canvas').viewbox();\n var elementMid = {\n x: bbox.x + bbox.width / 2 - 65,\n y: bbox.y + bbox.height / 2\n };\n modeler.value.get('canvas').viewbox({\n x: elementMid.x - currentViewbox.width / 2,\n y: elementMid.y - currentViewbox.height / 2,\n width: currentViewbox.width,\n height: currentViewbox.height\n });\n zoom.value = bbox.width / currentViewbox.width * 1.8;\n };\n // 放大缩小\n var zoomViewport = function zoomViewport() {\n var zoomIn = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n if (!modeler.value) return;\n zoom.value = modeler.value.get('canvas').zoom();\n zoom.value += zoomIn ? 0.1 : -0.1;\n modeler.value.get('canvas').zoom(zoom.value);\n };\n var createNewDiagram = /*#__PURE__*/function () {\n var _ref6 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee5(data) {\n var _t2;\n return _regenerator().w(function (_context5) {\n while (1) switch (_context5.p = _context5.n) {\n case 0:\n // 将字符串转换成图显示出来\n // data = data.replace(/<!\\[CDATA\\[(.+?)]]>/g, '&lt;![CDATA[$1]]&gt;')\n data = data.replace(/<!\\[CDATA\\[(.+?)]]>/g, function (match, str) {\n return str.replace(/</g, '&lt;');\n });\n _context5.p = 1;\n if (modeler.value) {\n _context5.n = 2;\n break;\n }\n console.error('Modeler not initialized');\n return _context5.a(2);\n case 2:\n console.log('Importing XML data...', data.substring(0, 200) + '...');\n _context5.n = 3;\n return modeler.value.importXML(data);\n case 3:\n console.log('XML imported successfully');\n // 等待DOM更新\n _context5.n = 4;\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.nextTick)();\n case 4:\n adjustPalette();\n fitViewport();\n console.log('Diagram created successfully');\n // fillColor()\n _context5.n = 6;\n break;\n case 5:\n _context5.p = 5;\n _t2 = _context5.v;\n console.error('Failed to create diagram:', _t2.message, _t2.warnings);\n case 6:\n return _context5.a(2);\n }\n }, _callee5, null, [[1, 5]]);\n }));\n return function createNewDiagram(_x) {\n return _ref6.apply(this, arguments);\n };\n }();\n // 调整左侧工具栏排版\n var adjustPalette = function adjustPalette() {\n try {\n // 获取 bpmn 设计器实例\n var canvasElement = canvas.value;\n if (!canvasElement) return;\n var djsPalette = canvasElement.children[0].children[1].children[4];\n var djsPalStyle = {\n width: '130px',\n padding: '5px',\n background: 'white',\n left: '20px',\n borderRadius: '0'\n };\n for (var key in djsPalStyle) {\n djsPalette.style[key] = djsPalStyle[key];\n }\n var palette = djsPalette.children[0];\n var allGroups = palette.children;\n allGroups[0].style.display = 'none';\n // 修改控件样式\n for (var gKey = 0; gKey < allGroups.length; gKey++) {\n var group = allGroups[gKey];\n for (var cKey = 0; cKey < group.children.length; cKey++) {\n var control = group.children[cKey];\n var controlStyle = {\n display: 'flex',\n justifyContent: 'flex-start',\n alignItems: 'center',\n width: '100%',\n padding: '5px'\n };\n if (control.className && control.dataset && control.className.indexOf('entry') !== -1) {\n var controlProps = new _BpmData__WEBPACK_IMPORTED_MODULE_4__[\"default\"]().getControl(control.dataset.action);\n control.innerHTML = \"<div style='font-size: 14px;font-weight:500;margin-left:15px;'>\".concat(controlProps['title'], \"</div>\");\n for (var csKey in controlStyle) {\n control.style[csKey] = controlStyle[csKey];\n }\n }\n }\n }\n } catch (e) {\n console.log(e);\n }\n };\n var fillColor = function fillColor() {\n if (!modeler.value) return;\n var canvasElement = modeler.value.get('canvas')(modeler.value)._definitions.rootElements[0].flowElements.forEach(function (n) {\n if (n.$type === 'bpmn:UserTask') {\n var completeTask = taskList.value.find(function (m) {\n return m.key === n.id;\n }) || {\n completed: true\n };\n var todoTask = taskList.value.find(function (m) {\n return !m.completed;\n });\n var endTask = taskList.value[taskList.value.length - 1];\n if (completeTask) {\n var _n$outgoing;\n canvasElement.addMarker(n.id, completeTask.completed ? 'highlight' : 'highlight-todo');\n (_n$outgoing = n.outgoing) === null || _n$outgoing === void 0 || _n$outgoing.forEach(function (nn) {\n var targetTask = taskList.value.find(function (m) {\n return m.key === nn.targetRef.id;\n });\n if (targetTask) {\n canvasElement.addMarker(nn.id, targetTask.completed ? 'highlight' : 'highlight-todo');\n } else if (nn.targetRef.$type === 'bpmn:ExclusiveGateway') {\n // canvasElement.addMarker(nn.id, 'highlight');\n canvasElement.addMarker(nn.id, completeTask.completed ? 'highlight' : 'highlight-todo');\n canvasElement.addMarker(nn.targetRef.id, completeTask.completed ? 'highlight' : 'highlight-todo');\n } else if (nn.targetRef.$type === 'bpmn:EndEvent') {\n if (!todoTask && endTask.key === n.id) {\n canvasElement.addMarker(nn.id, 'highlight');\n canvasElement.addMarker(nn.targetRef.id, 'highlight');\n }\n if (!completeTask.completed) {\n canvasElement.addMarker(nn.id, 'highlight-todo');\n canvasElement.addMarker(nn.targetRef.id, 'highlight-todo');\n }\n }\n });\n }\n } else if (n.$type === 'bpmn:ExclusiveGateway') {\n n.outgoing.forEach(function (nn) {\n var targetTask = taskList.value.find(function (m) {\n return m.key === nn.targetRef.id;\n });\n if (targetTask) {\n canvasElement.addMarker(nn.id, targetTask.completed ? 'highlight' : 'highlight-todo');\n }\n });\n }\n if (n.$type === 'bpmn:StartEvent') {\n n.outgoing.forEach(function (nn) {\n var completeTask = taskList.value.find(function (m) {\n return m.key === nn.targetRef.id;\n });\n if (completeTask) {\n canvasElement.addMarker(nn.id, 'highlight');\n canvasElement.addMarker(n.id, 'highlight');\n return;\n }\n });\n }\n });\n };\n // 对外 api\n var getProcess = function getProcess() {\n var element = getProcessElement();\n return {\n id: element.id,\n name: element.name,\n category: element.$attrs['flowable:processCategory']\n };\n };\n var getProcessElement = function getProcessElement() {\n if (!modeler.value) return null;\n var rootElements = modeler.value.getDefinitions().rootElements;\n for (var i = 0; i < rootElements.length; i++) {\n if (rootElements[i].$type === 'bpmn:Process') return rootElements[i];\n }\n };\n var saveXML = /*#__PURE__*/function () {\n var _ref7 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee6() {\n var download,\n _yield$modeler$value$,\n xml,\n processElement,\n _args6 = arguments,\n _t3;\n return _regenerator().w(function (_context6) {\n while (1) switch (_context6.p = _context6.n) {\n case 0:\n download = _args6.length > 0 && _args6[0] !== undefined ? _args6[0] : false;\n _context6.p = 1;\n if (modeler.value) {\n _context6.n = 2;\n break;\n }\n return _context6.a(2);\n case 2:\n _context6.n = 3;\n return modeler.value.saveXML({\n format: true\n });\n case 3:\n _yield$modeler$value$ = _context6.v;\n xml = _yield$modeler$value$.xml;\n if (download) {\n processElement = getProcessElement();\n if (processElement) {\n downloadFile(\"\".concat(processElement.name, \".bpmn20.xml\"), xml, 'application/xml');\n }\n }\n return _context6.a(2, xml);\n case 4:\n _context6.p = 4;\n _t3 = _context6.v;\n console.log(_t3);\n case 5:\n return _context6.a(2);\n }\n }, _callee6, null, [[1, 4]]);\n }));\n return function saveXML() {\n return _ref7.apply(this, arguments);\n };\n }();\n var saveImg = /*#__PURE__*/function () {\n var _ref8 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee7() {\n var type,\n download,\n _yield$modeler$value$2,\n svg,\n processElement,\n _args7 = arguments,\n _t4;\n return _regenerator().w(function (_context7) {\n while (1) switch (_context7.p = _context7.n) {\n case 0:\n type = _args7.length > 0 && _args7[0] !== undefined ? _args7[0] : 'svg';\n download = _args7.length > 1 && _args7[1] !== undefined ? _args7[1] : false;\n _context7.p = 1;\n if (modeler.value) {\n _context7.n = 2;\n break;\n }\n return _context7.a(2);\n case 2:\n _context7.n = 3;\n return modeler.value.saveSVG({\n format: true\n });\n case 3:\n _yield$modeler$value$2 = _context7.v;\n svg = _yield$modeler$value$2.svg;\n if (download) {\n processElement = getProcessElement();\n if (processElement) {\n downloadFile(processElement.name, svg, 'image/svg+xml');\n }\n }\n return _context7.a(2, svg);\n case 4:\n _context7.p = 4;\n _t4 = _context7.v;\n console.log(_t4);\n case 5:\n return _context7.a(2);\n }\n }, _callee7, null, [[1, 4]]);\n }));\n return function saveImg() {\n return _ref8.apply(this, arguments);\n };\n }();\n var save = /*#__PURE__*/function () {\n var _ref9 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee8() {\n var process, xml, svg, result;\n return _regenerator().w(function (_context8) {\n while (1) switch (_context8.n) {\n case 0:\n process = getProcess();\n _context8.n = 1;\n return saveXML();\n case 1:\n xml = _context8.v;\n _context8.n = 2;\n return saveImg();\n case 2:\n svg = _context8.v;\n result = {\n process: process,\n xml: xml,\n svg: svg\n };\n emit('save', result);\n window.parent.postMessage(result, '*');\n case 3:\n return _context8.a(2);\n }\n }, _callee8);\n }));\n return function save() {\n return _ref9.apply(this, arguments);\n };\n }();\n var openBpmn = function openBpmn(file) {\n var reader = new FileReader();\n reader.readAsText(file, 'utf-8');\n reader.onload = function () {\n createNewDiagram(reader.result);\n };\n return false;\n };\n var downloadFile = function downloadFile(filename, data, type) {\n var a = document.createElement('a');\n var url = window.URL.createObjectURL(new Blob([data], {\n type: type\n }));\n a.href = url;\n a.download = filename;\n a.click();\n window.URL.revokeObjectURL(url);\n };\n var __returned__ = {\n props: props,\n emit: emit,\n manualInit: manualInit,\n canvas: canvas,\n modeler: modeler,\n taskList: taskList,\n zoom: zoom,\n newDiagram: newDiagram,\n fitViewport: fitViewport,\n zoomViewport: zoomViewport,\n createNewDiagram: createNewDiagram,\n adjustPalette: adjustPalette,\n fillColor: fillColor,\n getProcess: getProcess,\n getProcessElement: getProcessElement,\n saveXML: saveXML,\n saveImg: saveImg,\n save: save,\n openBpmn: openBpmn,\n downloadFile: downloadFile,\n PropertyPanel: _PropertyPanel_vue__WEBPACK_IMPORTED_MODULE_3__[\"default\"],\n get FolderOpenOutlined() {\n return _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_8__[\"default\"];\n },\n get PlusCircleOutlined() {\n return _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_11__[\"default\"];\n },\n get FullscreenOutlined() {\n return _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_9__[\"default\"];\n },\n get ZoomInOutlined() {\n return _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_14__[\"default\"];\n },\n get ZoomOutOutlined() {\n return _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_15__[\"default\"];\n },\n get UndoOutlined() {\n return _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_13__[\"default\"];\n },\n get RedoOutlined() {\n return _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_12__[\"default\"];\n },\n get DownloadOutlined() {\n return _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_7__[\"default\"];\n },\n get PictureOutlined() {\n return _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_10__[\"default\"];\n }\n };\n Object.defineProperty(__returned__, '__isScriptSetup', {\n enumerable: false,\n value: true\n });\n return __returned__;\n }\n})));\n\n//# sourceURL=webpack://WorkflowBpmnModelerAndtvVue/./package/index.vue?./node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.28.3_webpack@5.101.3/node_modules/babel-loader/lib/index.js!./node_modules/.pnpm/ts-loader@9.5.4_typescript@5.9.2_webpack@5.101.3/node_modules/ts-loader/index.js??clonedRuleSet-131.use%5B1%5D!./node_modules/.pnpm/vue-loader@17.4.2_@vue+compiler-sfc@3.5.21_vue@3.5.21_typescript@5.9.2__webpack@5.101.3/node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D\n}");
568
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/.pnpm/vue@3.5.21_typescript@5.9.2/node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n/* harmony import */ var _common_customTranslate__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./common/customTranslate */ \"./package/common/customTranslate.js\");\n/* harmony import */ var bpmn_js_lib_Modeler__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! bpmn-js/lib/Modeler */ \"./node_modules/.pnpm/bpmn-js@8.10.0/node_modules/bpmn-js/lib/Modeler.js\");\n/* harmony import */ var _PropertyPanel_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./PropertyPanel.vue */ \"./package/PropertyPanel.vue\");\n/* harmony import */ var _BpmData__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./BpmData */ \"./package/BpmData.js\");\n/* harmony import */ var _flowable_init__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./flowable/init */ \"./package/flowable/init.js\");\n/* harmony import */ var _flowable_flowable_json__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./flowable/flowable.json */ \"./package/flowable/flowable.json\");\n/* harmony import */ var _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @ant-design/icons-vue */ \"./node_modules/.pnpm/@ant-design+icons-vue@7.0.1_vue@3.5.21_typescript@5.9.2_/node_modules/@ant-design/icons-vue/es/icons/DownloadOutlined.js\");\n/* harmony import */ var _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @ant-design/icons-vue */ \"./node_modules/.pnpm/@ant-design+icons-vue@7.0.1_vue@3.5.21_typescript@5.9.2_/node_modules/@ant-design/icons-vue/es/icons/FolderOpenOutlined.js\");\n/* harmony import */ var _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @ant-design/icons-vue */ \"./node_modules/.pnpm/@ant-design+icons-vue@7.0.1_vue@3.5.21_typescript@5.9.2_/node_modules/@ant-design/icons-vue/es/icons/FullscreenOutlined.js\");\n/* harmony import */ var _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @ant-design/icons-vue */ \"./node_modules/.pnpm/@ant-design+icons-vue@7.0.1_vue@3.5.21_typescript@5.9.2_/node_modules/@ant-design/icons-vue/es/icons/PictureOutlined.js\");\n/* harmony import */ var _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @ant-design/icons-vue */ \"./node_modules/.pnpm/@ant-design+icons-vue@7.0.1_vue@3.5.21_typescript@5.9.2_/node_modules/@ant-design/icons-vue/es/icons/PlusCircleOutlined.js\");\n/* harmony import */ var _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @ant-design/icons-vue */ \"./node_modules/.pnpm/@ant-design+icons-vue@7.0.1_vue@3.5.21_typescript@5.9.2_/node_modules/@ant-design/icons-vue/es/icons/RedoOutlined.js\");\n/* harmony import */ var _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @ant-design/icons-vue */ \"./node_modules/.pnpm/@ant-design+icons-vue@7.0.1_vue@3.5.21_typescript@5.9.2_/node_modules/@ant-design/icons-vue/es/icons/UndoOutlined.js\");\n/* harmony import */ var _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @ant-design/icons-vue */ \"./node_modules/.pnpm/@ant-design+icons-vue@7.0.1_vue@3.5.21_typescript@5.9.2_/node_modules/@ant-design/icons-vue/es/icons/ZoomInOutlined.js\");\n/* harmony import */ var _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @ant-design/icons-vue */ \"./node_modules/.pnpm/@ant-design+icons-vue@7.0.1_vue@3.5.21_typescript@5.9.2_/node_modules/@ant-design/icons-vue/es/icons/ZoomOutOutlined.js\");\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = \"function\" == typeof Symbol ? Symbol : {}, n = r.iterator || \"@@iterator\", o = r.toStringTag || \"@@toStringTag\"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return _regeneratorDefine2(u, \"_invoke\", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError(\"Generator is already running\"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = \"next\"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError(\"iterator result is not an object\"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i.return) && t.call(i), c < 2 && (u = TypeError(\"The iterator does not provide a '\" + o + \"' method\"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine2(e, o, \"GeneratorFunction\")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine2(u, \"constructor\", GeneratorFunctionPrototype), _regeneratorDefine2(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction), GeneratorFunction.displayName = \"GeneratorFunction\", _regeneratorDefine2(GeneratorFunctionPrototype, o, \"GeneratorFunction\"), _regeneratorDefine2(u), _regeneratorDefine2(u, o, \"Generator\"), _regeneratorDefine2(u, n, function () { return this; }), _regeneratorDefine2(u, \"toString\", function () { return \"[object Generator]\"; }), (_regenerator = function _regenerator() { return { w: i, m: f }; })(); }\nfunction _regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, \"\", {}); } catch (e) { i = 0; } _regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { _regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o(\"next\", 0), o(\"throw\", 1), o(\"return\", 2)); }, _regeneratorDefine2(e, r, n, t); }\nfunction asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }\nfunction _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n); } _next(void 0); }); }; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n\n\n\n\n\n\n\n// 引入flowable的节点文件\n\n// 引入图标\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (/*@__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.defineComponent)(_objectSpread(_objectSpread({}, {\n name: 'WorkflowBpmnModeler'\n}), {}, {\n __name: 'index',\n props: {\n xml: {\n type: String,\n required: false,\n default: ''\n },\n users: {\n type: Array,\n required: false,\n default: function _default() {\n return [];\n }\n },\n groups: {\n type: Array,\n required: false,\n default: function _default() {\n return [];\n }\n },\n categorys: {\n type: Array,\n required: false,\n default: function _default() {\n return [];\n }\n },\n isView: {\n type: Boolean,\n required: false,\n default: false\n }\n },\n emits: [\"save\"],\n setup: function setup(__props, _ref) {\n var __expose = _ref.expose,\n __emit = _ref.emit;\n // 汉化\n var props = __props;\n var emit = __emit;\n // 暴露手动初始化方法\n var manualInit = function manualInit() {\n if (!modeler.value && canvas.value) {\n console.log('Manual initialization triggered');\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.onMounted)();\n }\n };\n // 简化的初始化方法,专门用于XML加载失败的情况\n var simpleInit = /*#__PURE__*/function () {\n var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee() {\n var _t;\n return _regenerator().w(function (_context) {\n while (1) switch (_context.p = _context.n) {\n case 0:\n _context.p = 0;\n if (canvas.value) {\n _context.n = 1;\n break;\n }\n console.error('Canvas container not found for simple init');\n return _context.a(2, false);\n case 1:\n console.log('Starting simple initialization...');\n // 强制设置容器样式\n canvas.value.style.width = '100%';\n canvas.value.style.height = '100%';\n canvas.value.style.minHeight = '400px';\n canvas.value.style.display = 'block';\n // 等待DOM更新\n _context.n = 2;\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.nextTick)();\n case 2:\n _context.n = 3;\n return new Promise(function (resolve) {\n return setTimeout(resolve, 50);\n });\n case 3:\n // 创建简单的BPMN模型器实例\n modeler.value = new bpmn_js_lib_Modeler__WEBPACK_IMPORTED_MODULE_2__[\"default\"]({\n container: canvas.value,\n additionalModules: [{\n translate: ['value', _common_customTranslate__WEBPACK_IMPORTED_MODULE_1__[\"default\"]]\n }],\n moddleExtensions: {\n flowable: _flowable_flowable_json__WEBPACK_IMPORTED_MODULE_6__\n }\n });\n // 等待下一个tick\n _context.n = 4;\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.nextTick)();\n case 4:\n _context.n = 5;\n return modeler.value.importXML((0,_flowable_init__WEBPACK_IMPORTED_MODULE_5__[\"default\"])());\n case 5:\n isInitialized.value = true;\n console.log('Simple initialization completed successfully');\n return _context.a(2, true);\n case 6:\n _context.p = 6;\n _t = _context.v;\n console.error('Simple initialization failed:', _t);\n return _context.a(2, false);\n }\n }, _callee, null, [[0, 6]]);\n }));\n return function simpleInit() {\n return _ref2.apply(this, arguments);\n };\n }();\n // 强制重新初始化方法\n var forceReinit = /*#__PURE__*/function () {\n var _ref3 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2() {\n var success, _t2;\n return _regenerator().w(function (_context2) {\n while (1) switch (_context2.p = _context2.n) {\n case 0:\n _context2.p = 0;\n console.log('Force reinitializing BPMN Modeler...');\n // 清理现有实例\n if (modeler.value) {\n modeler.value.destroy();\n modeler.value = null;\n }\n isInitialized.value = false;\n // 等待一段时间\n _context2.n = 1;\n return new Promise(function (resolve) {\n return setTimeout(resolve, 100);\n });\n case 1:\n _context2.n = 2;\n return simpleInit();\n case 2:\n success = _context2.v;\n if (success) {\n console.log('Force reinitialization successful');\n } else {\n console.error('Force reinitialization failed');\n }\n return _context2.a(2, success);\n case 3:\n _context2.p = 3;\n _t2 = _context2.v;\n console.error('Force reinitialization error:', _t2);\n return _context2.a(2, false);\n }\n }, _callee2, null, [[0, 3]]);\n }));\n return function forceReinit() {\n return _ref3.apply(this, arguments);\n };\n }();\n // 暴露给父组件\n __expose({\n manualInit: manualInit,\n simpleInit: simpleInit,\n forceReinit: forceReinit,\n isInitialized: isInitialized,\n getProcess: getProcess,\n saveXML: saveXML,\n saveImg: saveImg,\n save: save\n });\n // 生成唯一的canvas ID\n var canvasId = \"bpmn-canvas-\".concat(Date.now(), \"-\").concat(Math.random().toString(36).substr(2, 9));\n var canvas = (0,vue__WEBPACK_IMPORTED_MODULE_0__.ref)(null);\n var modeler = (0,vue__WEBPACK_IMPORTED_MODULE_0__.ref)(null);\n var taskList = (0,vue__WEBPACK_IMPORTED_MODULE_0__.ref)([]);\n var zoom = (0,vue__WEBPACK_IMPORTED_MODULE_0__.ref)(1);\n var isInitialized = (0,vue__WEBPACK_IMPORTED_MODULE_0__.ref)(false);\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.watch)(function () {\n return props.xml;\n }, function (val) {\n if (val) {\n createNewDiagram(val);\n }\n });\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.onMounted)(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee6() {\n var initializeModeler, initialized, tryWithRAF;\n return _regenerator().w(function (_context6) {\n while (1) switch (_context6.n) {\n case 0:\n console.log('Component mounted, starting initialization...');\n // 等待DOM完全渲染\n _context6.n = 1;\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.nextTick)();\n case 1:\n _context6.n = 2;\n return new Promise(function (resolve) {\n return setTimeout(resolve, 100);\n });\n case 2:\n initializeModeler = /*#__PURE__*/function () {\n var _ref5 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee3() {\n var _t3;\n return _regenerator().w(function (_context3) {\n while (1) switch (_context3.p = _context3.n) {\n case 0:\n _context3.p = 0;\n if (canvas.value) {\n _context3.n = 1;\n break;\n }\n console.error('Canvas ref not found');\n return _context3.a(2, false);\n case 1:\n // 强制设置容器尺寸\n canvas.value.style.width = '100%';\n canvas.value.style.height = '100%';\n canvas.value.style.minHeight = '400px';\n canvas.value.style.display = 'block';\n console.log('Canvas container prepared, initializing modeler...');\n // 生成实例\n modeler.value = new bpmn_js_lib_Modeler__WEBPACK_IMPORTED_MODULE_2__[\"default\"]({\n container: canvas.value,\n additionalModules: [{\n translate: ['value', _common_customTranslate__WEBPACK_IMPORTED_MODULE_1__[\"default\"]]\n }],\n moddleExtensions: {\n flowable: _flowable_flowable_json__WEBPACK_IMPORTED_MODULE_6__\n }\n });\n // 等待下一个tick确保DOM更新\n _context3.n = 2;\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.nextTick)();\n case 2:\n // 标记为已初始化\n isInitialized.value = true;\n // 新增流程定义\n if (props.xml) {\n _context3.n = 4;\n break;\n }\n _context3.n = 3;\n return newDiagram();\n case 3:\n _context3.n = 5;\n break;\n case 4:\n _context3.n = 5;\n return createNewDiagram(props.xml);\n case 5:\n console.log('BPMN Modeler initialized successfully');\n return _context3.a(2, true);\n case 6:\n _context3.p = 6;\n _t3 = _context3.v;\n console.error('BPMN Modeler initialization failed:', _t3);\n return _context3.a(2, false);\n }\n }, _callee3, null, [[0, 6]]);\n }));\n return function initializeModeler() {\n return _ref5.apply(this, arguments);\n };\n }(); // 尝试初始化\n _context6.n = 3;\n return initializeModeler();\n case 3:\n initialized = _context6.v;\n // 如果失败,使用更激进的重试策略\n if (!initialized) {\n console.log('Initial initialization failed, trying alternative approach...');\n // 使用requestAnimationFrame确保在下一帧尝试\n tryWithRAF = function tryWithRAF() {\n requestAnimationFrame(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee5() {\n return _regenerator().w(function (_context5) {\n while (1) switch (_context5.n) {\n case 0:\n _context5.n = 1;\n return initializeModeler();\n case 1:\n initialized = _context5.v;\n if (!initialized) {\n // 如果还是失败,再等一帧\n requestAnimationFrame(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee4() {\n return _regenerator().w(function (_context4) {\n while (1) switch (_context4.n) {\n case 0:\n _context4.n = 1;\n return initializeModeler();\n case 1:\n initialized = _context4.v;\n if (!initialized) {\n console.error('All initialization attempts failed');\n }\n case 2:\n return _context4.a(2);\n }\n }, _callee4);\n })));\n }\n case 2:\n return _context5.a(2);\n }\n }, _callee5);\n })));\n };\n tryWithRAF();\n }\n case 4:\n return _context6.a(2);\n }\n }, _callee6);\n })));\n var newDiagram = /*#__PURE__*/function () {\n var _ref8 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee7() {\n return _regenerator().w(function (_context7) {\n while (1) switch (_context7.n) {\n case 0:\n _context7.n = 1;\n return createNewDiagram((0,_flowable_init__WEBPACK_IMPORTED_MODULE_5__[\"default\"])());\n case 1:\n return _context7.a(2);\n }\n }, _callee7);\n }));\n return function newDiagram() {\n return _ref8.apply(this, arguments);\n };\n }();\n // 让图能自适应屏幕\n var fitViewport = function fitViewport() {\n try {\n if (!modeler.value) {\n console.warn('Modeler not available for viewport fitting');\n return;\n }\n zoom.value = modeler.value.get('canvas').zoom('fit-viewport');\n var viewport = document.querySelector('.flow-containers .viewport');\n if (!viewport) {\n console.warn('Viewport element not found');\n return;\n }\n var bbox = viewport.getBBox();\n if (!bbox) {\n console.warn('Viewport bbox not available');\n return;\n }\n var currentViewbox = modeler.value.get('canvas').viewbox();\n var elementMid = {\n x: bbox.x + bbox.width / 2 - 65,\n y: bbox.y + bbox.height / 2\n };\n modeler.value.get('canvas').viewbox({\n x: elementMid.x - currentViewbox.width / 2,\n y: elementMid.y - currentViewbox.height / 2,\n width: currentViewbox.width,\n height: currentViewbox.height\n });\n zoom.value = bbox.width / currentViewbox.width * 1.8;\n } catch (e) {\n console.warn('Failed to fit viewport:', e);\n }\n };\n // 放大缩小\n var zoomViewport = function zoomViewport() {\n var zoomIn = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n if (!modeler.value) return;\n zoom.value = modeler.value.get('canvas').zoom();\n zoom.value += zoomIn ? 0.1 : -0.1;\n modeler.value.get('canvas').zoom(zoom.value);\n };\n var createNewDiagram = /*#__PURE__*/function () {\n var _ref9 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee8(data) {\n var _t4;\n return _regenerator().w(function (_context8) {\n while (1) switch (_context8.p = _context8.n) {\n case 0:\n // 将字符串转换成图显示出来\n // data = data.replace(/<!\\[CDATA\\[(.+?)]]>/g, '&lt;![CDATA[$1]]&gt;')\n data = data.replace(/<!\\[CDATA\\[(.+?)]]>/g, function (match, str) {\n return str.replace(/</g, '&lt;');\n });\n _context8.p = 1;\n if (modeler.value) {\n _context8.n = 2;\n break;\n }\n console.error('Modeler not initialized');\n return _context8.a(2);\n case 2:\n console.log('Importing XML data...', data.substring(0, 200) + '...');\n _context8.n = 3;\n return modeler.value.importXML(data);\n case 3:\n console.log('XML imported successfully');\n // 等待DOM更新\n _context8.n = 4;\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.nextTick)();\n case 4:\n // 延迟执行调整方法,确保DOM完全渲染\n setTimeout(function () {\n try {\n adjustPalette();\n fitViewport();\n console.log('Diagram created successfully');\n } catch (adjustError) {\n console.warn('Failed to adjust palette or viewport:', adjustError);\n // 即使调整失败,也不影响基本功能\n }\n }, 100);\n // fillColor()\n _context8.n = 6;\n break;\n case 5:\n _context8.p = 5;\n _t4 = _context8.v;\n console.error('Failed to create diagram:', _t4.message, _t4.warnings);\n throw _t4;\n case 6:\n return _context8.a(2);\n }\n }, _callee8, null, [[1, 5]]);\n }));\n return function createNewDiagram(_x) {\n return _ref9.apply(this, arguments);\n };\n }();\n // 调整左侧工具栏排版\n var adjustPalette = function adjustPalette() {\n try {\n var _canvasElement$childr;\n // 获取 bpmn 设计器实例\n var canvasElement = canvas.value;\n if (!canvasElement) {\n console.warn('Canvas element not found for palette adjustment');\n return;\n }\n // 检查DOM结构是否存在\n if (!canvasElement.children || canvasElement.children.length === 0) {\n console.warn('Canvas children not found for palette adjustment');\n return;\n }\n var djsPalette = (_canvasElement$childr = canvasElement.children[0]) === null || _canvasElement$childr === void 0 || (_canvasElement$childr = _canvasElement$childr.children[1]) === null || _canvasElement$childr === void 0 ? void 0 : _canvasElement$childr.children[4];\n if (!djsPalette) {\n console.warn('BPMN palette element not found');\n return;\n }\n var djsPalStyle = {\n width: '130px',\n padding: '5px',\n background: 'white',\n left: '20px',\n borderRadius: '0'\n };\n for (var key in djsPalStyle) {\n djsPalette.style[key] = djsPalStyle[key];\n }\n var palette = djsPalette.children[0];\n if (!palette) {\n console.warn('Palette children not found');\n return;\n }\n var allGroups = palette.children;\n if (allGroups.length === 0) {\n console.warn('No palette groups found');\n return;\n }\n ;\n allGroups[0].style.display = 'none';\n // 修改控件样式\n for (var gKey = 0; gKey < allGroups.length; gKey++) {\n var group = allGroups[gKey];\n for (var cKey = 0; cKey < group.children.length; cKey++) {\n var control = group.children[cKey];\n var controlStyle = {\n display: 'flex',\n justifyContent: 'flex-start',\n alignItems: 'center',\n width: '100%',\n padding: '5px'\n };\n if (control.className && control.dataset && control.className.indexOf('entry') !== -1) {\n var controlProps = new _BpmData__WEBPACK_IMPORTED_MODULE_4__[\"default\"]().getControl(control.dataset.action);\n control.innerHTML = \"<div style='font-size: 14px;font-weight:500;margin-left:15px;'>\".concat(controlProps['title'], \"</div>\");\n for (var csKey in controlStyle) {\n control.style[csKey] = controlStyle[csKey];\n }\n }\n }\n }\n } catch (e) {\n console.warn('Failed to adjust palette:', e);\n }\n };\n var fillColor = function fillColor() {\n if (!modeler.value) return;\n var canvasElement = modeler.value.get('canvas')(modeler.value)._definitions.rootElements[0].flowElements.forEach(function (n) {\n if (n.$type === 'bpmn:UserTask') {\n var completeTask = taskList.value.find(function (m) {\n return m.key === n.id;\n }) || {\n completed: true\n };\n var todoTask = taskList.value.find(function (m) {\n return !m.completed;\n });\n var endTask = taskList.value[taskList.value.length - 1];\n if (completeTask) {\n var _n$outgoing;\n canvasElement.addMarker(n.id, completeTask.completed ? 'highlight' : 'highlight-todo');\n (_n$outgoing = n.outgoing) === null || _n$outgoing === void 0 || _n$outgoing.forEach(function (nn) {\n var targetTask = taskList.value.find(function (m) {\n return m.key === nn.targetRef.id;\n });\n if (targetTask) {\n canvasElement.addMarker(nn.id, targetTask.completed ? 'highlight' : 'highlight-todo');\n } else if (nn.targetRef.$type === 'bpmn:ExclusiveGateway') {\n // canvasElement.addMarker(nn.id, 'highlight');\n canvasElement.addMarker(nn.id, completeTask.completed ? 'highlight' : 'highlight-todo');\n canvasElement.addMarker(nn.targetRef.id, completeTask.completed ? 'highlight' : 'highlight-todo');\n } else if (nn.targetRef.$type === 'bpmn:EndEvent') {\n if (!todoTask && endTask.key === n.id) {\n canvasElement.addMarker(nn.id, 'highlight');\n canvasElement.addMarker(nn.targetRef.id, 'highlight');\n }\n if (!completeTask.completed) {\n canvasElement.addMarker(nn.id, 'highlight-todo');\n canvasElement.addMarker(nn.targetRef.id, 'highlight-todo');\n }\n }\n });\n }\n } else if (n.$type === 'bpmn:ExclusiveGateway') {\n n.outgoing.forEach(function (nn) {\n var targetTask = taskList.value.find(function (m) {\n return m.key === nn.targetRef.id;\n });\n if (targetTask) {\n canvasElement.addMarker(nn.id, targetTask.completed ? 'highlight' : 'highlight-todo');\n }\n });\n }\n if (n.$type === 'bpmn:StartEvent') {\n n.outgoing.forEach(function (nn) {\n var completeTask = taskList.value.find(function (m) {\n return m.key === nn.targetRef.id;\n });\n if (completeTask) {\n canvasElement.addMarker(nn.id, 'highlight');\n canvasElement.addMarker(n.id, 'highlight');\n return;\n }\n });\n }\n });\n };\n // 对外 api\n var getProcess = function getProcess() {\n var element = getProcessElement();\n return {\n id: element.id,\n name: element.name,\n category: element.$attrs['flowable:processCategory']\n };\n };\n var getProcessElement = function getProcessElement() {\n if (!modeler.value) return null;\n var rootElements = modeler.value.getDefinitions().rootElements;\n for (var i = 0; i < rootElements.length; i++) {\n if (rootElements[i].$type === 'bpmn:Process') return rootElements[i];\n }\n };\n var saveXML = /*#__PURE__*/function () {\n var _ref0 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee9() {\n var download,\n _yield$modeler$value$,\n xml,\n processElement,\n _args9 = arguments,\n _t5;\n return _regenerator().w(function (_context9) {\n while (1) switch (_context9.p = _context9.n) {\n case 0:\n download = _args9.length > 0 && _args9[0] !== undefined ? _args9[0] : false;\n _context9.p = 1;\n if (modeler.value) {\n _context9.n = 2;\n break;\n }\n return _context9.a(2);\n case 2:\n _context9.n = 3;\n return modeler.value.saveXML({\n format: true\n });\n case 3:\n _yield$modeler$value$ = _context9.v;\n xml = _yield$modeler$value$.xml;\n if (download) {\n processElement = getProcessElement();\n if (processElement) {\n downloadFile(\"\".concat(processElement.name, \".bpmn20.xml\"), xml, 'application/xml');\n }\n }\n return _context9.a(2, xml);\n case 4:\n _context9.p = 4;\n _t5 = _context9.v;\n console.log(_t5);\n case 5:\n return _context9.a(2);\n }\n }, _callee9, null, [[1, 4]]);\n }));\n return function saveXML() {\n return _ref0.apply(this, arguments);\n };\n }();\n var saveImg = /*#__PURE__*/function () {\n var _ref1 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee0() {\n var type,\n download,\n _yield$modeler$value$2,\n svg,\n processElement,\n _args0 = arguments,\n _t6;\n return _regenerator().w(function (_context0) {\n while (1) switch (_context0.p = _context0.n) {\n case 0:\n type = _args0.length > 0 && _args0[0] !== undefined ? _args0[0] : 'svg';\n download = _args0.length > 1 && _args0[1] !== undefined ? _args0[1] : false;\n _context0.p = 1;\n if (modeler.value) {\n _context0.n = 2;\n break;\n }\n return _context0.a(2);\n case 2:\n _context0.n = 3;\n return modeler.value.saveSVG({\n format: true\n });\n case 3:\n _yield$modeler$value$2 = _context0.v;\n svg = _yield$modeler$value$2.svg;\n if (download) {\n processElement = getProcessElement();\n if (processElement) {\n downloadFile(processElement.name, svg, 'image/svg+xml');\n }\n }\n return _context0.a(2, svg);\n case 4:\n _context0.p = 4;\n _t6 = _context0.v;\n console.log(_t6);\n case 5:\n return _context0.a(2);\n }\n }, _callee0, null, [[1, 4]]);\n }));\n return function saveImg() {\n return _ref1.apply(this, arguments);\n };\n }();\n var save = /*#__PURE__*/function () {\n var _ref10 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee1() {\n var process, xml, svg, result;\n return _regenerator().w(function (_context1) {\n while (1) switch (_context1.n) {\n case 0:\n process = getProcess();\n _context1.n = 1;\n return saveXML();\n case 1:\n xml = _context1.v;\n _context1.n = 2;\n return saveImg();\n case 2:\n svg = _context1.v;\n result = {\n process: process,\n xml: xml,\n svg: svg\n };\n emit('save', result);\n window.parent.postMessage(result, '*');\n case 3:\n return _context1.a(2);\n }\n }, _callee1);\n }));\n return function save() {\n return _ref10.apply(this, arguments);\n };\n }();\n var openBpmn = function openBpmn(file) {\n var reader = new FileReader();\n reader.readAsText(file, 'utf-8');\n reader.onload = function () {\n createNewDiagram(reader.result);\n };\n return false;\n };\n var downloadFile = function downloadFile(filename, data, type) {\n var a = document.createElement('a');\n var url = window.URL.createObjectURL(new Blob([data], {\n type: type\n }));\n a.href = url;\n a.download = filename;\n a.click();\n window.URL.revokeObjectURL(url);\n };\n var __returned__ = {\n props: props,\n emit: emit,\n manualInit: manualInit,\n simpleInit: simpleInit,\n forceReinit: forceReinit,\n canvasId: canvasId,\n canvas: canvas,\n modeler: modeler,\n taskList: taskList,\n zoom: zoom,\n isInitialized: isInitialized,\n newDiagram: newDiagram,\n fitViewport: fitViewport,\n zoomViewport: zoomViewport,\n createNewDiagram: createNewDiagram,\n adjustPalette: adjustPalette,\n fillColor: fillColor,\n getProcess: getProcess,\n getProcessElement: getProcessElement,\n saveXML: saveXML,\n saveImg: saveImg,\n save: save,\n openBpmn: openBpmn,\n downloadFile: downloadFile,\n PropertyPanel: _PropertyPanel_vue__WEBPACK_IMPORTED_MODULE_3__[\"default\"],\n get FolderOpenOutlined() {\n return _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_8__[\"default\"];\n },\n get PlusCircleOutlined() {\n return _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_11__[\"default\"];\n },\n get FullscreenOutlined() {\n return _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_9__[\"default\"];\n },\n get ZoomInOutlined() {\n return _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_14__[\"default\"];\n },\n get ZoomOutOutlined() {\n return _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_15__[\"default\"];\n },\n get UndoOutlined() {\n return _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_13__[\"default\"];\n },\n get RedoOutlined() {\n return _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_12__[\"default\"];\n },\n get DownloadOutlined() {\n return _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_7__[\"default\"];\n },\n get PictureOutlined() {\n return _ant_design_icons_vue__WEBPACK_IMPORTED_MODULE_10__[\"default\"];\n }\n };\n Object.defineProperty(__returned__, '__isScriptSetup', {\n enumerable: false,\n value: true\n });\n return __returned__;\n }\n})));\n\n//# sourceURL=webpack://WorkflowBpmnModelerAndtvVue/./package/index.vue?./node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.28.3_webpack@5.101.3/node_modules/babel-loader/lib/index.js!./node_modules/.pnpm/ts-loader@9.5.4_typescript@5.9.2_webpack@5.101.3/node_modules/ts-loader/index.js??clonedRuleSet-131.use%5B1%5D!./node_modules/.pnpm/vue-loader@17.4.2_@vue+compiler-sfc@3.5.21_vue@3.5.21_typescript@5.9.2__webpack@5.101.3/node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D\n}");
569
569
 
570
570
  /***/ }),
571
571
 
@@ -697,7 +697,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpa
697
697
  /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
698
698
 
699
699
  "use strict";
700
- eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: function() { return /* binding */ render; }\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/.pnpm/vue@3.5.21_typescript@5.9.2/node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n\nvar _hoisted_1 = {\n class: \"toolbar-container\"\n};\nvar _hoisted_2 = {\n class: \"toolbar-left\"\n};\nvar _hoisted_3 = {\n class: \"toolbar-group\"\n};\nvar _hoisted_4 = {\n class: \"toolbar-group\"\n};\nvar _hoisted_5 = {\n class: \"toolbar-group\"\n};\nvar _hoisted_6 = {\n class: \"toolbar-right\"\n};\nvar _hoisted_7 = {\n class: \"toolbar-group\"\n};\nvar _hoisted_8 = {\n ref: \"canvas\",\n class: \"canvas\"\n};\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_a_button = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-button\");\n var _component_a_tooltip = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-tooltip\");\n var _component_a_upload = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-upload\");\n var _component_a_layout_header = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-layout-header\");\n var _component_a_layout_content = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-layout-content\");\n var _component_a_layout_sider = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-layout-sider\");\n var _component_a_layout = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-layout\");\n var _directive_loading = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveDirective)(\"loading\");\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)(((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"div\", {\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)([\"flow-containers\", {\n 'view-mode': $props.isView\n }])\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_layout, {\n class: \"main-layout\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\" 顶部工具栏 \"), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_layout_header, {\n class: \"toolbar-header\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_1, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\" 左侧工具组 \"), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_2, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_3, [_cache[6] || (_cache[6] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", {\n class: \"group-label\"\n }, \"文件操作\", -1 /* CACHED */)), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_upload, {\n \"before-upload\": $setup.openBpmn,\n class: \"toolbar-item\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_tooltip, {\n title: \"加载XML文件\",\n placement: \"bottom\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_button, {\n class: \"toolbar-btn\",\n size: \"small\"\n }, {\n icon: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"FolderOpenOutlined\"])];\n }),\n _: 1 /* STABLE */\n })];\n }),\n _: 1 /* STABLE */\n })];\n }),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_tooltip, {\n title: \"新建流程图\",\n placement: \"bottom\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_button, {\n class: \"toolbar-btn\",\n size: \"small\",\n onClick: $setup.newDiagram\n }, {\n icon: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"PlusCircleOutlined\"])];\n }),\n _: 1 /* STABLE */\n })];\n }),\n _: 1 /* STABLE */\n })]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_4, [_cache[7] || (_cache[7] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", {\n class: \"group-label\"\n }, \"视图控制\", -1 /* CACHED */)), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_tooltip, {\n title: \"自适应屏幕\",\n placement: \"bottom\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_button, {\n class: \"toolbar-btn\",\n size: \"small\",\n onClick: $setup.fitViewport\n }, {\n icon: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"FullscreenOutlined\"])];\n }),\n _: 1 /* STABLE */\n })];\n }),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_tooltip, {\n title: \"放大视图\",\n placement: \"bottom\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_button, {\n class: \"toolbar-btn\",\n size: \"small\",\n onClick: _cache[0] || (_cache[0] = function ($event) {\n return $setup.zoomViewport(true);\n })\n }, {\n icon: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"ZoomInOutlined\"])];\n }),\n _: 1 /* STABLE */\n })];\n }),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_tooltip, {\n title: \"缩小视图\",\n placement: \"bottom\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_button, {\n class: \"toolbar-btn\",\n size: \"small\",\n onClick: _cache[1] || (_cache[1] = function ($event) {\n return $setup.zoomViewport(false);\n })\n }, {\n icon: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"ZoomOutOutlined\"])];\n }),\n _: 1 /* STABLE */\n })];\n }),\n _: 1 /* STABLE */\n })]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_5, [_cache[8] || (_cache[8] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", {\n class: \"group-label\"\n }, \"历史操作\", -1 /* CACHED */)), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_tooltip, {\n title: \"撤销操作\",\n placement: \"bottom\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_button, {\n class: \"toolbar-btn\",\n size: \"small\",\n onClick: _cache[2] || (_cache[2] = function () {\n var _$setup$modeler;\n return (_$setup$modeler = $setup.modeler) === null || _$setup$modeler === void 0 ? void 0 : _$setup$modeler.get('commandStack').undo();\n })\n }, {\n icon: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"UndoOutlined\"])];\n }),\n _: 1 /* STABLE */\n })];\n }),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_tooltip, {\n title: \"重做操作\",\n placement: \"bottom\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_button, {\n class: \"toolbar-btn\",\n size: \"small\",\n onClick: _cache[3] || (_cache[3] = function () {\n var _$setup$modeler2;\n return (_$setup$modeler2 = $setup.modeler) === null || _$setup$modeler2 === void 0 ? void 0 : _$setup$modeler2.get('commandStack').redo();\n })\n }, {\n icon: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"RedoOutlined\"])];\n }),\n _: 1 /* STABLE */\n })];\n }),\n _: 1 /* STABLE */\n })])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\" 右侧操作组 \"), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_6, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_7, [_cache[11] || (_cache[11] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", {\n class: \"group-label\"\n }, \"导出\", -1 /* CACHED */)), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_button, {\n class: \"toolbar-btn export-btn\",\n size: \"small\",\n onClick: _cache[4] || (_cache[4] = function ($event) {\n return $setup.saveXML(true);\n })\n }, {\n icon: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"DownloadOutlined\"])];\n }),\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [_cache[9] || (_cache[9] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\" 下载XML \", -1 /* CACHED */))];\n }),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_button, {\n class: \"toolbar-btn export-btn\",\n size: \"small\",\n onClick: _cache[5] || (_cache[5] = function ($event) {\n return $setup.saveImg('svg', true);\n })\n }, {\n icon: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"PictureOutlined\"])];\n }),\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [_cache[10] || (_cache[10] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\" 下载SVG \", -1 /* CACHED */))];\n }),\n _: 1 /* STABLE */\n })]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_button, {\n class: \"save-btn\",\n type: \"primary\",\n onClick: $setup.save\n }, {\n icon: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"DownloadOutlined\"])];\n }),\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [_cache[12] || (_cache[12] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\" 保存模型 \", -1 /* CACHED */))];\n }),\n _: 1 /* STABLE */\n })])])];\n }),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\" 主内容区域 \"), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_layout, {\n class: \"content-layout\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_layout_content, {\n class: \"canvas-container\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_8, null, 512 /* NEED_PATCH */)];\n }),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_layout_sider, {\n class: \"property-panel\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [$setup.modeler ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)($setup[\"PropertyPanel\"], {\n key: 0,\n modeler: $setup.modeler,\n users: $props.users,\n groups: $props.groups,\n categorys: $props.categorys\n }, null, 8 /* PROPS */, [\"modeler\", \"users\", \"groups\", \"categorys\"])) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true)];\n }),\n _: 1 /* STABLE */\n })];\n }),\n _: 1 /* STABLE */\n })];\n }),\n _: 1 /* STABLE */\n })], 2 /* CLASS */)), [[_directive_loading, $props.isView]]);\n}\n\n//# sourceURL=webpack://WorkflowBpmnModelerAndtvVue/./package/index.vue?./node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.28.3_webpack@5.101.3/node_modules/babel-loader/lib/index.js!./node_modules/.pnpm/ts-loader@9.5.4_typescript@5.9.2_webpack@5.101.3/node_modules/ts-loader/index.js??clonedRuleSet-131.use%5B1%5D!./node_modules/.pnpm/vue-loader@17.4.2_@vue+compiler-sfc@3.5.21_vue@3.5.21_typescript@5.9.2__webpack@5.101.3/node_modules/vue-loader/dist/templateLoader.js??ruleSet%5B1%5D.rules%5B4%5D!./node_modules/.pnpm/vue-loader@17.4.2_@vue+compiler-sfc@3.5.21_vue@3.5.21_typescript@5.9.2__webpack@5.101.3/node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D\n}");
700
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: function() { return /* binding */ render; }\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/.pnpm/vue@3.5.21_typescript@5.9.2/node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n\nvar _hoisted_1 = {\n class: \"toolbar-container\"\n};\nvar _hoisted_2 = {\n class: \"toolbar-left\"\n};\nvar _hoisted_3 = {\n class: \"toolbar-group\"\n};\nvar _hoisted_4 = {\n class: \"toolbar-group\"\n};\nvar _hoisted_5 = {\n class: \"toolbar-group\"\n};\nvar _hoisted_6 = {\n class: \"toolbar-right\"\n};\nvar _hoisted_7 = {\n class: \"toolbar-group\"\n};\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_a_button = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-button\");\n var _component_a_tooltip = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-tooltip\");\n var _component_a_upload = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-upload\");\n var _component_a_layout_header = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-layout-header\");\n var _component_a_layout_content = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-layout-content\");\n var _component_a_layout_sider = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-layout-sider\");\n var _component_a_layout = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-layout\");\n var _directive_loading = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveDirective)(\"loading\");\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)(((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"div\", {\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)([\"flow-containers\", {\n 'view-mode': $props.isView\n }])\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_layout, {\n class: \"main-layout\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\" 顶部工具栏 \"), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_layout_header, {\n class: \"toolbar-header\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_1, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\" 左侧工具组 \"), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_2, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_3, [_cache[6] || (_cache[6] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", {\n class: \"group-label\"\n }, \"文件操作\", -1 /* CACHED */)), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_upload, {\n \"before-upload\": $setup.openBpmn,\n class: \"toolbar-item\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_tooltip, {\n title: \"加载XML文件\",\n placement: \"bottom\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_button, {\n class: \"toolbar-btn\",\n size: \"small\"\n }, {\n icon: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"FolderOpenOutlined\"])];\n }),\n _: 1 /* STABLE */\n })];\n }),\n _: 1 /* STABLE */\n })];\n }),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_tooltip, {\n title: \"新建流程图\",\n placement: \"bottom\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_button, {\n class: \"toolbar-btn\",\n size: \"small\",\n onClick: $setup.newDiagram\n }, {\n icon: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"PlusCircleOutlined\"])];\n }),\n _: 1 /* STABLE */\n })];\n }),\n _: 1 /* STABLE */\n })]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_4, [_cache[7] || (_cache[7] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", {\n class: \"group-label\"\n }, \"视图控制\", -1 /* CACHED */)), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_tooltip, {\n title: \"自适应屏幕\",\n placement: \"bottom\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_button, {\n class: \"toolbar-btn\",\n size: \"small\",\n onClick: $setup.fitViewport\n }, {\n icon: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"FullscreenOutlined\"])];\n }),\n _: 1 /* STABLE */\n })];\n }),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_tooltip, {\n title: \"放大视图\",\n placement: \"bottom\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_button, {\n class: \"toolbar-btn\",\n size: \"small\",\n onClick: _cache[0] || (_cache[0] = function ($event) {\n return $setup.zoomViewport(true);\n })\n }, {\n icon: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"ZoomInOutlined\"])];\n }),\n _: 1 /* STABLE */\n })];\n }),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_tooltip, {\n title: \"缩小视图\",\n placement: \"bottom\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_button, {\n class: \"toolbar-btn\",\n size: \"small\",\n onClick: _cache[1] || (_cache[1] = function ($event) {\n return $setup.zoomViewport(false);\n })\n }, {\n icon: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"ZoomOutOutlined\"])];\n }),\n _: 1 /* STABLE */\n })];\n }),\n _: 1 /* STABLE */\n })]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_5, [_cache[8] || (_cache[8] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", {\n class: \"group-label\"\n }, \"历史操作\", -1 /* CACHED */)), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_tooltip, {\n title: \"撤销操作\",\n placement: \"bottom\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_button, {\n class: \"toolbar-btn\",\n size: \"small\",\n onClick: _cache[2] || (_cache[2] = function () {\n var _$setup$modeler;\n return (_$setup$modeler = $setup.modeler) === null || _$setup$modeler === void 0 ? void 0 : _$setup$modeler.get('commandStack').undo();\n })\n }, {\n icon: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"UndoOutlined\"])];\n }),\n _: 1 /* STABLE */\n })];\n }),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_tooltip, {\n title: \"重做操作\",\n placement: \"bottom\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_button, {\n class: \"toolbar-btn\",\n size: \"small\",\n onClick: _cache[3] || (_cache[3] = function () {\n var _$setup$modeler2;\n return (_$setup$modeler2 = $setup.modeler) === null || _$setup$modeler2 === void 0 ? void 0 : _$setup$modeler2.get('commandStack').redo();\n })\n }, {\n icon: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"RedoOutlined\"])];\n }),\n _: 1 /* STABLE */\n })];\n }),\n _: 1 /* STABLE */\n })])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\" 右侧操作组 \"), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_6, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_7, [_cache[11] || (_cache[11] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", {\n class: \"group-label\"\n }, \"导出\", -1 /* CACHED */)), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_button, {\n class: \"toolbar-btn export-btn\",\n size: \"small\",\n onClick: _cache[4] || (_cache[4] = function ($event) {\n return $setup.saveXML(true);\n })\n }, {\n icon: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"DownloadOutlined\"])];\n }),\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [_cache[9] || (_cache[9] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\" 下载XML \", -1 /* CACHED */))];\n }),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_button, {\n class: \"toolbar-btn export-btn\",\n size: \"small\",\n onClick: _cache[5] || (_cache[5] = function ($event) {\n return $setup.saveImg('svg', true);\n })\n }, {\n icon: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"PictureOutlined\"])];\n }),\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [_cache[10] || (_cache[10] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\" 下载SVG \", -1 /* CACHED */))];\n }),\n _: 1 /* STABLE */\n })]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_button, {\n class: \"save-btn\",\n type: \"primary\",\n onClick: $setup.save\n }, {\n icon: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"DownloadOutlined\"])];\n }),\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [_cache[12] || (_cache[12] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\" 保存模型 \", -1 /* CACHED */))];\n }),\n _: 1 /* STABLE */\n })])])];\n }),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\" 主内容区域 \"), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_layout, {\n class: \"content-layout\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_layout_content, {\n class: \"canvas-container\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", {\n ref: \"canvas\",\n class: \"canvas\",\n id: $setup.canvasId\n }, null, 512 /* NEED_PATCH */)];\n }),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_layout_sider, {\n class: \"property-panel\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {\n return [$setup.modeler ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)($setup[\"PropertyPanel\"], {\n key: 0,\n modeler: $setup.modeler,\n users: $props.users,\n groups: $props.groups,\n categorys: $props.categorys\n }, null, 8 /* PROPS */, [\"modeler\", \"users\", \"groups\", \"categorys\"])) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true)];\n }),\n _: 1 /* STABLE */\n })];\n }),\n _: 1 /* STABLE */\n })];\n }),\n _: 1 /* STABLE */\n })], 2 /* CLASS */)), [[_directive_loading, $props.isView]]);\n}\n\n//# sourceURL=webpack://WorkflowBpmnModelerAndtvVue/./package/index.vue?./node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.28.3_webpack@5.101.3/node_modules/babel-loader/lib/index.js!./node_modules/.pnpm/ts-loader@9.5.4_typescript@5.9.2_webpack@5.101.3/node_modules/ts-loader/index.js??clonedRuleSet-131.use%5B1%5D!./node_modules/.pnpm/vue-loader@17.4.2_@vue+compiler-sfc@3.5.21_vue@3.5.21_typescript@5.9.2__webpack@5.101.3/node_modules/vue-loader/dist/templateLoader.js??ruleSet%5B1%5D.rules%5B4%5D!./node_modules/.pnpm/vue-loader@17.4.2_@vue+compiler-sfc@3.5.21_vue@3.5.21_typescript@5.9.2__webpack@5.101.3/node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D\n}");
701
701
 
702
702
  /***/ }),
703
703
 
package/package/index.vue CHANGED
@@ -80,7 +80,7 @@
80
80
  <!-- 主内容区域 -->
81
81
  <a-layout class="content-layout">
82
82
  <a-layout-content class="canvas-container">
83
- <div ref="canvas" class="canvas" />
83
+ <div ref="canvas" class="canvas" :id="canvasId" />
84
84
  </a-layout-content>
85
85
  <a-layout-sider class="property-panel">
86
86
  <PropertyPanel v-if="modeler" :modeler="modeler" :users="users" :groups="groups" :categorys="categorys" />
@@ -166,18 +166,105 @@ const manualInit = () => {
166
166
  }
167
167
  }
168
168
 
169
+ // 简化的初始化方法,专门用于XML加载失败的情况
170
+ const simpleInit = async () => {
171
+ try {
172
+ if (!canvas.value) {
173
+ console.error('Canvas container not found for simple init')
174
+ return false
175
+ }
176
+
177
+ console.log('Starting simple initialization...')
178
+
179
+ // 强制设置容器样式
180
+ canvas.value.style.width = '100%'
181
+ canvas.value.style.height = '100%'
182
+ canvas.value.style.minHeight = '400px'
183
+ canvas.value.style.display = 'block'
184
+
185
+ // 等待DOM更新
186
+ await nextTick()
187
+ await new Promise(resolve => setTimeout(resolve, 50))
188
+
189
+ // 创建简单的BPMN模型器实例
190
+ modeler.value = new Modeler({
191
+ container: canvas.value,
192
+ additionalModules: [
193
+ {
194
+ translate: ['value', customTranslate]
195
+ }
196
+ ],
197
+ moddleExtensions: {
198
+ flowable: flowableModdle
199
+ }
200
+ })
201
+
202
+ // 等待下一个tick
203
+ await nextTick()
204
+
205
+ // 创建基本流程图
206
+ await modeler.value.importXML(getInitStr())
207
+
208
+ isInitialized.value = true
209
+ console.log('Simple initialization completed successfully')
210
+ return true
211
+ } catch (error) {
212
+ console.error('Simple initialization failed:', error)
213
+ return false
214
+ }
215
+ }
216
+
217
+ // 强制重新初始化方法
218
+ const forceReinit = async () => {
219
+ try {
220
+ console.log('Force reinitializing BPMN Modeler...')
221
+
222
+ // 清理现有实例
223
+ if (modeler.value) {
224
+ modeler.value.destroy()
225
+ modeler.value = null
226
+ }
227
+
228
+ isInitialized.value = false
229
+
230
+ // 等待一段时间
231
+ await new Promise(resolve => setTimeout(resolve, 100))
232
+
233
+ // 重新初始化
234
+ const success = await simpleInit()
235
+
236
+ if (success) {
237
+ console.log('Force reinitialization successful')
238
+ } else {
239
+ console.error('Force reinitialization failed')
240
+ }
241
+
242
+ return success
243
+ } catch (error) {
244
+ console.error('Force reinitialization error:', error)
245
+ return false
246
+ }
247
+ }
248
+
169
249
  // 暴露给父组件
170
250
  defineExpose({
171
251
  manualInit,
252
+ simpleInit,
253
+ forceReinit,
254
+ isInitialized,
172
255
  getProcess,
173
256
  saveXML,
174
257
  saveImg,
175
258
  save
176
259
  })
260
+ // 生成唯一的canvas ID
261
+ const canvasId = `bpmn-canvas-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`
262
+
177
263
  const canvas = ref<HTMLElement | null>(null)
178
264
  const modeler = ref<Modeler | null>(null)
179
265
  const taskList = ref<any[]>([])
180
266
  const zoom = ref<number>(1)
267
+ const isInitialized = ref<boolean>(false)
181
268
 
182
269
  watch(() => props.xml, (val: string) => {
183
270
  if (val) {
@@ -186,18 +273,29 @@ watch(() => props.xml, (val: string) => {
186
273
  })
187
274
 
188
275
  onMounted(async () => {
189
- // 延迟初始化,确保DOM完全渲染
276
+ console.log('Component mounted, starting initialization...')
277
+
278
+ // 等待DOM完全渲染
190
279
  await nextTick()
191
280
 
281
+ // 强制等待一段时间确保容器就绪
282
+ await new Promise(resolve => setTimeout(resolve, 100))
283
+
192
284
  const initializeModeler = async () => {
193
285
  try {
194
- // 确保容器存在且有尺寸
195
- if (!canvas.value || canvas.value.offsetWidth === 0 || canvas.value.offsetHeight === 0) {
196
- console.log('Canvas container not ready, waiting...')
286
+ // 确保canvas容器存在
287
+ if (!canvas.value) {
288
+ console.error('Canvas ref not found')
197
289
  return false
198
290
  }
199
291
 
200
- console.log('Canvas container found, initializing modeler...')
292
+ // 强制设置容器尺寸
293
+ canvas.value.style.width = '100%'
294
+ canvas.value.style.height = '100%'
295
+ canvas.value.style.minHeight = '400px'
296
+ canvas.value.style.display = 'block'
297
+
298
+ console.log('Canvas container prepared, initializing modeler...')
201
299
 
202
300
  // 生成实例
203
301
  modeler.value = new Modeler({
@@ -215,11 +313,14 @@ onMounted(async () => {
215
313
  // 等待下一个tick确保DOM更新
216
314
  await nextTick()
217
315
 
316
+ // 标记为已初始化
317
+ isInitialized.value = true
318
+
218
319
  // 新增流程定义
219
320
  if (!props.xml) {
220
- newDiagram()
321
+ await newDiagram()
221
322
  } else {
222
- createNewDiagram(props.xml)
323
+ await createNewDiagram(props.xml)
223
324
  }
224
325
 
225
326
  console.log('BPMN Modeler initialized successfully')
@@ -230,71 +331,73 @@ onMounted(async () => {
230
331
  }
231
332
  }
232
333
 
233
- // 立即尝试初始化
334
+ // 尝试初始化
234
335
  let initialized = await initializeModeler()
235
336
 
236
- // 如果初始化失败,使用多种策略重试
337
+ // 如果失败,使用更激进的重试策略
237
338
  if (!initialized) {
238
- // 策略1: 使用MutationObserver监听DOM变化
239
- const observer = new MutationObserver(async () => {
240
- if (canvas.value && canvas.value.offsetWidth > 0 && canvas.value.offsetHeight > 0) {
241
- observer.disconnect()
242
- await initializeModeler()
243
- }
244
- })
339
+ console.log('Initial initialization failed, trying alternative approach...')
245
340
 
246
- // 监听父容器变化
247
- if (canvas.value?.parentElement) {
248
- observer.observe(canvas.value.parentElement, {
249
- childList: true,
250
- subtree: true,
251
- attributes: true,
252
- attributeFilter: ['style', 'class']
341
+ // 使用requestAnimationFrame确保在下一帧尝试
342
+ const tryWithRAF = () => {
343
+ requestAnimationFrame(async () => {
344
+ initialized = await initializeModeler()
345
+ if (!initialized) {
346
+ // 如果还是失败,再等一帧
347
+ requestAnimationFrame(async () => {
348
+ initialized = await initializeModeler()
349
+ if (!initialized) {
350
+ console.error('All initialization attempts failed')
351
+ }
352
+ })
353
+ }
253
354
  })
254
355
  }
255
356
 
256
- // 策略2: 定时重试(最多10秒)
257
- let retryCount = 0
258
- const maxRetries = 50 // 10秒,每200ms重试一次
259
-
260
- const retryTimer = setInterval(async () => {
261
- retryCount++
262
- initialized = await initializeModeler()
263
-
264
- if (initialized || retryCount >= maxRetries) {
265
- clearInterval(retryTimer)
266
- observer.disconnect()
267
- if (!initialized) {
268
- console.error('Failed to initialize BPMN Modeler after maximum retries')
269
- }
270
- }
271
- }, 200)
357
+ tryWithRAF()
272
358
  }
273
359
  })
274
360
 
275
- const newDiagram = (): void => {
276
- createNewDiagram(getInitStr())
361
+ const newDiagram = async (): Promise<void> => {
362
+ await createNewDiagram(getInitStr())
277
363
  }
278
364
 
279
365
  // 让图能自适应屏幕
280
366
  const fitViewport = (): void => {
281
- if (!modeler.value) return
282
- zoom.value = modeler.value.get('canvas').zoom('fit-viewport')
283
- const viewport = document.querySelector('.flow-containers .viewport') as SVGSVGElement
284
- const bbox = viewport?.getBBox()
285
- if (!bbox) return
286
- const currentViewbox = modeler.value.get('canvas').viewbox()
287
- const elementMid = {
288
- x: bbox.x + bbox.width / 2 - 65,
289
- y: bbox.y + bbox.height / 2
367
+ try {
368
+ if (!modeler.value) {
369
+ console.warn('Modeler not available for viewport fitting')
370
+ return
371
+ }
372
+
373
+ zoom.value = modeler.value.get('canvas').zoom('fit-viewport')
374
+ const viewport = document.querySelector('.flow-containers .viewport') as SVGSVGElement
375
+ if (!viewport) {
376
+ console.warn('Viewport element not found')
377
+ return
378
+ }
379
+
380
+ const bbox = viewport.getBBox()
381
+ if (!bbox) {
382
+ console.warn('Viewport bbox not available')
383
+ return
384
+ }
385
+
386
+ const currentViewbox = modeler.value.get('canvas').viewbox()
387
+ const elementMid = {
388
+ x: bbox.x + bbox.width / 2 - 65,
389
+ y: bbox.y + bbox.height / 2
390
+ }
391
+ modeler.value.get('canvas').viewbox({
392
+ x: elementMid.x - currentViewbox.width / 2,
393
+ y: elementMid.y - currentViewbox.height / 2,
394
+ width: currentViewbox.width,
395
+ height: currentViewbox.height
396
+ })
397
+ zoom.value = bbox.width / currentViewbox.width * 1.8
398
+ } catch (e) {
399
+ console.warn('Failed to fit viewport:', e)
290
400
  }
291
- modeler.value.get('canvas').viewbox({
292
- x: elementMid.x - currentViewbox.width / 2,
293
- y: elementMid.y - currentViewbox.height / 2,
294
- width: currentViewbox.width,
295
- height: currentViewbox.height
296
- })
297
- zoom.value = bbox.width / currentViewbox.width * 1.8
298
401
  }
299
402
 
300
403
  // 放大缩小
@@ -324,13 +427,22 @@ const createNewDiagram = async (data: string): Promise<void> => {
324
427
  // 等待DOM更新
325
428
  await nextTick()
326
429
 
327
- adjustPalette()
328
- fitViewport()
430
+ // 延迟执行调整方法,确保DOM完全渲染
431
+ setTimeout(() => {
432
+ try {
433
+ adjustPalette()
434
+ fitViewport()
435
+ console.log('Diagram created successfully')
436
+ } catch (adjustError) {
437
+ console.warn('Failed to adjust palette or viewport:', adjustError)
438
+ // 即使调整失败,也不影响基本功能
439
+ }
440
+ }, 100)
329
441
 
330
- console.log('Diagram created successfully')
331
442
  // fillColor()
332
443
  } catch (err: any) {
333
444
  console.error('Failed to create diagram:', err.message, err.warnings)
445
+ throw err // 重新抛出错误,让调用者知道失败
334
446
  }
335
447
  }
336
448
 
@@ -339,8 +451,23 @@ const adjustPalette = (): void => {
339
451
  try {
340
452
  // 获取 bpmn 设计器实例
341
453
  const canvasElement = canvas.value
342
- if (!canvasElement) return
343
- const djsPalette = canvasElement.children[0].children[1].children[4] as HTMLElement
454
+ if (!canvasElement) {
455
+ console.warn('Canvas element not found for palette adjustment')
456
+ return
457
+ }
458
+
459
+ // 检查DOM结构是否存在
460
+ if (!canvasElement.children || canvasElement.children.length === 0) {
461
+ console.warn('Canvas children not found for palette adjustment')
462
+ return
463
+ }
464
+
465
+ const djsPalette = canvasElement.children[0]?.children[1]?.children[4] as HTMLElement
466
+ if (!djsPalette) {
467
+ console.warn('BPMN palette element not found')
468
+ return
469
+ }
470
+
344
471
  const djsPalStyle: Record<string, string> = {
345
472
  width: '130px',
346
473
  padding: '5px',
@@ -352,7 +479,17 @@ const adjustPalette = (): void => {
352
479
  (djsPalette.style as any)[key] = djsPalStyle[key]
353
480
  }
354
481
  const palette = djsPalette.children[0] as HTMLElement
482
+ if (!palette) {
483
+ console.warn('Palette children not found')
484
+ return
485
+ }
486
+
355
487
  const allGroups = palette.children
488
+ if (allGroups.length === 0) {
489
+ console.warn('No palette groups found')
490
+ return
491
+ }
492
+
356
493
  ;(allGroups[0] as HTMLElement).style.display = 'none'
357
494
  // 修改控件样式
358
495
  for (let gKey = 0; gKey < allGroups.length; gKey++) {
@@ -384,7 +521,7 @@ const adjustPalette = (): void => {
384
521
  }
385
522
  }
386
523
  } catch (e) {
387
- console.log(e)
524
+ console.warn('Failed to adjust palette:', e)
388
525
  }
389
526
  }
390
527
  const fillColor = (): void => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "workflow-bpmn-modeler-andtv-vue3",
3
- "version": "10.0.8",
3
+ "version": "10.1.0",
4
4
  "description": "基于 `Vue3` + `TypeScript` + `Ant Design Vue` 和 `bpmn.io@8.10` ,实现 flowable 的 modeler 模型设计器",
5
5
  "main": "dist/workflow-bpmn-modeler-andtv-vue3.common.js",
6
6
  "module": "dist/workflow-bpmn-modeler-andtv-vue3.common.js",