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