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

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 __expose();\n // 汉化\n var props = __props;\n var emit = __emit;\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 _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');\n return _context.a(2);\n case 1:\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 _context.n = 4;\n break;\n case 3:\n _context.p = 3;\n _t = _context.v;\n console.error('BPMN Modeler initialization failed:', _t);\n case 4:\n return _context.a(2);\n }\n }, _callee, null, [[0, 3]]);\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 _ref3 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(data) {\n var _t2;\n return _regenerator().w(function (_context2) {\n while (1) switch (_context2.p = _context2.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 _context2.p = 1;\n if (modeler.value) {\n _context2.n = 2;\n break;\n }\n console.error('Modeler not initialized');\n return _context2.a(2);\n case 2:\n console.log('Importing XML data...', data.substring(0, 200) + '...');\n _context2.n = 3;\n return modeler.value.importXML(data);\n case 3:\n console.log('XML imported successfully');\n // 等待DOM更新\n _context2.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 _context2.n = 6;\n break;\n case 5:\n _context2.p = 5;\n _t2 = _context2.v;\n console.error('Failed to create diagram:', _t2.message, _t2.warnings);\n case 6:\n return _context2.a(2);\n }\n }, _callee2, null, [[1, 5]]);\n }));\n return function createNewDiagram(_x) {\n return _ref3.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 _ref4 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee3() {\n var download,\n _yield$modeler$value$,\n xml,\n processElement,\n _args3 = arguments,\n _t3;\n return _regenerator().w(function (_context3) {\n while (1) switch (_context3.p = _context3.n) {\n case 0:\n download = _args3.length > 0 && _args3[0] !== undefined ? _args3[0] : false;\n _context3.p = 1;\n if (modeler.value) {\n _context3.n = 2;\n break;\n }\n return _context3.a(2);\n case 2:\n _context3.n = 3;\n return modeler.value.saveXML({\n format: true\n });\n case 3:\n _yield$modeler$value$ = _context3.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 _context3.a(2, xml);\n case 4:\n _context3.p = 4;\n _t3 = _context3.v;\n console.log(_t3);\n case 5:\n return _context3.a(2);\n }\n }, _callee3, null, [[1, 4]]);\n }));\n return function saveXML() {\n return _ref4.apply(this, arguments);\n };\n }();\n var saveImg = /*#__PURE__*/function () {\n var _ref5 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee4() {\n var type,\n download,\n _yield$modeler$value$2,\n svg,\n processElement,\n _args4 = arguments,\n _t4;\n return _regenerator().w(function (_context4) {\n while (1) switch (_context4.p = _context4.n) {\n case 0:\n type = _args4.length > 0 && _args4[0] !== undefined ? _args4[0] : 'svg';\n download = _args4.length > 1 && _args4[1] !== undefined ? _args4[1] : false;\n _context4.p = 1;\n if (modeler.value) {\n _context4.n = 2;\n break;\n }\n return _context4.a(2);\n case 2:\n _context4.n = 3;\n return modeler.value.saveSVG({\n format: true\n });\n case 3:\n _yield$modeler$value$2 = _context4.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 _context4.a(2, svg);\n case 4:\n _context4.p = 4;\n _t4 = _context4.v;\n console.log(_t4);\n case 5:\n return _context4.a(2);\n }\n }, _callee4, null, [[1, 4]]);\n }));\n return function saveImg() {\n return _ref5.apply(this, arguments);\n };\n }();\n var save = /*#__PURE__*/function () {\n var _ref6 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee5() {\n var process, xml, svg, result;\n return _regenerator().w(function (_context5) {\n while (1) switch (_context5.n) {\n case 0:\n process = getProcess();\n _context5.n = 1;\n return saveXML();\n case 1:\n xml = _context5.v;\n _context5.n = 2;\n return saveImg();\n case 2:\n svg = _context5.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 _context5.a(2);\n }\n }, _callee5);\n }));\n return function save() {\n return _ref6.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 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 // 暴露给父组件\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}");
569
569
 
570
570
  /***/ }),
571
571
 
@@ -2281,7 +2281,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _no
2281
2281
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
2282
2282
 
2283
2283
  "use strict";
2284
- eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_pnpm_css_loader_6_11_0_webpack_5_101_3_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../node_modules/.pnpm/css-loader@6.11.0_webpack@5.101.3/node_modules/css-loader/dist/runtime/noSourceMaps.js */ \"./node_modules/.pnpm/css-loader@6.11.0_webpack@5.101.3/node_modules/css-loader/dist/runtime/noSourceMaps.js\");\n/* harmony import */ var _node_modules_pnpm_css_loader_6_11_0_webpack_5_101_3_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_pnpm_css_loader_6_11_0_webpack_5_101_3_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _node_modules_pnpm_css_loader_6_11_0_webpack_5_101_3_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../node_modules/.pnpm/css-loader@6.11.0_webpack@5.101.3/node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/.pnpm/css-loader@6.11.0_webpack@5.101.3/node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _node_modules_pnpm_css_loader_6_11_0_webpack_5_101_3_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_pnpm_css_loader_6_11_0_webpack_5_101_3_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n// Imports\n\n\nvar ___CSS_LOADER_EXPORT___ = _node_modules_pnpm_css_loader_6_11_0_webpack_5_101_3_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_pnpm_css_loader_6_11_0_webpack_5_101_3_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\n___CSS_LOADER_EXPORT___.push([module.id, \"@import url(https://cdn.jsdelivr.net/npm/bpmn-js@8.10.0/dist/assets/diagram-js.css);\"]);\n___CSS_LOADER_EXPORT___.push([module.id, \"@import url(https://cdn.jsdelivr.net/npm/bpmn-js@8.10.0/dist/assets/bpmn-font/css/bpmn.css);\"]);\n___CSS_LOADER_EXPORT___.push([module.id, \"@import url(https://cdn.jsdelivr.net/npm/bpmn-js@8.10.0/dist/assets/bpmn-font/css/bpmn-codes.css);\"]);\n___CSS_LOADER_EXPORT___.push([module.id, \"@import url(https://cdn.jsdelivr.net/npm/bpmn-js@8.10.0/dist/assets/bpmn-font/css/bpmn-embedded.css);\"]);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"@charset \\\"UTF-8\\\";\\n/* BPMN.js 样式导入 - 使用CDN确保样式正确加载 */\\n/* 视图模式样式 */\\n.view-mode .ant-layout-header,\\n.view-mode .ant-layout-sider,\\n.view-mode .djs-palette,\\n.view-mode .bjs-powered-by {\\n display: none;\\n}\\n.view-mode .ant-spin-mask {\\n background-color: initial;\\n}\\n.view-mode .ant-spin-spinning {\\n display: none;\\n}\\n\\n/* 主容器样式 */\\n.flow-containers {\\n width: 100%;\\n height: 100vh;\\n background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%);\\n overflow: hidden;\\n /* 主布局 */\\n}\\n.flow-containers .main-layout {\\n height: 100%;\\n background: transparent;\\n}\\n.flow-containers {\\n /* 工具栏头部 */\\n}\\n.flow-containers .toolbar-header {\\n background: #f8f9fa;\\n border-bottom: 1px solid #e9ecef;\\n -webkit-box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);\\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);\\n padding: 0;\\n height: 64px;\\n line-height: 64px;\\n}\\n.flow-containers .toolbar-header .toolbar-container {\\n display: -webkit-box;\\n display: -ms-flexbox;\\n display: flex;\\n -webkit-box-pack: justify;\\n -ms-flex-pack: justify;\\n justify-content: space-between;\\n -webkit-box-align: center;\\n -ms-flex-align: center;\\n align-items: center;\\n padding: 0 32px;\\n height: 100%;\\n}\\n.flow-containers .toolbar-header .toolbar-left {\\n display: -webkit-box;\\n display: -ms-flexbox;\\n display: flex;\\n -webkit-box-align: center;\\n -ms-flex-align: center;\\n align-items: center;\\n gap: 20px;\\n}\\n.flow-containers .toolbar-header .toolbar-right {\\n display: -webkit-box;\\n display: -ms-flexbox;\\n display: flex;\\n -webkit-box-align: center;\\n -ms-flex-align: center;\\n align-items: center;\\n gap: 16px;\\n}\\n.flow-containers .toolbar-header .toolbar-group {\\n display: -webkit-box;\\n display: -ms-flexbox;\\n display: flex;\\n -webkit-box-align: center;\\n -ms-flex-align: center;\\n align-items: center;\\n gap: 8px;\\n padding: 0;\\n min-width: -webkit-fit-content;\\n min-width: -moz-fit-content;\\n min-width: fit-content;\\n}\\n.flow-containers .toolbar-header .toolbar-group .group-label {\\n color: #6c757d;\\n font-size: 12px;\\n font-weight: 600;\\n margin-right: 8px;\\n white-space: nowrap;\\n}\\n.flow-containers .toolbar-header .toolbar-btn {\\n background: #ffffff;\\n border: 1px solid #e9ecef;\\n color: #495057;\\n border-radius: 6px;\\n -webkit-transition: all 0.3s ease;\\n transition: all 0.3s ease;\\n height: 36px;\\n padding: 0 12px;\\n font-size: 13px;\\n font-weight: 500;\\n min-width: 36px;\\n display: -webkit-box;\\n display: -ms-flexbox;\\n display: flex;\\n -webkit-box-align: center;\\n -ms-flex-align: center;\\n align-items: center;\\n -webkit-box-pack: center;\\n -ms-flex-pack: center;\\n justify-content: center;\\n}\\n.flow-containers .toolbar-header .toolbar-btn:hover {\\n background: #f8f9fa;\\n border-color: #dee2e6;\\n color: #212529;\\n -webkit-transform: translateY(-1px);\\n transform: translateY(-1px);\\n -webkit-box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\\n}\\n.flow-containers .toolbar-header .toolbar-btn:active {\\n -webkit-transform: translateY(0);\\n transform: translateY(0);\\n -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);\\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);\\n}\\n.flow-containers .toolbar-header .export-btn {\\n background: #f8f9fa;\\n border: 1px solid #e9ecef;\\n color: #6c757d;\\n}\\n.flow-containers .toolbar-header .export-btn:hover {\\n background: #e9ecef;\\n border-color: #dee2e6;\\n color: #495057;\\n}\\n.flow-containers .toolbar-header .save-btn {\\n background: #007bff;\\n border: 1px solid #007bff;\\n border-radius: 6px;\\n font-weight: 600;\\n height: 36px;\\n padding: 0 20px;\\n font-size: 13px;\\n color: white;\\n min-width: 120px;\\n}\\n.flow-containers .toolbar-header .save-btn:hover {\\n background: #0056b3;\\n border-color: #0056b3;\\n -webkit-transform: translateY(-1px);\\n transform: translateY(-1px);\\n -webkit-box-shadow: 0 2px 8px rgba(0, 123, 255, 0.3);\\n box-shadow: 0 2px 8px rgba(0, 123, 255, 0.3);\\n}\\n.flow-containers .toolbar-header .save-btn:active {\\n -webkit-transform: translateY(0);\\n transform: translateY(0);\\n -webkit-box-shadow: 0 1px 3px rgba(0, 123, 255, 0.3);\\n box-shadow: 0 1px 3px rgba(0, 123, 255, 0.3);\\n}\\n.flow-containers {\\n /* 内容布局 */\\n}\\n.flow-containers .content-layout {\\n height: calc(100vh - 64px);\\n background: transparent;\\n}\\n.flow-containers {\\n /* 画布容器 */\\n}\\n.flow-containers .canvas-container {\\n background: white;\\n border-radius: 8px;\\n margin: 16px;\\n -webkit-box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);\\n box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);\\n overflow: hidden;\\n position: relative;\\n}\\n.flow-containers .canvas-container::before {\\n content: \\\"\\\";\\n position: absolute;\\n top: 0;\\n left: 0;\\n right: 0;\\n bottom: 0;\\n background: linear-gradient(45deg, #f8f9fa 25%, transparent 25%), linear-gradient(-45deg, #f8f9fa 25%, transparent 25%), linear-gradient(45deg, transparent 75%, #f8f9fa 75%), linear-gradient(-45deg, transparent 75%, #f8f9fa 75%);\\n background-size: 20px 20px;\\n background-position: 0 0, 0 10px, 10px -10px, -10px 0px;\\n opacity: 0.3;\\n pointer-events: none;\\n}\\n.flow-containers .canvas {\\n width: 100%;\\n height: 100%;\\n position: relative;\\n z-index: 1;\\n min-height: 400px;\\n /* 确保BPMN容器正确显示 */\\n}\\n.flow-containers .canvas :deep(.djs-container) {\\n width: 100% !important;\\n height: 100% !important;\\n min-height: 400px !important;\\n}\\n.flow-containers .canvas :deep(.djs-container svg) {\\n width: 100% !important;\\n height: 100% !important;\\n background: white !important;\\n}\\n.flow-containers .canvas :deep(.djs-canvas) {\\n background: white !important;\\n}\\n.flow-containers {\\n /* 属性面板 */\\n}\\n.flow-containers .property-panel {\\n width: 380px !important;\\n min-width: 380px !important;\\n max-width: 380px !important;\\n background: white;\\n border-radius: 8px;\\n margin: 16px 20px 16px 0;\\n -webkit-box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);\\n box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);\\n overflow: hidden;\\n display: -webkit-box;\\n display: -ms-flexbox;\\n display: flex;\\n -webkit-box-orient: vertical;\\n -webkit-box-direction: normal;\\n -ms-flex-direction: column;\\n flex-direction: column;\\n height: calc(100vh - 96px);\\n}\\n.flow-containers .property-panel :deep(.property-panel) {\\n height: 100%;\\n overflow-y: auto;\\n overflow-x: hidden;\\n}\\n.flow-containers {\\n /* BPMN 工具栏样式优化 */\\n}\\n.flow-containers .djs-palette {\\n left: 20px !important;\\n top: 20px !important;\\n border: none !important;\\n border-radius: 12px !important;\\n -webkit-box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15) !important;\\n box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15) !important;\\n background: white !important;\\n padding: 16px !important;\\n width: 160px !important;\\n min-width: 160px !important;\\n}\\n.flow-containers .djs-palette .djs-palette-entries .djs-palette-entry {\\n border-radius: 8px !important;\\n margin: 6px 0 !important;\\n -webkit-transition: all 0.3s ease !important;\\n transition: all 0.3s ease !important;\\n width: 100% !important;\\n min-height: 40px !important;\\n display: -webkit-box !important;\\n display: -ms-flexbox !important;\\n display: flex !important;\\n -webkit-box-align: center !important;\\n -ms-flex-align: center !important;\\n align-items: center !important;\\n}\\n.flow-containers .djs-palette .djs-palette-entries .djs-palette-entry:hover {\\n background: linear-gradient(135deg, #e6f7ff 0%, #bae7ff 100%) !important;\\n -webkit-transform: translateY(-1px) !important;\\n transform: translateY(-1px) !important;\\n -webkit-box-shadow: 0 4px 12px rgba(24, 144, 255, 0.2) !important;\\n box-shadow: 0 4px 12px rgba(24, 144, 255, 0.2) !important;\\n}\\n.flow-containers .djs-palette .djs-palette-entries .djs-palette-entry .entry {\\n padding: 10px 12px !important;\\n border-radius: 8px !important;\\n font-size: 13px !important;\\n font-weight: 500 !important;\\n color: #262626 !important;\\n width: 100% !important;\\n white-space: nowrap !important;\\n overflow: hidden !important;\\n text-overflow: ellipsis !important;\\n display: -webkit-box !important;\\n display: -ms-flexbox !important;\\n display: flex !important;\\n -webkit-box-align: center !important;\\n -ms-flex-align: center !important;\\n align-items: center !important;\\n gap: 8px !important;\\n}\\n.flow-containers {\\n /* BPMN 画布样式 */\\n}\\n.flow-containers .djs-container svg {\\n min-height: 100%;\\n background: transparent;\\n}\\n.flow-containers {\\n /* 表单样式优化 */\\n}\\n.flow-containers .ant-form-item-label > label {\\n font-size: 13px;\\n font-weight: 500;\\n color: #262626;\\n}\\n.flow-containers {\\n /* 响应式设计 */\\n}\\n@media (max-width: 1200px) {\\n.flow-containers .property-panel {\\n width: 320px !important;\\n min-width: 320px !important;\\n max-width: 320px !important;\\n margin: 16px 16px 16px 0;\\n}\\n.flow-containers .djs-palette {\\n width: 140px !important;\\n min-width: 140px !important;\\n}\\n}\\n@media (max-width: 768px) {\\n.flow-containers .toolbar-container {\\n padding: 0 16px;\\n}\\n.flow-containers .toolbar-group {\\n padding: 6px 12px;\\n gap: 6px;\\n}\\n.flow-containers .toolbar-group .group-label {\\n display: none;\\n}\\n.flow-containers .property-panel {\\n width: 100% !important;\\n min-width: 100% !important;\\n max-width: 100% !important;\\n margin: 0;\\n border-radius: 0;\\n}\\n}\", \"\"]);\n// Exports\n/* harmony default export */ __webpack_exports__[\"default\"] = (___CSS_LOADER_EXPORT___);\n\n\n//# sourceURL=webpack://workflow-bpmn-modeler-andtv-vue3/./package/index.vue?./node_modules/.pnpm/css-loader@6.11.0_webpack@5.101.3/node_modules/css-loader/dist/cjs.js??clonedRuleSet-22.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/stylePostLoader.js!./node_modules/.pnpm/postcss-loader@6.2.1_postcss@8.5.6_webpack@5.101.3/node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use%5B2%5D!./node_modules/.pnpm/sass-loader@13.3.3_sass@1.92.0_webpack@5.101.3/node_modules/sass-loader/dist/cjs.js??clonedRuleSet-22.use%5B3%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}");
2284
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_pnpm_css_loader_6_11_0_webpack_5_101_3_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../node_modules/.pnpm/css-loader@6.11.0_webpack@5.101.3/node_modules/css-loader/dist/runtime/noSourceMaps.js */ \"./node_modules/.pnpm/css-loader@6.11.0_webpack@5.101.3/node_modules/css-loader/dist/runtime/noSourceMaps.js\");\n/* harmony import */ var _node_modules_pnpm_css_loader_6_11_0_webpack_5_101_3_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_pnpm_css_loader_6_11_0_webpack_5_101_3_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _node_modules_pnpm_css_loader_6_11_0_webpack_5_101_3_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../node_modules/.pnpm/css-loader@6.11.0_webpack@5.101.3/node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/.pnpm/css-loader@6.11.0_webpack@5.101.3/node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _node_modules_pnpm_css_loader_6_11_0_webpack_5_101_3_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_pnpm_css_loader_6_11_0_webpack_5_101_3_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n// Imports\n\n\nvar ___CSS_LOADER_EXPORT___ = _node_modules_pnpm_css_loader_6_11_0_webpack_5_101_3_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_pnpm_css_loader_6_11_0_webpack_5_101_3_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\n___CSS_LOADER_EXPORT___.push([module.id, \"@import url(https://cdn.jsdelivr.net/npm/bpmn-js@8.10.0/dist/assets/diagram-js.css);\"]);\n___CSS_LOADER_EXPORT___.push([module.id, \"@import url(https://cdn.jsdelivr.net/npm/bpmn-js@8.10.0/dist/assets/bpmn-font/css/bpmn.css);\"]);\n___CSS_LOADER_EXPORT___.push([module.id, \"@import url(https://cdn.jsdelivr.net/npm/bpmn-js@8.10.0/dist/assets/bpmn-font/css/bpmn-codes.css);\"]);\n___CSS_LOADER_EXPORT___.push([module.id, \"@import url(https://cdn.jsdelivr.net/npm/bpmn-js@8.10.0/dist/assets/bpmn-font/css/bpmn-embedded.css);\"]);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"@charset \\\"UTF-8\\\";\\n/* BPMN.js 样式导入 - 使用CDN确保样式正确加载 */\\n/* 视图模式样式 */\\n.view-mode .ant-layout-header,\\n.view-mode .ant-layout-sider,\\n.view-mode .djs-palette,\\n.view-mode .bjs-powered-by {\\n display: none;\\n}\\n.view-mode .ant-spin-mask {\\n background-color: initial;\\n}\\n.view-mode .ant-spin-spinning {\\n display: none;\\n}\\n\\n/* 主容器样式 */\\n.flow-containers {\\n width: 100%;\\n height: 100vh;\\n background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%);\\n overflow: hidden;\\n /* 主布局 */\\n}\\n.flow-containers .main-layout {\\n height: 100%;\\n background: transparent;\\n}\\n.flow-containers {\\n /* 工具栏头部 */\\n}\\n.flow-containers .toolbar-header {\\n background: #f8f9fa;\\n border-bottom: 1px solid #e9ecef;\\n -webkit-box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);\\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);\\n padding: 0;\\n height: 64px;\\n line-height: 64px;\\n}\\n.flow-containers .toolbar-header .toolbar-container {\\n display: -webkit-box;\\n display: -ms-flexbox;\\n display: flex;\\n -webkit-box-pack: justify;\\n -ms-flex-pack: justify;\\n justify-content: space-between;\\n -webkit-box-align: center;\\n -ms-flex-align: center;\\n align-items: center;\\n padding: 0 32px;\\n height: 100%;\\n}\\n.flow-containers .toolbar-header .toolbar-left {\\n display: -webkit-box;\\n display: -ms-flexbox;\\n display: flex;\\n -webkit-box-align: center;\\n -ms-flex-align: center;\\n align-items: center;\\n gap: 20px;\\n}\\n.flow-containers .toolbar-header .toolbar-right {\\n display: -webkit-box;\\n display: -ms-flexbox;\\n display: flex;\\n -webkit-box-align: center;\\n -ms-flex-align: center;\\n align-items: center;\\n gap: 16px;\\n}\\n.flow-containers .toolbar-header .toolbar-group {\\n display: -webkit-box;\\n display: -ms-flexbox;\\n display: flex;\\n -webkit-box-align: center;\\n -ms-flex-align: center;\\n align-items: center;\\n gap: 8px;\\n padding: 0;\\n min-width: -webkit-fit-content;\\n min-width: -moz-fit-content;\\n min-width: fit-content;\\n}\\n.flow-containers .toolbar-header .toolbar-group .group-label {\\n color: #6c757d;\\n font-size: 12px;\\n font-weight: 600;\\n margin-right: 8px;\\n white-space: nowrap;\\n}\\n.flow-containers .toolbar-header .toolbar-btn {\\n background: #ffffff;\\n border: 1px solid #e9ecef;\\n color: #495057;\\n border-radius: 6px;\\n -webkit-transition: all 0.3s ease;\\n transition: all 0.3s ease;\\n height: 36px;\\n padding: 0 12px;\\n font-size: 13px;\\n font-weight: 500;\\n min-width: 36px;\\n display: -webkit-box;\\n display: -ms-flexbox;\\n display: flex;\\n -webkit-box-align: center;\\n -ms-flex-align: center;\\n align-items: center;\\n -webkit-box-pack: center;\\n -ms-flex-pack: center;\\n justify-content: center;\\n}\\n.flow-containers .toolbar-header .toolbar-btn:hover {\\n background: #f8f9fa;\\n border-color: #dee2e6;\\n color: #212529;\\n -webkit-transform: translateY(-1px);\\n transform: translateY(-1px);\\n -webkit-box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\\n}\\n.flow-containers .toolbar-header .toolbar-btn:active {\\n -webkit-transform: translateY(0);\\n transform: translateY(0);\\n -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);\\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);\\n}\\n.flow-containers .toolbar-header .export-btn {\\n background: #f8f9fa;\\n border: 1px solid #e9ecef;\\n color: #6c757d;\\n}\\n.flow-containers .toolbar-header .export-btn:hover {\\n background: #e9ecef;\\n border-color: #dee2e6;\\n color: #495057;\\n}\\n.flow-containers .toolbar-header .save-btn {\\n background: #007bff;\\n border: 1px solid #007bff;\\n border-radius: 6px;\\n font-weight: 600;\\n height: 36px;\\n padding: 0 20px;\\n font-size: 13px;\\n color: white;\\n min-width: 120px;\\n}\\n.flow-containers .toolbar-header .save-btn:hover {\\n background: #0056b3;\\n border-color: #0056b3;\\n -webkit-transform: translateY(-1px);\\n transform: translateY(-1px);\\n -webkit-box-shadow: 0 2px 8px rgba(0, 123, 255, 0.3);\\n box-shadow: 0 2px 8px rgba(0, 123, 255, 0.3);\\n}\\n.flow-containers .toolbar-header .save-btn:active {\\n -webkit-transform: translateY(0);\\n transform: translateY(0);\\n -webkit-box-shadow: 0 1px 3px rgba(0, 123, 255, 0.3);\\n box-shadow: 0 1px 3px rgba(0, 123, 255, 0.3);\\n}\\n.flow-containers {\\n /* 内容布局 */\\n}\\n.flow-containers .content-layout {\\n height: calc(100vh - 64px);\\n background: transparent;\\n}\\n.flow-containers {\\n /* 画布容器 */\\n}\\n.flow-containers .canvas-container {\\n background: white;\\n border-radius: 8px;\\n margin: 16px;\\n -webkit-box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);\\n box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);\\n overflow: hidden;\\n position: relative;\\n}\\n.flow-containers .canvas-container::before {\\n content: \\\"\\\";\\n position: absolute;\\n top: 0;\\n left: 0;\\n right: 0;\\n bottom: 0;\\n background: linear-gradient(45deg, #f8f9fa 25%, transparent 25%), linear-gradient(-45deg, #f8f9fa 25%, transparent 25%), linear-gradient(45deg, transparent 75%, #f8f9fa 75%), linear-gradient(-45deg, transparent 75%, #f8f9fa 75%);\\n background-size: 20px 20px;\\n background-position: 0 0, 0 10px, 10px -10px, -10px 0px;\\n opacity: 0.3;\\n pointer-events: none;\\n}\\n.flow-containers .canvas {\\n width: 100%;\\n height: 100%;\\n position: relative;\\n z-index: 1;\\n min-height: 400px;\\n display: block;\\n /* 确保BPMN容器正确显示 */\\n}\\n.flow-containers .canvas :deep(.djs-container) {\\n width: 100% !important;\\n height: 100% !important;\\n min-height: 400px !important;\\n display: block !important;\\n}\\n.flow-containers .canvas :deep(.djs-container svg) {\\n width: 100% !important;\\n height: 100% !important;\\n background: white !important;\\n display: block !important;\\n}\\n.flow-containers .canvas :deep(.djs-canvas) {\\n background: white !important;\\n width: 100% !important;\\n height: 100% !important;\\n}\\n.flow-containers .canvas {\\n /* 确保在jeecgboot环境中正确显示 */\\n}\\n.flow-containers .canvas :deep(.viewport) {\\n width: 100% !important;\\n height: 100% !important;\\n}\\n.flow-containers {\\n /* 属性面板 */\\n}\\n.flow-containers .property-panel {\\n width: 380px !important;\\n min-width: 380px !important;\\n max-width: 380px !important;\\n background: white;\\n border-radius: 8px;\\n margin: 16px 20px 16px 0;\\n -webkit-box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);\\n box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);\\n overflow: hidden;\\n display: -webkit-box;\\n display: -ms-flexbox;\\n display: flex;\\n -webkit-box-orient: vertical;\\n -webkit-box-direction: normal;\\n -ms-flex-direction: column;\\n flex-direction: column;\\n height: calc(100vh - 96px);\\n}\\n.flow-containers .property-panel :deep(.property-panel) {\\n height: 100%;\\n overflow-y: auto;\\n overflow-x: hidden;\\n}\\n.flow-containers {\\n /* BPMN 工具栏样式优化 */\\n}\\n.flow-containers .djs-palette {\\n left: 20px !important;\\n top: 20px !important;\\n border: none !important;\\n border-radius: 12px !important;\\n -webkit-box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15) !important;\\n box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15) !important;\\n background: white !important;\\n padding: 16px !important;\\n width: 160px !important;\\n min-width: 160px !important;\\n}\\n.flow-containers .djs-palette .djs-palette-entries .djs-palette-entry {\\n border-radius: 8px !important;\\n margin: 6px 0 !important;\\n -webkit-transition: all 0.3s ease !important;\\n transition: all 0.3s ease !important;\\n width: 100% !important;\\n min-height: 40px !important;\\n display: -webkit-box !important;\\n display: -ms-flexbox !important;\\n display: flex !important;\\n -webkit-box-align: center !important;\\n -ms-flex-align: center !important;\\n align-items: center !important;\\n}\\n.flow-containers .djs-palette .djs-palette-entries .djs-palette-entry:hover {\\n background: linear-gradient(135deg, #e6f7ff 0%, #bae7ff 100%) !important;\\n -webkit-transform: translateY(-1px) !important;\\n transform: translateY(-1px) !important;\\n -webkit-box-shadow: 0 4px 12px rgba(24, 144, 255, 0.2) !important;\\n box-shadow: 0 4px 12px rgba(24, 144, 255, 0.2) !important;\\n}\\n.flow-containers .djs-palette .djs-palette-entries .djs-palette-entry .entry {\\n padding: 10px 12px !important;\\n border-radius: 8px !important;\\n font-size: 13px !important;\\n font-weight: 500 !important;\\n color: #262626 !important;\\n width: 100% !important;\\n white-space: nowrap !important;\\n overflow: hidden !important;\\n text-overflow: ellipsis !important;\\n display: -webkit-box !important;\\n display: -ms-flexbox !important;\\n display: flex !important;\\n -webkit-box-align: center !important;\\n -ms-flex-align: center !important;\\n align-items: center !important;\\n gap: 8px !important;\\n}\\n.flow-containers {\\n /* BPMN 画布样式 */\\n}\\n.flow-containers .djs-container svg {\\n min-height: 100%;\\n background: transparent;\\n}\\n.flow-containers {\\n /* 表单样式优化 */\\n}\\n.flow-containers .ant-form-item-label > label {\\n font-size: 13px;\\n font-weight: 500;\\n color: #262626;\\n}\\n.flow-containers {\\n /* 响应式设计 */\\n}\\n@media (max-width: 1200px) {\\n.flow-containers .property-panel {\\n width: 320px !important;\\n min-width: 320px !important;\\n max-width: 320px !important;\\n margin: 16px 16px 16px 0;\\n}\\n.flow-containers .djs-palette {\\n width: 140px !important;\\n min-width: 140px !important;\\n}\\n}\\n@media (max-width: 768px) {\\n.flow-containers .toolbar-container {\\n padding: 0 16px;\\n}\\n.flow-containers .toolbar-group {\\n padding: 6px 12px;\\n gap: 6px;\\n}\\n.flow-containers .toolbar-group .group-label {\\n display: none;\\n}\\n.flow-containers .property-panel {\\n width: 100% !important;\\n min-width: 100% !important;\\n max-width: 100% !important;\\n margin: 0;\\n border-radius: 0;\\n}\\n}\", \"\"]);\n// Exports\n/* harmony default export */ __webpack_exports__[\"default\"] = (___CSS_LOADER_EXPORT___);\n\n\n//# sourceURL=webpack://workflow-bpmn-modeler-andtv-vue3/./package/index.vue?./node_modules/.pnpm/css-loader@6.11.0_webpack@5.101.3/node_modules/css-loader/dist/cjs.js??clonedRuleSet-22.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/stylePostLoader.js!./node_modules/.pnpm/postcss-loader@6.2.1_postcss@8.5.6_webpack@5.101.3/node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use%5B2%5D!./node_modules/.pnpm/sass-loader@13.3.3_sass@1.92.0_webpack@5.101.3/node_modules/sass-loader/dist/cjs.js??clonedRuleSet-22.use%5B3%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}");
2285
2285
 
