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

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 // 简化的初始化方法,专门用于XML加载失败的情况\n var simpleInit = /*#__PURE__*/function () {\n var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee() {\n var _t;\n return _regenerator().w(function (_context) {\n while (1) switch (_context.p = _context.n) {\n case 0:\n _context.p = 0;\n if (canvas.value) {\n _context.n = 1;\n break;\n }\n console.error('Canvas container not found for simple init');\n return _context.a(2, false);\n case 1:\n console.log('Starting simple initialization...');\n // 创建简单的BPMN模型器实例\n modeler.value = new bpmn_js_lib_Modeler__WEBPACK_IMPORTED_MODULE_2__[\"default\"]({\n container: canvas.value,\n additionalModules: [{\n translate: ['value', _common_customTranslate__WEBPACK_IMPORTED_MODULE_1__[\"default\"]]\n }],\n moddleExtensions: {\n flowable: _flowable_flowable_json__WEBPACK_IMPORTED_MODULE_6__\n }\n });\n // 等待下一个tick\n _context.n = 2;\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.nextTick)();\n case 2:\n _context.n = 3;\n return modeler.value.importXML((0,_flowable_init__WEBPACK_IMPORTED_MODULE_5__[\"default\"])());\n case 3:\n console.log('Simple initialization completed successfully');\n return _context.a(2, true);\n case 4:\n _context.p = 4;\n _t = _context.v;\n console.error('Simple initialization failed:', _t);\n return _context.a(2, false);\n }\n }, _callee, null, [[0, 4]]);\n }));\n return function simpleInit() {\n return _ref2.apply(this, arguments);\n };\n }();\n // 暴露给父组件\n __expose({\n manualInit: manualInit,\n simpleInit: simpleInit,\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 _callee5() {\n var initializeModeler, initialized, _canvas$value, observer, retryCount, maxRetries, retryTimer;\n return _regenerator().w(function (_context5) {\n while (1) switch (_context5.n) {\n case 0:\n _context5.n = 1;\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.nextTick)();\n case 1:\n initializeModeler = /*#__PURE__*/function () {\n var _ref4 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2() {\n var _t2;\n return _regenerator().w(function (_context2) {\n while (1) switch (_context2.p = _context2.n) {\n case 0:\n _context2.p = 0;\n if (!(!canvas.value || canvas.value.offsetWidth === 0 || canvas.value.offsetHeight === 0)) {\n _context2.n = 1;\n break;\n }\n console.log('Canvas container not ready, waiting...');\n return _context2.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 _context2.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 _context2.a(2, true);\n case 3:\n _context2.p = 3;\n _t2 = _context2.v;\n console.error('BPMN Modeler initialization failed:', _t2);\n return _context2.a(2, false);\n }\n }, _callee2, null, [[0, 3]]);\n }));\n return function initializeModeler() {\n return _ref4.apply(this, arguments);\n };\n }(); // 立即尝试初始化\n _context5.n = 2;\n return initializeModeler();\n case 2:\n initialized = _context5.v;\n // 如果初始化失败,使用多种策略重试\n if (!initialized) {\n // 策略1: 使用MutationObserver监听DOM变化\n observer = new MutationObserver(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee3() {\n return _regenerator().w(function (_context3) {\n while (1) switch (_context3.n) {\n case 0:\n if (!(canvas.value && canvas.value.offsetWidth > 0 && canvas.value.offsetHeight > 0)) {\n _context3.n = 1;\n break;\n }\n observer.disconnect();\n _context3.n = 1;\n return initializeModeler();\n case 1:\n return _context3.a(2);\n }\n }, _callee3);\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 _callee4() {\n return _regenerator().w(function (_context4) {\n while (1) switch (_context4.n) {\n case 0:\n retryCount++;\n _context4.n = 1;\n return initializeModeler();\n case 1:\n initialized = _context4.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 _context4.a(2);\n }\n }, _callee4);\n })), 200);\n }\n case 3:\n return _context5.a(2);\n }\n }, _callee5);\n })));\n var newDiagram = function newDiagram() {\n createNewDiagram((0,_flowable_init__WEBPACK_IMPORTED_MODULE_5__[\"default\"])());\n };\n // 让图能自适应屏幕\n var fitViewport = function fitViewport() {\n try {\n if (!modeler.value) {\n console.warn('Modeler not available for viewport fitting');\n return;\n }\n zoom.value = modeler.value.get('canvas').zoom('fit-viewport');\n var viewport = document.querySelector('.flow-containers .viewport');\n if (!viewport) {\n console.warn('Viewport element not found');\n return;\n }\n var bbox = viewport.getBBox();\n if (!bbox) {\n console.warn('Viewport bbox not available');\n return;\n }\n var currentViewbox = modeler.value.get('canvas').viewbox();\n var elementMid = {\n x: bbox.x + bbox.width / 2 - 65,\n y: bbox.y + bbox.height / 2\n };\n modeler.value.get('canvas').viewbox({\n x: elementMid.x - currentViewbox.width / 2,\n y: elementMid.y - currentViewbox.height / 2,\n width: currentViewbox.width,\n height: currentViewbox.height\n });\n zoom.value = bbox.width / currentViewbox.width * 1.8;\n } catch (e) {\n console.warn('Failed to fit viewport:', e);\n }\n };\n // 放大缩小\n var zoomViewport = function zoomViewport() {\n var zoomIn = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n if (!modeler.value) return;\n zoom.value = modeler.value.get('canvas').zoom();\n zoom.value += zoomIn ? 0.1 : -0.1;\n modeler.value.get('canvas').zoom(zoom.value);\n };\n var createNewDiagram = /*#__PURE__*/function () {\n var _ref7 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee6(data) {\n var _t3;\n return _regenerator().w(function (_context6) {\n while (1) switch (_context6.p = _context6.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 _context6.p = 1;\n if (modeler.value) {\n _context6.n = 2;\n break;\n }\n console.error('Modeler not initialized');\n return _context6.a(2);\n case 2:\n console.log('Importing XML data...', data.substring(0, 200) + '...');\n _context6.n = 3;\n return modeler.value.importXML(data);\n case 3:\n console.log('XML imported successfully');\n // 等待DOM更新\n _context6.n = 4;\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.nextTick)();\n case 4:\n // 延迟执行调整方法,确保DOM完全渲染\n setTimeout(function () {\n try {\n adjustPalette();\n fitViewport();\n console.log('Diagram created successfully');\n } catch (adjustError) {\n console.warn('Failed to adjust palette or viewport:', adjustError);\n // 即使调整失败,也不影响基本功能\n }\n }, 100);\n // fillColor()\n _context6.n = 6;\n break;\n case 5:\n _context6.p = 5;\n _t3 = _context6.v;\n console.error('Failed to create diagram:', _t3.message, _t3.warnings);\n throw _t3;\n case 6:\n return _context6.a(2);\n }\n }, _callee6, null, [[1, 5]]);\n }));\n return function createNewDiagram(_x) {\n return _ref7.apply(this, arguments);\n };\n }();\n // 调整左侧工具栏排版\n var adjustPalette = function adjustPalette() {\n try {\n var _canvasElement$childr;\n // 获取 bpmn 设计器实例\n var canvasElement = canvas.value;\n if (!canvasElement) {\n console.warn('Canvas element not found for palette adjustment');\n return;\n }\n // 检查DOM结构是否存在\n if (!canvasElement.children || canvasElement.children.length === 0) {\n console.warn('Canvas children not found for palette adjustment');\n return;\n }\n var djsPalette = (_canvasElement$childr = canvasElement.children[0]) === null || _canvasElement$childr === void 0 || (_canvasElement$childr = _canvasElement$childr.children[1]) === null || _canvasElement$childr === void 0 ? void 0 : _canvasElement$childr.children[4];\n if (!djsPalette) {\n console.warn('BPMN palette element not found');\n return;\n }\n var djsPalStyle = {\n width: '130px',\n padding: '5px',\n background: 'white',\n left: '20px',\n borderRadius: '0'\n };\n for (var key in djsPalStyle) {\n djsPalette.style[key] = djsPalStyle[key];\n }\n var palette = djsPalette.children[0];\n if (!palette) {\n console.warn('Palette children not found');\n return;\n }\n var allGroups = palette.children;\n if (allGroups.length === 0) {\n console.warn('No palette groups found');\n return;\n }\n ;\n allGroups[0].style.display = 'none';\n // 修改控件样式\n for (var gKey = 0; gKey < allGroups.length; gKey++) {\n var group = allGroups[gKey];\n for (var cKey = 0; cKey < group.children.length; cKey++) {\n var control = group.children[cKey];\n var controlStyle = {\n display: 'flex',\n justifyContent: 'flex-start',\n alignItems: 'center',\n width: '100%',\n padding: '5px'\n };\n if (control.className && control.dataset && control.className.indexOf('entry') !== -1) {\n var controlProps = new _BpmData__WEBPACK_IMPORTED_MODULE_4__[\"default\"]().getControl(control.dataset.action);\n control.innerHTML = \"<div style='font-size: 14px;font-weight:500;margin-left:15px;'>\".concat(controlProps['title'], \"</div>\");\n for (var csKey in controlStyle) {\n control.style[csKey] = controlStyle[csKey];\n }\n }\n }\n }\n } catch (e) {\n console.warn('Failed to adjust palette:', e);\n }\n };\n var fillColor = function fillColor() {\n if (!modeler.value) return;\n var canvasElement = modeler.value.get('canvas')(modeler.value)._definitions.rootElements[0].flowElements.forEach(function (n) {\n if (n.$type === 'bpmn:UserTask') {\n var completeTask = taskList.value.find(function (m) {\n return m.key === n.id;\n }) || {\n completed: true\n };\n var todoTask = taskList.value.find(function (m) {\n return !m.completed;\n });\n var endTask = taskList.value[taskList.value.length - 1];\n if (completeTask) {\n var _n$outgoing;\n canvasElement.addMarker(n.id, completeTask.completed ? 'highlight' : 'highlight-todo');\n (_n$outgoing = n.outgoing) === null || _n$outgoing === void 0 || _n$outgoing.forEach(function (nn) {\n var targetTask = taskList.value.find(function (m) {\n return m.key === nn.targetRef.id;\n });\n if (targetTask) {\n canvasElement.addMarker(nn.id, targetTask.completed ? 'highlight' : 'highlight-todo');\n } else if (nn.targetRef.$type === 'bpmn:ExclusiveGateway') {\n // canvasElement.addMarker(nn.id, 'highlight');\n canvasElement.addMarker(nn.id, completeTask.completed ? 'highlight' : 'highlight-todo');\n canvasElement.addMarker(nn.targetRef.id, completeTask.completed ? 'highlight' : 'highlight-todo');\n } else if (nn.targetRef.$type === 'bpmn:EndEvent') {\n if (!todoTask && endTask.key === n.id) {\n canvasElement.addMarker(nn.id, 'highlight');\n canvasElement.addMarker(nn.targetRef.id, 'highlight');\n }\n if (!completeTask.completed) {\n canvasElement.addMarker(nn.id, 'highlight-todo');\n canvasElement.addMarker(nn.targetRef.id, 'highlight-todo');\n }\n }\n });\n }\n } else if (n.$type === 'bpmn:ExclusiveGateway') {\n n.outgoing.forEach(function (nn) {\n var targetTask = taskList.value.find(function (m) {\n return m.key === nn.targetRef.id;\n });\n if (targetTask) {\n canvasElement.addMarker(nn.id, targetTask.completed ? 'highlight' : 'highlight-todo');\n }\n });\n }\n if (n.$type === 'bpmn:StartEvent') {\n n.outgoing.forEach(function (nn) {\n var completeTask = taskList.value.find(function (m) {\n return m.key === nn.targetRef.id;\n });\n if (completeTask) {\n canvasElement.addMarker(nn.id, 'highlight');\n canvasElement.addMarker(n.id, 'highlight');\n return;\n }\n });\n }\n });\n };\n // 对外 api\n var getProcess = function getProcess() {\n var element = getProcessElement();\n return {\n id: element.id,\n name: element.name,\n category: element.$attrs['flowable:processCategory']\n };\n };\n var getProcessElement = function getProcessElement() {\n if (!modeler.value) return null;\n var rootElements = modeler.value.getDefinitions().rootElements;\n for (var i = 0; i < rootElements.length; i++) {\n if (rootElements[i].$type === 'bpmn:Process') return rootElements[i];\n }\n };\n var saveXML = /*#__PURE__*/function () {\n var _ref8 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee7() {\n var download,\n _yield$modeler$value$,\n xml,\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 download = _args7.length > 0 && _args7[0] !== undefined ? _args7[0] : 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.saveXML({\n format: true\n });\n case 3:\n _yield$modeler$value$ = _context7.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 _context7.a(2, xml);\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 saveXML() {\n return _ref8.apply(this, arguments);\n };\n }();\n var saveImg = /*#__PURE__*/function () {\n var _ref9 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee8() {\n var type,\n download,\n _yield$modeler$value$2,\n svg,\n processElement,\n _args8 = arguments,\n _t5;\n return _regenerator().w(function (_context8) {\n while (1) switch (_context8.p = _context8.n) {\n case 0:\n type = _args8.length > 0 && _args8[0] !== undefined ? _args8[0] : 'svg';\n download = _args8.length > 1 && _args8[1] !== undefined ? _args8[1] : false;\n _context8.p = 1;\n if (modeler.value) {\n _context8.n = 2;\n break;\n }\n return _context8.a(2);\n case 2:\n _context8.n = 3;\n return modeler.value.saveSVG({\n format: true\n });\n case 3:\n _yield$modeler$value$2 = _context8.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 _context8.a(2, svg);\n case 4:\n _context8.p = 4;\n _t5 = _context8.v;\n console.log(_t5);\n case 5:\n return _context8.a(2);\n }\n }, _callee8, null, [[1, 4]]);\n }));\n return function saveImg() {\n return _ref9.apply(this, arguments);\n };\n }();\n var save = /*#__PURE__*/function () {\n var _ref0 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee9() {\n var process, xml, svg, result;\n return _regenerator().w(function (_context9) {\n while (1) switch (_context9.n) {\n case 0:\n process = getProcess();\n _context9.n = 1;\n return saveXML();\n case 1:\n xml = _context9.v;\n _context9.n = 2;\n return saveImg();\n case 2:\n svg = _context9.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 _context9.a(2);\n }\n }, _callee9);\n }));\n return function save() {\n return _ref0.apply(this, arguments);\n };\n }();\n var openBpmn = function openBpmn(file) {\n var reader = new FileReader();\n reader.readAsText(file, 'utf-8');\n reader.onload = function () {\n createNewDiagram(reader.result);\n };\n return false;\n };\n var downloadFile = function downloadFile(filename, data, type) {\n var a = document.createElement('a');\n var url = window.URL.createObjectURL(new Blob([data], {\n type: type\n }));\n a.href = url;\n a.download = filename;\n a.click();\n window.URL.revokeObjectURL(url);\n };\n var __returned__ = {\n props: props,\n emit: emit,\n manualInit: manualInit,\n simpleInit: simpleInit,\n 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 // 简化的初始化方法,专门用于XML加载失败的情况\n var simpleInit = /*#__PURE__*/function () {\n var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee() {\n var _t;\n return _regenerator().w(function (_context) {\n while (1) switch (_context.p = _context.n) {\n case 0:\n _context.p = 0;\n if (canvas.value) {\n _context.n = 1;\n break;\n }\n console.error('Canvas container not found for simple init');\n return _context.a(2, false);\n case 1:\n console.log('Starting simple initialization...');\n // 创建简单的BPMN模型器实例\n modeler.value = new bpmn_js_lib_Modeler__WEBPACK_IMPORTED_MODULE_2__[\"default\"]({\n container: canvas.value,\n additionalModules: [{\n translate: ['value', _common_customTranslate__WEBPACK_IMPORTED_MODULE_1__[\"default\"]]\n }],\n moddleExtensions: {\n flowable: _flowable_flowable_json__WEBPACK_IMPORTED_MODULE_6__\n }\n });\n // 等待下一个tick\n _context.n = 2;\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.nextTick)();\n case 2:\n _context.n = 3;\n return modeler.value.importXML((0,_flowable_init__WEBPACK_IMPORTED_MODULE_5__[\"default\"])());\n case 3:\n console.log('Simple initialization completed successfully');\n return _context.a(2, true);\n case 4:\n _context.p = 4;\n _t = _context.v;\n console.error('Simple initialization failed:', _t);\n return _context.a(2, false);\n }\n }, _callee, null, [[0, 4]]);\n }));\n return function simpleInit() {\n return _ref2.apply(this, arguments);\n };\n }();\n // 暴露给父组件\n __expose({\n manualInit: manualInit,\n simpleInit: simpleInit,\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 _callee5() {\n var initializeModeler, initialized, _canvas$value, observer, retryCount, maxRetries, retryTimer;\n return _regenerator().w(function (_context5) {\n while (1) switch (_context5.n) {\n case 0:\n _context5.n = 1;\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.nextTick)();\n case 1:\n initializeModeler = /*#__PURE__*/function () {\n var _ref4 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2() {\n var _t2;\n return _regenerator().w(function (_context2) {\n while (1) switch (_context2.p = _context2.n) {\n case 0:\n _context2.p = 0;\n if (!(!canvas.value || canvas.value.offsetWidth === 0 || canvas.value.offsetHeight === 0)) {\n _context2.n = 1;\n break;\n }\n console.log('Canvas container not ready, waiting...');\n return _context2.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 _context2.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 _context2.a(2, true);\n case 3:\n _context2.p = 3;\n _t2 = _context2.v;\n console.error('BPMN Modeler initialization failed:', _t2);\n return _context2.a(2, false);\n }\n }, _callee2, null, [[0, 3]]);\n }));\n return function initializeModeler() {\n return _ref4.apply(this, arguments);\n };\n }(); // 立即尝试初始化\n _context5.n = 2;\n return initializeModeler();\n case 2:\n initialized = _context5.v;\n // 如果初始化失败,使用多种策略重试\n if (!initialized) {\n // 策略1: 使用MutationObserver监听DOM变化\n observer = new MutationObserver(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee3() {\n return _regenerator().w(function (_context3) {\n while (1) switch (_context3.n) {\n case 0:\n if (!(canvas.value && canvas.value.offsetWidth > 0 && canvas.value.offsetHeight > 0)) {\n _context3.n = 1;\n break;\n }\n observer.disconnect();\n _context3.n = 1;\n return initializeModeler();\n case 1:\n return _context3.a(2);\n }\n }, _callee3);\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 _callee4() {\n return _regenerator().w(function (_context4) {\n while (1) switch (_context4.n) {\n case 0:\n retryCount++;\n _context4.n = 1;\n return initializeModeler();\n case 1:\n initialized = _context4.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 _context4.a(2);\n }\n }, _callee4);\n })), 200);\n }\n case 3:\n return _context5.a(2);\n }\n }, _callee5);\n })));\n var newDiagram = function newDiagram() {\n createNewDiagram((0,_flowable_init__WEBPACK_IMPORTED_MODULE_5__[\"default\"])());\n };\n // 让图能自适应屏幕\n var fitViewport = function fitViewport() {\n try {\n if (!modeler.value) {\n console.warn('Modeler not available for viewport fitting');\n return;\n }\n zoom.value = modeler.value.get('canvas').zoom('fit-viewport');\n var viewport = document.querySelector('.flow-containers .viewport');\n if (!viewport) {\n console.warn('Viewport element not found');\n return;\n }\n var bbox = viewport.getBBox();\n if (!bbox) {\n console.warn('Viewport bbox not available');\n return;\n }\n var currentViewbox = modeler.value.get('canvas').viewbox();\n var elementMid = {\n x: bbox.x + bbox.width / 2 - 65,\n y: bbox.y + bbox.height / 2\n };\n modeler.value.get('canvas').viewbox({\n x: elementMid.x - currentViewbox.width / 2,\n y: elementMid.y - currentViewbox.height / 2,\n width: currentViewbox.width,\n height: currentViewbox.height\n });\n zoom.value = bbox.width / currentViewbox.width * 1.8;\n } catch (e) {\n console.warn('Failed to fit viewport:', e);\n }\n };\n // 放大缩小\n var zoomViewport = function zoomViewport() {\n var zoomIn = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n if (!modeler.value) return;\n zoom.value = modeler.value.get('canvas').zoom();\n zoom.value += zoomIn ? 0.1 : -0.1;\n modeler.value.get('canvas').zoom(zoom.value);\n };\n var createNewDiagram = /*#__PURE__*/function () {\n var _ref7 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee6(data) {\n var _t3;\n return _regenerator().w(function (_context6) {\n while (1) switch (_context6.p = _context6.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 _context6.p = 1;\n if (modeler.value) {\n _context6.n = 2;\n break;\n }\n console.error('Modeler not initialized');\n return _context6.a(2);\n case 2:\n console.log('Importing XML data...', data.substring(0, 200) + '...');\n _context6.n = 3;\n return modeler.value.importXML(data);\n case 3:\n console.log('XML imported successfully');\n // 等待DOM更新\n _context6.n = 4;\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.nextTick)();\n case 4:\n // 延迟执行调整方法,确保DOM完全渲染\n setTimeout(function () {\n try {\n adjustPalette();\n fitViewport();\n console.log('Diagram created successfully');\n } catch (adjustError) {\n console.warn('Failed to adjust palette or viewport:', adjustError);\n // 即使调整失败,也不影响基本功能\n }\n }, 100);\n // fillColor()\n _context6.n = 6;\n break;\n case 5:\n _context6.p = 5;\n _t3 = _context6.v;\n console.error('Failed to create diagram:', _t3.message, _t3.warnings);\n throw _t3;\n case 6:\n return _context6.a(2);\n }\n }, _callee6, null, [[1, 5]]);\n }));\n return function createNewDiagram(_x) {\n return _ref7.apply(this, arguments);\n };\n }();\n // 调整左侧工具栏排版\n var adjustPalette = function adjustPalette() {\n try {\n var _canvasElement$childr;\n // 获取 bpmn 设计器实例\n var canvasElement = canvas.value;\n if (!canvasElement) {\n console.warn('Canvas element not found for palette adjustment');\n return;\n }\n // 检查DOM结构是否存在\n if (!canvasElement.children || canvasElement.children.length === 0) {\n console.warn('Canvas children not found for palette adjustment');\n return;\n }\n var djsPalette = (_canvasElement$childr = canvasElement.children[0]) === null || _canvasElement$childr === void 0 || (_canvasElement$childr = _canvasElement$childr.children[1]) === null || _canvasElement$childr === void 0 ? void 0 : _canvasElement$childr.children[4];\n if (!djsPalette) {\n console.warn('BPMN palette element not found');\n return;\n }\n var djsPalStyle = {\n width: '130px',\n padding: '5px',\n background: 'white',\n left: '20px',\n borderRadius: '0'\n };\n for (var key in djsPalStyle) {\n djsPalette.style[key] = djsPalStyle[key];\n }\n var palette = djsPalette.children[0];\n if (!palette) {\n console.warn('Palette children not found');\n return;\n }\n var allGroups = palette.children;\n if (allGroups.length === 0) {\n console.warn('No palette groups found');\n return;\n }\n ;\n allGroups[0].style.display = 'none';\n // 修改控件样式\n for (var gKey = 0; gKey < allGroups.length; gKey++) {\n var group = allGroups[gKey];\n for (var cKey = 0; cKey < group.children.length; cKey++) {\n var control = group.children[cKey];\n var controlStyle = {\n display: 'flex',\n justifyContent: 'flex-start',\n alignItems: 'center',\n width: '100%',\n padding: '5px'\n };\n if (control.className && control.dataset && control.className.indexOf('entry') !== -1) {\n var controlProps = new _BpmData__WEBPACK_IMPORTED_MODULE_4__[\"default\"]().getControl(control.dataset.action);\n control.innerHTML = \"<div style='font-size: 14px;font-weight:500;margin-left:15px;'>\".concat(controlProps['title'], \"</div>\");\n for (var csKey in controlStyle) {\n control.style[csKey] = controlStyle[csKey];\n }\n }\n }\n }\n } catch (e) {\n console.warn('Failed to adjust palette:', e);\n }\n };\n var fillColor = function fillColor() {\n if (!modeler.value) return;\n var canvasElement = modeler.value.get('canvas')(modeler.value)._definitions.rootElements[0].flowElements.forEach(function (n) {\n if (n.$type === 'bpmn:UserTask') {\n var completeTask = taskList.value.find(function (m) {\n return m.key === n.id;\n }) || {\n completed: true\n };\n var todoTask = taskList.value.find(function (m) {\n return !m.completed;\n });\n var endTask = taskList.value[taskList.value.length - 1];\n if (completeTask) {\n var _n$outgoing;\n canvasElement.addMarker(n.id, completeTask.completed ? 'highlight' : 'highlight-todo');\n (_n$outgoing = n.outgoing) === null || _n$outgoing === void 0 || _n$outgoing.forEach(function (nn) {\n var targetTask = taskList.value.find(function (m) {\n return m.key === nn.targetRef.id;\n });\n if (targetTask) {\n canvasElement.addMarker(nn.id, targetTask.completed ? 'highlight' : 'highlight-todo');\n } else if (nn.targetRef.$type === 'bpmn:ExclusiveGateway') {\n // canvasElement.addMarker(nn.id, 'highlight');\n canvasElement.addMarker(nn.id, completeTask.completed ? 'highlight' : 'highlight-todo');\n canvasElement.addMarker(nn.targetRef.id, completeTask.completed ? 'highlight' : 'highlight-todo');\n } else if (nn.targetRef.$type === 'bpmn:EndEvent') {\n if (!todoTask && endTask.key === n.id) {\n canvasElement.addMarker(nn.id, 'highlight');\n canvasElement.addMarker(nn.targetRef.id, 'highlight');\n }\n if (!completeTask.completed) {\n canvasElement.addMarker(nn.id, 'highlight-todo');\n canvasElement.addMarker(nn.targetRef.id, 'highlight-todo');\n }\n }\n });\n }\n } else if (n.$type === 'bpmn:ExclusiveGateway') {\n n.outgoing.forEach(function (nn) {\n var targetTask = taskList.value.find(function (m) {\n return m.key === nn.targetRef.id;\n });\n if (targetTask) {\n canvasElement.addMarker(nn.id, targetTask.completed ? 'highlight' : 'highlight-todo');\n }\n });\n }\n if (n.$type === 'bpmn:StartEvent') {\n n.outgoing.forEach(function (nn) {\n var completeTask = taskList.value.find(function (m) {\n return m.key === nn.targetRef.id;\n });\n if (completeTask) {\n canvasElement.addMarker(nn.id, 'highlight');\n canvasElement.addMarker(n.id, 'highlight');\n return;\n }\n });\n }\n });\n };\n // 对外 api\n var getProcess = function getProcess() {\n var element = getProcessElement();\n return {\n id: element.id,\n name: element.name,\n category: element.$attrs['flowable:processCategory']\n };\n };\n var getProcessElement = function getProcessElement() {\n if (!modeler.value) return null;\n var rootElements = modeler.value.getDefinitions().rootElements;\n for (var i = 0; i < rootElements.length; i++) {\n if (rootElements[i].$type === 'bpmn:Process') return rootElements[i];\n }\n };\n var saveXML = /*#__PURE__*/function () {\n var _ref8 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee7() {\n var download,\n _yield$modeler$value$,\n xml,\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 download = _args7.length > 0 && _args7[0] !== undefined ? _args7[0] : 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.saveXML({\n format: true\n });\n case 3:\n _yield$modeler$value$ = _context7.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 _context7.a(2, xml);\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 saveXML() {\n return _ref8.apply(this, arguments);\n };\n }();\n var saveImg = /*#__PURE__*/function () {\n var _ref9 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee8() {\n var type,\n download,\n _yield$modeler$value$2,\n svg,\n processElement,\n _args8 = arguments,\n _t5;\n return _regenerator().w(function (_context8) {\n while (1) switch (_context8.p = _context8.n) {\n case 0:\n type = _args8.length > 0 && _args8[0] !== undefined ? _args8[0] : 'svg';\n download = _args8.length > 1 && _args8[1] !== undefined ? _args8[1] : false;\n _context8.p = 1;\n if (modeler.value) {\n _context8.n = 2;\n break;\n }\n return _context8.a(2);\n case 2:\n _context8.n = 3;\n return modeler.value.saveSVG({\n format: true\n });\n case 3:\n _yield$modeler$value$2 = _context8.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 _context8.a(2, svg);\n case 4:\n _context8.p = 4;\n _t5 = _context8.v;\n console.log(_t5);\n case 5:\n return _context8.a(2);\n }\n }, _callee8, null, [[1, 4]]);\n }));\n return function saveImg() {\n return _ref9.apply(this, arguments);\n };\n }();\n var save = /*#__PURE__*/function () {\n var _ref0 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee9() {\n var process, xml, svg, result;\n return _regenerator().w(function (_context9) {\n while (1) switch (_context9.n) {\n case 0:\n process = getProcess();\n _context9.n = 1;\n return saveXML();\n case 1:\n xml = _context9.v;\n _context9.n = 2;\n return saveImg();\n case 2:\n svg = _context9.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 _context9.a(2);\n }\n }, _callee9);\n }));\n return function save() {\n return _ref0.apply(this, arguments);\n };\n }();\n var openBpmn = function openBpmn(file) {\n var reader = new FileReader();\n reader.readAsText(file, 'utf-8');\n reader.onload = function () {\n createNewDiagram(reader.result);\n };\n return false;\n };\n var downloadFile = function downloadFile(filename, data, type) {\n var a = document.createElement('a');\n var url = window.URL.createObjectURL(new Blob([data], {\n type: type\n }));\n a.href = url;\n a.download = filename;\n a.click();\n window.URL.revokeObjectURL(url);\n };\n var __returned__ = {\n props: props,\n emit: emit,\n manualInit: manualInit,\n simpleInit: simpleInit,\n 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 // 简化的初始化方法,专门用于XML加载失败的情况\n var simpleInit = /*#__PURE__*/function () {\n var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee() {\n var _t;\n return _regenerator().w(function (_context) {\n while (1) switch (_context.p = _context.n) {\n case 0:\n _context.p = 0;\n if (canvas.value) {\n _context.n = 1;\n break;\n }\n console.error('Canvas container not found for simple init');\n return _context.a(2, false);\n case 1:\n console.log('Starting simple initialization...');\n // 创建简单的BPMN模型器实例\n modeler.value = new bpmn_js_lib_Modeler__WEBPACK_IMPORTED_MODULE_2__[\"default\"]({\n container: canvas.value,\n additionalModules: [{\n translate: ['value', _common_customTranslate__WEBPACK_IMPORTED_MODULE_1__[\"default\"]]\n }],\n moddleExtensions: {\n flowable: _flowable_flowable_json__WEBPACK_IMPORTED_MODULE_6__\n }\n });\n // 等待下一个tick\n _context.n = 2;\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.nextTick)();\n case 2:\n _context.n = 3;\n return modeler.value.importXML((0,_flowable_init__WEBPACK_IMPORTED_MODULE_5__[\"default\"])());\n case 3:\n console.log('Simple initialization completed successfully');\n return _context.a(2, true);\n case 4:\n _context.p = 4;\n _t = _context.v;\n console.error('Simple initialization failed:', _t);\n return _context.a(2, false);\n }\n }, _callee, null, [[0, 4]]);\n }));\n return function simpleInit() {\n return _ref2.apply(this, arguments);\n };\n }();\n // 暴露给父组件\n __expose({\n manualInit: manualInit,\n simpleInit: simpleInit,\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 _callee5() {\n var initializeModeler, initialized, _canvas$value, observer, retryCount, maxRetries, retryTimer;\n return _regenerator().w(function (_context5) {\n while (1) switch (_context5.n) {\n case 0:\n _context5.n = 1;\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.nextTick)();\n case 1:\n initializeModeler = /*#__PURE__*/function () {\n var _ref4 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2() {\n var _t2;\n return _regenerator().w(function (_context2) {\n while (1) switch (_context2.p = _context2.n) {\n case 0:\n _context2.p = 0;\n if (!(!canvas.value || canvas.value.offsetWidth === 0 || canvas.value.offsetHeight === 0)) {\n _context2.n = 1;\n break;\n }\n console.log('Canvas container not ready, waiting...');\n return _context2.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 _context2.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 _context2.a(2, true);\n case 3:\n _context2.p = 3;\n _t2 = _context2.v;\n console.error('BPMN Modeler initialization failed:', _t2);\n return _context2.a(2, false);\n }\n }, _callee2, null, [[0, 3]]);\n }));\n return function initializeModeler() {\n return _ref4.apply(this, arguments);\n };\n }(); // 立即尝试初始化\n _context5.n = 2;\n return initializeModeler();\n case 2:\n initialized = _context5.v;\n // 如果初始化失败,使用多种策略重试\n if (!initialized) {\n // 策略1: 使用MutationObserver监听DOM变化\n observer = new MutationObserver(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee3() {\n return _regenerator().w(function (_context3) {\n while (1) switch (_context3.n) {\n case 0:\n if (!(canvas.value && canvas.value.offsetWidth > 0 && canvas.value.offsetHeight > 0)) {\n _context3.n = 1;\n break;\n }\n observer.disconnect();\n _context3.n = 1;\n return initializeModeler();\n case 1:\n return _context3.a(2);\n }\n }, _callee3);\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 _callee4() {\n return _regenerator().w(function (_context4) {\n while (1) switch (_context4.n) {\n case 0:\n retryCount++;\n _context4.n = 1;\n return initializeModeler();\n case 1:\n initialized = _context4.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 _context4.a(2);\n }\n }, _callee4);\n })), 200);\n }\n case 3:\n return _context5.a(2);\n }\n }, _callee5);\n })));\n var newDiagram = function newDiagram() {\n createNewDiagram((0,_flowable_init__WEBPACK_IMPORTED_MODULE_5__[\"default\"])());\n };\n // 让图能自适应屏幕\n var fitViewport = function fitViewport() {\n try {\n if (!modeler.value) {\n console.warn('Modeler not available for viewport fitting');\n return;\n }\n zoom.value = modeler.value.get('canvas').zoom('fit-viewport');\n var viewport = document.querySelector('.flow-containers .viewport');\n if (!viewport) {\n console.warn('Viewport element not found');\n return;\n }\n var bbox = viewport.getBBox();\n if (!bbox) {\n console.warn('Viewport bbox not available');\n return;\n }\n var currentViewbox = modeler.value.get('canvas').viewbox();\n var elementMid = {\n x: bbox.x + bbox.width / 2 - 65,\n y: bbox.y + bbox.height / 2\n };\n modeler.value.get('canvas').viewbox({\n x: elementMid.x - currentViewbox.width / 2,\n y: elementMid.y - currentViewbox.height / 2,\n width: currentViewbox.width,\n height: currentViewbox.height\n });\n zoom.value = bbox.width / currentViewbox.width * 1.8;\n } catch (e) {\n console.warn('Failed to fit viewport:', e);\n }\n };\n // 放大缩小\n var zoomViewport = function zoomViewport() {\n var zoomIn = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n if (!modeler.value) return;\n zoom.value = modeler.value.get('canvas').zoom();\n zoom.value += zoomIn ? 0.1 : -0.1;\n modeler.value.get('canvas').zoom(zoom.value);\n };\n var createNewDiagram = /*#__PURE__*/function () {\n var _ref7 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee6(data) {\n var _t3;\n return _regenerator().w(function (_context6) {\n while (1) switch (_context6.p = _context6.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 _context6.p = 1;\n if (modeler.value) {\n _context6.n = 2;\n break;\n }\n console.error('Modeler not initialized');\n return _context6.a(2);\n case 2:\n console.log('Importing XML data...', data.substring(0, 200) + '...');\n _context6.n = 3;\n return modeler.value.importXML(data);\n case 3:\n console.log('XML imported successfully');\n // 等待DOM更新\n _context6.n = 4;\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.nextTick)();\n case 4:\n // 延迟执行调整方法,确保DOM完全渲染\n setTimeout(function () {\n try {\n adjustPalette();\n fitViewport();\n console.log('Diagram created successfully');\n } catch (adjustError) {\n console.warn('Failed to adjust palette or viewport:', adjustError);\n // 即使调整失败,也不影响基本功能\n }\n }, 100);\n // fillColor()\n _context6.n = 6;\n break;\n case 5:\n _context6.p = 5;\n _t3 = _context6.v;\n console.error('Failed to create diagram:', _t3.message, _t3.warnings);\n throw _t3;\n case 6:\n return _context6.a(2);\n }\n }, _callee6, null, [[1, 5]]);\n }));\n return function createNewDiagram(_x) {\n return _ref7.apply(this, arguments);\n };\n }();\n // 调整左侧工具栏排版\n var adjustPalette = function adjustPalette() {\n try {\n var _canvasElement$childr;\n // 获取 bpmn 设计器实例\n var canvasElement = canvas.value;\n if (!canvasElement) {\n console.warn('Canvas element not found for palette adjustment');\n return;\n }\n // 检查DOM结构是否存在\n if (!canvasElement.children || canvasElement.children.length === 0) {\n console.warn('Canvas children not found for palette adjustment');\n return;\n }\n var djsPalette = (_canvasElement$childr = canvasElement.children[0]) === null || _canvasElement$childr === void 0 || (_canvasElement$childr = _canvasElement$childr.children[1]) === null || _canvasElement$childr === void 0 ? void 0 : _canvasElement$childr.children[4];\n if (!djsPalette) {\n console.warn('BPMN palette element not found');\n return;\n }\n var djsPalStyle = {\n width: '130px',\n padding: '5px',\n background: 'white',\n left: '20px',\n borderRadius: '0'\n };\n for (var key in djsPalStyle) {\n djsPalette.style[key] = djsPalStyle[key];\n }\n var palette = djsPalette.children[0];\n if (!palette) {\n console.warn('Palette children not found');\n return;\n }\n var allGroups = palette.children;\n if (allGroups.length === 0) {\n console.warn('No palette groups found');\n return;\n }\n ;\n allGroups[0].style.display = 'none';\n // 修改控件样式\n for (var gKey = 0; gKey < allGroups.length; gKey++) {\n var group = allGroups[gKey];\n for (var cKey = 0; cKey < group.children.length; cKey++) {\n var control = group.children[cKey];\n var controlStyle = {\n display: 'flex',\n justifyContent: 'flex-start',\n alignItems: 'center',\n width: '100%',\n padding: '5px'\n };\n if (control.className && control.dataset && control.className.indexOf('entry') !== -1) {\n var controlProps = new _BpmData__WEBPACK_IMPORTED_MODULE_4__[\"default\"]().getControl(control.dataset.action);\n control.innerHTML = \"<div style='font-size: 14px;font-weight:500;margin-left:15px;'>\".concat(controlProps['title'], \"</div>\");\n for (var csKey in controlStyle) {\n control.style[csKey] = controlStyle[csKey];\n }\n }\n }\n }\n } catch (e) {\n console.warn('Failed to adjust palette:', e);\n }\n };\n var fillColor = function fillColor() {\n if (!modeler.value) return;\n var canvasElement = modeler.value.get('canvas')(modeler.value)._definitions.rootElements[0].flowElements.forEach(function (n) {\n if (n.$type === 'bpmn:UserTask') {\n var completeTask = taskList.value.find(function (m) {\n return m.key === n.id;\n }) || {\n completed: true\n };\n var todoTask = taskList.value.find(function (m) {\n return !m.completed;\n });\n var endTask = taskList.value[taskList.value.length - 1];\n if (completeTask) {\n var _n$outgoing;\n canvasElement.addMarker(n.id, completeTask.completed ? 'highlight' : 'highlight-todo');\n (_n$outgoing = n.outgoing) === null || _n$outgoing === void 0 || _n$outgoing.forEach(function (nn) {\n var targetTask = taskList.value.find(function (m) {\n return m.key === nn.targetRef.id;\n });\n if (targetTask) {\n canvasElement.addMarker(nn.id, targetTask.completed ? 'highlight' : 'highlight-todo');\n } else if (nn.targetRef.$type === 'bpmn:ExclusiveGateway') {\n // canvasElement.addMarker(nn.id, 'highlight');\n canvasElement.addMarker(nn.id, completeTask.completed ? 'highlight' : 'highlight-todo');\n canvasElement.addMarker(nn.targetRef.id, completeTask.completed ? 'highlight' : 'highlight-todo');\n } else if (nn.targetRef.$type === 'bpmn:EndEvent') {\n if (!todoTask && endTask.key === n.id) {\n canvasElement.addMarker(nn.id, 'highlight');\n canvasElement.addMarker(nn.targetRef.id, 'highlight');\n }\n if (!completeTask.completed) {\n canvasElement.addMarker(nn.id, 'highlight-todo');\n canvasElement.addMarker(nn.targetRef.id, 'highlight-todo');\n }\n }\n });\n }\n } else if (n.$type === 'bpmn:ExclusiveGateway') {\n n.outgoing.forEach(function (nn) {\n var targetTask = taskList.value.find(function (m) {\n return m.key === nn.targetRef.id;\n });\n if (targetTask) {\n canvasElement.addMarker(nn.id, targetTask.completed ? 'highlight' : 'highlight-todo');\n }\n });\n }\n if (n.$type === 'bpmn:StartEvent') {\n n.outgoing.forEach(function (nn) {\n var completeTask = taskList.value.find(function (m) {\n return m.key === nn.targetRef.id;\n });\n if (completeTask) {\n canvasElement.addMarker(nn.id, 'highlight');\n canvasElement.addMarker(n.id, 'highlight');\n return;\n }\n });\n }\n });\n };\n // 对外 api\n var getProcess = function getProcess() {\n var element = getProcessElement();\n return {\n id: element.id,\n name: element.name,\n category: element.$attrs['flowable:processCategory']\n };\n };\n var getProcessElement = function getProcessElement() {\n if (!modeler.value) return null;\n var rootElements = modeler.value.getDefinitions().rootElements;\n for (var i = 0; i < rootElements.length; i++) {\n if (rootElements[i].$type === 'bpmn:Process') return rootElements[i];\n }\n };\n var saveXML = /*#__PURE__*/function () {\n var _ref8 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee7() {\n var download,\n _yield$modeler$value$,\n xml,\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 download = _args7.length > 0 && _args7[0] !== undefined ? _args7[0] : 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.saveXML({\n format: true\n });\n case 3:\n _yield$modeler$value$ = _context7.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 _context7.a(2, xml);\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 saveXML() {\n return _ref8.apply(this, arguments);\n };\n }();\n var saveImg = /*#__PURE__*/function () {\n var _ref9 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee8() {\n var type,\n download,\n _yield$modeler$value$2,\n svg,\n processElement,\n _args8 = arguments,\n _t5;\n return _regenerator().w(function (_context8) {\n while (1) switch (_context8.p = _context8.n) {\n case 0:\n type = _args8.length > 0 && _args8[0] !== undefined ? _args8[0] : 'svg';\n download = _args8.length > 1 && _args8[1] !== undefined ? _args8[1] : false;\n _context8.p = 1;\n if (modeler.value) {\n _context8.n = 2;\n break;\n }\n return _context8.a(2);\n case 2:\n _context8.n = 3;\n return modeler.value.saveSVG({\n format: true\n });\n case 3:\n _yield$modeler$value$2 = _context8.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 _context8.a(2, svg);\n case 4:\n _context8.p = 4;\n _t5 = _context8.v;\n console.log(_t5);\n case 5:\n return _context8.a(2);\n }\n }, _callee8, null, [[1, 4]]);\n }));\n return function saveImg() {\n return _ref9.apply(this, arguments);\n };\n }();\n var save = /*#__PURE__*/function () {\n var _ref0 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee9() {\n var process, xml, svg, result;\n return _regenerator().w(function (_context9) {\n while (1) switch (_context9.n) {\n case 0:\n process = getProcess();\n _context9.n = 1;\n return saveXML();\n case 1:\n xml = _context9.v;\n _context9.n = 2;\n return saveImg();\n case 2:\n svg = _context9.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 _context9.a(2);\n }\n }, _callee9);\n }));\n return function save() {\n return _ref0.apply(this, arguments);\n };\n }();\n var openBpmn = function openBpmn(file) {\n var reader = new FileReader();\n reader.readAsText(file, 'utf-8');\n reader.onload = function () {\n createNewDiagram(reader.result);\n };\n return false;\n };\n var downloadFile = function downloadFile(filename, data, type) {\n var a = document.createElement('a');\n var url = window.URL.createObjectURL(new Blob([data], {\n type: type\n }));\n a.href = url;\n a.download = filename;\n a.click();\n window.URL.revokeObjectURL(url);\n };\n var __returned__ = {\n props: props,\n emit: emit,\n manualInit: manualInit,\n simpleInit: simpleInit,\n 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,26 +157,26 @@ const props = withDefaults(defineProps<Props>(), {
157
157
  const emit = defineEmits<{
158
158
  save: [data: SaveData]
159
159
  }>()
160
- const canvas = ref<HTMLElement | null>(null)
161
- const modeler = ref<Modeler | null>(null)
162
- const taskList = ref<any[]>([])
163
- const zoom = ref<number>(1)
164
160
 
165
- watch(() => props.xml, (val: string) => {
166
- if (val) {
167
- createNewDiagram(val)
161
+ // 暴露手动初始化方法
162
+ const manualInit = () => {
163
+ if (!modeler.value && canvas.value) {
164
+ console.log('Manual initialization triggered')
165
+ onMounted()
168
166
  }
169
- })
167
+ }
170
168
 
171
- onMounted(async () => {
169
+ // 简化的初始化方法,专门用于XML加载失败的情况
170
+ const simpleInit = async () => {
172
171
  try {
173
- // 确保容器存在
174
172
  if (!canvas.value) {
175
- console.error('Canvas container not found')
176
- return
173
+ console.error('Canvas container not found for simple init')
174
+ return false
177
175
  }
178
176
 
179
- // 生成实例
177
+ console.log('Starting simple initialization...')
178
+
179
+ // 创建简单的BPMN模型器实例
180
180
  modeler.value = new Modeler({
181
181
  container: canvas.value,
182
182
  additionalModules: [
@@ -189,17 +189,124 @@ onMounted(async () => {
189
189
  }
190
190
  })
191
191
 
192
- // 等待下一个tick确保DOM更新
192
+ // 等待下一个tick
193
193
  await nextTick()
194
194
 
195
- // 新增流程定义
196
- if (!props.xml) {
197
- newDiagram()
198
- } else {
199
- createNewDiagram(props.xml)
200
- }
195
+ // 创建基本流程图
196
+ await modeler.value.importXML(getInitStr())
197
+
198
+ console.log('Simple initialization completed successfully')
199
+ return true
201
200
  } catch (error) {
202
- console.error('BPMN Modeler initialization failed:', error)
201
+ console.error('Simple initialization failed:', error)
202
+ return false
203
+ }
204
+ }
205
+
206
+ // 暴露给父组件
207
+ defineExpose({
208
+ manualInit,
209
+ simpleInit,
210
+ getProcess,
211
+ saveXML,
212
+ saveImg,
213
+ save
214
+ })
215
+ const canvas = ref<HTMLElement | null>(null)
216
+ const modeler = ref<Modeler | null>(null)
217
+ const taskList = ref<any[]>([])
218
+ const zoom = ref<number>(1)
219
+
220
+ watch(() => props.xml, (val: string) => {
221
+ if (val) {
222
+ createNewDiagram(val)
223
+ }
224
+ })
225
+
226
+ onMounted(async () => {
227
+ // 延迟初始化,确保DOM完全渲染
228
+ await nextTick()
229
+
230
+ const initializeModeler = async () => {
231
+ try {
232
+ // 确保容器存在且有尺寸
233
+ if (!canvas.value || canvas.value.offsetWidth === 0 || canvas.value.offsetHeight === 0) {
234
+ console.log('Canvas container not ready, waiting...')
235
+ return false
236
+ }
237
+
238
+ console.log('Canvas container found, initializing modeler...')
239
+
240
+ // 生成实例
241
+ modeler.value = new Modeler({
242
+ container: canvas.value,
243
+ additionalModules: [
244
+ {
245
+ translate: ['value', customTranslate]
246
+ }
247
+ ],
248
+ moddleExtensions: {
249
+ flowable: flowableModdle
250
+ }
251
+ })
252
+
253
+ // 等待下一个tick确保DOM更新
254
+ await nextTick()
255
+
256
+ // 新增流程定义
257
+ if (!props.xml) {
258
+ newDiagram()
259
+ } else {
260
+ createNewDiagram(props.xml)
261
+ }
262
+
263
+ console.log('BPMN Modeler initialized successfully')
264
+ return true
265
+ } catch (error) {
266
+ console.error('BPMN Modeler initialization failed:', error)
267
+ return false
268
+ }
269
+ }
270
+
271
+ // 立即尝试初始化
272
+ let initialized = await initializeModeler()
273
+
274
+ // 如果初始化失败,使用多种策略重试
275
+ if (!initialized) {
276
+ // 策略1: 使用MutationObserver监听DOM变化
277
+ const observer = new MutationObserver(async () => {
278
+ if (canvas.value && canvas.value.offsetWidth > 0 && canvas.value.offsetHeight > 0) {
279
+ observer.disconnect()
280
+ await initializeModeler()
281
+ }
282
+ })
283
+
284
+ // 监听父容器变化
285
+ if (canvas.value?.parentElement) {
286
+ observer.observe(canvas.value.parentElement, {
287
+ childList: true,
288
+ subtree: true,
289
+ attributes: true,
290
+ attributeFilter: ['style', 'class']
291
+ })
292
+ }
293
+
294
+ // 策略2: 定时重试(最多10秒)
295
+ let retryCount = 0
296
+ const maxRetries = 50 // 10秒,每200ms重试一次
297
+
298
+ const retryTimer = setInterval(async () => {
299
+ retryCount++
300
+ initialized = await initializeModeler()
301
+
302
+ if (initialized || retryCount >= maxRetries) {
303
+ clearInterval(retryTimer)
304
+ observer.disconnect()
305
+ if (!initialized) {
306
+ console.error('Failed to initialize BPMN Modeler after maximum retries')
307
+ }
308
+ }
309
+ }, 200)
203
310
  }
204
311
  })
205
312
 
@@ -209,23 +316,40 @@ const newDiagram = (): void => {
209
316
 
210
317
  // 让图能自适应屏幕
211
318
  const fitViewport = (): void => {
212
- if (!modeler.value) return
213
- zoom.value = modeler.value.get('canvas').zoom('fit-viewport')
214
- const viewport = document.querySelector('.flow-containers .viewport') as SVGSVGElement
215
- const bbox = viewport?.getBBox()
216
- if (!bbox) return
217
- const currentViewbox = modeler.value.get('canvas').viewbox()
218
- const elementMid = {
219
- x: bbox.x + bbox.width / 2 - 65,
220
- y: bbox.y + bbox.height / 2
319
+ try {
320
+ if (!modeler.value) {
321
+ console.warn('Modeler not available for viewport fitting')
322
+ return
323
+ }
324
+
325
+ zoom.value = modeler.value.get('canvas').zoom('fit-viewport')
326
+ const viewport = document.querySelector('.flow-containers .viewport') as SVGSVGElement
327
+ if (!viewport) {
328
+ console.warn('Viewport element not found')
329
+ return
330
+ }
331
+
332
+ const bbox = viewport.getBBox()
333
+ if (!bbox) {
334
+ console.warn('Viewport bbox not available')
335
+ return
336
+ }
337
+
338
+ const currentViewbox = modeler.value.get('canvas').viewbox()
339
+ const elementMid = {
340
+ x: bbox.x + bbox.width / 2 - 65,
341
+ y: bbox.y + bbox.height / 2
342
+ }
343
+ modeler.value.get('canvas').viewbox({
344
+ x: elementMid.x - currentViewbox.width / 2,
345
+ y: elementMid.y - currentViewbox.height / 2,
346
+ width: currentViewbox.width,
347
+ height: currentViewbox.height
348
+ })
349
+ zoom.value = bbox.width / currentViewbox.width * 1.8
350
+ } catch (e) {
351
+ console.warn('Failed to fit viewport:', e)
221
352
  }
222
- modeler.value.get('canvas').viewbox({
223
- x: elementMid.x - currentViewbox.width / 2,
224
- y: elementMid.y - currentViewbox.height / 2,
225
- width: currentViewbox.width,
226
- height: currentViewbox.height
227
- })
228
- zoom.value = bbox.width / currentViewbox.width * 1.8
229
353
  }
230
354
 
231
355
  // 放大缩小
@@ -255,13 +379,22 @@ const createNewDiagram = async (data: string): Promise<void> => {
255
379
  // 等待DOM更新
256
380
  await nextTick()
257
381
 
258
- adjustPalette()
259
- fitViewport()
382
+ // 延迟执行调整方法,确保DOM完全渲染
383
+ setTimeout(() => {
384
+ try {
385
+ adjustPalette()
386
+ fitViewport()
387
+ console.log('Diagram created successfully')
388
+ } catch (adjustError) {
389
+ console.warn('Failed to adjust palette or viewport:', adjustError)
390
+ // 即使调整失败,也不影响基本功能
391
+ }
392
+ }, 100)
260
393
 
261
- console.log('Diagram created successfully')
262
394
  // fillColor()
263
395
  } catch (err: any) {
264
396
  console.error('Failed to create diagram:', err.message, err.warnings)
397
+ throw err // 重新抛出错误,让调用者知道失败
265
398
  }
266
399
  }
267
400
 
@@ -270,8 +403,23 @@ const adjustPalette = (): void => {
270
403
  try {
271
404
  // 获取 bpmn 设计器实例
272
405
  const canvasElement = canvas.value
273
- if (!canvasElement) return
274
- const djsPalette = canvasElement.children[0].children[1].children[4] as HTMLElement
406
+ if (!canvasElement) {
407
+ console.warn('Canvas element not found for palette adjustment')
408
+ return
409
+ }
410
+
411
+ // 检查DOM结构是否存在
412
+ if (!canvasElement.children || canvasElement.children.length === 0) {
413
+ console.warn('Canvas children not found for palette adjustment')
414
+ return
415
+ }
416
+
417
+ const djsPalette = canvasElement.children[0]?.children[1]?.children[4] as HTMLElement
418
+ if (!djsPalette) {
419
+ console.warn('BPMN palette element not found')
420
+ return
421
+ }
422
+
275
423
  const djsPalStyle: Record<string, string> = {
276
424
  width: '130px',
277
425
  padding: '5px',
@@ -283,7 +431,17 @@ const adjustPalette = (): void => {
283
431
  (djsPalette.style as any)[key] = djsPalStyle[key]
284
432
  }
285
433
  const palette = djsPalette.children[0] as HTMLElement
434
+ if (!palette) {
435
+ console.warn('Palette children not found')
436
+ return
437
+ }
438
+
286
439
  const allGroups = palette.children
440
+ if (allGroups.length === 0) {
441
+ console.warn('No palette groups found')
442
+ return
443
+ }
444
+
287
445
  ;(allGroups[0] as HTMLElement).style.display = 'none'
288
446
  // 修改控件样式
289
447
  for (let gKey = 0; gKey < allGroups.length; gKey++) {
@@ -315,7 +473,7 @@ const adjustPalette = (): void => {
315
473
  }
316
474
  }
317
475
  } catch (e) {
318
- console.log(e)
476
+ console.warn('Failed to adjust palette:', e)
319
477
  }
320
478
  }
321
479
  const fillColor = (): void => {
@@ -634,22 +792,33 @@ const downloadFile = (filename: string, data: string, type: string): void => {
634
792
  position: relative;
635
793
  z-index: 1;
636
794
  min-height: 400px;
795
+ display: block;
637
796
 
638
797
  /* 确保BPMN容器正确显示 */
639
798
  :deep(.djs-container) {
640
799
  width: 100% !important;
641
800
  height: 100% !important;
642
801
  min-height: 400px !important;
802
+ display: block !important;
643
803
  }
644
804
 
645
805
  :deep(.djs-container svg) {
646
806
  width: 100% !important;
647
807
  height: 100% !important;
648
808
  background: white !important;
809
+ display: block !important;
649
810
  }
650
811
 
651
812
  :deep(.djs-canvas) {
652
813
  background: white !important;
814
+ width: 100% !important;
815
+ height: 100% !important;
816
+ }
817
+
818
+ /* 确保在jeecgboot环境中正确显示 */
819
+ :deep(.viewport) {
820
+ width: 100% !important;
821
+ height: 100% !important;
653
822
  }
654
823
  }
655
824
 
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.9",
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",