taec0123_avue
Version:
A Magic Configurable Web Framework
6 lines • 14.3 kB
JavaScript
/*!
* Avue.js v0.11.0
* (c) 2017-2026 Taec
* Released under the MIT License.
*
*/!function(e){var t={};function r(a){if(t[a])return t[a].exports;var o=t[a]={i:a,l:!1,exports:{}};return e[a].call(o.exports,o,o.exports,r),o.l=!0,o.exports}r.m=e,r.c=t,r.d=function(e,t,a){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:a})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var a=Object.create(null);if(r.r(a),Object.defineProperty(a,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(a,o,function(t){return e[t]}.bind(null,o));return a},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=0)}([function(e,t){function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,l(a.key),a)}}function o(e,t,r){return t&&a(e.prototype,t),r&&a(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}function n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?n(Object(r),!0).forEach((function(t){s(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):n(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function s(e,t,r){return(t=l(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e){var t=function(e,t){if("object"!=c(e)||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var a=r.call(e,t||"default");if("object"!=c(a))return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==c(t)?t:t+""}function c(e){return(c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var u=["#00E5FF","#1E88E5","#7C4DFF","#D81B60","#FF4081","#FF6D00","#FFAB00","#FFD600","#C6FF00","#76FF03","#00E676","#00C853","#64DD17","#B2FF59","#69F0AE","#00BFA5","#26C6DA","#18FFFF","#00B0FF","#2979FF","#536DFE","#3D5AFE","#651FFF","#7E57C2","#AB47BC","#E040FB","#D500F9","#F50057","#FF1744","#FF5252","#FF7043","#FFA726","#FFCA28","#FFE082","#FFD54F","#AEEA00","#76D7C4","#26A69A","#009688","#2BBBAD","#00ACC1","#0288D1","#1976D2","#1565C0","#00A8FF","#14C8FF","#4FC3F7","#64FFDA","#1DE9B6","#FFC400"],d=function(e){var t=[];return e&&"object"===c(e)?(e.type||t.push("缺少type字段"),Array.isArray(e.categories)||t.push("categories必须是数组"),Array.isArray(e.nodes)||t.push("nodes必须是数组"),Array.isArray(e.links)||t.push("links必须是数组"),e.nodes&&e.nodes.forEach((function(e,r){e.id||t.push("节点[".concat(r,"]缺少id字段")),e.name||t.push("节点[".concat(r,"]缺少name字段")),"number"!=typeof e.category&&t.push("节点[".concat(r,"]category必须是数字"))})),e.links&&e.links.forEach((function(e,r){e.source||t.push("连线[".concat(r,"]缺少source字段")),e.target||t.push("连线[".concat(r,"]缺少target字段"))})),{valid:0===t.length,errors:t}):(t.push("数据必须是一个对象"),{valid:!1,errors:t})},p=function(e){var t=[];return e&&"object"===c(e)?(Array.isArray(e.nodes)||t.push("G6数据nodes必须是数组"),Array.isArray(e.edges)||t.push("G6数据edges必须是数组"),e.nodes&&e.nodes.forEach((function(e,r){e.id||t.push("G6节点[".concat(r,"]缺少id字段")),e.label||e.name||t.push("G6节点[".concat(r,"]缺少label或name字段"))})),e.edges&&e.edges.forEach((function(e,r){e.source||t.push("G6边[".concat(r,"]缺少source字段")),e.target||t.push("G6边[".concat(r,"]缺少target字段"))})),{valid:0===t.length,errors:t}):(t.push("G6数据必须是一个对象"),{valid:!1,errors:t})},f={DEFAULT_CATEGORY_STYLES:{1:{name:"分类1",color:"#ff4d4f"},2:{name:"分类2",color:"#faad14"},3:{name:"分类3",color:"#52c41a"}},CATEGORY_SIZE_CONFIG:{max:36,min:12,step:6},getSizeByCategory:function(e){var t=Number(e)||0,r=this.CATEGORY_SIZE_CONFIG.max-t*this.CATEGORY_SIZE_CONFIG.step;return Math.max(this.CATEGORY_SIZE_CONFIG.min,r)},normalizeNodes:function(e){var t=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return Array.isArray(e)?e.map((function(e,o){var n={id:String(e.id),label:e.name||e.label||"节点".concat(o),name:e.name||e.label||"节点".concat(o),category:e.category||0,value:e.value||1,rawData:i({},e)};if(r&&r[e.category]){var s=r[e.category];n.categoryName=s.name,n.categoryValue=s.value,s.itemStyle&&s.itemStyle.color&&(n.fill=s.itemStyle.color,n.color=s.itemStyle.color)}var l=t.DEFAULT_CATEGORY_STYLES[n.category];!n.fill&&l&&l.color&&(n.fill=l.color,n.color=l.color),e.itemStyle&&(n.fill=e.itemStyle.color||n.fill,n.stroke=e.itemStyle.borderColor,n.lineWidth=e.itemStyle.borderWidth),n.fill&&(n.style=n.style||{},n.style.fill=n.fill),e.symbolSize?n.size=Array.isArray(e.symbolSize)?e.symbolSize[0]:e.symbolSize:n.size=t.getSizeByCategory(n.category),n.size&&!Number.isNaN(n.size)||(n.size=t.CATEGORY_SIZE_CONFIG.min);var c=Array.isArray(a.graphNodeCategory)?a.graphNodeCategory:[];if(c.length){var u=c.find((function(t){if(!t||!t.category)return!1;var r=String(t.category),a=void 0!==e[r]?e[r]:n[r];return String(a)===String(t.categoryValue)}));if(u){if(u.color&&(n.fill=u.color,n.color=u.color,n.style=n.style||{},n.style.fill=u.color),void 0!==u.size&&null!==u.size){var d=Number(u.size);Number.isNaN(d)||(n.size=d)}u.categoryName&&!n.categoryName&&(n.categoryName=u.categoryName)}}return void 0!==e.x&&(n.x=e.x),void 0!==e.y&&(n.y=e.y),n})):[]},normalizeEdges:function(e){return Array.isArray(e)?e.map((function(e,t){var r={id:String(e.id||"".concat(e.source,"-").concat(e.target,"-").concat(t)),source:String(e.source),target:String(e.target),rawData:i({},e)};return e.lineStyle&&(r.stroke=e.lineStyle.color,r.lineWidth=e.lineStyle.width,r.lineDash="dashed"===e.lineStyle.type?[5,5]:null),(e.name||e.label)&&(r.label=e.name||e.label),void 0!==e.value&&(r.value=e.value),r})):[]},transformEChartsToG6:function(e,t){console.log("获取到的图谱配置信息",t);var r=d(e);if(!r.valid)throw new Error("数据验证失败: ".concat(r.errors.join(", ")));var a={nodes:this.normalizeNodes(e.nodes,e.categories,t),edges:this.normalizeEdges(e.links),categories:e.categories||[]},o=p(a);if(!o.valid)throw new Error("G6数据验证失败: ".concat(o.errors.join(", ")));return a}},g=function(){function e(){r(this,e)}return o(e,[{key:"adapt",value:function(e,t){return f.transformEChartsToG6(e,t)}},{key:"validate",value:function(e){return d(e)}},{key:"getStatistics",value:function(e){var t=this.adapt(e),r={};return t.nodes.forEach((function(e){var t=e.categoryName||"分类".concat(e.category);r[t]=(r[t]||0)+1})),{totalNodes:t.nodes.length,totalEdges:t.edges.length,categories:Object.keys(r).length,categoryDistribution:r,averageNodeSize:t.nodes.reduce((function(e,t){return e+(t.size||0)}),0)/t.nodes.length}}},{key:"filter",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=this.adapt(e),a=r.nodes,o=r.edges;if(t.categories&&t.categories.length>0){var n=new Set(t.categories);a=a.filter((function(e){return n.has(e.category)}))}if(t.nodeName){var i=new RegExp(t.nodeName,"i");a=a.filter((function(e){return i.test(e.name)||i.test(e.label)}))}var s=new Set(a.map((function(e){return e.id})));return{nodes:a,edges:o=o.filter((function(e){return s.has(e.source)&&s.has(e.target)})),categories:r.categories}}}],[{key:"adapt",value:function(t,r){return(new e).adapt(t,r)}},{key:"validate",value:function(t){return(new e).validate(t)}},{key:"getStatistics",value:function(t){return(new e).getStatistics(t)}},{key:"filter",value:function(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=new e;return a.filter(t,r)}}])}(),y=function(){function e(t){r(this,e),this.cyData={rels:[],nodes:[],propertiesSet:new Set}}return o(e,[{key:"transEdge",value:function(e){return{arrow:"triangle",classes:"background",id:e.id.relationId,type:e.label,properties:e.properties,source:e.outV.id,target:e.inV.id}}},{key:"transRel",value:function(e){return{id:e.id.relationId,type:e.label,properties:e.properties,startNode:e.outV.id,endNode:e.inV.id}}},{key:"transVertex",value:function(e){var t={id:e.id,labels:[e.label],properties:{}};for(var r in e.properties){this.cyData.propertiesSet.has(r)||this.cyData.propertiesSet.add(r);for(var a=[],o=e.properties[r],n=0;n<o.length;n++)a.push(o[n].value);t.properties[r]=a.join(",")}return t}},{key:"buildNode",value:function(e){var t=this;e.forEach((function(e){var r=t.transVertex(e);t.cyData.nodes.push(r)}))}},{key:"buildEdge",value:function(e){var t=this;e.forEach((function(e){var r=t.transRel(e);t.cyData.rels.push(r)}))}},{key:"build",value:function(e){var t=e&&e.nodes||[],r=e&&e.edges||[];return this.buildNode(t),this.buildEdge(r),Promise.resolve(this.cyData)}}],[{key:"build",value:function(t){return(new e).build(t)}}])}(),h=function(){return o((function e(){r(this,e),this.colorMap={edgeMap:{},nodeMap:{}},this.G6DataAdapterData={edges:[],nodes:[],nodesCategory:new Set,nodesCategoryDetail:{},edgesCategory:new Set,edgesCategoryDetail:{},propertiesSet:null}}),[{key:"adapt",value:function(e,t){return this.adaptNodes(e.nodes,t),this.adaptEdges(e.rels,t),this.G6DataAdapterData}},{key:"adaptEdges",value:function(e,t){var r=this,a=[],o=t.graphEdgeCategory||[];e.forEach((function(e){var t={category:e.type,label:e.type,id:e.id,source:e.startNode.toString(),target:e.endNode.toString(),properties:e.properties,style:{}},n=o.find((function(e){return e.category===t.category}));if(n&&(t.style={color:n.style.fill,fill:n.style.fill,stroke:n.style.fill,lineWidth:n.style.lineWidth||1},t.labelCfg=n.labelCfg||{}),!r.G6DataAdapterData.edgesCategory.has(t.category)&&(r.G6DataAdapterData.edgesCategory.add(t.category),r.G6DataAdapterData.edgesCategoryDetail[t.category]=[],e.properties))for(var i=0,s=Object.keys(e.properties);i<s.length;i++){var l=s[i];r.G6DataAdapterData.edgesCategoryDetail[t.category].push({label:l,value:l})}a.push(t)})),this.G6DataAdapterData.edges=a}},{key:"adaptNodes",value:function(e,t){var r=this,a=t.graphNodeCategory||[],o=[];e.forEach((function(e){var t={category:e.labels[0],id:e.id.toString(),label:v(e.properties.name||e.labels[0]||e.properties.label||e.id.toString()),properties:e.properties,style:{}},n=a.find((function(e){return e.category===t.category}));n&&n.size?(t.size=n.size,t.labelCfg=n.labelCfg,t.style={color:n.color,fill:n.color,stroke:n.color}):(r.colorMap.nodeMap[t.category]||(r.colorMap.nodeMap[t.category]={size:30,color:u[r.G6DataAdapterData.nodesCategory.size%u.length]}),t.style={fill:r.colorMap.nodeMap[t.category].color,stroke:r.colorMap.nodeMap[t.category].color});var i=e.labels[0];if(!r.G6DataAdapterData.nodesCategory.has(i)){r.G6DataAdapterData.nodesCategory.add(i),r.G6DataAdapterData.nodesCategoryDetail[i]=[];for(var s=0,l=Object.keys(e.properties);s<l.length;s++){var c=l[s];r.G6DataAdapterData.nodesCategoryDetail[i].push({label:c,value:c})}}o.push(t)})),this.G6DataAdapterData.nodes=o,console.log("G6DataAdapter adaptNodes",this.G6DataAdapterData),console.log("节点的颜色map",this.colorMap.nodeMap)}}])}();function v(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:15;if(!e)return"";var r=String(e).replace(/^\[|\]$/g,"").replace(/<[^>]*>/g,"");return r.length>t&&(r=r.slice(0,t)+"..."),r}function b(e){var t=e.nodes,r=e.edges,a=(e.types,e.option),o=e.operation,n=void 0===o?"adapt":o;return y.build({nodes:t._items,edges:r._items}).then((function(e){var t=(new h).adapt(e,a);return{operation:n,gremliData:t,status:"success"}})).catch((function(e){return{operation:n,status:"error",error:{message:e.message,stack:e.stack}}}))}console.log("🚀 Graph Worker 已加载并准备接收消息"),self.onmessage=function(e){if(e.data.action){console.log("📥 收到主线程消息收到主线程消息收到主线程消息:",e);var t=e.data,r=t.action,a=t.payload;r&&"progress"!==r&&console.log("📩 Worker 处理指令 [".concat(r,"]"));try{var o;switch(r){case"dataAdapter":o=b;break;case"batchProcess":o=function(e){return Promise.resolve(function(e){for(var t=e.dataArray,r=e.operations,a=e.option,o=[],n=t.length,i=0;i<n;i++){var s=t[i],l=r[i]||"adapt";self.postMessage({action:"progress",payload:{percentage:Math.floor((i+1)/n*100),text:"正在处理第 ".concat(i+1," 个数据 (").concat(l,"操作)")}});try{var c=void 0;switch(l){case"adapt":c=g.adapt(s,a);break;case"validate":c=g.validate(s);break;case"filter":var u=e.filters;c=g.filter(s,u[i]);break;default:throw new Error("不支持的操作类型: ".concat(l))}o.push({index:i,operation:l,status:"success",result:c})}catch(e){o.push({index:i,operation:l,status:"error",error:{message:e.message,stack:e.stack}})}}return{totalProcessed:n,successCount:o.filter((function(e){return"success"===e.status})).length,errorCount:o.filter((function(e){return"error"===e.status})).length,results:o}}(e))};break;default:throw new Error("未知的指令: ".concat(r))}Promise.resolve(o(a)).then((function(e){self.postMessage({action:"taskComplete",status:"success",originalAction:r,payload:e})})).catch((function(e){console.error("Worker: 处理指令 [".concat(r,"] 时发生错误:"),e),self.postMessage({action:"taskError",status:"error",originalAction:r,payload:{message:e.message,stack:e.stack}})}))}catch(e){console.error("Worker: 处理指令 [".concat(r,"] 时发生错误:"),e),self.postMessage({action:"taskError",status:"error",originalAction:r,payload:{message:e.message,stack:e.stack}})}}}}]);