2286
2286
  /***/ }),
2287
2287
 
@@ -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 __expose();\n // 汉化\n var props = __props;\n var emit = __emit;\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 _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');\n return _context.a(2);\n case 1:\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 _context.n = 4;\n break;\n case 3:\n _context.p = 3;\n _t = _context.v;\n console.error('BPMN Modeler initialization failed:', _t);\n case 4:\n return _context.a(2);\n }\n }, _callee, null, [[0, 3]]);\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 _ref3 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(data) {\n var _t2;\n return _regenerator().w(function (_context2) {\n while (1) switch (_context2.p = _context2.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 _context2.p = 1;\n if (modeler.value) {\n _context2.n = 2;\n break;\n }\n console.error('Modeler not initialized');\n return _context2.a(2);\n case 2:\n console.log('Importing XML data...', data.substring(0, 200) + '...');\n _context2.n = 3;\n return modeler.value.importXML(data);\n case 3:\n console.log('XML imported successfully');\n // 等待DOM更新\n _context2.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 _context2.n = 6;\n break;\n case 5:\n _context2.p = 5;\n _t2 = _context2.v;\n console.error('Failed to create diagram:', _t2.message, _t2.warnings);\n case 6:\n return _context2.a(2);\n }\n }, _callee2, null, [[1, 5]]);\n }));\n return function createNewDiagram(_x) {\n return _ref3.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 _ref4 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee3() {\n var download,\n _yield$modeler$value$,\n xml,\n processElement,\n _args3 = arguments,\n _t3;\n return _regenerator().w(function (_context3) {\n while (1) switch (_context3.p = _context3.n) {\n case 0:\n download = _args3.length > 0 && _args3[0] !== undefined ? _args3[0] : false;\n _context3.p = 1;\n if (modeler.value) {\n _context3.n = 2;\n break;\n }\n return _context3.a(2);\n case 2:\n _context3.n = 3;\n return modeler.value.saveXML({\n format: true\n });\n case 3:\n _yield$modeler$value$ = _context3.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 _context3.a(2, xml);\n case 4:\n _context3.p = 4;\n _t3 = _context3.v;\n console.log(_t3);\n case 5:\n return _context3.a(2);\n }\n }, _callee3, null, [[1, 4]]);\n }));\n return function saveXML() {\n return _ref4.apply(this, arguments);\n };\n }();\n var saveImg = /*#__PURE__*/function () {\n var _ref5 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee4() {\n var type,\n download,\n _yield$modeler$value$2,\n svg,\n processElement,\n _args4 = arguments,\n _t4;\n return _regenerator().w(function (_context4) {\n while (1) switch (_context4.p = _context4.n) {\n case 0:\n type = _args4.length > 0 && _args4[0] !== undefined ? _args4[0] : 'svg';\n download = _args4.length > 1 && _args4[1] !== undefined ? _args4[1] : false;\n _context4.p = 1;\n if (modeler.value) {\n _context4.n = 2;\n break;\n }\n return _context4.a(2);\n case 2:\n _context4.n = 3;\n return modeler.value.saveSVG({\n format: true\n });\n case 3:\n _yield$modeler$value$2 = _context4.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 _context4.a(2, svg);\n case 4:\n _context4.p = 4;\n _t4 = _context4.v;\n console.log(_t4);\n case 5:\n return _context4.a(2);\n }\n }, _callee4, null, [[1, 4]]);\n }));\n return function saveImg() {\n return _ref5.apply(this, arguments);\n };\n }();\n var save = /*#__PURE__*/function () {\n var _ref6 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee5() {\n var process, xml, svg, result;\n return _regenerator().w(function (_context5) {\n while (1) switch (_context5.n) {\n case 0:\n process = getProcess();\n _context5.n = 1;\n return saveXML();\n case 1:\n xml = _context5.v;\n _context5.n = 2;\n return saveImg();\n case 2:\n svg = _context5.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 _context5.a(2);\n }\n }, _callee5);\n }));\n return function save() {\n return _ref6.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 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 // 暴露给父组件\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}");
569
569
 
570
570
  /***/ }),
571
571
 
@@ -2281,7 +2281,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _no
2281
2281
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
2282
2282
 
2283
2283
  "use strict";
2284
- eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_pnpm_css_loader_6_11_0_webpack_5_101_3_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../node_modules/.pnpm/css-loader@6.11.0_webpack@5.101.3/node_modules/css-loader/dist/runtime/noSourceMaps.js */ \"./node_modules/.pnpm/css-loader@6.11.0_webpack@5.101.3/node_modules/css-loader/dist/runtime/noSourceMaps.js\");\n/* harmony import */ var _node_modules_pnpm_css_loader_6_11_0_webpack_5_101_3_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_pnpm_css_loader_6_11_0_webpack_5_101_3_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _node_modules_pnpm_css_loader_6_11_0_webpack_5_101_3_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../node_modules/.pnpm/css-loader@6.11.0_webpack@5.101.3/node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/.pnpm/css-loader@6.11.0_webpack@5.101.3/node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _node_modules_pnpm_css_loader_6_11_0_webpack_5_101_3_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_pnpm_css_loader_6_11_0_webpack_5_101_3_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n// Imports\n\n\nvar ___CSS_LOADER_EXPORT___ = _node_modules_pnpm_css_loader_6_11_0_webpack_5_101_3_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_pnpm_css_loader_6_11_0_webpack_5_101_3_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\n___CSS_LOADER_EXPORT___.push([module.id, \"@import url(https://cdn.jsdelivr.net/npm/bpmn-js@8.10.0/dist/assets/diagram-js.css);\"]);\n___CSS_LOADER_EXPORT___.push([module.id, \"@import url(https://cdn.jsdelivr.net/npm/bpmn-js@8.10.0/dist/assets/bpmn-font/css/bpmn.css);\"]);\n___CSS_LOADER_EXPORT___.push([module.id, \"@import url(https://cdn.jsdelivr.net/npm/bpmn-js@8.10.0/dist/assets/bpmn-font/css/bpmn-codes.css);\"]);\n___CSS_LOADER_EXPORT___.push([module.id, \"@import url(https://cdn.jsdelivr.net/npm/bpmn-js@8.10.0/dist/assets/bpmn-font/css/bpmn-embedded.css);\"]);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"@charset \\\"UTF-8\\\";\\n/* BPMN.js 样式导入 - 使用CDN确保样式正确加载 */\\n/* 视图模式样式 */\\n.view-mode .ant-layout-header,\\n.view-mode .ant-layout-sider,\\n.view-mode .djs-palette,\\n.view-mode .bjs-powered-by {\\n display: none;\\n}\\n.view-mode .ant-spin-mask {\\n background-color: initial;\\n}\\n.view-mode .ant-spin-spinning {\\n display: none;\\n}\\n\\n/* 主容器样式 */\\n.flow-containers {\\n width: 100%;\\n height: 100vh;\\n background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%);\\n overflow: hidden;\\n /* 主布局 */\\n}\\n.flow-containers .main-layout {\\n height: 100%;\\n background: transparent;\\n}\\n.flow-containers {\\n /* 工具栏头部 */\\n}\\n.flow-containers .toolbar-header {\\n background: #f8f9fa;\\n border-bottom: 1px solid #e9ecef;\\n -webkit-box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);\\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);\\n padding: 0;\\n height: 64px;\\n line-height: 64px;\\n}\\n.flow-containers .toolbar-header .toolbar-container {\\n display: -webkit-box;\\n display: -ms-flexbox;\\n display: flex;\\n -webkit-box-pack: justify;\\n -ms-flex-pack: justify;\\n justify-content: space-between;\\n -webkit-box-align: center;\\n -ms-flex-align: center;\\n align-items: center;\\n padding: 0 32px;\\n height: 100%;\\n}\\n.flow-containers .toolbar-header .toolbar-left {\\n display: -webkit-box;\\n display: -ms-flexbox;\\n display: flex;\\n -webkit-box-align: center;\\n -ms-flex-align: center;\\n align-items: center;\\n gap: 20px;\\n}\\n.flow-containers .toolbar-header .toolbar-right {\\n display: -webkit-box;\\n display: -ms-flexbox;\\n display: flex;\\n -webkit-box-align: center;\\n -ms-flex-align: center;\\n align-items: center;\\n gap: 16px;\\n}\\n.flow-containers .toolbar-header .toolbar-group {\\n display: -webkit-box;\\n display: -ms-flexbox;\\n display: flex;\\n -webkit-box-align: center;\\n -ms-flex-align: center;\\n align-items: center;\\n gap: 8px;\\n padding: 0;\\n min-width: -webkit-fit-content;\\n min-width: -moz-fit-content;\\n min-width: fit-content;\\n}\\n.flow-containers .toolbar-header .toolbar-group .group-label {\\n color: #6c757d;\\n font-size: 12px;\\n font-weight: 600;\\n margin-right: 8px;\\n white-space: nowrap;\\n}\\n.flow-containers .toolbar-header .toolbar-btn {\\n background: #ffffff;\\n border: 1px solid #e9ecef;\\n color: #495057;\\n border-radius: 6px;\\n -webkit-transition: all 0.3s ease;\\n transition: all 0.3s ease;\\n height: 36px;\\n padding: 0 12px;\\n font-size: 13px;\\n font-weight: 500;\\n min-width: 36px;\\n display: -webkit-box;\\n display: -ms-flexbox;\\n display: flex;\\n -webkit-box-align: center;\\n -ms-flex-align: center;\\n align-items: center;\\n -webkit-box-pack: center;\\n -ms-flex-pack: center;\\n justify-content: center;\\n}\\n.flow-containers .toolbar-header .toolbar-btn:hover {\\n background: #f8f9fa;\\n border-color: #dee2e6;\\n color: #212529;\\n -webkit-transform: translateY(-1px);\\n transform: translateY(-1px);\\n -webkit-box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\\n}\\n.flow-containers .toolbar-header .toolbar-btn:active {\\n -webkit-transform: translateY(0);\\n transform: translateY(0);\\n -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);\\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);\\n}\\n.flow-containers .toolbar-header .export-btn {\\n background: #f8f9fa;\\n border: 1px solid #e9ecef;\\n color: #6c757d;\\n}\\n.flow-containers .toolbar-header .export-btn:hover {\\n background: #e9ecef;\\n border-color: #dee2e6;\\n color: #495057;\\n}\\n.flow-containers .toolbar-header .save-btn {\\n background: #007bff;\\n border: 1px solid #007bff;\\n border-radius: 6px;\\n font-weight: 600;\\n height: 36px;\\n padding: 0 20px;\\n font-size: 13px;\\n color: white;\\n min-width: 120px;\\n}\\n.flow-containers .toolbar-header .save-btn:hover {\\n background: #0056b3;\\n border-color: #0056b3;\\n -webkit-transform: translateY(-1px);\\n transform: translateY(-1px);\\n -webkit-box-shadow: 0 2px 8px rgba(0, 123, 255, 0.3);\\n box-shadow: 0 2px 8px rgba(0, 123, 255, 0.3);\\n}\\n.flow-containers .toolbar-header .save-btn:active {\\n -webkit-transform: translateY(0);\\n transform: translateY(0);\\n -webkit-box-shadow: 0 1px 3px rgba(0, 123, 255, 0.3);\\n box-shadow: 0 1px 3px rgba(0, 123, 255, 0.3);\\n}\\n.flow-containers {\\n /* 内容布局 */\\n}\\n.flow-containers .content-layout {\\n height: calc(100vh - 64px);\\n background: transparent;\\n}\\n.flow-containers {\\n /* 画布容器 */\\n}\\n.flow-containers .canvas-container {\\n background: white;\\n border-radius: 8px;\\n margin: 16px;\\n -webkit-box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);\\n box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);\\n overflow: hidden;\\n position: relative;\\n}\\n.flow-containers .canvas-container::before {\\n content: \\\"\\\";\\n position: absolute;\\n top: 0;\\n left: 0;\\n right: 0;\\n bottom: 0;\\n background: linear-gradient(45deg, #f8f9fa 25%, transparent 25%), linear-gradient(-45deg, #f8f9fa 25%, transparent 25%), linear-gradient(45deg, transparent 75%, #f8f9fa 75%), linear-gradient(-45deg, transparent 75%, #f8f9fa 75%);\\n background-size: 20px 20px;\\n background-position: 0 0, 0 10px, 10px -10px, -10px 0px;\\n opacity: 0.3;\\n pointer-events: none;\\n}\\n.flow-containers .canvas {\\n width: 100%;\\n height: 100%;\\n position: relative;\\n z-index: 1;\\n min-height: 400px;\\n /* 确保BPMN容器正确显示 */\\n}\\n.flow-containers .canvas :deep(.djs-container) {\\n width: 100% !important;\\n height: 100% !important;\\n min-height: 400px !important;\\n}\\n.flow-containers .canvas :deep(.djs-container svg) {\\n width: 100% !important;\\n height: 100% !important;\\n background: white !important;\\n}\\n.flow-containers .canvas :deep(.djs-canvas) {\\n background: white !important;\\n}\\n.flow-containers {\\n /* 属性面板 */\\n}\\n.flow-containers .property-panel {\\n width: 380px !important;\\n min-width: 380px !important;\\n max-width: 380px !important;\\n background: white;\\n border-radius: 8px;\\n margin: 16px 20px 16px 0;\\n -webkit-box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);\\n box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);\\n overflow: hidden;\\n display: -webkit-box;\\n display: -ms-flexbox;\\n display: flex;\\n -webkit-box-orient: vertical;\\n -webkit-box-direction: normal;\\n -ms-flex-direction: column;\\n flex-direction: column;\\n height: calc(100vh - 96px);\\n}\\n.flow-containers .property-panel :deep(.property-panel) {\\n height: 100%;\\n overflow-y: auto;\\n overflow-x: hidden;\\n}\\n.flow-containers {\\n /* BPMN 工具栏样式优化 */\\n}\\n.flow-containers .djs-palette {\\n left: 20px !important;\\n top: 20px !important;\\n border: none !important;\\n border-radius: 12px !important;\\n -webkit-box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15) !important;\\n box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15) !important;\\n background: white !important;\\n padding: 16px !important;\\n width: 160px !important;\\n min-width: 160px !important;\\n}\\n.flow-containers .djs-palette .djs-palette-entries .djs-palette-entry {\\n border-radius: 8px !important;\\n margin: 6px 0 !important;\\n -webkit-transition: all 0.3s ease !important;\\n transition: all 0.3s ease !important;\\n width: 100% !important;\\n min-height: 40px !important;\\n display: -webkit-box !important;\\n display: -ms-flexbox !important;\\n display: flex !important;\\n -webkit-box-align: center !important;\\n -ms-flex-align: center !important;\\n align-items: center !important;\\n}\\n.flow-containers .djs-palette .djs-palette-entries .djs-palette-entry:hover {\\n background: linear-gradient(135deg, #e6f7ff 0%, #bae7ff 100%) !important;\\n -webkit-transform: translateY(-1px) !important;\\n transform: translateY(-1px) !important;\\n -webkit-box-shadow: 0 4px 12px rgba(24, 144, 255, 0.2) !important;\\n box-shadow: 0 4px 12px rgba(24, 144, 255, 0.2) !important;\\n}\\n.flow-containers .djs-palette .djs-palette-entries .djs-palette-entry .entry {\\n padding: 10px 12px !important;\\n border-radius: 8px !important;\\n font-size: 13px !important;\\n font-weight: 500 !important;\\n color: #262626 !important;\\n width: 100% !important;\\n white-space: nowrap !important;\\n overflow: hidden !important;\\n text-overflow: ellipsis !important;\\n display: -webkit-box !important;\\n display: -ms-flexbox !important;\\n display: flex !important;\\n -webkit-box-align: center !important;\\n -ms-flex-align: center !important;\\n align-items: center !important;\\n gap: 8px !important;\\n}\\n.flow-containers {\\n /* BPMN 画布样式 */\\n}\\n.flow-containers .djs-container svg {\\n min-height: 100%;\\n background: transparent;\\n}\\n.flow-containers {\\n /* 表单样式优化 */\\n}\\n.flow-containers .ant-form-item-label > label {\\n font-size: 13px;\\n font-weight: 500;\\n color: #262626;\\n}\\n.flow-containers {\\n /* 响应式设计 */\\n}\\n@media (max-width: 1200px) {\\n.flow-containers .property-panel {\\n width: 320px !important;\\n min-width: 320px !important;\\n max-width: 320px !important;\\n margin: 16px 16px 16px 0;\\n}\\n.flow-containers .djs-palette {\\n width: 140px !important;\\n min-width: 140px !important;\\n}\\n}\\n@media (max-width: 768px) {\\n.flow-containers .toolbar-container {\\n padding: 0 16px;\\n}\\n.flow-containers .toolbar-group {\\n padding: 6px 12px;\\n gap: 6px;\\n}\\n.flow-containers .toolbar-group .group-label {\\n display: none;\\n}\\n.flow-containers .property-panel {\\n width: 100% !important;\\n min-width: 100% !important;\\n max-width: 100% !important;\\n margin: 0;\\n border-radius: 0;\\n}\\n}\", \"\"]);\n// Exports\n/* harmony default export */ __webpack_exports__[\"default\"] = (___CSS_LOADER_EXPORT___);\n\n\n//# sourceURL=webpack://WorkflowBpmnModelerAndtvVue/./package/index.vue?./node_modules/.pnpm/css-loader@6.11.0_webpack@5.101.3/node_modules/css-loader/dist/cjs.js??clonedRuleSet-67.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/stylePostLoader.js!./node_modules/.pnpm/postcss-loader@6.2.1_postcss@8.5.6_webpack@5.101.3/node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-67.use%5B2%5D!./node_modules/.pnpm/sass-loader@13.3.3_sass@1.92.0_webpack@5.101.3/node_modules/sass-loader/dist/cjs.js??clonedRuleSet-67.use%5B3%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}");
2284
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_pnpm_css_loader_6_11_0_webpack_5_101_3_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../node_modules/.pnpm/css-loader@6.11.0_webpack@5.101.3/node_modules/css-loader/dist/runtime/noSourceMaps.js */ \"./node_modules/.pnpm/css-loader@6.11.0_webpack@5.101.3/node_modules/css-loader/dist/runtime/noSourceMaps.js\");\n/* harmony import */ var _node_modules_pnpm_css_loader_6_11_0_webpack_5_101_3_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_pnpm_css_loader_6_11_0_webpack_5_101_3_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _node_modules_pnpm_css_loader_6_11_0_webpack_5_101_3_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../node_modules/.pnpm/css-loader@6.11.0_webpack@5.101.3/node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/.pnpm/css-loader@6.11.0_webpack@5.101.3/node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _node_modules_pnpm_css_loader_6_11_0_webpack_5_101_3_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_pnpm_css_loader_6_11_0_webpack_5_101_3_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n// Imports\n\n\nvar ___CSS_LOADER_EXPORT___ = _node_modules_pnpm_css_loader_6_11_0_webpack_5_101_3_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_pnpm_css_loader_6_11_0_webpack_5_101_3_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\n___CSS_LOADER_EXPORT___.push([module.id, \"@import url(https://cdn.jsdelivr.net/npm/bpmn-js@8.10.0/dist/assets/diagram-js.css);\"]);\n___CSS_LOADER_EXPORT___.push([module.id, \"@import url(https://cdn.jsdelivr.net/npm/bpmn-js@8.10.0/dist/assets/bpmn-font/css/bpmn.css);\"]);\n___CSS_LOADER_EXPORT___.push([module.id, \"@import url(https://cdn.jsdelivr.net/npm/bpmn-js@8.10.0/dist/assets/bpmn-font/css/bpmn-codes.css);\"]);\n___CSS_LOADER_EXPORT___.push([module.id, \"@import url(https://cdn.jsdelivr.net/npm/bpmn-js@8.10.0/dist/assets/bpmn-font/css/bpmn-embedded.css);\"]);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"@charset \\\"UTF-8\\\";\\n/* BPMN.js 样式导入 - 使用CDN确保样式正确加载 */\\n/* 视图模式样式 */\\n.view-mode .ant-layout-header,\\n.view-mode .ant-layout-sider,\\n.view-mode .djs-palette,\\n.view-mode .bjs-powered-by {\\n display: none;\\n}\\n.view-mode .ant-spin-mask {\\n background-color: initial;\\n}\\n.view-mode .ant-spin-spinning {\\n display: none;\\n}\\n\\n/* 主容器样式 */\\n.flow-containers {\\n width: 100%;\\n height: 100vh;\\n background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%);\\n overflow: hidden;\\n /* 主布局 */\\n}\\n.flow-containers .main-layout {\\n height: 100%;\\n background: transparent;\\n}\\n.flow-containers {\\n /* 工具栏头部 */\\n}\\n.flow-containers .toolbar-header {\\n background: #f8f9fa;\\n border-bottom: 1px solid #e9ecef;\\n -webkit-box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);\\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);\\n padding: 0;\\n height: 64px;\\n line-height: 64px;\\n}\\n.flow-containers .toolbar-header .toolbar-container {\\n display: -webkit-box;\\n display: -ms-flexbox;\\n display: flex;\\n -webkit-box-pack: justify;\\n -ms-flex-pack: justify;\\n justify-content: space-between;\\n -webkit-box-align: center;\\n -ms-flex-align: center;\\n align-items: center;\\n padding: 0 32px;\\n height: 100%;\\n}\\n.flow-containers .toolbar-header .toolbar-left {\\n display: -webkit-box;\\n display: -ms-flexbox;\\n display: flex;\\n -webkit-box-align: center;\\n -ms-flex-align: center;\\n align-items: center;\\n gap: 20px;\\n}\\n.flow-containers .toolbar-header .toolbar-right {\\n display: -webkit-box;\\n display: -ms-flexbox;\\n display: flex;\\n -webkit-box-align: center;\\n -ms-flex-align: center;\\n align-items: center;\\n gap: 16px;\\n}\\n.flow-containers .toolbar-header .toolbar-group {\\n display: -webkit-box;\\n display: -ms-flexbox;\\n display: flex;\\n -webkit-box-align: center;\\n -ms-flex-align: center;\\n align-items: center;\\n gap: 8px;\\n padding: 0;\\n min-width: -webkit-fit-content;\\n min-width: -moz-fit-content;\\n min-width: fit-content;\\n}\\n.flow-containers .toolbar-header .toolbar-group .group-label {\\n color: #6c757d;\\n font-size: 12px;\\n font-weight: 600;\\n margin-right: 8px;\\n white-space: nowrap;\\n}\\n.flow-containers .toolbar-header .toolbar-btn {\\n background: #ffffff;\\n border: 1px solid #e9ecef;\\n color: #495057;\\n border-radius: 6px;\\n -webkit-transition: all 0.3s ease;\\n transition: all 0.3s ease;\\n height: 36px;\\n padding: 0 12px;\\n font-size: 13px;\\n font-weight: 500;\\n min-width: 36px;\\n display: -webkit-box;\\n display: -ms-flexbox;\\n display: flex;\\n -webkit-box-align: center;\\n -ms-flex-align: center;\\n align-items: center;\\n -webkit-box-pack: center;\\n -ms-flex-pack: center;\\n justify-content: center;\\n}\\n.flow-containers .toolbar-header .toolbar-btn:hover {\\n background: #f8f9fa;\\n border-color: #dee2e6;\\n color: #212529;\\n -webkit-transform: translateY(-1px);\\n transform: translateY(-1px);\\n -webkit-box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\\n}\\n.flow-containers .toolbar-header .toolbar-btn:active {\\n -webkit-transform: translateY(0);\\n transform: translateY(0);\\n -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);\\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);\\n}\\n.flow-containers .toolbar-header .export-btn {\\n background: #f8f9fa;\\n border: 1px solid #e9ecef;\\n color: #6c757d;\\n}\\n.flow-containers .toolbar-header .export-btn:hover {\\n background: #e9ecef;\\n border-color: #dee2e6;\\n color: #495057;\\n}\\n.flow-containers .toolbar-header .save-btn {\\n background: #007bff;\\n border: 1px solid #007bff;\\n border-radius: 6px;\\n font-weight: 600;\\n height: 36px;\\n padding: 0 20px;\\n font-size: 13px;\\n color: white;\\n min-width: 120px;\\n}\\n.flow-containers .toolbar-header .save-btn:hover {\\n background: #0056b3;\\n border-color: #0056b3;\\n -webkit-transform: translateY(-1px);\\n transform: translateY(-1px);\\n -webkit-box-shadow: 0 2px 8px rgba(0, 123, 255, 0.3);\\n box-shadow: 0 2px 8px rgba(0, 123, 255, 0.3);\\n}\\n.flow-containers .toolbar-header .save-btn:active {\\n -webkit-transform: translateY(0);\\n transform: translateY(0);\\n -webkit-box-shadow: 0 1px 3px rgba(0, 123, 255, 0.3);\\n box-shadow: 0 1px 3px rgba(0, 123, 255, 0.3);\\n}\\n.flow-containers {\\n /* 内容布局 */\\n}\\n.flow-containers .content-layout {\\n height: calc(100vh - 64px);\\n background: transparent;\\n}\\n.flow-containers {\\n /* 画布容器 */\\n}\\n.flow-containers .canvas-container {\\n background: white;\\n border-radius: 8px;\\n margin: 16px;\\n -webkit-box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);\\n box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);\\n overflow: hidden;\\n position: relative;\\n}\\n.flow-containers .canvas-container::before {\\n content: \\\"\\\";\\n position: absolute;\\n top: 0;\\n left: 0;\\n right: 0;\\n bottom: 0;\\n background: linear-gradient(45deg, #f8f9fa 25%, transparent 25%), linear-gradient(-45deg, #f8f9fa 25%, transparent 25%), linear-gradient(45deg, transparent 75%, #f8f9fa 75%), linear-gradient(-45deg, transparent 75%, #f8f9fa 75%);\\n background-size: 20px 20px;\\n background-position: 0 0, 0 10px, 10px -10px, -10px 0px;\\n opacity: 0.3;\\n pointer-events: none;\\n}\\n.flow-containers .canvas {\\n width: 100%;\\n height: 100%;\\n position: relative;\\n z-index: 1;\\n min-height: 400px;\\n display: block;\\n /* 确保BPMN容器正确显示 */\\n}\\n.flow-containers .canvas :deep(.djs-container) {\\n width: 100% !important;\\n height: 100% !important;\\n min-height: 400px !important;\\n display: block !important;\\n}\\n.flow-containers .canvas :deep(.djs-container svg) {\\n width: 100% !important;\\n height: 100% !important;\\n background: white !important;\\n display: block !important;\\n}\\n.flow-containers .canvas :deep(.djs-canvas) {\\n background: white !important;\\n width: 100% !important;\\n height: 100% !important;\\n}\\n.flow-containers .canvas {\\n /* 确保在jeecgboot环境中正确显示 */\\n}\\n.flow-containers .canvas :deep(.viewport) {\\n width: 100% !important;\\n height: 100% !important;\\n}\\n.flow-containers {\\n /* 属性面板 */\\n}\\n.flow-containers .property-panel {\\n width: 380px !important;\\n min-width: 380px !important;\\n max-width: 380px !important;\\n background: white;\\n border-radius: 8px;\\n margin: 16px 20px 16px 0;\\n -webkit-box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);\\n box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);\\n overflow: hidden;\\n display: -webkit-box;\\n display: -ms-flexbox;\\n display: flex;\\n -webkit-box-orient: vertical;\\n -webkit-box-direction: normal;\\n -ms-flex-direction: column;\\n flex-direction: column;\\n height: calc(100vh - 96px);\\n}\\n.flow-containers .property-panel :deep(.property-panel) {\\n height: 100%;\\n overflow-y: auto;\\n overflow-x: hidden;\\n}\\n.flow-containers {\\n /* BPMN 工具栏样式优化 */\\n}\\n.flow-containers .djs-palette {\\n left: 20px !important;\\n top: 20px !important;\\n border: none !important;\\n border-radius: 12px !important;\\n -webkit-box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15) !important;\\n box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15) !important;\\n background: white !important;\\n padding: 16px !important;\\n width: 160px !important;\\n min-width: 160px !important;\\n}\\n.flow-containers .djs-palette .djs-palette-entries .djs-palette-entry {\\n border-radius: 8px !important;\\n margin: 6px 0 !important;\\n -webkit-transition: all 0.3s ease !important;\\n transition: all 0.3s ease !important;\\n width: 100% !important;\\n min-height: 40px !important;\\n display: -webkit-box !important;\\n display: -ms-flexbox !important;\\n display: flex !important;\\n -webkit-box-align: center !important;\\n -ms-flex-align: center !important;\\n align-items: center !important;\\n}\\n.flow-containers .djs-palette .djs-palette-entries .djs-palette-entry:hover {\\n background: linear-gradient(135deg, #e6f7ff 0%, #bae7ff 100%) !important;\\n -webkit-transform: translateY(-1px) !important;\\n transform: translateY(-1px) !important;\\n -webkit-box-shadow: 0 4px 12px rgba(24, 144, 255, 0.2) !important;\\n box-shadow: 0 4px 12px rgba(24, 144, 255, 0.2) !important;\\n}\\n.flow-containers .djs-palette .djs-palette-entries .djs-palette-entry .entry {\\n padding: 10px 12px !important;\\n border-radius: 8px !important;\\n font-size: 13px !important;\\n font-weight: 500 !important;\\n color: #262626 !important;\\n width: 100% !important;\\n white-space: nowrap !important;\\n overflow: hidden !important;\\n text-overflow: ellipsis !important;\\n display: -webkit-box !important;\\n display: -ms-flexbox !important;\\n display: flex !important;\\n -webkit-box-align: center !important;\\n -ms-flex-align: center !important;\\n align-items: center !important;\\n gap: 8px !important;\\n}\\n.flow-containers {\\n /* BPMN 画布样式 */\\n}\\n.flow-containers .djs-container svg {\\n min-height: 100%;\\n background: transparent;\\n}\\n.flow-containers {\\n /* 表单样式优化 */\\n}\\n.flow-containers .ant-form-item-label > label {\\n font-size: 13px;\\n font-weight: 500;\\n color: #262626;\\n}\\n.flow-containers {\\n /* 响应式设计 */\\n}\\n@media (max-width: 1200px) {\\n.flow-containers .property-panel {\\n width: 320px !important;\\n min-width: 320px !important;\\n max-width: 320px !important;\\n margin: 16px 16px 16px 0;\\n}\\n.flow-containers .djs-palette {\\n width: 140px !important;\\n min-width: 140px !important;\\n}\\n}\\n@media (max-width: 768px) {\\n.flow-containers .toolbar-container {\\n padding: 0 16px;\\n}\\n.flow-containers .toolbar-group {\\n padding: 6px 12px;\\n gap: 6px;\\n}\\n.flow-containers .toolbar-group .group-label {\\n display: none;\\n}\\n.flow-containers .property-panel {\\n width: 100% !important;\\n min-width: 100% !important;\\n max-width: 100% !important;\\n margin: 0;\\n border-radius: 0;\\n}\\n}\", \"\"]);\n// Exports\n/* harmony default export */ __webpack_exports__[\"default\"] = (___CSS_LOADER_EXPORT___);\n\n\n//# sourceURL=webpack://WorkflowBpmnModelerAndtvVue/./package/index.vue?./node_modules/.pnpm/css-loader@6.11.0_webpack@5.101.3/node_modules/css-loader/dist/cjs.js??clonedRuleSet-67.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/stylePostLoader.js!./node_modules/.pnpm/postcss-loader@6.2.1_postcss@8.5.6_webpack@5.101.3/node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-67.use%5B2%5D!./node_modules/.pnpm/sass-loader@13.3.3_sass@1.92.0_webpack@5.101.3/node_modules/sass-loader/dist/cjs.js??clonedRuleSet-67.use%5B3%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}");
2285
2285
 
