vue-flow-editor
Version:
vue-flow-editor 是基于 Vue2.0 以及 G6@3.1.10 实现的流程编辑器。在线操作地址:
1 lines • 461 kB
JavaScript
(function(g){function I(I){for(var e,c,A=I[0],l=I[1],i=I[2],B=0,b=[];B<A.length;B++)c=A[B],t[c]&&b.push(t[c][0]),t[c]=0;for(e in l)Object.prototype.hasOwnProperty.call(l,e)&&(g[e]=l[e]);d&&d(I);while(b.length)b.shift()();return C.push.apply(C,i||[]),n()}function n(){for(var g,I=0;I<C.length;I++){for(var n=C[I],e=!0,A=1;A<n.length;A++){var l=n[A];0!==t[l]&&(e=!1)}e&&(C.splice(I--,1),g=c(c.s=n[0]))}return g}var e={},t={index:0},C=[];function c(I){if(e[I])return e[I].exports;var n=e[I]={i:I,l:!1,exports:{}};return g[I].call(n.exports,n,n.exports,c),n.l=!0,n.exports}c.m=g,c.c=e,c.d=function(g,I,n){c.o(g,I)||Object.defineProperty(g,I,{enumerable:!0,get:n})},c.r=function(g){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(g,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(g,"__esModule",{value:!0})},c.t=function(g,I){if(1&I&&(g=c(g)),8&I)return g;if(4&I&&"object"===typeof g&&g&&g.__esModule)return g;var n=Object.create(null);if(c.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:g}),2&I&&"string"!=typeof g)for(var e in g)c.d(n,e,function(I){return g[I]}.bind(null,e));return n},c.n=function(g){var I=g&&g.__esModule?function(){return g["default"]}:function(){return g};return c.d(I,"a",I),I},c.o=function(g,I){return Object.prototype.hasOwnProperty.call(g,I)},c.p="/vue-flow-editor/";var A=window["webpackJsonp"]=window["webpackJsonp"]||[],l=A.push.bind(A);A.push=I,A=A.slice();for(var i=0;i<A.length;i++)I(A[i]);var d=l;C.push([0,"chunk-vendors"]),n()})({0:function(g,I,n){g.exports=n("4e68")},"0c02":function(module,exports){eval('module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACoAAAAqBAMAAAA37dRoAAAAMFBMVEUAAAAmJiYnJycqKiomJiYnJyctLS0nJycnJycnJycmJiYnJycrKysnJycmJiYmJiZC1GUPAAAAD3RSTlMASG0kk5EisZdi0X0UmGR1kx7+AAAAjElEQVQoz2OgAuD/DwQfoRx5EOcDbtFfoaH1cNHvoaHrwaJfgZx/xhDwHijtDxf9DwNEiP5QgoB+uOh3QcH9cNt+CwrWfyDRvYyC838IykBFDwr2/xQUADPtPyEFgP5nBoZRUXyi2EOSxLjAjE14zP+Fxvx9stPOzzQImA8X/eXigpRSXVzWk5Z2KAcAa8PckkqK+zkAAAAASUVORK5CYII="//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMGMwMi5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3NyYy9pbWFnZS90b29sYmFyL2dyaWQucG5nPzI2ODUiXSwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSBcImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQ29BQUFBcUJBTUFBQUEzN2RSb0FBQUFNRkJNVkVVQUFBQW1KaVluSnljcUtpb21KaVluSnljdExTMG5KeWNuSnljbkp5Y21KaVluSnljckt5c25KeWNtSmlZbUppWkMxR1VQQUFBQUQzUlNUbE1BU0cwa2s1RWlzWmRpMFgwVW1HUjFreDcrQUFBQWpFbEVRVlFvejJPZ0F1RC9Ed1Fmb1J4NUVPY0RidEZmb2FIMWNOSHZvYUhyd2FKZmdaeC94aER3SGlqdER4ZjlEd05FaVA1UWdvQit1T2gzUWNIOWNOdCtDd3JXZnlEUnZZeUM4MzhJeWtCRkR3cjIveFFVQURQdFB5RUZnUDVuQm9aUlVYeWkyRU9TeExqQWpFMTR6UCtGeHZ4OXN0UE96elFJbUE4WC9lWGlncFJTWFZ6V2s1WjJLQWNBYThQY2trcUsremtBQUFBQVNVVk9SSzVDWUlJPVwiIl0sIm1hcHBpbmdzIjoiQUFBQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///0c02\n')},"0f81":function(module,exports){eval('module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAREAAABWBAMAAAAakL/dAAAAMFBMVEX////ExMTLy8va2trS0tLw8PDh4eHo6Oj39/cAAAAAAAAAAAAAAAAAAAAAAAAAAAB2+XkbAAAACXBIWXMAAAsTAAALEwEAmpwYAAACVElEQVRoge2WsXKbQBRFMVi2S10BSkqY+AOkJjXETNLKXUr5D6Qiqc2fZ+/ugthoWYGHyaR4Z8YCI9g9Wt59EEWCIAiCIAiCIAiCIAjCdEqk3MTA7vpLWLaBAbpzcNT/JsD6YyY1wM1rN5Lf5M4r6jO5VyaBswOcgYPa7IH3sEk1y2Ts7ACt8S+RBWb5iMns26SuLKJo5a8FYNOQH0ETc05zck3u55o8AnkUPQCfvbPYlQqaOKtJgaRpjvNNnsDwxHplljJxdyZTYzMWnX9s8sbw8ENnjx93tgR3rkl/OKb7G5eyVpNdTLoT1pdBunpOI5i+FUKHp1SD6989nLLym1QJ3Uv2IXOOqdgXx6RyTTIO9bs+Bk0YnidGx2sySHF/WBX5SV2Bw8qsm+WWCfwVcEHFJuffdBNlsXvkbVKXnRY04Xro6AxNzM6VyXNT83CJQq0kioSN2TF5br5Zk0TtZC/m3k00YY20tlhvrYkV3GOtrkCuS9cxqf7ubLrSOpMvh7CJyk3NGvSaDHrsxeSM/Ey/lnlwshMy2fwMe+heAv64CdmxJi22e2yQveLTDBPfg80l5qypx+S6n1iTGCnwFdjzEbGgyQNnzV2Tynw1YpLwil/8KBY1WenkRVGfjXETmx3t/m6WbfAsdrJDk+z7MDu3TdguOWRfHje6faXdM75cqXYyeD9x+glNuvBONrFDXpmMdXs9+5Zve3zPW9KE4YlmmdQsrFYnblGT2Dwn+5syvDtpbzI4zOUoOFU6arLTZZ3OehYLgiAIgiAIgiAIgiD8J/wBKFCTuCCfcxQAAAAASUVORK5CYII="//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMGY4MS5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3NyYy9hc3NldHMvdnVlLWZsb3ctZWRpdG9yLnBuZz9iOTBiIl0sInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gXCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQVJFQUFBQldCQU1BQUFBYWtML2RBQUFBTUZCTVZFWC8vLy9FeE1UTHk4dmEydHJTMHRMdzhQRGg0ZUhvNk9qMzkvY0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUIyK1hrYkFBQUFDWEJJV1hNQUFBc1RBQUFMRXdFQW1wd1lBQUFDVkVsRVFWUm9nZTJXc1hLYlFCUkZNVmkyUzEwQlNrcVkrQU9rSmpYRVROTEtYVXI1RDZRaXFjMmZaKy91Z3Rob1dZR0h5YVI0WjhZQ0k5ZzlXdDU5RUVXQ0lBaUNJQWlDSUFpQ0lBakNkRXFrM01UQTd2cExXTGFCQWJwemNOVC9Kc0Q2WXlZMXdNMXJONUxmNU00cjZqTzVWeWFCc3dPY2dZUGE3SUgzc0VrMXkyVHM3QUN0OFMrUkJXYjVpTW5zMjZTdUxLSm81YThGWU5PUUgwRVRjMDV6Y2szdTU1bzhBbmtVUFFDZnZiUFlsUXFhT0t0SmdhUnBqdk5ObnNEd3hIcGxsakp4ZHlaVFl6TVduWDlzOHNidzhFTm5qeDkzdGdSM3JrbC9PS2I3RzVleVZwTmRUTG9UMXBkQnVucE9JNWkrRlVLSHAxU0Q2OTg5bkxMeW0xUUozVXYySVhPT3FkZ1h4NlJ5VFRJTzlicytCazBZbmlkR3gyc3lTSEYvV0JYNVNWMkJ3OHFzbStXV0Nmd1ZjRUhGSnVmZmRCTmxzWHZrYlZLWG5SWTA0WHJvNkF4TnpNNlZ5WE5UODNDSlFxMGtpb1NOMlRGNWJyNVprMFR0WkMvbTNrMDBZWTIwdGxodnJZa1YzR090cmtDdVM5Y3hxZjd1YkxyU09wTXZoN0NKeWszTkd2U2FESHJzeGVTTS9FeS9sbmx3c2hNeTJmd01lK2hlQXY2NENkbXhKaTIyZTJ5UXZlTFREQlBmZzgwbDVxeXB4K1M2bjFpVEdDbndGZGp6RWJHZ3lRTm56VjJUeW53MVlwTHdpbC84S0JZMVdlbmtSVkdmalhFVG14M3QvbTZXYmZBc2RySkRrK3o3TUR1M1RkZ3VPV1JmSGplNmZhWGRNNzVjcVhZeWVEOXgrZ2xOdXZCT05yRkRYcG1NZFhzOSs1WnZlM3pQVzlLRTRZbG1tZFFzckZZbmJsR1QyRHduKzVzeXZEdHBiekk0ek9Vb09GVTZhckxUWlozT2VoWUxnaUFJZ2lBSWdpQUlnaUQ4Si93QktGQ1R1Q0NmY3hRQUFBQUFTVVZPUks1Q1lJST1cIiJdLCJtYXBwaW5ncyI6IkFBQUEiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///0f81\n')},"13ea":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony import */ var _node_modules_mini_css_extract_plugin_0_6_0_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_1_0_1_css_loader_index_js_ref_8_oneOf_1_1_node_modules_vue_loader_15_11_1_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_3_0_0_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_8_0_2_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_4_1_0_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_15_11_1_vue_loader_lib_index_js_vue_loader_options_vue_flow_editor_icon_vue_vue_type_style_index_0_id_1c0a149a_prod_lang_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("5270");\n/* harmony import */ var _node_modules_mini_css_extract_plugin_0_6_0_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_1_0_1_css_loader_index_js_ref_8_oneOf_1_1_node_modules_vue_loader_15_11_1_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_3_0_0_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_8_0_2_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_4_1_0_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_15_11_1_vue_loader_lib_index_js_vue_loader_options_vue_flow_editor_icon_vue_vue_type_style_index_0_id_1c0a149a_prod_lang_scss__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_0_6_0_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_1_0_1_css_loader_index_js_ref_8_oneOf_1_1_node_modules_vue_loader_15_11_1_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_3_0_0_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_8_0_2_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_4_1_0_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_15_11_1_vue_loader_lib_index_js_vue_loader_options_vue_flow_editor_icon_vue_vue_type_style_index_0_id_1c0a149a_prod_lang_scss__WEBPACK_IMPORTED_MODULE_0__);\n/* unused harmony reexport * */\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTNlYS5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL3Z1ZS1mbG93LWVkaXRvci1pY29uLnZ1ZT81MDhiIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCItIS4uLy4uL25vZGVfbW9kdWxlcy9fbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5AMC42LjBAbWluaS1jc3MtZXh0cmFjdC1wbHVnaW4vZGlzdC9sb2FkZXIuanM/P3JlZi0tOC1vbmVPZi0xLTAhLi4vLi4vbm9kZV9tb2R1bGVzL19jc3MtbG9hZGVyQDEuMC4xQGNzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tOC1vbmVPZi0xLTEhLi4vLi4vbm9kZV9tb2R1bGVzL192dWUtbG9hZGVyQDE1LjExLjFAdnVlLWxvYWRlci9saWIvbG9hZGVycy9zdHlsZVBvc3RMb2FkZXIuanMhLi4vLi4vbm9kZV9tb2R1bGVzL19wb3N0Y3NzLWxvYWRlckAzLjAuMEBwb3N0Y3NzLWxvYWRlci9zcmMvaW5kZXguanM/P3JlZi0tOC1vbmVPZi0xLTIhLi4vLi4vbm9kZV9tb2R1bGVzL19zYXNzLWxvYWRlckA4LjAuMkBzYXNzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS04LW9uZU9mLTEtMyEuLi8uLi9ub2RlX21vZHVsZXMvX2NhY2hlLWxvYWRlckA0LjEuMEBjYWNoZS1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tMC0wIS4uLy4uL25vZGVfbW9kdWxlcy9fdnVlLWxvYWRlckAxNS4xMS4xQHZ1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi92dWUtZmxvdy1lZGl0b3ItaWNvbi52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD0xYzBhMTQ5YSZwcm9kJmxhbmc9c2Nzc1wiIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///13ea\n')},"15a4":function(module,exports,__webpack_require__){eval("// extracted by mini-css-extract-plugin//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTVhNC5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3NyYy9lZGl0b3IvdnVlLWZsb3ctZWRpdG9yLnNjc3M/Y2ZiYyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW4iXSwibWFwcGluZ3MiOiJBQUFBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///15a4\n")},"4e68":function(module,__webpack_exports__,__webpack_require__){"use strict";eval("__webpack_require__.r(__webpack_exports__);\n\n// EXTERNAL MODULE: ./node_modules/_core-js@2.6.12@core-js/modules/es6.array.iterator.js\nvar es6_array_iterator = __webpack_require__(\"25ba\");\n\n// EXTERNAL MODULE: ./node_modules/_core-js@2.6.12@core-js/modules/es6.promise.js\nvar es6_promise = __webpack_require__(\"5f1c\");\n\n// EXTERNAL MODULE: ./node_modules/_core-js@2.6.12@core-js/modules/es6.object.assign.js\nvar es6_object_assign = __webpack_require__(\"6ba0\");\n\n// EXTERNAL MODULE: ./node_modules/_core-js@2.6.12@core-js/modules/es7.promise.finally.js\nvar es7_promise_finally = __webpack_require__(\"b47f\");\n\n// EXTERNAL MODULE: external \"Vue\"\nvar external_Vue_ = __webpack_require__(\"8bbf\");\nvar external_Vue_default = /*#__PURE__*/__webpack_require__.n(external_Vue_);\n\n// CONCATENATED MODULE: ./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"2a3820c3-vue-loader-template\"}!./node_modules/_vue-loader@15.11.1@vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js??ref--0-0!./node_modules/_vue-loader@15.11.1@vue-loader/lib??vue-loader-options!./doc/App.vue?vue&type=template&id=6a2d7b64\nvar Appvue_type_template_id_6a2d7b64_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"app\",staticStyle:{\"height\":\"100vh\"}},[_c('vue-flow-editor',{ref:\"editor\",attrs:{\"data\":_vm.state.data,\"grid\":_vm.showGrid,\"miniMap\":_vm.showMiniMap,\"onRef\":_vm.onRef,\"multipleSelect\":true,\"loading\":_vm.state.editorLoading,\"editorTitle\":\" \",\"beforeDelete\":_vm.handleBeforeDelete,\"afterDelete\":_vm.handleAfterDelete,\"beforeAdd\":_vm.handleBeforeAdd,\"afterAdd\":_vm.handleAfterAdd,\"activityConfig\":_vm.state.activityConfig},on:{\"dblclick-node\":_vm.onDblclickNode,\"dblclick-edge\":_vm.onDblClickEdge}},[_c('div',{attrs:{\"slot\":\"menu\"},slot:\"menu\"},[_c('vue-flow-edit-menu-group',{attrs:{\"label\":\"活动节点\",\"value\":\"\"}},_vm._l((_vm.state.activityConfig),function(value,key){return _c('vue-flow-edit-menu',{key:key,attrs:{\"model\":{activity:key,text:value.text,desc:value.desc}}},[_c('template',{slot:\"content\"},[_c('div',{staticClass:\"activity-menu\"},[_c('img',{attrs:{\"src\":value.img}}),_c('span',[_vm._v(_vm._s(value.text))])])])],2)}),1),_vm._l((_vm.state.menuData),function(group,groupIndex){return _c('vue-flow-edit-menu-group',{key:groupIndex,attrs:{\"label\":group.label,\"value\":\"\"}},_vm._l((group.menus),function(menu,menuIndex){return _c('vue-flow-edit-menu',{key:menuIndex,attrs:{\"model\":menu}})}),1)})],2),_c('div',{staticStyle:{\"padding\":\"16px\"},attrs:{\"slot\":\"model\"},slot:\"model\"},[(!!_vm.state.detailModel)?_c('el-form',{ref:\"form\",attrs:{\"model\":_vm.state.detailModel,\"label-width\":\"100px\"}},[(_vm.state.detailModel.activity === undefined)?[_c('el-form-item',{attrs:{\"label\":\"节点名称\",\"prop\":\"label\"}},[_c('el-input',{model:{value:(_vm.state.detailModel.label),callback:function ($$v) {_vm.$set(_vm.state.detailModel, \"label\", $$v)},expression:\"state.detailModel.label\"}})],1),(_vm.state.detailModel.type !== 'edge')?[_c('el-form-item',{attrs:{\"label\":\"节点背景色\",\"prop\":\"style.fill\"}},[_c('el-color-picker',{model:{value:(_vm.state.detailModel.style.fill),callback:function ($$v) {_vm.$set(_vm.state.detailModel.style, \"fill\", $$v)},expression:\"state.detailModel.style.fill\"}})],1),_c('el-form-item',{attrs:{\"label\":\"节点边框色\",\"prop\":\"style.stroke\"}},[_c('el-color-picker',{model:{value:(_vm.state.detailModel.style.stroke),callback:function ($$v) {_vm.$set(_vm.state.detailModel.style, \"stroke\", $$v)},expression:\"state.detailModel.style.stroke\"}})],1),_c('el-form-item',{attrs:{\"label\":\"节点文字色\",\"prop\":\"labelCfg.style.stroke\"}},[_c('el-color-picker',{model:{value:(_vm.state.detailModel.labelCfg.style.fill),callback:function ($$v) {_vm.$set(_vm.state.detailModel.labelCfg.style, \"fill\", $$v)},expression:\"state.detailModel.labelCfg.style.fill\"}})],1)]:_vm._e()]:[_c('el-form-item',{attrs:{\"label\":\"活动标题\"}},[_c('el-input',{model:{value:(_vm.state.detailModel.text),callback:function ($$v) {_vm.$set(_vm.state.detailModel, \"text\", $$v)},expression:\"state.detailModel.text\"}})],1),_c('el-form-item',{attrs:{\"label\":\"活动副标题\"}},[_c('el-input',{model:{value:(_vm.state.detailModel.desc),callback:function ($$v) {_vm.$set(_vm.state.detailModel, \"desc\", $$v)},expression:\"state.detailModel.desc\"}})],1),_c('el-form-item',{attrs:{\"label\":\"活动类型\"}},[_c('el-select',{model:{value:(_vm.state.detailModel.activity),callback:function ($$v) {_vm.$set(_vm.state.detailModel, \"activity\", $$v)},expression:\"state.detailModel.activity\"}},_vm._l((_vm.state.activityConfig),function(value,key){return _c('el-option',{key:key,attrs:{\"label\":value.text,\"value\":key}})}),1)],1)]],2):_vm._e()],1),_c('template',{slot:\"toolbar\"},[_c('el-tooltip',{attrs:{\"content\":\"测试工具栏插槽\"}},[_c('div',{staticClass:\"vue-flow-editor-toolbar-item\",on:{\"click\":_vm.logData}},[_c('i',{staticClass:\"el-icon-search\"})])])],1),_c('template',{slot:\"foot\"},[_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.save}},[_vm._v(\"保存\")]),_c('el-button',{on:{\"click\":_vm.cancel}},[_vm._v(\"取消\")])],1)],2)],1)}\nvar staticRenderFns = []\n\n\n// CONCATENATED MODULE: ./doc/App.vue?vue&type=template&id=6a2d7b64\n\n// EXTERNAL MODULE: ./node_modules/_core-js@2.6.12@core-js/modules/es7.object.get-own-property-descriptors.js\nvar es7_object_get_own_property_descriptors = __webpack_require__(\"ac67\");\n\n// EXTERNAL MODULE: ./node_modules/_core-js@2.6.12@core-js/modules/web.dom.iterable.js\nvar web_dom_iterable = __webpack_require__(\"1bc7\");\n\n// EXTERNAL MODULE: ./node_modules/_core-js@2.6.12@core-js/modules/es6.object.keys.js\nvar es6_object_keys = __webpack_require__(\"32ea\");\n\n// EXTERNAL MODULE: ./node_modules/_regenerator-runtime@0.14.1@regenerator-runtime/runtime.js\nvar runtime = __webpack_require__(\"352e\");\n\n// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.24.1@@babel/runtime/helpers/esm/defineProperty.js\nvar defineProperty = __webpack_require__(\"05e3\");\n\n// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.24.1@@babel/runtime/helpers/esm/asyncToGenerator.js\nvar asyncToGenerator = __webpack_require__(\"e1db\");\n\n// EXTERNAL MODULE: external \"vueCompositionApi\"\nvar external_vueCompositionApi_ = __webpack_require__(\"8165\");\nvar external_vueCompositionApi_default = /*#__PURE__*/__webpack_require__.n(external_vueCompositionApi_);\n\n// CONCATENATED MODULE: ./doc/data.js\nvar AppData = {\n \"nodes\": [{\n \"id\": \"123456\",\n \"x\": 590,\n \"y\": 100,\n \"text\": \"广告宣传\",\n \"desc\": \"通过广告短频宣传\",\n \"activity\": \"advertisement\"\n }, {\n \"id\": \"2323456789\",\n \"x\": 1020,\n \"y\": 100,\n \"text\": \"优惠券\",\n \"desc\": \"发送奖励优惠券\",\n \"activity\": \"coupon\"\n }, {\n \"data\": {},\n \"id\": \"start-node\",\n \"label\": \"开始\",\n \"shape\": \"ellipse\",\n \"x\": 380,\n \"y\": 100\n }, {\n \"data\": {},\n \"id\": \"1588848310120\",\n \"label\": \"主管审批\",\n \"shape\": \"rect\",\n \"x\": 380,\n \"y\": 180\n }, {\n \"data\": {},\n \"id\": \"1588848322179\",\n \"label\": \"经理审批\",\n \"shape\": \"rect\",\n \"x\": 380,\n \"y\": 260\n }, {\n \"data\": {},\n \"id\": \"1588848338211\",\n \"label\": \"金额>2万\",\n \"shape\": \"diamond\",\n \"x\": 380,\n \"y\": 340\n }, {\n \"data\": {},\n \"id\": \"1588848351476\",\n \"label\": \"财务打款\",\n \"shape\": \"rect\",\n \"x\": 380,\n \"y\": 460\n }, {\n \"data\": {},\n \"id\": \"end-node\",\n \"label\": \"结束\",\n \"shape\": \"ellipse\",\n \"x\": 380,\n \"y\": 540\n }, {\n \"data\": {},\n \"id\": \"1588848397511\",\n \"label\": \"VIP审批\",\n \"shape\": \"rect\",\n \"x\": 590,\n \"y\": 340\n }, {\n \"data\": {},\n \"id\": \"1588848436694\",\n \"label\": \"金额>10万\",\n \"shape\": \"diamond\",\n \"x\": 780,\n \"y\": 340\n }, {\n \"data\": {},\n \"id\": \"1588848449431\",\n \"label\": \"CEO审批\",\n \"shape\": \"rect\",\n \"x\": 960,\n \"y\": 460\n }],\n \"edges\": [{\n \"source\": \"start-node\",\n \"sourceAnchor\": 2,\n \"target\": \"1588848310120\",\n \"targetAnchor\": 0\n }, {\n \"source\": \"1588848310120\",\n \"sourceAnchor\": 2,\n \"target\": \"1588848322179\",\n \"targetAnchor\": 0\n }, {\n \"source\": \"1588848322179\",\n \"sourceAnchor\": 2,\n \"target\": \"1588848338211\",\n \"targetAnchor\": 0\n }, {\n \"source\": \"1588848338211\",\n \"sourceAnchor\": 2,\n \"target\": \"1588848351476\",\n \"targetAnchor\": 0\n }, {\n \"source\": \"1588848351476\",\n \"sourceAnchor\": 2,\n \"target\": \"end-node\",\n \"targetAnchor\": 0\n }, {\n \"source\": \"1588848338211\",\n \"sourceAnchor\": 3,\n \"target\": \"1588848397511\",\n \"targetAnchor\": 1\n }, {\n \"source\": \"1588848436694\",\n \"sourceAnchor\": 3,\n \"target\": \"1588848449431\",\n \"targetAnchor\": 0\n }, {\n \"source\": \"1588848449431\",\n \"sourceAnchor\": 1,\n \"target\": \"1588848351476\",\n \"targetAnchor\": 3\n }, {\n \"source\": \"1588848436694\",\n \"sourceAnchor\": 2,\n \"target\": \"1588848351476\",\n \"targetAnchor\": 3\n }, {\n \"source\": \"1588848397511\",\n \"sourceAnchor\": 3,\n \"target\": \"1588848436694\",\n \"targetAnchor\": 1\n }, {\n \"source\": \"start-node\",\n \"sourceAnchor\": 3,\n \"target\": \"123456\",\n \"targetAnchor\": 1\n }, {\n \"source\": \"123456\",\n \"sourceAnchor\": 3,\n \"target\": \"2323456789\",\n \"targetAnchor\": 1\n }, {\n \"source\": \"2323456789\",\n \"sourceAnchor\": 3,\n \"target\": \"end-node\",\n \"targetAnchor\": 3\n }]\n};\n// CONCATENATED MODULE: ./doc/utils.ts\nfunction staticPath(path) {\n return joinPath('/vue-flow-editor', path);\n}\nfunction joinPath(source, target) {\n var separator = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '/';\n if (source.indexOf('/') === source.length - 1) {\n source = source.slice(0, -1);\n }\n if (target.charAt(0) === '/') {\n target = target.slice(1);\n }\n return \"\".concat(source).concat(separator).concat(target);\n}\n// CONCATENATED MODULE: ./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js??ref--13-0!./node_modules/_thread-loader@2.1.3@thread-loader/dist/cjs.js!./node_modules/_babel-loader@8.3.0@babel-loader/lib!./node_modules/_ts-loader@6.2.2@ts-loader??ref--13-3!./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js??ref--0-0!./node_modules/_vue-loader@15.11.1@vue-loader/lib??vue-loader-options!./doc/App.vue?vue&type=script&lang=ts\n\n\n\n\n\n\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) { Object(defineProperty[\"a\" /* default */])(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; }\n\n\n\n/*const AppData = {\r\n // 点集\r\n nodes: [\r\n {\r\n id: 'node1', // String,该节点存在则必须,节点的唯一标识\r\n shape: 'activity',\r\n img: '/images/start-node.png',\r\n text: '砸金蛋',\r\n desc: '砸金蛋抽奖活动',\r\n color: '',\r\n x: 200, // Number,可选,节点位置的 x 值\r\n y: 100, // Number,可选,节点位置的 y 值\r\n },\r\n {\r\n id: 'node2', // String,该节点存在则必须,节点的唯一标识\r\n shape: 'activity',\r\n img: '/images/end-node.png',\r\n text: '滚动抽奖',\r\n desc: '在大屏幕上滚动抽奖',\r\n x: 500, // Number,可选,节点位置的 x 值\r\n y: 300, // Number,可选,节点位置的 y 值\r\n },\r\n {\r\n id: 'node3', // String,该节点存在则必须,节点的唯一标识\r\n shape: 'image',\r\n img: '/vue.png',\r\n size: [50, 50],\r\n x: 400, // Number,可选,节点位置的 x 值\r\n y: 200, // Number,可选,节点位置的 y 值\r\n },\r\n ],\r\n // 边集\r\n edges: [\r\n {\r\n source: 'node1', // String,必须,起始点 id\r\n target: 'node2', // String,必须,目标点 id\r\n },\r\n ],\r\n}*/\nvar Ele = window.ELEMENT;\nvar Appvue_type_script_lang_ts_G6 = window.G6.default;\nfunction delay(time) {\n return new Promise(function (resolve) {\n return setTimeout(resolve, time);\n });\n}\n/* harmony default export */ var Appvue_type_script_lang_ts = ({\n name: \"App.vue\",\n setup: function setup(props, context) {\n var state = Object(external_vueCompositionApi_[\"reactive\"])({\n data: AppData,\n detailModel: null,\n editorLoading: false,\n selectOptions: [{\n label: '待确认',\n value: '0'\n }, {\n label: '填写表单',\n value: '1'\n }, {\n label: '部门负责人审批',\n value: '2'\n }, {\n label: '总经理审批',\n value: '3'\n }],\n menuData: [{\n label: '流程节点',\n menus: [{\n label: '开始',\n shape: 'ellipse',\n id: 'start-node'\n }, {\n label: '结束',\n shape: 'ellipse',\n id: 'end-node'\n }, {\n label: '审批节点',\n busType: '123'\n }, {\n label: '判断节点',\n shape: 'diamond'\n }]\n }, {\n label: '其他形状节点',\n menus: [{\n label: '矩形节点',\n shape: 'rect'\n }, {\n label: '圆形节点',\n shape: 'circle'\n }, {\n label: '椭圆节点',\n shape: 'ellipse'\n }, {\n label: '菱形节点',\n shape: 'diamond'\n }, {\n label: '三角形节点',\n shape: 'triangle'\n }, {\n label: '星形节点',\n shape: 'star'\n }]\n }],\n activityConfig: {\n advertisement: {\n text: '广告宣传',\n desc: '通过广告宣传新品',\n color: '#9283ed',\n img: staticPath('/images/activity/advertisement-node.svg')\n },\n coupon: {\n text: '优惠券',\n desc: '发放奖励优惠券',\n color: '#ed8383',\n img: staticPath('/images/activity/coupon-node.svg')\n },\n crowd: {\n text: '用户反馈',\n desc: '收集用户反馈信息',\n color: '#92dba8',\n img: staticPath('/images/activity/crowd-node.svg')\n }\n }\n });\n var editor;\n function onDblclickNode(e) {\n var model = Appvue_type_script_lang_ts_G6.Util.clone(e.item.get('model'));\n model.style = model.style || {};\n model.labelCfg = model.labelCfg || {\n style: {}\n };\n state.detailModel = model;\n editor.openModel();\n }\n function onDblClickEdge(e) {\n var _e$item$get = e.item.get('model'),\n source = _e$item$get.source,\n target = _e$item$get.target,\n style = _e$item$get.style,\n labelCfg = _e$item$get.labelCfg,\n label = _e$item$get.label;\n var model = {\n label: label,\n source: source,\n target: target,\n style: style || {},\n labelCfg: labelCfg || {\n style: {}\n },\n type: null,\n id: null\n };\n model.type = e.item.get('type');\n model.id = e.item.get('id');\n state.detailModel = model;\n editor.openModel();\n }\n function cancel() {\n editor.closeModel();\n }\n function save() {\n editor.updateModel(state.detailModel);\n editor.closeModel();\n }\n function handleBeforeDelete(_x, _x2) {\n return _handleBeforeDelete.apply(this, arguments);\n }\n function _handleBeforeDelete() {\n _handleBeforeDelete = Object(asyncToGenerator[\"a\" /* default */])( /*#__PURE__*/regeneratorRuntime.mark(function _callee(model, type) {\n return regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n if (!(type === 'node')) {\n _context.next = 8;\n break;\n }\n if (!(model.label === '开始')) {\n _context.next = 8;\n break;\n }\n state.editorLoading = true;\n _context.next = 5;\n return delay(1000);\n case 5:\n state.editorLoading = false;\n Ele.Notification.error('不可以删除【开始】节点');\n return _context.abrupt(\"return\", Promise.reject('reject'));\n case 8:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n return _handleBeforeDelete.apply(this, arguments);\n }\n function handleAfterDelete(model, type) {\n if (type === 'edge') {\n console.log('delete edge');\n } else {\n console.log('after delete', model.label, _objectSpread({}, model));\n }\n }\n function handleBeforeAdd(model, type) {\n if (type === 'edge') {\n if (model.source === 'end-node') {\n Ele.Notification.error('结束节点不能输出连线其他节点');\n return Promise.reject('reject');\n }\n }\n if (type === 'node') {\n if (model.id === 'start-node' || model.id === 'end-node') {\n var data = editor.editorState.graph.save();\n for (var i = 0; i < data.nodes.length; i++) {\n var node = data.nodes[i];\n if (node.id === model.id) {\n Ele.Notification.error(\"\\u53EA\\u80FD\\u6709\\u4E00\\u4E2A\".concat(model.id === 'start-node' ? '开始' : '结束', \"\\u8282\\u70B9\"));\n return Promise.reject('reject');\n }\n }\n }\n }\n }\n function handleAfterAdd(model, type) {\n if (type === 'edge') {\n console.log(\"\\u65B0\\u589E\\u8FDE\\u63A5\\u7EBF\");\n }\n }\n function logData() {\n var _editor$editorState$g = editor.editorState.graph.save(),\n nodes = _editor$editorState$g.nodes,\n edges = _editor$editorState$g.edges;\n nodes = nodes.map(function (_ref) {\n var data = _ref.data,\n id = _ref.id,\n label = _ref.label,\n shape = _ref.shape,\n x = _ref.x,\n y = _ref.y,\n text = _ref.text,\n desc = _ref.desc,\n img = _ref.img;\n return {\n data: data,\n id: id,\n label: label,\n shape: shape,\n x: x,\n y: y,\n text: text,\n desc: desc,\n img: img\n };\n });\n edges = edges.map(function (_ref2) {\n var source = _ref2.source,\n sourceAnchor = _ref2.sourceAnchor,\n target = _ref2.target,\n targetAnchor = _ref2.targetAnchor;\n return {\n source: source,\n sourceAnchor: sourceAnchor,\n target: target,\n targetAnchor: targetAnchor\n };\n });\n console.log(JSON.stringify({\n nodes: nodes,\n edges: edges\n }, null, 2));\n }\n return {\n state: state,\n showGrid: true,\n showMiniMap: false,\n onDblclickNode: onDblclickNode,\n onDblClickEdge: onDblClickEdge,\n cancel: cancel,\n save: save,\n handleBeforeDelete: handleBeforeDelete,\n handleAfterDelete: handleAfterDelete,\n handleBeforeAdd: handleBeforeAdd,\n handleAfterAdd: handleAfterAdd,\n logData: logData,\n onRef: function onRef(e) {\n return editor = e;\n },\n staticPath: staticPath\n };\n }\n});\n// CONCATENATED MODULE: ./doc/App.vue?vue&type=script&lang=ts\n /* harmony default export */ var doc_Appvue_type_script_lang_ts = (Appvue_type_script_lang_ts); \n// EXTERNAL MODULE: ./doc/App.vue?vue&type=style&index=0&id=6a2d7b64&prod&lang=scss\nvar Appvue_type_style_index_0_id_6a2d7b64_prod_lang_scss = __webpack_require__(\"f0b7\");\n\n// EXTERNAL MODULE: ./node_modules/_vue-loader@15.11.1@vue-loader/lib/runtime/componentNormalizer.js\nvar componentNormalizer = __webpack_require__(\"829d\");\n\n// CONCATENATED MODULE: ./doc/App.vue\n\n\n\n\n\n\n/* normalize component */\n\nvar component = Object(componentNormalizer[\"a\" /* default */])(\n doc_Appvue_type_script_lang_ts,\n Appvue_type_template_id_6a2d7b64_render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* harmony default export */ var App = (component.exports);\n// EXTERNAL MODULE: ./node_modules/_core-js@2.6.12@core-js/modules/es6.function.name.js\nvar es6_function_name = __webpack_require__(\"a450\");\n\n// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.24.1@@babel/runtime/helpers/esm/toConsumableArray.js + 3 modules\nvar toConsumableArray = __webpack_require__(\"323a\");\n\n// EXTERNAL MODULE: ./src/editor/iconfont.js\nvar iconfont = __webpack_require__(\"b4ec\");\n\n// EXTERNAL MODULE: ./node_modules/_core-js@2.6.12@core-js/modules/es7.object.values.js\nvar es7_object_values = __webpack_require__(\"b3d7\");\n\n// EXTERNAL MODULE: ./node_modules/_core-js@2.6.12@core-js/modules/es6.string.iterator.js\nvar es6_string_iterator = __webpack_require__(\"0c84\");\n\n// CONCATENATED MODULE: ./src/g6/g6.ts\n// @ts-ignore\nvar G6Module = window.G6;\nvar g6_G6 = G6Module.default;\nvar Item = G6Module.Item;\nvar Grid = G6Module.Grid;\nvar Minimap = G6Module.Minimap;\nvar SingleShapeMixin = G6Module.SingleShapeMixin;\n\n// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.24.1@@babel/runtime/helpers/esm/slicedToArray.js + 3 modules\nvar slicedToArray = __webpack_require__(\"5d4f\");\n\n// CONCATENATED MODULE: ./src/utils/utils.ts\n\n\n\n\n\nfunction utils_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 utils_objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? utils_ownKeys(Object(t), !0).forEach(function (r) { Object(defineProperty[\"a\" /* default */])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : utils_ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction suffixSize(val) {\n if (typeof val === 'number') {\n return \"\".concat(val, \"px\");\n } else {\n val = String(val);\n if (/^[\\d]+$/.test(val)) {\n return \"\".concat(val, \"px\");\n }\n if (val.indexOf('px') > 0) {\n return val;\n }\n return val;\n }\n}\nfunction flatten(array) {\n var flattend = [];\n (function flat(array) {\n array.forEach(function (el) {\n if (Array.isArray(el)) flat(el);else flattend.push(el);\n });\n })(array);\n return flattend;\n}\nvar DEFAULT_SIZE = {\n rect: [130, 40],\n ellipse: [100, 50],\n diamond: [140, 50],\n circle: [80, 80],\n triangle: [80, 80],\n star: [80, 80],\n activity: [200, 80]\n};\nfunction formatPos(option) {\n var _option = option,\n x = _option.x,\n y = _option.y;\n option = utils_objectSpread({}, option);\n option.size = option.size || DEFAULT_SIZE[option.shape];\n var _option$size = Object(slicedToArray[\"a\" /* default */])(option.size, 2),\n width = _option$size[0],\n height = _option$size[1];\n var originPos = {\n x: width / 2,\n y: height / 2\n };\n var targetPos = {\n x: x,\n y: y\n };\n var grid = 5;\n var durx = targetPos.x - originPos.x;\n var dury = targetPos.y - originPos.y;\n if (durx % grid > grid / 2) {\n durx = Math.ceil(durx / grid) * grid;\n } else {\n durx = Math.floor(durx / grid) * grid;\n }\n if (dury % grid > grid / 2) {\n dury = Math.ceil(dury / grid) * grid;\n } else {\n dury = Math.floor(dury / grid) * grid;\n }\n targetPos.x = durx + originPos.x;\n targetPos.y = dury + originPos.y;\n return utils_objectSpread(utils_objectSpread({}, targetPos), {}, {\n size: option.size,\n shape: option.shape\n });\n}\nfunction formatNodeModel(model, activityConfig) {\n var shape = model.shape,\n size = model.size,\n activity = model.activity;\n if (!!activity) {\n shape = 'activity';\n }\n model.size = size || DEFAULT_SIZE[shape];\n if (!!activity && !!activityConfig[activity]) {\n model.shape = 'activity';\n model.img = activityConfig[activity].img;\n model.color = activityConfig[activity].color;\n }\n}\n// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.24.1@@babel/runtime/helpers/esm/createClass.js\nvar createClass = __webpack_require__(\"cd0b\");\n\n// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.24.1@@babel/runtime/helpers/esm/classCallCheck.js\nvar classCallCheck = __webpack_require__(\"be34\");\n\n// CONCATENATED MODULE: ./src/utils/keyboard-code.ts\nvar KeyboardCode = {\n 16: 'shift',\n 17: 'ctrl',\n 18: 'alt',\n 8: 'backspace',\n 9: 'tab',\n 13: 'enter',\n 27: 'esc',\n 32: 'space',\n 37: 'left',\n 38: 'up',\n 39: 'right',\n 40: 'down',\n 46: 'delete',\n 189: '-',\n 187: '=',\n 48: '0',\n 49: '1',\n 50: '2',\n 51: '3',\n 52: '4',\n 53: '5',\n 54: '6',\n 55: '7',\n 56: '8',\n 57: '9',\n 65: 'a',\n 66: 'b',\n 67: 'c',\n 68: 'd',\n 69: 'e',\n 70: 'f',\n 71: 'g',\n 72: 'h',\n 73: 'i',\n 74: 'j',\n 75: 'k',\n 76: 'l',\n 77: 'm',\n 78: 'n',\n 79: 'o',\n 80: 'p',\n 81: 'q',\n 82: 'r',\n 83: 's',\n 84: 't',\n 85: 'u',\n 86: 'v',\n 87: 'w',\n 88: 'x',\n 89: 'y',\n 90: 'z',\n 112: 'F1',\n 113: 'F2',\n 114: 'F3',\n 115: 'F4',\n 116: 'F5',\n 117: 'F6',\n 118: 'F7',\n 119: 'F8',\n 120: 'F9',\n 121: 'F10',\n 122: 'F11',\n 123: 'F12'\n};\n// CONCATENATED MODULE: ./src/plugins/Command.ts\n\n\n\n\n\n\n\nvar Command_Command = /*#__PURE__*/Object(createClass[\"a\" /* default */])(\n// g6对象\nfunction Command(command) {\n Object(classCallCheck[\"a\" /* default */])(this, Command);\n Object(defineProperty[\"a\" /* default */])(this, \"name\", void 0);\n // 命令名称\n Object(defineProperty[\"a\" /* default */])(this, \"execute\", void 0);\n // 命令执行的逻辑\n Object(defineProperty[\"a\" /* default */])(this, \"keyboard\", void 0);\n // 监听的键盘事件:ctrl+shift+alt+a\n Object(defineProperty[\"a\" /* default */])(this, \"isEnable\", void 0);\n // 判断当前是否可用\n Object(defineProperty[\"a\" /* default */])(this, \"isQueue\", void 0);\n // 是否遵循命令队列\n Object(defineProperty[\"a\" /* default */])(this, \"doNothingWhenExecute\", void 0);\n // 在调用execute的时候是否什么也不做 (dragend 的时候,这个位置的更新已经由graph做好了,这时候execute不需要立即执行redu)\n Object(defineProperty[\"a\" /* default */])(this, \"data\", void 0);\n // 命令缓存的数据\n Object(defineProperty[\"a\" /* default */])(this, \"init\", void 0);\n // 命令初始化函数\n Object(defineProperty[\"a\" /* default */])(this, \"destroy\", void 0);\n // 命令初始化函数\n Object(defineProperty[\"a\" /* default */])(this, \"graph\", void 0);\n Object.assign(this, command);\n this.isEnable = command.isEnable == null ? function () {\n return true;\n } : command.isEnable;\n this.isQueue = command.isQueue == null ? true : command.isQueue;\n this.doNothingWhenExecute = command.doNothingWhenExecute == null ? false : command.doNothingWhenExecute;\n this.data = {};\n});\nfunction useCommander(editorState) {\n /**\r\n * 命令状态\r\n * @author 韦胜健\r\n * @date 2020/4/30 11:54\r\n */\n var state = Object(external_vueCompositionApi_[\"reactive\"])({\n queue: [],\n index: -1,\n registerCommands: [] // 当前注册的命令\n });\n var commands = {};\n var isEnable = Object(external_vueCompositionApi_[\"computed\"])(function () {\n return state.registerCommands.reduce(function (ret, item) {\n ret[item.name] = item.isEnable();\n return ret;\n }, {});\n });\n /**\r\n * 注册新命令\r\n * @author 韦胜健\r\n * @date 2020/4/30 11:55\r\n */\n var register = function register(command) {\n if (!command.name) {\n console.log(command);\n throw new Error(\"Commander: command's name can not be empty!\");\n }\n state.registerCommands.push(command);\n commands[command.name] = function () {\n if (!!command.isEnable && !command.isEnable()) {\n return;\n }\n var _command$execute = command.execute.apply(command, arguments),\n undo = _command$execute.undo,\n redo = _command$execute.redo;\n if (!command.isQueue) {\n return !command.doNothingWhenExecute && redo();\n }\n var queue = state.queue,\n index = state.index;\n if (queue.length > 0) {\n queue = queue.slice(0, index + 1);\n state.queue = queue;\n }\n queue.push({\n undo: undo,\n redo: redo\n });\n state.index = index + 1;\n !command.doNothingWhenExecute && redo();\n };\n };\n register(new Command_Command({\n name: 'undo',\n keyboard: 'ctrl+z',\n isQueue: false,\n execute: function execute() {\n return {\n redo: function redo() {\n if (state.index === -1) {\n return;\n }\n var queueItem = state.queue[state.index];\n // console.log('queueItem',queueItem)\n if (!!queueItem) {\n queueItem.undo();\n state.index--;\n }\n }\n };\n },\n isEnable: function isEnable() {\n if (editorState.props.disabledUndo) return false;\n return !!state.queue[state.index];\n }\n }));\n register(new Command_Command({\n name: 'redo',\n keyboard: 'ctrl+shift+z',\n isQueue: false,\n execute: function execute() {\n return {\n redo: function redo() {\n var queueItem = state.queue[state.index + 1];\n if (!!queueItem) {\n queueItem.redo();\n state.index++;\n }\n }\n };\n },\n isEnable: function isEnable() {\n if (editorState.props.disabledUndo) return false;\n return !!state.queue[state.index + 1];\n }\n }));\n var onKeydown;\n function initEvent() {\n if (!onKeydown) {\n onKeydown = function onKeydown(e) {\n var names = [];\n e.ctrlKey && names.push('ctrl');\n e.shiftKey && names.push('shift');\n e.altKey && names.push('alt');\n names.push(KeyboardCode[e.keyCode]);\n var compositionKeyName = names.join('+');\n state.registerCommands.forEach(function (command) {\n if (!command.keyboard) return;\n var keys = Array.isArray(command.keyboard) ? command.keyboard : [command.keyboard];\n if (keys.indexOf(compositionKeyName) > -1) {\n e.stopPropagation();\n e.preventDefault();\n commands[command.name]();\n }\n });\n };\n window.addEventListener('keydown', onKeydown);\n }\n }\n function destroyEvent() {\n if (!!onKeydown) {\n window.removeEventListener('keydown', onKeydown);\n onKeydown = null;\n }\n }\n function init(graph) {\n state.registerCommands.forEach(function (command) {\n command.graph = graph;\n if (!!command.init) {\n command.init();\n }\n });\n }\n function destroy() {\n destroyEvent();\n state.registerCommands.forEach(function (command) {\n if (!!command.destroy) {\n command.destroy();\n }\n });\n }\n return {\n state: state,\n register: register,\n commands: commands,\n isEnable: isEnable,\n initEvent: initEvent,\n destroyEvent: destroyEvent,\n init: init,\n destroy: destroy\n };\n}\n// CONCATENATED MODULE: ./src/behavior/click-select.ts\n\n\nvar DEFAULT_TRIGGER = 'shift';\nvar ALLOW_EVENTS = ['shift', 'ctrl', 'alt'];\n\nvar SELECTED_STATE = 'selected';\nfunction clickSelect(G6) {\n G6.registerBehavior('click-select', {\n getDefaultCfg: function getDefaultCfg() {\n return {\n multiple: true,\n trigger: DEFAULT_TRIGGER\n };\n },\n getEvents: function getEvents() {\n if (!this.multiple) {\n return {\n 'node:click': 'onClick',\n 'edge:click': 'onClick',\n 'canvas:click': 'onCanvasClick'\n };\n }\n return {\n 'node:click': 'onClick',\n 'edge:click': 'onClick',\n 'canvas:click': 'onCanvasClick',\n keyup: 'onKeyUp',\n keydown: 'onKeyDown'\n };\n },\n onClick: function onClick(e) {\n var self = this;\n var item = e.item;\n var graph = self.graph;\n var autoPaint = graph.get('autoPaint');\n graph.setAutoPaint(false);\n // 当前是否选择有变化\n var selectChangeFlag = false;\n if (!self.keydown || !self.multiple) {\n var selected = this.getSelected();\n flatten(Object.values(selected)).forEach(function (n) {\n if (n !== item) {\n if (n.hasState(SELECTED_STATE)) {\n selectChangeFlag = true;\n graph.setItemState(n, SELECTED_STATE, false);\n }\n }\n });\n }\n if (item.hasState(SELECTED_STATE)) {\n return;\n } else {\n if (self.shouldUpdate.call(self, e)) {\n selectChangeFlag = true;\n graph.setItemState(item, SELECTED_STATE, true);\n }\n graph.emit('nodeselectchange', {\n target: item,\n select: true\n });\n }\n if (selectChangeFlag) {\n this.emitSelectChange();\n }\n graph.setAutoPaint(autoPaint);\n graph.paint();\n },\n onCanvasClick: function onCanvasClick() {\n if (this.keydown) {\n return;\n }\n var graph = this.graph;\n var autoPaint = graph.get('autoPaint');\n graph.setAutoPaint(false);\n var selected = this.getSelected();\n // 当前是否选择有变化\n var selectChangeFlag = false;\n flatten(Object.values(selected)).forEach(function (n) {\n if (n.hasState(SELECTED_STATE)) {\n selectChangeFlag = true;\n graph.setItemState(n, SELECTED_STATE, false);\n }\n });\n if (selectChangeFlag) {\n this.emitSelectChange(true);\n }\n graph.paint();\n graph.setAutoPaint(autoPaint);\n },\n onKeyDown: function onKeyDown(e) {\n var code = e.key;\n if (ALLOW_EVENTS.indexOf(code.toLowerCase()) > -1) {\n this.keydown = true;\n } else {\n this.keydown = false;\n }\n },\n onKeyUp: function onKeyUp() {\n this.keydown = false;\n },\n getSelected: function getSelected() {\n return _getSelected(this.graph);\n },\n emitSelectChange: function emitSelectChange() {\n var isClear = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n if (isClear) {\n this.selectChange([], []);\n } else {\n var graph = this.graph;\n var nodes = graph.findAllByState('node', SELECTED_STATE);\n var edges = graph.findAllByState('edge', SELECTED_STATE);\n this.selectChange(nodes, edges);\n }\n },\n selectChange: function selectChange(nodes, edges) {\n this.graph.emit('select-change', {\n nodes: nodes,\n edges: edges\n });\n }\n });\n}\nfunction _getSelected(graph) {\n return {\n nodes: graph.findAllByState('node', SELECTED_STATE),\n edges: graph.findAllByState('edge', SELECTED_STATE)\n };\n}\n\n// EXTERNAL MODULE: ./node_modules/_@antv_util@1.3.1@@antv/util/lib/clone.js\nvar clone = __webpack_require__(\"6ecf\");\nvar clone_default = /*#__PURE__*/__webpack_require__.n(clone);\n\n// CONCATENATED MODULE: ./src/editor/editor.ts\n\n\n\n\n\n\n\n\n\nfunction editor_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 editor_objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? editor_ownKeys(Object(t), !0).forEach(function (r) { Object(defineProperty[\"a\" /* default */])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : editor_ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\n\n\n\n\n\n\nvar VueFlowEditorProvider = '@@VueFlowEditorProvider';\n/**\r\n * 编辑器各个节点整体样式\r\n * @author 韦胜健\r\n * @date 2020/4/29 15:32\r\n */\nfunction useEditorStyles(props) {\n return Object(external_vueCompositionApi_[\"computed\"])(function () {\n return {\n root: {\n height: suffixSize(props.height)\n },\n left: {\n width: suffixSize(props.menuWidth)\n },\n toolbar: {\n height: suffixSize(props.toolbarHeight)\n }\n };\n });\n}\n/**\r\n * 配置G6的插件信息,并且根据props中的属性动态 加载/卸载 插件\r\n * @author 韦胜健\r\n * @date 2020/4/29 11:44\r\n */\nfunction useEditorPlugins(props, graph) {\n var pluginState = Object(external_vueCompositionApi_[\"reactive\"])({\n plugin: {\n grid: null,\n miniMap: null // 当前缩略图插件加载的配置信息对象\n }\n });\n Object(external_vueCompositionApi_[\"watch\"])(function () {\n return props.grid;\n }, function (val) {\n if (val === false || val == null) {\n if (!!pluginState.plugin.grid) {\n graph.removePlugin(pluginState.plugin.grid);\n pluginState.plugin.grid = null;\n }\n } else {\n var pluginConfig = typeof val === \"boolean\" ? {} : val;\n pluginState.plugin.grid = new Grid(pluginConfig);\n graph.addPlugin(pluginState.plugin.grid);\n }\n });\n Object(external_vueCompositionApi_[\"watch\"])(function () {\n return props.miniMap;\n }, function (val) {\n if (val === false || val == null) {\n if (!!pluginState.plugin.miniMap) {\n graph.removePlugin(pluginState.plugin.miniMap);\n pluginState.plugin.miniMap = null;\n }\n } else {\n var pluginConfig = typeof val === \"boolean\" ? {} : val;\n pluginState.plugin.miniMap = new Minimap(pluginConfig);\n graph.addPlugin(pluginState.plugin.miniMap);\n }\n });\n return {\n pluginState: pluginState\n };\n}\n/**\r\n * 对canvas组件所需要的属性做响应式缓存\r\n * @author 韦胜健\r\n * @date 2020/4/29 16:46\r\n */\nfunction useCanvasProps(props) {\n var canvasProps = Object(external_vueCompositionApi_[\"reactive\"])({\n data: props.data,\n grid: props.grid,\n miniMap: props.miniMap\n });\n Object(external_vueCompositionApi_[\"watch\"])(function () {\n return props.data;\n }, function (val) {\n return canvasProps.data = val;\n });\n Object(external_vueCompositionApi_[\"watch\"])(function () {\n return props.grid;\n }, function (val) {\n return canvasProps.grid = val;\n });\n Object(external_vueCompositionApi_[\"watch\"])(function () {\n return props.miniMap;\n }, function (val) {\n return canvasProps.miniMap = val;\n });\n return canvasProps;\n}\n/**\r\n * 注册编辑器常用的命令,以便撤销以及重做命令\r\n * @author 韦胜健\r\n * @date 2020/4/30 15:19\r\n */\nfunction useEditorCommander(editorState) {\n var commander = useCommander(editorState);\n /*网格切换*/\n commander.register(new Command_Command({\n name: 'switchGrid',\n execute: function execute() {\n var grid = editorState.canvasProps.grid;\n return {\n redo: function redo() {\n editorState.canvasProps.grid = !grid;\n },\n undo: function undo() {\n editorState.canvasProps.grid = grid;\n }\n };\n }\n }));\n /*缩略图切换*/\n commander.register(new Command_Command({\n name: 'switchMiniMap',\n execute: function execute() {\n var miniMap = editorState.canvasProps.miniMap;\n return {\n redo: