react-kggraph 0.0.1

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.
Files changed (92) hide show
  1. package/README.md +16 -0
  2. package/lib/components/Graph/CytoscapeReact.css +1 -0
  3. package/lib/components/Graph/components/ActionBar/index.css +1 -0
  4. package/lib/components/Graph/components/PathAnalysis/index.css +1 -0
  5. package/lib/components/Graph/components/PathAnalysisLevel/index.css +1 -0
  6. package/lib/components/Graph/components/SettingCircle/index.css +1 -0
  7. package/lib/favicon.svg +1 -0
  8. package/lib/icons.svg +24 -0
  9. package/lib/index.cjs.js +1 -0
  10. package/lib/index.esm.js +3 -0
  11. package/lib/index10.cjs.js +1 -0
  12. package/lib/index10.esm.js +4 -0
  13. package/lib/index11.cjs.js +1 -0
  14. package/lib/index11.esm.js +4 -0
  15. package/lib/index12.cjs.js +1 -0
  16. package/lib/index12.esm.js +4 -0
  17. package/lib/index13.cjs.js +1 -0
  18. package/lib/index13.esm.js +4 -0
  19. package/lib/index14.cjs.js +1 -0
  20. package/lib/index14.esm.js +4 -0
  21. package/lib/index15.cjs.js +1 -0
  22. package/lib/index15.esm.js +4 -0
  23. package/lib/index16.cjs.js +1 -0
  24. package/lib/index16.esm.js +25 -0
  25. package/lib/index17.cjs.js +1 -0
  26. package/lib/index17.esm.js +330 -0
  27. package/lib/index18.cjs.js +1 -0
  28. package/lib/index18.esm.js +5 -0
  29. package/lib/index19.cjs.js +1 -0
  30. package/lib/index19.esm.js +284 -0
  31. package/lib/index2.cjs.js +1 -0
  32. package/lib/index2.esm.js +16 -0
  33. package/lib/index21.cjs.js +1 -0
  34. package/lib/index21.esm.js +27 -0
  35. package/lib/index22.cjs.js +16 -0
  36. package/lib/index22.esm.js +453 -0
  37. package/lib/index23.cjs.js +1 -0
  38. package/lib/index23.esm.js +10 -0
  39. package/lib/index24.cjs.js +1 -0
  40. package/lib/index24.esm.js +70 -0
  41. package/lib/index26.cjs.js +1 -0
  42. package/lib/index26.esm.js +68 -0
  43. package/lib/index28.cjs.js +1 -0
  44. package/lib/index28.esm.js +72 -0
  45. package/lib/index29.cjs.js +1 -0
  46. package/lib/index29.esm.js +32 -0
  47. package/lib/index30.cjs.js +1 -0
  48. package/lib/index30.esm.js +828 -0
  49. package/lib/index32.cjs.js +1 -0
  50. package/lib/index32.esm.js +4 -0
  51. package/lib/index33.cjs.js +1 -0
  52. package/lib/index33.esm.js +161 -0
  53. package/lib/index34.cjs.js +1 -0
  54. package/lib/index34.esm.js +71 -0
  55. package/lib/index36.cjs.js +1 -0
  56. package/lib/index36.esm.js +100 -0
  57. package/lib/index37.cjs.js +1 -0
  58. package/lib/index37.esm.js +250 -0
  59. package/lib/index38.cjs.js +1 -0
  60. package/lib/index38.esm.js +47 -0
  61. package/lib/index39.cjs.js +1 -0
  62. package/lib/index39.esm.js +378 -0
  63. package/lib/index4.cjs.js +95 -0
  64. package/lib/index4.esm.js +12387 -0
  65. package/lib/index40.cjs.js +1 -0
  66. package/lib/index40.esm.js +6 -0
  67. package/lib/index5.cjs.js +1 -0
  68. package/lib/index5.esm.js +4 -0
  69. package/lib/index6.cjs.js +1 -0
  70. package/lib/index6.esm.js +4 -0
  71. package/lib/index7.cjs.js +1 -0
  72. package/lib/index7.esm.js +4 -0
  73. package/lib/index8.cjs.js +1 -0
  74. package/lib/index8.esm.js +4 -0
  75. package/lib/index9.cjs.js +1 -0
  76. package/lib/index9.esm.js +4 -0
  77. package/lib/src/components/Graph/api.d.ts +2 -0
  78. package/lib/src/components/Graph/components/ActionBar/index.d.ts +9 -0
  79. package/lib/src/components/Graph/components/KnowledgeCard/index.d.ts +3 -0
  80. package/lib/src/components/Graph/components/NodeInfoDrawer/index.d.ts +3 -0
  81. package/lib/src/components/Graph/components/PathAnalysis/index.d.ts +9 -0
  82. package/lib/src/components/Graph/components/PathAnalysisLevel/index.d.ts +5 -0
  83. package/lib/src/components/Graph/components/QueryNode/index.d.ts +8 -0
  84. package/lib/src/components/Graph/components/SettingCircle/index.d.ts +13 -0
  85. package/lib/src/components/Graph/context.d.ts +2 -0
  86. package/lib/src/components/Graph/index.d.ts +8 -0
  87. package/lib/src/components/Graph/types.d.ts +6 -0
  88. package/lib/src/components/Graph/utils/edge_node_styles.d.ts +3 -0
  89. package/lib/src/components/Graph/utils/layouts.d.ts +108 -0
  90. package/lib/src/components/Graph/utils/menuItems.d.ts +1 -0
  91. package/lib/src/components/Graph/utils/tools.d.ts +38 -0
  92. package/package.json +64 -0