2286
2286
  /***/ }),
2287
2287
 
@@ -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 __expose();\n // 汉化\n var props = __props;\n var emit = __emit;\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 _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');\n return _context.a(2);\n case 1:\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 _context.n = 4;\n break;\n case 3:\n _context.p = 3;\n _t = _context.v;\n console.error('BPMN Modeler initialization failed:', _t);\n case 4:\n return _context.a(2);\n }\n }, _callee, null, [[0, 3]]);\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 _ref3 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(data) {\n var _t2;\n return _regenerator().w(function (_context2) {\n while (1) switch (_context2.p = _context2.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 _context2.p = 1;\n if (modeler.value) {\n _context2.n = 2;\n break;\n }\n console.error('Modeler not initialized');\n return _context2.a(2);\n case 2:\n console.log('Importing XML data...', data.substring(0, 200) + '...');\n _context2.n = 3;\n return modeler.value.importXML(data);\n case 3:\n console.log('XML imported successfully');\n // 等待DOM更新\n _context2.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 _context2.n = 6;\n break;\n case 5:\n _context2.p = 5;\n _t2 = _context2.v;\n console.error('Failed to create diagram:', _t2.message, _t2.warnings);\n case 6:\n return _context2.a(2);\n }\n }, _callee2, null, [[1, 5]]);\n }));\n return function createNewDiagram(_x) {\n return _ref3.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 _ref4 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee3() {\n var download,\n _yield$modeler$value$,\n xml,\n processElement,\n _args3 = arguments,\n _t3;\n return _regenerator().w(function (_context3) {\n while (1) switch (_context3.p = _context3.n) {\n case 0:\n download = _args3.length > 0 && _args3[0] !== undefined ? _args3[0] : false;\n _context3.p = 1;\n if (modeler.value) {\n _context3.n = 2;\n break;\n }\n return _context3.a(2);\n case 2:\n _context3.n = 3;\n return modeler.value.saveXML({\n format: true\n });\n case 3:\n _yield$modeler$value$ = _context3.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 _context3.a(2, xml);\n case 4:\n _context3.p = 4;\n _t3 = _context3.v;\n console.log(_t3);\n case 5:\n return _context3.a(2);\n }\n }, _callee3, null, [[1, 4]]);\n }));\n return function saveXML() {\n return _ref4.apply(this, arguments);\n };\n }();\n var saveImg = /*#__PURE__*/function () {\n var _ref5 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee4() {\n var type,\n download,\n _yield$modeler$value$2,\n svg,\n processElement,\n _args4 = arguments,\n _t4;\n return _regenerator().w(function (_context4) {\n while (1) switch (_context4.p = _context4.n) {\n case 0:\n type = _args4.length > 0 && _args4[0] !== undefined ? _args4[0] : 'svg';\n download = _args4.length > 1 && _args4[1] !== undefined ? _args4[1] : false;\n _context4.p = 1;\n if (modeler.value) {\n _context4.n = 2;\n break;\n }\n return _context4.a(2);\n case 2:\n _context4.n = 3;\n return modeler.value.saveSVG({\n format: true\n });\n case 3:\n _yield$modeler$value$2 = _context4.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 _context4.a(2, svg);\n case 4:\n _context4.p = 4;\n _t4 = _context4.v;\n console.log(_t4);\n case 5:\n return _context4.a(2);\n }\n }, _callee4, null, [[1, 4]]);\n }));\n return function saveImg() {\n return _ref5.apply(this, arguments);\n };\n }();\n var save = /*#__PURE__*/function () {\n var _ref6 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee5() {\n var process, xml, svg, result;\n return _regenerator().w(function (_context5) {\n while (1) switch (_context5.n) {\n case 0:\n process = getProcess();\n _context5.n = 1;\n return saveXML();\n case 1:\n xml = _context5.v;\n _context5.n = 2;\n return saveImg();\n case 2:\n svg = _context5.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 _context5.a(2);\n }\n }, _callee5);\n }));\n return function save() {\n return _ref6.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 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 // 暴露给父组件\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}");
569
569
 
570
570
  /***/ }),
571
571
 
@@ -2281,7 +2281,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _no
2281
2281
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
2282
2282
 
2283
2283
  "use strict";
2284
- eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_pnpm_css_loader_6_11_0_webpack_5_101_3_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../node_modules/.pnpm/css-loader@6.11.0_webpack@5.101.3/node_modules/css-loader/dist/runtime/noSourceMaps.js */ \"./node_modules/.pnpm/css-loader@6.11.0_webpack@5.101.3/node_modules/css-loader/dist/runtime/noSourceMaps.js\");\n/* harmony import */ var _node_modules_pnpm_css_loader_6_11_0_webpack_5_101_3_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_pnpm_css_loader_6_11_0_webpack_5_101_3_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _node_modules_pnpm_css_loader_6_11_0_webpack_5_101_3_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../node_modules/.pnpm/css-loader@6.11.0_webpack@5.101.3/node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/.pnpm/css-loader@6.11.0_webpack@5.101.3/node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _node_modules_pnpm_css_loader_6_11_0_webpack_5_101_3_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_pnpm_css_loader_6_11_0_webpack_5_101_3_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n// Imports\n\n\nvar ___CSS_LOADER_EXPORT___ = _node_modules_pnpm_css_loader_6_11_0_webpack_5_101_3_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_pnpm_css_loader_6_11_0_webpack_5_101_3_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\n___CSS_LOADER_EXPORT___.push([module.id, \"@import url(https://cdn.jsdelivr.net/npm/bpmn-js@8.10.0/dist/assets/diagram-js.css);\"]);\n___CSS_LOADER_EXPORT___.push([module.id, \"@import url(https://cdn.jsdelivr.net/npm/bpmn-js@8.10.0/dist/assets/bpmn-font/css/bpmn.css);\"]);\n___CSS_LOADER_EXPORT___.push([module.id, \"@import url(https://cdn.jsdelivr.net/npm/bpmn-js@8.10.0/dist/assets/bpmn-font/css/bpmn-codes.css);\"]);\n___CSS_LOADER_EXPORT___.push([module.id, \"@import url(https://cdn.jsdelivr.net/npm/bpmn-js@8.10.0/dist/assets/bpmn-font/css/bpmn-embedded.css);\"]);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"@charset \\\"UTF-8\\\";\\n/* BPMN.js 样式导入 - 使用CDN确保样式正确加载 */\\n/* 视图模式样式 */\\n.view-mode .ant-layout-header,\\n.view-mode .ant-layout-sider,\\n.view-mode .djs-palette,\\n.view-mode .bjs-powered-by {\\n display: none;\\n}\\n.view-mode .ant-spin-mask {\\n background-color: initial;\\n}\\n.view-mode .ant-spin-spinning {\\n display: none;\\n}\\n\\n/* 主容器样式 */\\n.flow-containers {\\n width: 100%;\\n height: 100vh;\\n background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%);\\n overflow: hidden;\\n /* 主布局 */\\n}\\n.flow-containers .main-layout {\\n height: 100%;\\n background: transparent;\\n}\\n.flow-containers {\\n /* 工具栏头部 */\\n}\\n.flow-containers .toolbar-header {\\n background: #f8f9fa;\\n border-bottom: 1px solid #e9ecef;\\n -webkit-box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);\\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);\\n padding: 0;\\n height: 64px;\\n line-height: 64px;\\n}\\n.flow-containers .toolbar-header .toolbar-container {\\n display: -webkit-box;\\n display: -ms-flexbox;\\n display: flex;\\n -webkit-box-pack: justify;\\n -ms-flex-pack: justify;\\n justify-content: space-between;\\n -webkit-box-align: center;\\n -ms-flex-align: center;\\n align-items: center;\\n padding: 0 32px;\\n height: 100%;\\n}\\n.flow-containers .toolbar-header .toolbar-left {\\n display: -webkit-box;\\n display: -ms-flexbox;\\n display: flex;\\n -webkit-box-align: center;\\n -ms-flex-align: center;\\n align-items: center;\\n gap: 20px;\\n}\\n.flow-containers .toolbar-header .toolbar-right {\\n display: -webkit-box;\\n display: -ms-flexbox;\\n display: flex;\\n -webkit-box-align: center;\\n -ms-flex-align: center;\\n align-items: center;\\n gap: 16px;\\n}\\n.flow-containers .toolbar-header .toolbar-group {\\n display: -webkit-box;\\n display: -ms-flexbox;\\n display: flex;\\n -webkit-box-align: center;\\n -ms-flex-align: center;\\n align-items: center;\\n gap: 8px;\\n padding: 0;\\n min-width: -webkit-fit-content;\\n min-width: -moz-fit-content;\\n min-width: fit-content;\\n}\\n.flow-containers .toolbar-header .toolbar-group .group-label {\\n color: #6c757d;\\n font-size: 12px;\\n font-weight: 600;\\n margin-right: 8px;\\n white-space: nowrap;\\n}\\n.flow-containers .toolbar-header .toolbar-btn {\\n background: #ffffff;\\n border: 1px solid #e9ecef;\\n color: #495057;\\n border-radius: 6px;\\n -webkit-transition: all 0.3s ease;\\n transition: all 0.3s ease;\\n height: 36px;\\n padding: 0 12px;\\n font-size: 13px;\\n font-weight: 500;\\n min-width: 36px;\\n display: -webkit-box;\\n display: -ms-flexbox;\\n display: flex;\\n -webkit-box-align: center;\\n -ms-flex-align: center;\\n align-items: center;\\n -webkit-box-pack: center;\\n -ms-flex-pack: center;\\n justify-content: center;\\n}\\n.flow-containers .toolbar-header .toolbar-btn:hover {\\n background: #f8f9fa;\\n border-color: #dee2e6;\\n color: #212529;\\n -webkit-transform: translateY(-1px);\\n transform: translateY(-1px);\\n -webkit-box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\\n}\\n.flow-containers .toolbar-header .toolbar-btn:active {\\n -webkit-transform: translateY(0);\\n transform: translateY(0);\\n -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);\\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);\\n}\\n.flow-containers .toolbar-header .export-btn {\\n background: #f8f9fa;\\n border: 1px solid #e9ecef;\\n color: #6c757d;\\n}\\n.flow-containers .toolbar-header .export-btn:hover {\\n background: #e9ecef;\\n border-color: #dee2e6;\\n color: #495057;\\n}\\n.flow-containers .toolbar-header .save-btn {\\n background: #007bff;\\n border: 1px solid #007bff;\\n border-radius: 6px;\\n font-weight: 600;\\n height: 36px;\\n padding: 0 20px;\\n font-size: 13px;\\n color: white;\\n min-width: 120px;\\n}\\n.flow-containers .toolbar-header .save-btn:hover {\\n background: #0056b3;\\n border-color: #0056b3;\\n -webkit-transform: translateY(-1px);\\n transform: translateY(-1px);\\n -webkit-box-shadow: 0 2px 8px rgba(0, 123, 255, 0.3);\\n box-shadow: 0 2px 8px rgba(0, 123, 255, 0.3);\\n}\\n.flow-containers .toolbar-header .save-btn:active {\\n -webkit-transform: translateY(0);\\n transform: translateY(0);\\n -webkit-box-shadow: 0 1px 3px rgba(0, 123, 255, 0.3);\\n box-shadow: 0 1px 3px rgba(0, 123, 255, 0.3);\\n}\\n.flow-containers {\\n /* 内容布局 */\\n}\\n.flow-containers .content-layout {\\n height: calc(100vh - 64px);\\n background: transparent;\\n}\\n.flow-containers {\\n /* 画布容器 */\\n}\\n.flow-containers .canvas-container {\\n background: white;\\n border-radius: 8px;\\n margin: 16px;\\n -webkit-box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);\\n box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);\\n overflow: hidden;\\n position: relative;\\n}\\n.flow-containers .canvas-container::before {\\n content: \\\"\\\";\\n position: absolute;\\n top: 0;\\n left: 0;\\n right: 0;\\n bottom: 0;\\n background: linear-gradient(45deg, #f8f9fa 25%, transparent 25%), linear-gradient(-45deg, #f8f9fa 25%, transparent 25%), linear-gradient(45deg, transparent 75%, #f8f9fa 75%), linear-gradient(-45deg, transparent 75%, #f8f9fa 75%);\\n background-size: 20px 20px;\\n background-position: 0 0, 0 10px, 10px -10px, -10px 0px;\\n opacity: 0.3;\\n pointer-events: none;\\n}\\n.flow-containers .canvas {\\n width: 100%;\\n height: 100%;\\n position: relative;\\n z-index: 1;\\n min-height: 400px;\\n /* 确保BPMN容器正确显示 */\\n}\\n.flow-containers .canvas :deep(.djs-container) {\\n width: 100% !important;\\n height: 100% !important;\\n min-height: 400px !important;\\n}\\n.flow-containers .canvas :deep(.djs-container svg) {\\n width: 100% !important;\\n height: 100% !important;\\n background: white !important;\\n}\\n.flow-containers .canvas :deep(.djs-canvas) {\\n background: white !important;\\n}\\n.flow-containers {\\n /* 属性面板 */\\n}\\n.flow-containers .property-panel {\\n width: 380px !important;\\n min-width: 380px !important;\\n max-width: 380px !important;\\n background: white;\\n border-radius: 8px;\\n margin: 16px 20px 16px 0;\\n -webkit-box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);\\n box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);\\n overflow: hidden;\\n display: -webkit-box;\\n display: -ms-flexbox;\\n display: flex;\\n -webkit-box-orient: vertical;\\n -webkit-box-direction: normal;\\n -ms-flex-direction: column;\\n flex-direction: column;\\n height: calc(100vh - 96px);\\n}\\n.flow-containers .property-panel :deep(.property-panel) {\\n height: 100%;\\n overflow-y: auto;\\n overflow-x: hidden;\\n}\\n.flow-containers {\\n /* BPMN 工具栏样式优化 */\\n}\\n.flow-containers .djs-palette {\\n left: 20px !important;\\n top: 20px !important;\\n border: none !important;\\n border-radius: 12px !important;\\n -webkit-box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15) !important;\\n box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15) !important;\\n background: white !important;\\n padding: 16px !important;\\n width: 160px !important;\\n min-width: 160px !important;\\n}\\n.flow-containers .djs-palette .djs-palette-entries .djs-palette-entry {\\n border-radius: 8px !important;\\n margin: 6px 0 !important;\\n -webkit-transition: all 0.3s ease !important;\\n transition: all 0.3s ease !important;\\n width: 100% !important;\\n min-height: 40px !important;\\n display: -webkit-box !important;\\n display: -ms-flexbox !important;\\n display: flex !important;\\n -webkit-box-align: center !important;\\n -ms-flex-align: center !important;\\n align-items: center !important;\\n}\\n.flow-containers .djs-palette .djs-palette-entries .djs-palette-entry:hover {\\n background: linear-gradient(135deg, #e6f7ff 0%, #bae7ff 100%) !important;\\n -webkit-transform: translateY(-1px) !important;\\n transform: translateY(-1px) !important;\\n -webkit-box-shadow: 0 4px 12px rgba(24, 144, 255, 0.2) !important;\\n box-shadow: 0 4px 12px rgba(24, 144, 255, 0.2) !important;\\n}\\n.flow-containers .djs-palette .djs-palette-entries .djs-palette-entry .entry {\\n padding: 10px 12px !important;\\n border-radius: 8px !important;\\n font-size: 13px !important;\\n font-weight: 500 !important;\\n color: #262626 !important;\\n width: 100% !important;\\n white-space: nowrap !important;\\n overflow: hidden !important;\\n text-overflow: ellipsis !important;\\n display: -webkit-box !important;\\n display: -ms-flexbox !important;\\n display: flex !important;\\n -webkit-box-align: center !important;\\n -ms-flex-align: center !important;\\n align-items: center !important;\\n gap: 8px !important;\\n}\\n.flow-containers {\\n /* BPMN 画布样式 */\\n}\\n.flow-containers .djs-container svg {\\n min-height: 100%;\\n background: transparent;\\n}\\n.flow-containers {\\n /* 表单样式优化 */\\n}\\n.flow-containers .ant-form-item-label > label {\\n font-size: 13px;\\n font-weight: 500;\\n color: #262626;\\n}\\n.flow-containers {\\n /* 响应式设计 */\\n}\\n@media (max-width: 1200px) {\\n.flow-containers .property-panel {\\n width: 320px !important;\\n min-width: 320px !important;\\n max-width: 320px !important;\\n margin: 16px 16px 16px 0;\\n}\\n.flow-containers .djs-palette {\\n width: 140px !important;\\n min-width: 140px !important;\\n}\\n}\\n@media (max-width: 768px) {\\n.flow-containers .toolbar-container {\\n padding: 0 16px;\\n}\\n.flow-containers .toolbar-group {\\n padding: 6px 12px;\\n gap: 6px;\\n}\\n.flow-containers .toolbar-group .group-label {\\n display: none;\\n}\\n.flow-containers .property-panel {\\n width: 100% !important;\\n min-width: 100% !important;\\n max-width: 100% !important;\\n margin: 0;\\n border-radius: 0;\\n}\\n}\", \"\"]);\n// Exports\n/* harmony default export */ __webpack_exports__[\"default\"] = (___CSS_LOADER_EXPORT___);\n\n\n//# sourceURL=webpack://WorkflowBpmnModelerAndtvVue/./package/index.vue?./node_modules/.pnpm/css-loader@6.11.0_webpack@5.101.3/node_modules/css-loader/dist/cjs.js??clonedRuleSet-112.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/stylePostLoader.js!./node_modules/.pnpm/postcss-loader@6.2.1_postcss@8.5.6_webpack@5.101.3/node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-112.use%5B2%5D!./node_modules/.pnpm/sass-loader@13.3.3_sass@1.92.0_webpack@5.101.3/node_modules/sass-loader/dist/cjs.js??clonedRuleSet-112.use%5B3%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}");
2284
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_pnpm_css_loader_6_11_0_webpack_5_101_3_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../node_modules/.pnpm/css-loader@6.11.0_webpack@5.101.3/node_modules/css-loader/dist/runtime/noSourceMaps.js */ \"./node_modules/.pnpm/css-loader@6.11.0_webpack@5.101.3/node_modules/css-loader/dist/runtime/noSourceMaps.js\");\n/* harmony import */ var _node_modules_pnpm_css_loader_6_11_0_webpack_5_101_3_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_pnpm_css_loader_6_11_0_webpack_5_101_3_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _node_modules_pnpm_css_loader_6_11_0_webpack_5_101_3_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../node_modules/.pnpm/css-loader@6.11.0_webpack@5.101.3/node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/.pnpm/css-loader@6.11.0_webpack@5.101.3/node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _node_modules_pnpm_css_loader_6_11_0_webpack_5_101_3_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_pnpm_css_loader_6_11_0_webpack_5_101_3_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n// Imports\n\n\nvar ___CSS_LOADER_EXPORT___ = _node_modules_pnpm_css_loader_6_11_0_webpack_5_101_3_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_pnpm_css_loader_6_11_0_webpack_5_101_3_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\n___CSS_LOADER_EXPORT___.push([module.id, \"@import url(https://cdn.jsdelivr.net/npm/bpmn-js@8.10.0/dist/assets/diagram-js.css);\"]);\n___CSS_LOADER_EXPORT___.push([module.id, \"@import url(https://cdn.jsdelivr.net/npm/bpmn-js@8.10.0/dist/assets/bpmn-font/css/bpmn.css);\"]);\n___CSS_LOADER_EXPORT___.push([module.id, \"@import url(https://cdn.jsdelivr.net/npm/bpmn-js@8.10.0/dist/assets/bpmn-font/css/bpmn-codes.css);\"]);\n___CSS_LOADER_EXPORT___.push([module.id, \"@import url(https://cdn.jsdelivr.net/npm/bpmn-js@8.10.0/dist/assets/bpmn-font/css/bpmn-embedded.css);\"]);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"@charset \\\"UTF-8\\\";\\n/* BPMN.js 样式导入 - 使用CDN确保样式正确加载 */\\n/* 视图模式样式 */\\n.view-mode .ant-layout-header,\\n.view-mode .ant-layout-sider,\\n.view-mode .djs-palette,\\n.view-mode .bjs-powered-by {\\n display: none;\\n}\\n.view-mode .ant-spin-mask {\\n background-color: initial;\\n}\\n.view-mode .ant-spin-spinning {\\n display: none;\\n}\\n\\n/* 主容器样式 */\\n.flow-containers {\\n width: 100%;\\n height: 100vh;\\n background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%);\\n overflow: hidden;\\n /* 主布局 */\\n}\\n.flow-containers .main-layout {\\n height: 100%;\\n background: transparent;\\n}\\n.flow-containers {\\n /* 工具栏头部 */\\n}\\n.flow-containers .toolbar-header {\\n background: #f8f9fa;\\n border-bottom: 1px solid #e9ecef;\\n -webkit-box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);\\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);\\n padding: 0;\\n height: 64px;\\n line-height: 64px;\\n}\\n.flow-containers .toolbar-header .toolbar-container {\\n display: -webkit-box;\\n display: -ms-flexbox;\\n display: flex;\\n -webkit-box-pack: justify;\\n -ms-flex-pack: justify;\\n justify-content: space-between;\\n -webkit-box-align: center;\\n -ms-flex-align: center;\\n align-items: center;\\n padding: 0 32px;\\n height: 100%;\\n}\\n.flow-containers .toolbar-header .toolbar-left {\\n display: -webkit-box;\\n display: -ms-flexbox;\\n display: flex;\\n -webkit-box-align: center;\\n -ms-flex-align: center;\\n align-items: center;\\n gap: 20px;\\n}\\n.flow-containers .toolbar-header .toolbar-right {\\n display: -webkit-box;\\n display: -ms-flexbox;\\n display: flex;\\n -webkit-box-align: center;\\n -ms-flex-align: center;\\n align-items: center;\\n gap: 16px;\\n}\\n.flow-containers .toolbar-header .toolbar-group {\\n display: -webkit-box;\\n display: -ms-flexbox;\\n display: flex;\\n -webkit-box-align: center;\\n -ms-flex-align: center;\\n align-items: center;\\n gap: 8px;\\n padding: 0;\\n min-width: -webkit-fit-content;\\n min-width: -moz-fit-content;\\n min-width: fit-content;\\n}\\n.flow-containers .toolbar-header .toolbar-group .group-label {\\n color: #6c757d;\\n font-size: 12px;\\n font-weight: 600;\\n margin-right: 8px;\\n white-space: nowrap;\\n}\\n.flow-containers .toolbar-header .toolbar-btn {\\n background: #ffffff;\\n border: 1px solid #e9ecef;\\n color: #495057;\\n border-radius: 6px;\\n -webkit-transition: all 0.3s ease;\\n transition: all 0.3s ease;\\n height: 36px;\\n padding: 0 12px;\\n font-size: 13px;\\n font-weight: 500;\\n min-width: 36px;\\n display: -webkit-box;\\n display: -ms-flexbox;\\n display: flex;\\n -webkit-box-align: center;\\n -ms-flex-align: center;\\n align-items: center;\\n -webkit-box-pack: center;\\n -ms-flex-pack: center;\\n justify-content: center;\\n}\\n.flow-containers .toolbar-header .toolbar-btn:hover {\\n background: #f8f9fa;\\n border-color: #dee2e6;\\n color: #212529;\\n -webkit-transform: translateY(-1px);\\n transform: translateY(-1px);\\n -webkit-box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\\n}\\n.flow-containers .toolbar-header .toolbar-btn:active {\\n -webkit-transform: translateY(0);\\n transform: translateY(0);\\n -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);\\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);\\n}\\n.flow-containers .toolbar-header .export-btn {\\n background: #f8f9fa;\\n border: 1px solid #e9ecef;\\n color: #6c757d;\\n}\\n.flow-containers .toolbar-header .export-btn:hover {\\n background: #e9ecef;\\n border-color: #dee2e6;\\n color: #495057;\\n}\\n.flow-containers .toolbar-header .save-btn {\\n background: #007bff;\\n border: 1px solid #007bff;\\n border-radius: 6px;\\n font-weight: 600;\\n height: 36px;\\n padding: 0 20px;\\n font-size: 13px;\\n color: white;\\n min-width: 120px;\\n}\\n.flow-containers .toolbar-header .save-btn:hover {\\n background: #0056b3;\\n border-color: #0056b3;\\n -webkit-transform: translateY(-1px);\\n transform: translateY(-1px);\\n -webkit-box-shadow: 0 2px 8px rgba(0, 123, 255, 0.3);\\n box-shadow: 0 2px 8px rgba(0, 123, 255, 0.3);\\n}\\n.flow-containers .toolbar-header .save-btn:active {\\n -webkit-transform: translateY(0);\\n transform: translateY(0);\\n -webkit-box-shadow: 0 1px 3px rgba(0, 123, 255, 0.3);\\n box-shadow: 0 1px 3px rgba(0, 123, 255, 0.3);\\n}\\n.flow-containers {\\n /* 内容布局 */\\n}\\n.flow-containers .content-layout {\\n height: calc(100vh - 64px);\\n background: transparent;\\n}\\n.flow-containers {\\n /* 画布容器 */\\n}\\n.flow-containers .canvas-container {\\n background: white;\\n border-radius: 8px;\\n margin: 16px;\\n -webkit-box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);\\n box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);\\n overflow: hidden;\\n position: relative;\\n}\\n.flow-containers .canvas-container::before {\\n content: \\\"\\\";\\n position: absolute;\\n top: 0;\\n left: 0;\\n right: 0;\\n bottom: 0;\\n background: linear-gradient(45deg, #f8f9fa 25%, transparent 25%), linear-gradient(-45deg, #f8f9fa 25%, transparent 25%), linear-gradient(45deg, transparent 75%, #f8f9fa 75%), linear-gradient(-45deg, transparent 75%, #f8f9fa 75%);\\n background-size: 20px 20px;\\n background-position: 0 0, 0 10px, 10px -10px, -10px 0px;\\n opacity: 0.3;\\n pointer-events: none;\\n}\\n.flow-containers .canvas {\\n width: 100%;\\n height: 100%;\\n position: relative;\\n z-index: 1;\\n min-height: 400px;\\n display: block;\\n /* 确保BPMN容器正确显示 */\\n}\\n.flow-containers .canvas :deep(.djs-container) {\\n width: 100% !important;\\n height: 100% !important;\\n min-height: 400px !important;\\n display: block !important;\\n}\\n.flow-containers .canvas :deep(.djs-container svg) {\\n width: 100% !important;\\n height: 100% !important;\\n background: white !important;\\n display: block !important;\\n}\\n.flow-containers .canvas :deep(.djs-canvas) {\\n background: white !important;\\n width: 100% !important;\\n height: 100% !important;\\n}\\n.flow-containers .canvas {\\n /* 确保在jeecgboot环境中正确显示 */\\n}\\n.flow-containers .canvas :deep(.viewport) {\\n width: 100% !important;\\n height: 100% !important;\\n}\\n.flow-containers {\\n /* 属性面板 */\\n}\\n.flow-containers .property-panel {\\n width: 380px !important;\\n min-width: 380px !important;\\n max-width: 380px !important;\\n background: white;\\n border-radius: 8px;\\n margin: 16px 20px 16px 0;\\n -webkit-box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);\\n box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);\\n overflow: hidden;\\n display: -webkit-box;\\n display: -ms-flexbox;\\n display: flex;\\n -webkit-box-orient: vertical;\\n -webkit-box-direction: normal;\\n -ms-flex-direction: column;\\n flex-direction: column;\\n height: calc(100vh - 96px);\\n}\\n.flow-containers .property-panel :deep(.property-panel) {\\n height: 100%;\\n overflow-y: auto;\\n overflow-x: hidden;\\n}\\n.flow-containers {\\n /* BPMN 工具栏样式优化 */\\n}\\n.flow-containers .djs-palette {\\n left: 20px !important;\\n top: 20px !important;\\n border: none !important;\\n border-radius: 12px !important;\\n -webkit-box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15) !important;\\n box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15) !important;\\n background: white !important;\\n padding: 16px !important;\\n width: 160px !important;\\n min-width: 160px !important;\\n}\\n.flow-containers .djs-palette .djs-palette-entries .djs-palette-entry {\\n border-radius: 8px !important;\\n margin: 6px 0 !important;\\n -webkit-transition: all 0.3s ease !important;\\n transition: all 0.3s ease !important;\\n width: 100% !important;\\n min-height: 40px !important;\\n display: -webkit-box !important;\\n display: -ms-flexbox !important;\\n display: flex !important;\\n -webkit-box-align: center !important;\\n -ms-flex-align: center !important;\\n align-items: center !important;\\n}\\n.flow-containers .djs-palette .djs-palette-entries .djs-palette-entry:hover {\\n background: linear-gradient(135deg, #e6f7ff 0%, #bae7ff 100%) !important;\\n -webkit-transform: translateY(-1px) !important;\\n transform: translateY(-1px) !important;\\n -webkit-box-shadow: 0 4px 12px rgba(24, 144, 255, 0.2) !important;\\n box-shadow: 0 4px 12px rgba(24, 144, 255, 0.2) !important;\\n}\\n.flow-containers .djs-palette .djs-palette-entries .djs-palette-entry .entry {\\n padding: 10px 12px !important;\\n border-radius: 8px !important;\\n font-size: 13px !important;\\n font-weight: 500 !important;\\n color: #262626 !important;\\n width: 100% !important;\\n white-space: nowrap !important;\\n overflow: hidden !important;\\n text-overflow: ellipsis !important;\\n display: -webkit-box !important;\\n display: -ms-flexbox !important;\\n display: flex !important;\\n -webkit-box-align: center !important;\\n -ms-flex-align: center !important;\\n align-items: center !important;\\n gap: 8px !important;\\n}\\n.flow-containers {\\n /* BPMN 画布样式 */\\n}\\n.flow-containers .djs-container svg {\\n min-height: 100%;\\n background: transparent;\\n}\\n.flow-containers {\\n /* 表单样式优化 */\\n}\\n.flow-containers .ant-form-item-label > label {\\n font-size: 13px;\\n font-weight: 500;\\n color: #262626;\\n}\\n.flow-containers {\\n /* 响应式设计 */\\n}\\n@media (max-width: 1200px) {\\n.flow-containers .property-panel {\\n width: 320px !important;\\n min-width: 320px !important;\\n max-width: 320px !important;\\n margin: 16px 16px 16px 0;\\n}\\n.flow-containers .djs-palette {\\n width: 140px !important;\\n min-width: 140px !important;\\n}\\n}\\n@media (max-width: 768px) {\\n.flow-containers .toolbar-container {\\n padding: 0 16px;\\n}\\n.flow-containers .toolbar-group {\\n padding: 6px 12px;\\n gap: 6px;\\n}\\n.flow-containers .toolbar-group .group-label {\\n display: none;\\n}\\n.flow-containers .property-panel {\\n width: 100% !important;\\n min-width: 100% !important;\\n max-width: 100% !important;\\n margin: 0;\\n border-radius: 0;\\n}\\n}\", \"\"]);\n// Exports\n/* harmony default export */ __webpack_exports__[\"default\"] = (___CSS_LOADER_EXPORT___);\n\n\n//# sourceURL=webpack://WorkflowBpmnModelerAndtvVue/./package/index.vue?./node_modules/.pnpm/css-loader@6.11.0_webpack@5.101.3/node_modules/css-loader/dist/cjs.js??clonedRuleSet-112.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/stylePostLoader.js!./node_modules/.pnpm/postcss-loader@6.2.1_postcss@8.5.6_webpack@5.101.3/node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-112.use%5B2%5D!./node_modules/.pnpm/sass-loader@13.3.3_sass@1.92.0_webpack@5.101.3/node_modules/sass-loader/dist/cjs.js??clonedRuleSet-112.use%5B3%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}");
2285
2285
 