@@ -0,0 +1,72 @@
1
+ import { GraphContext as e } from "./index18.esm.js";
2
+ import { require_jsx_runtime as t } from "./index23.esm.js";
3
+ /* empty css */
4
+ import { forwardRef as n, useContext as r, useImperativeHandle as i, useState as a } from "react";
5
+ import { CloseOutlined as o } from "@ant-design/icons";
6
+ import { Button as s, Form as c, Input as l, Select as u } from "antd";
7
+ import d from "antd/es/form/FormItem";
8
+ //#region src/components/Graph/components/PathAnalysisLevel/index.tsx
9
+ var f = t(), p = n(({ onLevelClick: t }, n) => {
10
+ let [p, m] = a(!1), { graphData: h } = r(e), [g, _] = a({ level: 1 });
11
+ i(n, () => ({
12
+ open: (e) => {
13
+ m(!0);
14
+ },
15
+ close: () => m(!1)
16
+ }));
17
+ let v = () => {
18
+ m(!1);
19
+ }, y = (e) => {
20
+ t(e.name, e.level);
21
+ }, b = h.filter((e) => e.group === "nodes").map((e) => e.data);
22
+ return /* @__PURE__ */ (0, f.jsx)(f.Fragment, { children: p && /* @__PURE__ */ (0, f.jsxs)("div", {
23
+ className: "query-node z-10",
24
+ children: [/* @__PURE__ */ (0, f.jsxs)("div", {
25
+ className: "title",
26
+ children: [/* @__PURE__ */ (0, f.jsx)("span", { children: "分析N层关系" }), /* @__PURE__ */ (0, f.jsx)(o, { onClick: () => v() })]
27
+ }), /* @__PURE__ */ (0, f.jsxs)(c, {
28
+ onFinish: y,
29
+ initialValues: g,
30
+ children: [
31
+ /* @__PURE__ */ (0, f.jsx)(d, {
32
+ label: "节点名称",
33
+ labelCol: { span: 6 },
34
+ name: "name",
35
+ wrapperCol: { span: 14 },
36
+ children: /* @__PURE__ */ (0, f.jsx)(u, {
37
+ showSearch: !0,
38
+ style: { width: "200px" },
39
+ options: b.map((e) => ({
40
+ value: e.name,
41
+ label: e.name
42
+ }))
43
+ })
44
+ }),
45
+ /* @__PURE__ */ (0, f.jsx)(d, {
46
+ id: "level",
47
+ label: "层级",
48
+ labelCol: { span: 6 },
49
+ name: "level",
50
+ wrapperCol: { span: 14 },
51
+ children: /* @__PURE__ */ (0, f.jsx)(l, {
52
+ placeholder: "请输入",
53
+ style: { width: 200 },
54
+ type: "number",
55
+ min: 1
56
+ })
57
+ }),
58
+ /* @__PURE__ */ (0, f.jsx)(d, {
59
+ label: null,
60
+ style: { textAlign: "center" },
61
+ children: /* @__PURE__ */ (0, f.jsx)(s, {
62
+ type: "primary",
63
+ htmlType: "submit",
64
+ children: "查询"
65
+ })
66
+ })
67
+ ]
68
+ })]
69
+ }) });
70
+ });
71
+ //#endregion
72
+ export { p as default };
@@ -0,0 +1 @@
1
+ var e=require(`./index2.cjs.js`).__commonJSMin(((e,t)=>{(function(){"use strict";var e={}.hasOwnProperty;function n(){for(var e=``,t=0;t<arguments.length;t++){var n=arguments[t];n&&(e=i(e,r(n)))}return e}function r(t){if(typeof t==`string`||typeof t==`number`)return t;if(typeof t!=`object`)return``;if(Array.isArray(t))return n.apply(null,t);if(t.toString!==Object.prototype.toString&&!t.toString.toString().includes(`[native code]`))return t.toString();var r=``;for(var a in t)e.call(t,a)&&t[a]&&(r=i(r,a));return r}function i(e,t){return t?e?e+` `+t:e+t:e}t!==void 0&&t.exports?(n.default=n,t.exports=n):typeof define==`function`&&typeof define.amd==`object`&&define.amd?define(`classnames`,[],function(){return n}):window.classNames=n})()}));Object.defineProperty(exports,`default`,{enumerable:!0,get:function(){return e()}});
@@ -0,0 +1,32 @@
1
+ import { __commonJSMin as e } from "./index2.esm.js";
2
+ //#region node_modules/classnames/index.js
3
+ var t = /* @__PURE__ */ e(((e, t) => {
4
+ (function() {
5
+ var e = {}.hasOwnProperty;
6
+ function n() {
7
+ for (var e = "", t = 0; t < arguments.length; t++) {
8
+ var n = arguments[t];
9
+ n && (e = i(e, r(n)));
10
+ }
11
+ return e;
12
+ }
13
+ function r(t) {
14
+ if (typeof t == "string" || typeof t == "number") return t;
15
+ if (typeof t != "object") return "";
16
+ if (Array.isArray(t)) return n.apply(null, t);
17
+ if (t.toString !== Object.prototype.toString && !t.toString.toString().includes("[native code]")) return t.toString();
18
+ var r = "";
19
+ for (var a in t) e.call(t, a) && t[a] && (r = i(r, a));
20
+ return r;
21
+ }
22
+ function i(e, t) {
23
+ return t ? e ? e + " " + t : e + t : e;
24
+ }
25
+ t !== void 0 && t.exports ? (n.default = n, t.exports = n) : typeof define == "function" && typeof define.amd == "object" && define.amd ? define("classnames", [], function() {
26
+ return n;
27
+ }) : window.classNames = n;
28
+ })();
29
+ }));
30
+ //#endregion
31
+ export default t();
32
+ export { t as require_classnames };
@@ -0,0 +1 @@
1
+ const e=require(`./index2.cjs.js`);;/* empty css */const t=require(`./index4.cjs.js`),n=require(`./index16.cjs.js`),r=require(`./index17.cjs.js`),i=require(`./index18.cjs.js`),a=require(`./index19.cjs.js`),o=require(`./index23.cjs.js`),s=require(`./index24.cjs.js`),c=require(`./index26.cjs.js`),l=require(`./index28.cjs.js`),u=require(`./index29.cjs.js`);let d=require(`react`);d=e.__toESM(d,1);let f=require(`@ant-design/icons`),p=require(`antd`);var m=e.__toESM(u.default,1),h=o.default,g=(e,t)=>n=>{n.stopPropagation(),e?.(t||``)},_=(0,d.forwardRef)(({graphInfo:e,cyRef:o,initNodeScale:u,typeObj:_,relationObj:b},x)=>{let{layoutType:ee,setLayoutType:te}=(0,d.useContext)(i.GraphContext),[S,C]=(0,d.useState)(``),[w,T]=(0,d.useState)(!1),[E,D]=(0,d.useState)(u),[O,k]=(0,d.useState)(!1),[ne,A]=(0,d.useState)(!1),[j,re]=(0,d.useState)(null),[M,N]=(0,d.useState)(!1),[P,F]=(0,d.useState)(!1),[I,L]=(0,d.useState)(`node`),R=(0,d.useRef)(null),[z,B]=(0,d.useState)(!0),[V,H]=(0,d.useState)(new Set),[U,W]=(0,d.useState)(new Set);(0,d.useImperativeHandle)(x,()=>({onPathAnalysis:()=>{J()}})),(0,d.useEffect)(()=>{G(S)},[S]);let G=async e=>{let t=o.current;if(!t||!S){t?.nodes().removeClass(`highlight`),t?.fit();return}let n=t.nodes().filter(e=>{let t=(e.data(`name`)||``).toLowerCase(),n=(e.data(`role`)||``).toLowerCase(),r=(e.data(`dept`)||``).toLowerCase(),i=String(e.data(`id`)||``).toLowerCase();return t.includes(S.toLowerCase())||n.includes(S.toLowerCase())||r.includes(S.toLowerCase())||i.includes(S.toLowerCase())});t.nodes().removeClass(`highlight`),n.addClass(`highlight`),n.length===1?(console.log(`matchedNodes:::`,n),t.animate({center:{eles:n},duration:500})):alert(`未找到对应节点`)},K=e=>{let t=o.current;if(!t)return;let n=t.zoom();console.log(999,n);let r=0;switch(e){case`out`:r=Math.max(n*.8,.1);break;case`in`:r=Math.min(n*1.2,3);break}t.zoom(r),t.center()},q=()=>{console.log(`查询节点`),k(!0),A(!1),R.current.close()},J=()=>{console.log(`路径分析`),k(!1),A(!0),R.current.close()},Y=t=>{te(t);let n=o.current;n&&(n.nodes().unlock(),a.layout(o,t),t===`cose-bilkent`&&e?.searchNodes?.length===2&&a.fixNodesToEdges(n,e.searchNodes[0],e.searchNodes[1]))},X=()=>{let e=o.current;e&&r.donwnGraphData(e)},ie=()=>{let e=o.current;e&&(re(r.getCyData(e)),N(!0))},Z=(e,t)=>{let r=e.current;r&&(t===`downloadPng`?n.downloadFile(r.png({scale:2,bg:`transparent`,full:!0,quality:1}),`graph_${Date.now()}.png`):t===`downloadJpg`&&n.downloadFile(r.jpg({scale:2,bg:`#ffffff`,full:!0,quality:1}),`graph_${Date.now()}.jpg`))},ae=()=>{let e=o.current;if(!e)return;let{nodes:n=[],edges:i=[]}=r.getCyData(e),a=n.map(e=>{let t=e.data||{},n=t.properties||{};return{节点名称:t.name||t.label||``,节点ID:t.id||``,节点类型:t.types||``,URI:t.label||``,X坐标:e.position?.x||``,Y坐标:e.position?.y||``,层级:t.level||``,宽度:t.baseWidth||``,高度:t.baseHeight||``,图片:t.image||``,属性ID:n.id||``,属性值:n.value||``}}),s=i.map(e=>{let t=e.data||{};return{源节点:t.source?.split(`/#`)[0]?.split(`/`).pop()||t.source,目标节点:t.target?.split(`/#`)[0]?.split(`/`).pop()||t.target,源URI:t.source||``,目标URI:t.target||``,关系名称:t.name||t.label||``,关系ID:t.id||``}}),c=t.utils.book_new();if(a.length>0){let e=t.utils.json_to_sheet(a);e[`!cols`]=[{wch:30},{wch:60},{wch:15},{wch:50},{wch:12},{wch:12},{wch:8},{wch:8},{wch:8},{wch:40},{wch:50},{wch:40}],t.utils.book_append_sheet(c,e,`节点`)}if(s.length>0){let e=t.utils.json_to_sheet(s);e[`!cols`]=[{wch:30},{wch:30},{wch:60},{wch:60},{wch:15},{wch:40}],t.utils.book_append_sheet(c,e,`关系`)}t.writeFileSync(c,`graph_${Date.now()}.xlsx`)},oe=(e,t)=>{switch(e.stopPropagation(),t){case`downloadJson`:X();break;case`previewJsonList`:ie();break;case`downloadExcel`:ae();break;case`previewDataList`:break;case`downloadJpg`:Z(o,t);break;case`downloadPng`:Z(o,t);break}},se=()=>{k(!1),A(!1),R.current.open()},ce=e=>{let t=o.current;if(t)if(t.panningEnabled(!0),e===`all`)t.nodes().addClass(`selected`),t.nodes().select(),t.elements().select();else if(e===`reverse`){let e=t.elements().filter(`:selected`),n=t.elements().not(`:selected`);e.length>0?(e.unselect(),n.select(),e.removeClass(`selected`),n.addClass(`selected`)):(t.elements().select(),t.elements().addClass(`selected`))}else e===`click`?(t.off(`click`,`node`),t.on(`click`,`node`,e=>{let n=e.target;t.nodes().removeClass(`selected grayed highlighted`),t.edges().removeClass(`selected grayed highlighted`),n.addClass(`selected`);let r=n.neighborhood().nodes().add(n),i=r.edgesWith(r);console.log(`cy.nodes().not(relatedNodes):::`,r),t.nodes().not(r).addClass(`grayed`),t.edges().not(i).addClass(`grayed`),r.addClass(`highlighted`),i.addClass(`highlighted`)})):e===`box`&&(console.log(`进入框选模式`),t.nodes().removeClass(`selected`),t.nodes().unselect(),t.elements().unselect(),t.boxSelectionEnabled(!0),t.panningEnabled(!1),t.on(`boxselectstart`,()=>{console.log(`开始框选...`)}),t.on(`boxselect`,e=>{let n=t.elements(`:selected`);console.log(`框选完成,选中元素数:`,n.length),t.elements().removeClass(`selected`),n.addClass(`selected`)}),t.on(`boxselectend`,()=>{console.log(`框选结束`),t.zoomingEnabled(!0),t.panningEnabled(!0)}))},le=()=>{let e=o.current;if(console.log(`isShow::::`),w)T(!1),e.nodes(`[types="typed-literal" ]`).style(`visibility`,`visible`),e.edges().style(`visibility`,`visible`);else{T(!0);let t=e.nodes(`[types="typed-literal" ]`);t.style(`visibility`,`hidden`),t.connectedEdges().style(`visibility`,`hidden`)}},Q=e=>{let t=o.current;if(!t)return;let n=e===`out`?Math.max(E*.8,.1):Math.min(E*1.2,5);D(n);let r=t.nodes();r.style(`width`,e=>(e.data(`baseWidth`)||80)*n),r.style(`height`,e=>(e.data(`baseHeight`)||80)*n)},$=e=>{C(e.content),G(e.content)},ue=(e=`刘强东`,t=`1`)=>{let n=o.current;if(!n)return;n.elements().removeClass(`level-highlight level-selected level-grayed level-highlightedge`);let r=n.nodes().filter(t=>(t.data(`name`)||t.data(`id`)||``).toString().includes(e));if(r.length===0){p.message.warning(`未找到节点: ${e}`);return}let i=parseInt(t)||1,a=n.collection(),s=[];r.forEach(e=>{e.addClass(`level-selected`),a.merge(e);let t=n.collection(),r=new Set;r.add(e.id()),i>=1&&(t=e.neighborhood().nodes(),t.forEach(e=>{r.add(e.id()),a.merge(e)}),s.push(t));for(let e=2;e<=i;e++){let e=n.collection();t.forEach(t=>{t.neighborhood().nodes().forEach(t=>{r.has(t.id())||(r.add(t.id()),e.merge(t))})}),e.forEach(e=>a.merge(e)),s.push(e),t=e}}),s.forEach(e=>{e.addClass(`level-highlight`)}),n.edges().filter(e=>{let t=e.source(),n=e.target();return a.contains(t)&&a.contains(n)}).addClass(`level-highlightedge`);let c=n.elements().filter(`.level-selected, .level-highlight, .level-highlightedge`);n.elements().not(c).addClass(`level-grayed`),p.message.success(`已高亮 "${e}" 及其 ${i} 度关联节点和连线`)},de=e=>{let t=o.current;if(!t)return;let n=new Set(V);n.has(e)?(n.delete(e),t.nodes().filter(t=>t.data(`type`)===e).show()):(n.add(e),t.nodes().filter(t=>t.data(`type`)===e).hide()),H(n)},fe=e=>{let t=o.current;if(!t)return;let n=new Set(U);n.has(e)?(n.delete(e),t.edges().filter(t=>t.data(`name`)===e).show()):(n.add(e),t.edges().filter(t=>t.data(`name`)===e).hide()),W(n)},pe=()=>{let e=o.current;e.remove(e.elements())},me=()=>{F(!0)};return(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(`div`,{className:`graph-bar`,children:(0,h.jsxs)(`div`,{className:`graph-bar-min`,children:[(0,h.jsxs)(p.Flex,{wrap:!0,align:`center`,justify:`center`,className:`hover:text-[#145afd] cursor`,onClick:()=>B(!z),children:[(0,h.jsx)(f.AppstoreOutlined,{}),(0,h.jsx)(p.Flex,{className:`w-100% `,justify:`center`,children:`查询统计`})]}),(0,h.jsx)(p.Dropdown,{menu:{items:r.layoutCongig?.map(e=>({...e,label:(0,h.jsx)(`div`,{className:(0,m.default)({"text-[#145afd]":ee===e.key}),onClick:g(Y,e.key),children:e.label})}))},children:(0,h.jsxs)(p.Flex,{wrap:!0,align:`center`,justify:`center`,className:`hover:text-[#145afd] cursor`,children:[(0,h.jsx)(f.TableOutlined,{}),(0,h.jsx)(p.Flex,{className:`w-100% `,justify:`center`,children:`布局`})]})}),(0,h.jsxs)(p.Flex,{wrap:!0,align:`center`,justify:`center`,className:`hover:text-[#145afd] cursor`,onClick:()=>me(),children:[(0,h.jsx)(f.RobotOutlined,{}),(0,h.jsx)(p.Flex,{className:`w-100% `,justify:`center`,children:`图显示设置`})]}),(0,h.jsx)(p.Dropdown,{menu:{items:r.linkAnalysis.map(e=>({...e,label:(0,h.jsx)(`div`,{onClick:t=>{switch(t.stopPropagation(),e.key){case`query`:q();break;case`link`:se();break;case`path`:J();break}},children:e.label})}))},children:(0,h.jsxs)(p.Flex,{wrap:!0,align:`center`,justify:`center`,className:`hover:text-[#145afd] cursor`,children:[(0,h.jsx)(f.LineChartOutlined,{}),(0,h.jsx)(p.Flex,{className:`w-100% `,justify:`center`,children:`分析`})]})}),(0,h.jsx)(p.Dropdown,{menu:{items:r.choiceConfig?.map(e=>({...e,label:(0,h.jsx)(`div`,{onClick:g(ce,e.key),children:e.label})}))},children:(0,h.jsxs)(p.Flex,{wrap:!0,align:`center`,justify:`center`,className:`hover:text-[#145afd] cursor`,children:[(0,h.jsx)(f.SelectOutlined,{}),(0,h.jsx)(p.Flex,{className:`w-100% `,justify:`center`,children:`选择`})]})}),(0,h.jsx)(p.Dropdown,{menu:{items:r.downloadData?.map(e=>({...e,label:(0,h.jsx)(`div`,{onClick:t=>oe(t,e.key),children:e.label})}))},children:(0,h.jsxs)(p.Flex,{wrap:!0,align:`center`,justify:`center`,className:`hover:text-[#145afd] cursor`,children:[(0,h.jsx)(f.SaveOutlined,{}),(0,h.jsx)(p.Flex,{className:`w-100% `,justify:`center`,children:`下载数据`})]})}),(0,h.jsxs)(p.Flex,{wrap:!0,align:`center`,justify:`center`,className:`hover:text-[#145afd] cursor`,onClick:()=>le(),children:[(0,h.jsx)(f.BorderOuterOutlined,{}),(0,h.jsx)(p.Flex,{className:`w-100% `,justify:`center`,children:`隐藏属性`})]}),(0,h.jsx)(p.Dropdown,{menu:{items:r.textPositionConfig?.map(e=>({...e,label:(0,h.jsx)(`div`,{onClick:g(()=>r.textLayout(o,e.key),e.key),children:e.label})}))},children:(0,h.jsxs)(p.Flex,{wrap:!0,align:`center`,justify:`center`,className:`hover:text-[#145afd] cursor`,children:[(0,h.jsx)(f.LineHeightOutlined,{}),(0,h.jsx)(p.Flex,{className:`w-100% `,justify:`center`,children:`文字位置`})]})}),(0,h.jsxs)(p.Flex,{wrap:!0,align:`center`,justify:`center`,className:`hover:text-[#145afd] cursor`,onClick:()=>pe(),children:[(0,h.jsx)(f.ClearOutlined,{}),(0,h.jsx)(p.Flex,{className:`w-100% `,justify:`center`,children:`清空画布`})]}),(0,h.jsxs)(p.Flex,{wrap:!0,align:`center`,justify:`center`,className:`hover:text-[#145afd] cursor`,children:[(0,h.jsxs)(p.Flex,{gap:`5px`,children:[(0,h.jsx)(f.PlusCircleOutlined,{onClick:()=>Q(`in`)}),(0,h.jsx)(f.MinusCircleOutlined,{onClick:()=>Q(`out`)})]}),(0,h.jsx)(p.Flex,{className:`w-100% `,justify:`center`,children:`节点缩放`})]}),(0,h.jsxs)(p.Flex,{wrap:!0,align:`center`,justify:`center`,className:`hover:text-[#145afd] cursor`,children:[(0,h.jsxs)(p.Flex,{gap:`5px`,children:[(0,h.jsx)(f.PlusSquareOutlined,{onClick:()=>K(`in`)}),(0,h.jsx)(f.MinusSquareOutlined,{onClick:()=>K(`out`)})]}),(0,h.jsx)(p.Flex,{className:`w-100% `,justify:`center`,children:`画布缩放`})]})]})}),(0,h.jsx)(s.default,{isVisible:O,searchChange:e=>$(e),closeQuery:()=>k(!1)}),(0,h.jsx)(c.default,{isVisible:ne,analysis:e=>r.handleCalcPath(o,{pathNodes:e}),closePath:()=>A(!1)}),(0,h.jsx)(l.default,{ref:R,onLevelClick:ue}),(0,h.jsx)(p.Modal,{title:`JSON预览`,open:M,onCancel:()=>N(!1),footer:null,width:800,children:(0,h.jsx)(`pre`,{style:{maxHeight:`60vh`,overflow:`auto`,background:`#f5f5f5`,padding:`16px`,borderRadius:`4px`},children:j?JSON.stringify(j,null,2):`暂无数据`})}),(0,h.jsx)(p.Drawer,{title:`图显示设置`,placement:`right`,open:P,onClose:()=>F(!1),mask:!1,width:350,getContainer:!1,children:(0,h.jsx)(p.Tabs,{activeKey:I,onChange:L,items:[{label:`节点设置`,key:`node`,children:(0,h.jsx)(v,{onSave:e=>{let t=o.current;t&&(t.nodes().forEach(t=>{t.style({width:e.nodeSize,height:e.nodeSize,"font-size":e.fontSize,color:e.fontColor,"font-weight":e.fontWeight,"font-style":e.fontStyle,"text-valign":e.textPosition,"text-halign":`center`,"text-margin-y":e.textOffset,label:e.showLabel===`show`?t.data(`name`)||t.data(`label`):``})}),p.message.success(`节点配置保存成功`))}})},{label:`连线设置`,key:`edge`,children:(0,h.jsx)(y,{onSave:e=>{let t=o.current;t&&(t.edges().forEach(t=>{t.style({width:e.edgeWidth,"line-color":e.edgeColorType===`custom`?e.customColor:`#a29e9e`,"target-arrow-color":e.edgeColorType===`custom`?e.customColor:`#a29e9e`,"target-arrow-shape":e.showArrow===`show`?`triangle`:`none`,"font-size":e.fontSize,color:e.fontColor,"font-weight":e.fontWeight,"font-style":e.fontStyle,label:e.showLabel===`show`?t.data(`label`)||t.data(`name`):``,"text-background-color":e.labelBgColor||`transparent`,"text-background-opacity":+!!e.labelBgColor,"text-background-padding":`2px`})}),p.message.success(`连线配置保存成功`))}})}]})}),(0,h.jsx)(`div`,{className:(0,m.default)(`absolute right-0px z-1 bg-#fff p-10px rounded-10px shadow-[0_4px_20px_0px_rgba(12,95,218,0.33)] w-200px`,{hidden:!z}),children:(0,h.jsx)(p.Tabs,{items:[{label:`实体`,key:`entity`,children:(0,h.jsx)(h.Fragment,{children:Object.keys(_).length>0?(0,h.jsxs)(`div`,{children:[(0,h.jsxs)(`p`,{children:[`实体数量:`,Object.values(_).reduce((e,t)=>e+t.count,0)]}),(0,h.jsxs)(`p`,{className:`my-4px`,children:[`实体类型:`,Object.keys(_).length]}),(0,h.jsx)(p.Flex,{gap:`5px`,justify:`start`,className:`w-100%`,wrap:!0,children:Object.keys(_).map(e=>(0,h.jsxs)(p.Flex,{gap:`4px`,justify:`start`,className:`w-100% cursor ${V.has(e)?`opacity-30`:``}`,onClick:()=>de(e),children:[(0,h.jsx)(`img`,{className:`w-20px rounded-50%`,src:_[e].img,alt:``}),e,`:`,_[e].count]},e))})]}):(0,h.jsx)(`span`,{className:`text-[#666]`,children:`暂无实体统计!`})})},{label:`关系`,key:`relation`,children:(0,h.jsx)(h.Fragment,{children:Object.keys(b)?.length>0?(0,h.jsxs)(`div`,{children:[(0,h.jsxs)(`div`,{children:[`关系数量:`,Object.keys(b)?.length]}),(0,h.jsxs)(`div`,{className:`my-4px`,children:[`关系类型:`,Object.values(b)?.reduce((e,t)=>e+t,0)]}),(0,h.jsx)(p.Flex,{gap:`5px`,justify:`start`,className:`w-100%`,wrap:!0,children:Object.keys(b).map(e=>(0,h.jsxs)(p.Flex,{gap:`4px`,className:`w-100% cursor ${U.has(e)?`opacity-30`:``}`,onClick:()=>fe(e),children:[e,`:`,b[e]]},e))})]}):(0,h.jsx)(`span`,{className:`text-[#666]`,children:`暂无关系统计!`})})}]})})]})}),v=({onSave:e})=>{let[t]=p.Form.useForm();return(0,h.jsxs)(p.Form,{form:t,layout:`vertical`,onFinish:e,children:[(0,h.jsx)(p.Form.Item,{label:`节点大小`,name:`nodeSize`,initialValue:80,children:(0,h.jsx)(p.Input,{type:`number`,placeholder:`请输入节点大小`})}),(0,h.jsx)(p.Form.Item,{label:`显示标签`,name:`showLabel`,initialValue:`show`,children:(0,h.jsxs)(p.Select,{children:[(0,h.jsx)(p.Select.Option,{value:`show`,children:`显示`}),(0,h.jsx)(p.Select.Option,{value:`hide`,children:`隐藏`})]})}),(0,h.jsx)(p.Form.Item,{label:`字体位置`,name:`textPosition`,initialValue:`bottom`,children:(0,h.jsx)(p.Select,{children:r.textPositionConfig.map(e=>(0,h.jsx)(p.Select.Option,{value:e.key,children:e.label},e.item))})}),(0,h.jsx)(p.Form.Item,{label:`字体偏移`,name:`textOffset`,initialValue:5,children:(0,h.jsx)(p.Input,{type:`number`,placeholder:`请输入字体偏移量`})}),(0,h.jsx)(p.Form.Item,{label:`字体颜色`,name:`fontColor`,initialValue:`rgb(50,50,50)`,children:(0,h.jsx)(p.Input,{placeholder:`请输入字体颜色`})}),(0,h.jsx)(p.Form.Item,{label:`字体大小`,name:`fontSize`,initialValue:18,children:(0,h.jsx)(p.Input,{type:`number`,placeholder:`请输入字体大小`})}),(0,h.jsx)(p.Form.Item,{label:`字体粗细`,name:`fontWeight`,initialValue:`normal`,children:(0,h.jsxs)(p.Select,{children:[(0,h.jsx)(p.Select.Option,{value:`normal`,children:`常规`}),(0,h.jsx)(p.Select.Option,{value:`bold`,children:`粗体`}),(0,h.jsx)(p.Select.Option,{value:`lighter`,children:`细体`})]})}),(0,h.jsx)(p.Form.Item,{label:`字体样式`,name:`fontStyle`,initialValue:`normal`,children:(0,h.jsxs)(p.Select,{children:[(0,h.jsx)(p.Select.Option,{value:`normal`,children:`默认`}),(0,h.jsx)(p.Select.Option,{value:`italic`,children:`斜体`})]})}),(0,h.jsx)(p.Form.Item,{children:(0,h.jsx)(p.Button,{type:`primary`,htmlType:`submit`,block:!0,children:`保存节点配置`})})]})},y=({onSave:e})=>{let[t]=p.Form.useForm(),[n,r]=(0,d.useState)(`default`);return(0,h.jsxs)(p.Form,{form:t,layout:`vertical`,onFinish:e,children:[(0,h.jsx)(p.Form.Item,{label:`类型`,name:`edgeType`,initialValue:`straight`,children:(0,h.jsxs)(p.Select,{children:[(0,h.jsx)(p.Select.Option,{value:`straight`,children:`直线`}),(0,h.jsx)(p.Select.Option,{value:`curve`,children:`曲线`})]})}),(0,h.jsx)(p.Form.Item,{label:`连线宽度`,name:`edgeWidth`,initialValue:2,children:(0,h.jsx)(p.Input,{type:`number`,placeholder:`请输入连线宽度`})}),(0,h.jsx)(p.Form.Item,{label:`连线箭头`,name:`showArrow`,initialValue:`show`,children:(0,h.jsxs)(p.Select,{children:[(0,h.jsx)(p.Select.Option,{value:`show`,children:`显示`}),(0,h.jsx)(p.Select.Option,{value:`hide`,children:`隐藏`})]})}),(0,h.jsx)(p.Form.Item,{label:`连线颜色`,name:`edgeColorType`,initialValue:`default`,children:(0,h.jsxs)(p.Select,{onChange:r,children:[(0,h.jsx)(p.Select.Option,{value:`default`,children:`默认`}),(0,h.jsx)(p.Select.Option,{value:`custom`,children:`自定义色`})]})}),n===`custom`&&(0,h.jsx)(p.Form.Item,{label:`自定义颜色`,name:`customColor`,initialValue:`rgb(20,20,20)`,children:(0,h.jsx)(p.Input,{placeholder:`请输入自定义颜色`})}),(0,h.jsx)(p.Form.Item,{label:`显示标签`,name:`showLabel`,initialValue:`show`,children:(0,h.jsxs)(p.Select,{children:[(0,h.jsx)(p.Select.Option,{value:`show`,children:`显示`}),(0,h.jsx)(p.Select.Option,{value:`hide`,children:`隐藏`})]})}),(0,h.jsx)(p.Form.Item,{label:`字体大小`,name:`fontSize`,initialValue:14,children:(0,h.jsx)(p.Input,{type:`number`,placeholder:`请输入字体大小`})}),(0,h.jsx)(p.Form.Item,{label:`字体粗细`,name:`fontWeight`,initialValue:`normal`,children:(0,h.jsxs)(p.Select,{children:[(0,h.jsx)(p.Select.Option,{value:`normal`,children:`常规`}),(0,h.jsx)(p.Select.Option,{value:`bold`,children:`粗体`})]})}),(0,h.jsx)(p.Form.Item,{label:`字体样式`,name:`fontStyle`,initialValue:`normal`,children:(0,h.jsxs)(p.Select,{children:[(0,h.jsx)(p.Select.Option,{value:`normal`,children:`默认`}),(0,h.jsx)(p.Select.Option,{value:`italic`,children:`斜体`})]})}),(0,h.jsx)(p.Form.Item,{label:`字体颜色`,name:`fontColor`,initialValue:`rgb(50,50,50)`,children:(0,h.jsx)(p.Input,{placeholder:`请输入字体颜色`})}),(0,h.jsx)(p.Form.Item,{label:`标签背色`,name:`labelBgColor`,initialValue:``,children:(0,h.jsx)(p.Input,{placeholder:`请选择颜色`})}),(0,h.jsx)(p.Form.Item,{children:(0,h.jsx)(p.Button,{type:`primary`,htmlType:`submit`,block:!0,children:`保存连线配置`})})]})};exports.default=_;