2286
2286
  /***/ }),
2287
2287
 
package/package/index.vue CHANGED
@@ -157,6 +157,23 @@ const props = withDefaults(defineProps<Props>(), {
157
157
  const emit = defineEmits<{
158
158
  save: [data: SaveData]
159
159
  }>()
160
+
161
+ // 暴露手动初始化方法
162
+ const manualInit = () => {
163
+ if (!modeler.value && canvas.value) {
164
+ console.log('Manual initialization triggered')
165
+ onMounted()
166
+ }
167
+ }
168
+
169
+ // 暴露给父组件
170
+ defineExpose({
171
+ manualInit,
172
+ getProcess,
173
+ saveXML,
174
+ saveImg,
175
+ save
176
+ })
160
177
  const canvas = ref<HTMLElement | null>(null)
161
178
  const modeler = ref<Modeler | null>(null)
162
179
  const taskList = ref<any[]>([])
@@ -169,37 +186,89 @@ watch(() => props.xml, (val: string) => {
169
186
  })
170
187
 
171
188
  onMounted(async () => {
172
- try {
173
- // 确保容器存在
174
- if (!canvas.value) {
175
- console.error('Canvas container not found')
176
- return
177
- }
189
+ // 延迟初始化,确保DOM完全渲染
190
+ await nextTick()
191
+
192
+ const initializeModeler = async () => {
193
+ try {
194
+ // 确保容器存在且有尺寸
195
+ if (!canvas.value || canvas.value.offsetWidth === 0 || canvas.value.offsetHeight === 0) {
196
+ console.log('Canvas container not ready, waiting...')
197
+ return false
198
+ }
199
+
200
+ console.log('Canvas container found, initializing modeler...')
178
201
 
179
- // 生成实例
180
- modeler.value = new Modeler({
181
- container: canvas.value,
182
- additionalModules: [
183
- {
184
- translate: ['value', customTranslate]
202
+ // 生成实例
203
+ modeler.value = new Modeler({
204
+ container: canvas.value,
205
+ additionalModules: [
206
+ {
207
+ translate: ['value', customTranslate]
208
+ }
209
+ ],
210
+ moddleExtensions: {
211
+ flowable: flowableModdle
185
212
  }
186
- ],
187
- moddleExtensions: {
188
- flowable: flowableModdle
213
+ })
214
+
215
+ // 等待下一个tick确保DOM更新
216
+ await nextTick()
217
+
218
+ // 新增流程定义
219
+ if (!props.xml) {
220
+ newDiagram()
221
+ } else {
222
+ createNewDiagram(props.xml)
223
+ }
224
+
225
+ console.log('BPMN Modeler initialized successfully')
226
+ return true
227
+ } catch (error) {
228
+ console.error('BPMN Modeler initialization failed:', error)
229
+ return false
230
+ }
231
+ }
232
+
233
+ // 立即尝试初始化
234
+ let initialized = await initializeModeler()
235
+
236
+ // 如果初始化失败,使用多种策略重试
237
+ 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()
189
243
  }
190
244
  })
191
-
192
- // 等待下一个tick确保DOM更新
193
- await nextTick()
194
245
 
195
- // 新增流程定义
196
- if (!props.xml) {
197
- newDiagram()
198
- } else {
199
- createNewDiagram(props.xml)
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']
253
+ })
200
254
  }
201
- } catch (error) {
202
- console.error('BPMN Modeler initialization failed:', error)
255
+
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)
203
272
  }
204
273
  })
205
274
 
@@ -634,22 +703,33 @@ const downloadFile = (filename: string, data: string, type: string): void => {
634
703
  position: relative;
635
704
  z-index: 1;
636
705
  min-height: 400px;
706
+ display: block;
637
707
 
638
708
  /* 确保BPMN容器正确显示 */
639
709
  :deep(.djs-container) {
640
710
  width: 100% !important;
641
711
  height: 100% !important;
642
712
  min-height: 400px !important;
713
+ display: block !important;
643
714
  }
644
715
 
645
716
  :deep(.djs-container svg) {
646
717
  width: 100% !important;
647
718
  height: 100% !important;
648
719
  background: white !important;
720
+ display: block !important;
649
721
  }
650
722
 
651
723
  :deep(.djs-canvas) {
652
724
  background: white !important;
725
+ width: 100% !important;
726
+ height: 100% !important;
727
+ }
728
+
729
+ /* 确保在jeecgboot环境中正确显示 */
730
+ :deep(.viewport) {
731
+ width: 100% !important;
732
+ height: 100% !important;
653
733
  }
654
734
  }
655
735
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "workflow-bpmn-modeler-andtv-vue3",
3
- "version": "10.0.7",
3
+ "version": "10.0.8",
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",