UNPKG

80.2 kBJavaScriptView Raw
1(function(){"use strict";try{if(typeof document<"u"){var i=document.createElement("style");i.appendChild(document.createTextNode(".mind-elixir{--gap: 30px;--root-radius: 30px;--main-radius: 20px;--root-color: #ffffff;--root-bgcolor: #4c4f69;--main-color: #444446;--main-bgcolor: #ffffff;--topic-padding: 3px;--color: #777777;--bgcolor: #f6f6f6;position:relative;-webkit-tap-highlight-color:rgba(0,0,0,0);font-family:-apple-system,BlinkMacSystemFont,Helvetica Neue,PingFang SC,Microsoft YaHei,Source Han Sans SC,Noto Sans CJK SC,WenQuanYi Micro Hei,sans-serif}.mind-elixir .hyper-link{text-decoration:none}.map-container{-webkit-user-select:none;user-select:none;height:100%;width:100%;overflow:scroll;font-size:15px}.map-container::-webkit-scrollbar{width:0px;height:0px}.map-container .selected{box-shadow:0 0 0 2px #4dc4ff}.map-container .lhs{direction:rtl}.map-container .lhs me-tpc{direction:ltr}.map-container .map-canvas{height:20000px;width:20000px;position:relative;-webkit-user-select:none;user-select:none;transition:transform .3s;transform:scale(1);background-color:var(--bgcolor)}.map-container .map-canvas me-nodes{position:absolute;display:flex;justify-content:center;align-items:center;height:fit-content;width:fit-content}.map-container .map-canvas me-root{padding:10px var(--gap);color:var(--root-color);background-color:var(--root-bgcolor);border-radius:var(--root-radius)}.map-container .map-canvas me-root me-tpc{display:block;font-size:25px;white-space:pre-wrap}.map-container .map-canvas me-root me-tpc #input-box{padding:10px var(--gap)}.map-container me-main>me-wrapper{position:relative;margin:20px 65px}.map-container me-main>me-wrapper>me-parent{margin:var(--gap);background-color:var(--main-bgcolor);border:2px solid var(--main-color);border-radius:var(--main-radius);padding:0}.map-container me-main>me-wrapper>me-parent>me-tpc{border-radius:var(--main-radius);color:var(--main-color);padding:8px var(--gap)}.map-container me-main>me-wrapper>me-parent>me-tpc #input-box{padding:8px var(--gap)}.map-container me-wrapper{display:block;pointer-events:none}.map-container me-children,.map-container me-parent{display:inline-block;vertical-align:middle}.map-container me-parent{position:relative;cursor:pointer;padding:6px var(--gap);margin-top:10px}.map-container me-parent me-tpc{position:relative;display:block;border-radius:3px;color:var(--color);pointer-events:all;max-width:800px;white-space:pre-wrap;padding:var(--topic-padding);line-height:1.2}.map-container me-parent me-tpc>div,.map-container me-parent me-tpc>span,.map-container me-parent me-tpc>img{pointer-events:none}.map-container me-parent me-tpc .insert-preview{position:absolute;width:100%;left:0;z-index:9}.map-container me-parent me-tpc .show{background:#7ad5ff;pointer-events:none;opacity:.7}.map-container me-parent me-tpc .before{height:14px;top:-14px}.map-container me-parent me-tpc .in{height:100%;top:0}.map-container me-parent me-tpc .after{height:14px;bottom:-14px}.map-container me-parent me-epd{position:absolute;height:18px;width:18px;opacity:.8;background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgdD0iMTY1NjY1NDcxNzI0MiIgY2xhc3M9Imljb24iIHZpZXdCb3g9IjAgMCAxMDI0IDEwMjQiIHZlcnNpb249IjEuMSIKICAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+CiAgICA8cGF0aCBkPSJNNTEyIDc0LjY2NjY2N0MyNzAuOTMzMzMzIDc0LjY2NjY2NyA3NC42NjY2NjcgMjcwLjkzMzMzMyA3NC42NjY2NjcgNTEyUzI3MC45MzMzMzMgOTQ5LjMzMzMzMyA1MTIgOTQ5LjMzMzMzMyA5NDkuMzMzMzMzIDc1My4wNjY2NjcgOTQ5LjMzMzMzMyA1MTIgNzUzLjA2NjY2NyA3NC42NjY2NjcgNTEyIDc0LjY2NjY2N3oiIHN0cm9rZS13aWR0aD0iNTQiIHN0cm9rZT0nYmxhY2snIGZpbGw9J3doaXRlJyA+PC9wYXRoPgogICAgPHBhdGggZD0iTTY4Mi42NjY2NjcgNDgwaC0xMzguNjY2NjY3VjM0MS4zMzMzMzNjMC0xNy4wNjY2NjctMTQuOTMzMzMzLTMyLTMyLTMycy0zMiAxNC45MzMzMzMtMzIgMzJ2MTM4LjY2NjY2N0gzNDEuMzMzMzMzYy0xNy4wNjY2NjcgMC0zMiAxNC45MzMzMzMtMzIgMzJzMTQuOTMzMzMzIDMyIDMyIDMyaDEzOC42NjY2NjdWNjgyLjY2NjY2N2MwIDE3LjA2NjY2NyAxNC45MzMzMzMgMzIgMzIgMzJzMzItMTQuOTMzMzMzIDMyLTMydi0xMzguNjY2NjY3SDY4Mi42NjY2NjdjMTcuMDY2NjY3IDAgMzItMTQuOTMzMzMzIDMyLTMycy0xNC45MzMzMzMtMzItMzItMzJ6Ij48L3BhdGg+Cjwvc3ZnPg==);background-repeat:no-repeat;background-size:contain;background-position:center;pointer-events:all;z-index:9}.map-container me-parent me-epd.minus{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgdD0iMTY1NjY1NTU2NDk4NSIgY2xhc3M9Imljb24iIHZpZXdCb3g9IjAgMCAxMDI0IDEwMjQiIHZlcnNpb249IjEuMSIKICAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+CiAgICA8cGF0aCBkPSJNNTEyIDc0LjY2NjY2N0MyNzAuOTMzMzMzIDc0LjY2NjY2NyA3NC42NjY2NjcgMjcwLjkzMzMzMyA3NC42NjY2NjcgNTEyUzI3MC45MzMzMzMgOTQ5LjMzMzMzMyA1MTIgOTQ5LjMzMzMzMyA5NDkuMzMzMzMzIDc1My4wNjY2NjcgOTQ5LjMzMzMzMyA1MTIgNzUzLjA2NjY2NyA3NC42NjY2NjcgNTEyIDc0LjY2NjY2N3oiIHN0cm9rZS13aWR0aD0iNTQiIHN0cm9rZT0nYmxhY2snIGZpbGw9J3doaXRlJyA+PC9wYXRoPgogICAgPHBhdGggZD0iTTY4Mi42NjY2NjcgNTQ0SDM0MS4zMzMzMzNjLTE3LjA2NjY2NyAwLTMyLTE0LjkzMzMzMy0zMi0zMnMxNC45MzMzMzMtMzIgMzItMzJoMzQxLjMzMzMzNGMxNy4wNjY2NjcgMCAzMiAxNC45MzMzMzMgMzIgMzJzLTE0LjkzMzMzMyAzMi0zMiAzMnoiPjwvcGF0aD4KPC9zdmc+)!important;transition:opacity .3s;opacity:0}.map-container me-parent me-epd.minus:hover{opacity:.8}.map-container .icon{width:1em;height:1em;vertical-align:-.15em;fill:currentColor;overflow:hidden}.map-container .lines,.map-container .subLines,.map-container .topiclinks,.map-container .linkcontroller{position:absolute;height:102%;width:100%;top:0;left:0}.map-container .topiclinks,.map-container .linkcontroller{pointer-events:none}.map-container .topiclinks g,.map-container .linkcontroller g{pointer-events:all}.map-container .lines,.map-container .subLines{pointer-events:none;z-index:-1}.map-container .topiclinks *,.map-container .linkcontroller *{z-index:100}.map-container .topiclinks g{cursor:pointer}.map-container #input-box{position:absolute;top:0;left:0;padding:var(--topic-padding);background-color:#fff;color:#666;width:max-content;max-width:800px;z-index:11;direction:ltr;-webkit-user-select:auto;user-select:auto}.map-container me-tpc>img{pointer-events:none;display:block;margin-top:8px}.map-container .circle{position:absolute;height:10px;width:10px;margin-top:-5px;margin-left:-5px;border-radius:100%;background:#aaa;cursor:pointer}.map-container .tags{direction:ltr}.map-container .tags span{display:inline-block;border-radius:3px;padding:2px 4px;background:#d6f0f8;color:#276f86;margin:2px 3px 0 0;font-size:12px;line-height:16px}.map-container .icons{display:inline-block;direction:ltr;margin-right:10px}.map-container .mind-elixir-ghost{position:fixed;top:-100%;left:-100%;box-sizing:content-box;opacity:.5;background-color:#f6f6f6;max-width:200px;width:fit-content;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;padding:8px 16px;border-radius:6px;border:#666666 2px solid}.mind-elixir .context-menu{position:fixed;top:0;left:0;width:100%;height:100%;z-index:99}.mind-elixir .context-menu .menu-list{position:fixed;list-style:none;margin:0;padding:0;font:300 15px Roboto,sans-serif;color:#333;box-shadow:0 12px 15px #0003}.mind-elixir .context-menu .menu-list *{transition:color .4s,background-color .4s}.mind-elixir .context-menu .menu-list li{min-width:150px;overflow:hidden;white-space:nowrap;padding:6px 10px;background-color:#fff;border-bottom:1px solid #ecf0f1}.mind-elixir .context-menu .menu-list li a{color:#333;text-decoration:none}.mind-elixir .context-menu .menu-list li.disabled{color:#5e5e5e;background-color:#f7f7f7}.mind-elixir .context-menu .menu-list li.disabled:hover{cursor:default;background-color:#f7f7f7}.mind-elixir .context-menu .menu-list li:hover{cursor:pointer;background-color:#ecf0f1}.mind-elixir .context-menu .menu-list li:first-child{border-radius:5px 5px 0 0}.mind-elixir .context-menu .menu-list li:last-child{border-bottom:0;border-radius:0 0 5px 5px}.mind-elixir .context-menu .menu-list li span:last-child{float:right}.mind-elixir .mobile-menu{position:absolute;left:20px;bottom:70px;z-index:99;margin:0;padding:0;color:#333;border-radius:5px;box-shadow:0 12px 15px #0003;overflow:hidden}.mind-elixir .mobile-menu *{transition:color .4s,background-color .4s}.mind-elixir .mobile-menu div{float:left;text-align:center;width:30px;overflow:hidden;white-space:nowrap;padding:8px;background-color:#fff;border-bottom:1px solid #ecf0f1}.mind-elixir .mobile-menu div a{color:#333;text-decoration:none}.mind-elixir .mobile-menu div.disabled{color:#5e5e5e;background-color:#f7f7f7}.mind-elixir .mobile-menu div.disabled:hover{cursor:default;background-color:#f7f7f7}.mind-elixir .mobile-menu div:hover{cursor:pointer;background-color:#ecf0f1}@media (prefers-color-scheme: dark){.mind-elixir-toolbar{background:#2d3748!important;color:#fff!important}}.mind-elixir-toolbar{font-family:iconfont;position:absolute;background:#fff;padding:10px;border-radius:5px;box-shadow:0 1px 2px #0003}.mind-elixir-toolbar svg{display:inline-block}.mind-elixir-toolbar span:active{opacity:.5}.mind-elixir-toolbar.rb{right:20px;bottom:20px}.mind-elixir-toolbar.rb span+span{margin-left:10px}.mind-elixir-toolbar.lt{font-size:20px;left:20px;top:20px}.mind-elixir-toolbar.lt span{display:block}.mind-elixir-toolbar.lt span+span{margin-top:10px}")),document.head.appendChild(i)}}catch(e){console.error("vite-plugin-css-injected-by-js",e)}})();
2(function(e) {
3 var t, n, i, o, s, r, a = '<svg><symbol id="icon-edit" viewBox="0 0 1024 1024"><path d="M423.765333 128a42.666667 42.666667 0 0 1 3.2 85.205333L423.765333 213.333333H234.666667a64 64 0 0 0-63.872 60.245334L170.666667 277.333333v512a64 64 0 0 0 60.245333 63.872L234.666667 853.333333h512a64 64 0 0 0 63.872-60.245333L810.666667 789.333333v-189.098666a42.666667 42.666667 0 0 1 85.205333-3.2l0.128 3.2V789.333333a149.333333 149.333333 0 0 1-144.213333 149.248L746.666667 938.666667h-512a149.333333 149.333333 0 0 1-149.248-144.213334L85.333333 789.333333v-512a149.333333 149.333333 0 0 1 144.213334-149.248L234.666667 128h189.098666z m324.949334-53.248a42.666667 42.666667 0 0 1 60.330666 0l150.869334 150.869333a42.666667 42.666667 0 0 1 0 60.330667l-329.386667 329.386667a42.666667 42.666667 0 0 1-29.44 12.458666l-153.386667 2.517334a42.666667 42.666667 0 0 1-43.349333-43.349334l2.56-153.386666a42.666667 42.666667 0 0 1 12.458667-29.44z m30.165333 90.496L491.946667 452.266667l-1.493334 91.989333 92.032-1.493333 286.976-286.976-90.538666-90.538667z" ></path></symbol><symbol id="icon-rising" viewBox="0 0 1024 1024"><path d="M553.173333 803.84h-64l0.021334-474.581333-224.021334 224-45.269333-45.226667L521.6 206.293333l301.717333 301.696-45.269333 45.269334-224.853333-224.896v475.477333z" ></path></symbol><symbol id="icon-falling" viewBox="0 0 1024 1024"><path d="M553.173333 238.314667h-64l0.021334 474.602666-224.021334-224-45.269333 45.226667L521.6 835.861333l301.717333-301.717333-45.269333-45.226667-224.853333 224.853334V238.336z" ></path></symbol><symbol id="icon-shanchu2" viewBox="0 0 1024 1024"><path d="M516.60601807 107.93026734c-82.64382935 0-149.71865844 65.51751709-152.5729065 147.77160644H171.37136841c-21.40603638 0-38.92044068 17.38504028-38.92044068 38.92126465 0 21.40686036 17.38504028 38.92208862 38.92126466 38.92208862h42.94308471v435.40136719c0 81.73498536 55.39828492 148.55026245 123.90106201 148.55026245h348.99444581c68.37341309 0 123.90106201-66.42553711 123.901062-148.55026245V333.80477906h38.92126465c21.40686036 0 38.92126464-17.38586426 38.92126465-38.92208863 0-21.40686036-17.38504028-38.92126464-38.92126465-38.92126465H668.91854859C666.45321656 173.44860839 599.24902344 107.93109131 516.60601807 107.93109131z m-79.65939331 147.77160644c2.85424805-42.16442872 37.2354126-74.85809326 79.78875732-74.85809326s76.93450927 32.82302857 79.39984131 74.85809326H436.94662476z m-98.86047364 589.01165771c-24.2611084 0-50.98754883-31.13717651-50.98754883-75.76693725V333.80477906h450.97036744V769.33551026c0 44.50039673-26.72644043 75.76776123-50.98754884 75.76776122H338.08615112v-0.38973999z m0 0" ></path><path d="M390.37063599 751.17263794c17.77313232 0 32.43411255-17.7739563 32.43411255-40.08883667V482.35504151c0-22.31488037-14.53079224-40.08966065-32.43411255-40.08966065-17.77478027 0-32.43493653 17.77478027-32.43493653 40.08966065v228.72875976c0 22.18469239 14.27124023 40.08883667 32.43493653 40.08883667z m117.41308594 0c17.7739563 0 32.43411255-17.7739563 32.43411255-40.08883667V482.35504151c0-22.31488037-14.53079224-40.08966065-32.43411255-40.08966065-17.7739563 0-32.43493653 17.77478027-32.43493653 40.08966065v228.72875976c0 22.18469239 14.66098023 40.08883667 32.43493653 40.08883667z m123.51049804 0c17.7739563 0 32.43493653-17.7739563 32.43493652-40.08883667V482.35504151c0-22.31488037-14.53079224-40.08966065-32.43493652-40.08966065-17.7739563 0-32.43411255 17.77478027-32.43411255 40.08966065v228.72875976c0 22.18469239 14.14105224 40.08883667 32.43411255 40.08883667z m0 0" ></path></symbol><symbol id="icon-zijiedian" viewBox="0 0 1024 1024"><path d="M312.208 472c19.568-157.856 153.432-280 315.656-280 175.68 0 318.112 143.272 318.112 320S803.552 832 627.864 832c-162.224 0-296.08-122.144-315.656-280H120a40 40 0 0 1 0-80h192.208zM632 752c132.552 0 240-107.448 240-240 0-132.552-107.448-240-240-240-132.552 0-240 107.448-240 240 0 132.552 107.448 240 240 240z m-40-280v-80a40 40 0 0 1 80 0v80h80a40 40 0 0 1 0 80h-80v80a40 40 0 0 1-80 0v-80h-80a40 40 0 0 1 0-80h80z" ></path></symbol><symbol id="icon-tongjijiedian-" viewBox="0 0 1024 1024"><path d="M803.84 131.626667H410.24A59.733333 59.733333 0 0 0 350.506667 192v45.226667H199.68a51.626667 51.626667 0 0 0-51.626667 51.626666v465.92a51.626667 51.626667 0 0 0 51.626667 51.626667h187.52v-55.466667h-162.133333a21.333333 21.333333 0 0 1-21.333334-21.333333V313.386667a21.333333 21.333333 0 0 1 21.333334-21.333334h125.653333v64a59.733333 59.733333 0 0 0 59.733333 59.733334h393.386667a59.733333 59.733333 0 0 0 59.733333-59.733334V192a59.733333 59.733333 0 0 0-59.733333-60.373333z m4.266667 224.64a4.266667 4.266667 0 0 1-4.266667 4.266666H410.24a4.266667 4.266667 0 0 1-4.266667-4.266666V192a4.266667 4.266667 0 0 1 4.266667-4.266667h393.6a4.266667 4.266667 0 0 1 4.266667 4.266667zM716.16 749.44h-81.28v-81.493333a27.733333 27.733333 0 0 0-55.466667 0v81.28h-81.493333a27.733333 27.733333 0 1 0 0 55.466666h81.28v81.28a27.733333 27.733333 0 1 0 55.466667 0v-81.066666h81.28a27.733333 27.733333 0 0 0 0-55.466667z" ></path></symbol><symbol id="icon-close" viewBox="0 0 1024 1024"><path d="M557.312 513.248l265.28-263.904c12.544-12.48 12.608-32.704 0.128-45.248-12.512-12.576-32.704-12.608-45.248-0.128L512.128 467.904l-263.04-263.84c-12.448-12.48-32.704-12.544-45.248-0.064-12.512 12.48-12.544 32.736-0.064 45.28l262.976 263.776L201.6 776.8c-12.544 12.48-12.608 32.704-0.128 45.248a31.937 31.937 0 0 0 22.688 9.44c8.16 0 16.32-3.104 22.56-9.312l265.216-263.808 265.44 266.24c6.24 6.272 14.432 9.408 22.656 9.408a31.94 31.94 0 0 0 22.592-9.344c12.512-12.48 12.544-32.704 0.064-45.248L557.312 513.248z" fill="" ></path></symbol><symbol id="icon-menu" viewBox="0 0 1024 1024"><path d="M109.714 292.571h804.572c21.943 0 36.571-21.942 36.571-43.885 0-14.629-14.628-29.257-36.571-29.257H109.714c-21.943 0-36.571 14.628-36.571 36.571 0 14.629 14.628 36.571 36.571 36.571zM914.286 512H109.714c-21.943 0-36.571 14.629-36.571 36.571 0 14.629 14.628 36.572 36.571 36.572h804.572c21.943 0 36.571-21.943 36.571-43.886 0-14.628-14.628-29.257-36.571-29.257z m0 292.571H109.714c-21.943 0-36.571 14.629-36.571 36.572s14.628 36.571 36.571 36.571h804.572c21.943 0 36.571-21.943 36.571-36.571 0-21.943-14.628-36.572-36.571-36.572z" ></path></symbol><symbol id="icon-right" viewBox="0 0 1024 1024"><path d="M385 560.69999999L385 738.9c0 36.90000001 26.4 68.5 61.3 68.5l150.2 0c1.5 0 3-0.1 4.5-0.3 10.2 38.7 45.5 67.3 87.5 67.3 50 0 90.5-40.5 90.5-90.5s-40.5-90.5-90.5-90.5c-42 0-77.3 28.6-87.5 67.39999999-1.4-0.3-2.9-0.4-4.5-0.39999999L446.3 760.4c-6.8 0-14.3-8.9-14.3-21.49999999l0-427.00000001c0-12.7 7.40000001-21.5 14.30000001-21.5l150.19999999 0c1.5 0 3-0.2 4.5-0.4 10.2 38.8 45.5 67.3 87.5 67.3 50 0 90.5-40.5 90.5-90.4 0-49.9-40.5-90.6-90.5-90.59999999-42 0-77.3 28.6-87.5 67.39999999-1.4-0.2-2.9-0.4-4.49999999-0.4L446.3 243.3c-34.80000001 0-61.3 31.6-61.3 68.50000001L385 513.7l-79.1 0c-10.4-38.5-45.49999999-67-87.4-67-50 0-90.5 40.5-90.5 90.5s40.5 90.5 90.5 90.5c41.79999999 0 77.00000001-28.4 87.4-67L385 560.69999999z" fill="" ></path></symbol><symbol id="icon-left" viewBox="0 0 1024 1024"><path d="M639 463.30000001L639 285.1c0-36.90000001-26.4-68.5-61.3-68.5l-150.2 0c-1.5 0-3 0.1-4.5 0.3-10.2-38.7-45.5-67.3-87.5-67.3-50 0-90.5 40.5-90.5 90.5s40.5 90.5 90.5 90.5c42 0 77.3-28.6 87.5-67.39999999 1.4 0.3 2.9 0.4 4.5 0.39999999L577.7 263.6c6.8 0 14.3 8.9 14.3 21.49999999l0 427.00000001c0 12.7-7.40000001 21.5-14.30000001 21.5l-150.19999999 0c-1.5 0-3 0.2-4.5 0.4-10.2-38.8-45.5-67.3-87.5-67.3-50 0-90.5 40.5-90.5 90.4 0 49.9 40.5 90.6 90.5 90.59999999 42 0 77.3-28.6 87.5-67.39999999 1.4 0.2 2.9 0.4 4.49999999 0.4L577.7 780.7c34.80000001 0 61.3-31.6 61.3-68.50000001L639 510.3l79.1 0c10.4 38.5 45.49999999 67 87.4 67 50 0 90.5-40.5 90.5-90.5s-40.5-90.5-90.5-90.5c-41.79999999 0-77.00000001 28.4-87.4 67L639 463.30000001z" fill="" ></path></symbol><symbol id="icon-side" viewBox="0 0 1024 1024"><path d="M851.91168 328.45312c-59.97056 0-108.6208 48.47104-108.91264 108.36992l-137.92768 38.4a109.14304 109.14304 0 0 0-63.46752-46.58688l1.39264-137.11872c47.29344-11.86816 82.31936-54.66624 82.31936-105.64096 0-60.15488-48.76288-108.91776-108.91776-108.91776s-108.91776 48.76288-108.91776 108.91776c0 49.18784 32.60928 90.75712 77.38368 104.27392l-1.41312 138.87488a109.19936 109.19936 0 0 0-63.50336 48.55808l-138.93632-39.48544 0.01024-0.72704c0-60.15488-48.76288-108.91776-108.91776-108.91776s-108.91776 48.75776-108.91776 108.91776c0 60.15488 48.76288 108.91264 108.91776 108.91264 39.3984 0 73.91232-20.92032 93.03552-52.2496l139.19232 39.552-0.00512 0.2304c0 25.8304 9.00096 49.5616 24.02816 68.23424l-90.14272 132.63872a108.7488 108.7488 0 0 0-34.2528-5.504c-60.15488 0-108.91776 48.768-108.91776 108.91776 0 60.16 48.76288 108.91776 108.91776 108.91776 60.16 0 108.92288-48.75776 108.92288-108.91776 0-27.14624-9.9328-51.968-26.36288-71.04l89.04704-131.03104a108.544 108.544 0 0 0 37.6832 6.70208 108.672 108.672 0 0 0 36.48512-6.272l93.13792 132.57216a108.48256 108.48256 0 0 0-24.69888 69.0688c0 60.16 48.768 108.92288 108.91776 108.92288 60.16 0 108.91776-48.76288 108.91776-108.92288 0-60.14976-48.75776-108.91776-108.91776-108.91776a108.80512 108.80512 0 0 0-36.69504 6.3488l-93.07136-132.48a108.48768 108.48768 0 0 0 24.79616-72.22784l136.09984-37.888c18.99008 31.93856 53.84192 53.3504 93.69088 53.3504 60.16 0 108.92288-48.75776 108.92288-108.91264-0.00512-60.15488-48.77312-108.92288-108.92288-108.92288z" ></path></symbol><symbol id="icon-B" viewBox="0 0 1024 1024"><path d="M98.067692 65.457231H481.28c75.854769 0 132.411077 3.150769 169.668923 9.452307 37.336615 6.301538 70.656 19.534769 100.036923 39.620924 29.459692 20.007385 53.956923 46.710154 73.570462 80.029538 19.692308 33.398154 29.459692 70.734769 29.459692 112.167385 0 44.898462-12.130462 86.094769-36.233846 123.588923a224.886154 224.886154 0 0 1-98.461539 84.283077c58.368 17.092923 103.266462 46.08 134.695385 87.04 31.350154 40.96 47.025231 89.088 47.025231 144.462769 0 43.638154-10.082462 86.016-30.404923 127.212308-20.243692 41.196308-47.891692 74.043077-83.02277 98.697846-35.052308 24.654769-78.296615 39.778462-129.732923 45.449846-32.295385 3.465846-110.119385 5.671385-233.472 6.537846H98.067692V65.457231z m193.536 159.507692V446.621538h126.818462c75.460923 0 122.328615-1.024 140.603077-3.229538 33.083077-3.938462 59.155692-15.36 78.139077-34.343385 18.904615-18.904615 28.435692-43.874462 28.435692-74.830769 0-29.696-8.192-53.720615-24.497231-72.310154-16.384-18.510769-40.644923-29.696-72.940307-33.634461-19.140923-2.205538-74.279385-3.308308-165.415385-3.308308h-111.064615z m0 381.243077v256.315077h179.2c69.710769 0 113.979077-1.969231 132.726154-5.907692 28.750769-5.198769 52.145231-17.959385 70.262154-38.281847 18.116923-20.243692 27.096615-47.340308 27.096615-81.368615 0-28.750769-6.931692-53.169231-20.873846-73.255385a118.232615 118.232615 0 0 0-60.494769-43.795692c-26.387692-9.137231-83.574154-13.705846-171.638154-13.705846H291.603692z" ></path></symbol><symbol id="icon-a" viewBox="0 0 1024 1024"><path d="M757.76 665.6q0 20.48 1.536 34.304t7.68 22.016 18.944 12.288 34.304 4.096q-3.072 25.6-15.36 44.032-11.264 16.384-33.28 29.696t-62.976 13.312q-11.264 0-20.48-0.512t-17.408-2.56l-6.144-2.048-1.024 0q-4.096-1.024-10.24-4.096-2.048-2.048-4.096-2.048-1.024-1.024-2.048-1.024-14.336-8.192-23.552-17.408t-14.336-17.408q-6.144-10.24-9.216-20.48-63.488 75.776-178.176 75.776-48.128 0-88.064-15.36t-69.12-44.032-45.056-68.096-15.872-88.576 16.896-89.088 47.616-67.584 74.24-42.496 96.768-14.848q48.128 0 88.576 17.408t66.048 49.152q0-8.192 0.512-16.384t0.512-15.36q0-71.68-39.936-104.448t-128-32.768q-43.008 0-84.992 6.656t-84.992 17.92q14.336-28.672 25.088-47.616t24.064-29.184q30.72-24.576 158.72-24.576 79.872 0 135.168 13.824t90.624 43.52 51.2 75.264 15.872 108.032l0 200.704zM487.424 743.424q50.176 0 79.872-33.28t29.696-95.744q0-61.44-28.672-93.696t-76.8-32.256q-52.224 0-82.944 33.28t-30.72 94.72q0 58.368 31.744 92.672t77.824 34.304z" ></path></symbol><symbol id="icon-full" viewBox="0 0 1024 1024"><path d="M639.328 416c8.032 0 16.096-3.008 22.304-9.056l202.624-197.184-0.8 143.808c-0.096 17.696 14.144 32.096 31.808 32.192 0.064 0 0.128 0 0.192 0 17.6 0 31.904-14.208 32-31.808l1.248-222.208c0-0.672-0.352-1.248-0.384-1.92 0.032-0.512 0.288-0.896 0.288-1.408 0.032-17.664-14.272-32-31.968-32.032L671.552 96l-0.032 0c-17.664 0-31.968 14.304-32 31.968C639.488 145.632 653.824 160 671.488 160l151.872 0.224-206.368 200.8c-12.672 12.32-12.928 32.608-0.64 45.248C622.656 412.736 630.976 416 639.328 416z" ></path><path d="M896.032 639.552 896.032 639.552c-17.696 0-32 14.304-32.032 31.968l-0.224 151.872-200.832-206.4c-12.32-12.64-32.576-12.96-45.248-0.64-12.672 12.352-12.928 32.608-0.64 45.248l197.184 202.624-143.808-0.8c-0.064 0-0.128 0-0.192 0-17.6 0-31.904 14.208-32 31.808-0.096 17.696 14.144 32.096 31.808 32.192l222.24 1.248c0.064 0 0.128 0 0.192 0 0.64 0 1.12-0.32 1.76-0.352 0.512 0.032 0.896 0.288 1.408 0.288l0.032 0c17.664 0 31.968-14.304 32-31.968L928 671.584C928.032 653.952 913.728 639.584 896.032 639.552z" ></path><path d="M209.76 159.744l143.808 0.8c0.064 0 0.128 0 0.192 0 17.6 0 31.904-14.208 32-31.808 0.096-17.696-14.144-32.096-31.808-32.192L131.68 95.328c-0.064 0-0.128 0-0.192 0-0.672 0-1.248 0.352-1.888 0.384-0.448 0-0.8-0.256-1.248-0.256 0 0-0.032 0-0.032 0-17.664 0-31.968 14.304-32 31.968L96 352.448c-0.032 17.664 14.272 32 31.968 32.032 0 0 0.032 0 0.032 0 17.664 0 31.968-14.304 32-31.968l0.224-151.936 200.832 206.4c6.272 6.464 14.624 9.696 22.944 9.696 8.032 0 16.096-3.008 22.304-9.056 12.672-12.32 12.96-32.608 0.64-45.248L209.76 159.744z" ></path><path d="M362.368 617.056l-202.624 197.184 0.8-143.808c0.096-17.696-14.144-32.096-31.808-32.192-0.064 0-0.128 0-0.192 0-17.6 0-31.904 14.208-32 31.808l-1.248 222.24c0 0.704 0.352 1.312 0.384 2.016 0 0.448-0.256 0.832-0.256 1.312-0.032 17.664 14.272 32 31.968 32.032L352.448 928c0 0 0.032 0 0.032 0 17.664 0 31.968-14.304 32-31.968s-14.272-32-31.968-32.032l-151.936-0.224 206.4-200.832c12.672-12.352 12.96-32.608 0.64-45.248S375.008 604.704 362.368 617.056z" ></path></symbol><symbol id="icon-add" viewBox="0 0 1024 1024"><path d="M863.328 482.56l-317.344-1.12L545.984 162.816c0-17.664-14.336-32-32-32s-32 14.336-32 32l0 318.4L159.616 480.064c-0.032 0-0.064 0-0.096 0-17.632 0-31.936 14.24-32 31.904C127.424 529.632 141.728 544 159.392 544.064l322.592 1.152 0 319.168c0 17.696 14.336 32 32 32s32-14.304 32-32l0-318.944 317.088 1.12c0.064 0 0.096 0 0.128 0 17.632 0 31.936-14.24 32-31.904C895.264 496.992 880.96 482.624 863.328 482.56z" ></path></symbol><symbol id="icon-move" viewBox="0 0 1024 1024"><path d="M863.744 544 163.424 544c-17.664 0-32-14.336-32-32s14.336-32 32-32l700.32 0c17.696 0 32 14.336 32 32S881.44 544 863.744 544z" ></path></symbol><symbol id="icon-living" viewBox="0 0 1024 1024"><path d="M514.133333 488.533333m-106.666666 0a106.666667 106.666667 0 1 0 213.333333 0 106.666667 106.666667 0 1 0-213.333333 0Z" fill="" ></path><path d="M512 64C264.533333 64 64 264.533333 64 512c0 236.8 183.466667 428.8 416 445.866667v-134.4c-53.333333-59.733333-200.533333-230.4-200.533333-334.933334 0-130.133333 104.533333-234.666667 234.666666-234.666666s234.666667 104.533333 234.666667 234.666666c0 61.866667-49.066667 153.6-145.066667 270.933334l-59.733333 68.266666V960C776.533333 942.933333 960 748.8 960 512c0-247.466667-200.533333-448-448-448z" fill="" ></path></symbol></svg>', l = (l = document.getElementsByTagName("script"))[l.length - 1].getAttribute("data-injectcss");
4 if (l && !e.__iconfont__svg__cssinject__) {
5 e.__iconfont__svg__cssinject__ = !0;
6 try {
7 document.write(
8 "<style>.svgfont {display: inline-block;width: 1em;height: 1em;fill: currentColor;vertical-align: -0.1em;font-size:16px;}</style>"
9 );
10 } catch (c) {
11 console && console.log(c);
12 }
13 }
14 function u() {
15 s || (s = !0, i());
16 }
17 t = function() {
18 var c, h, d, p;
19 (p = document.createElement("div")).innerHTML = a, a = null, (d = p.getElementsByTagName("svg")[0]) && (d.setAttribute("aria-hidden", "true"), d.style.position = "absolute", d.style.width = 0, d.style.height = 0, d.style.overflow = "hidden", c = d, (h = document.body).firstChild ? (p = c, (d = h.firstChild).parentNode.insertBefore(p, d)) : h.appendChild(c));
20 }, document.addEventListener ? ~["complete", "loaded", "interactive"].indexOf(document.readyState) ? setTimeout(t, 0) : (n = function() {
21 document.removeEventListener("DOMContentLoaded", n, !1), t();
22 }, document.addEventListener("DOMContentLoaded", n, !1)) : document.attachEvent && (i = t, o = e.document, s = !1, (r = function() {
23 try {
24 o.documentElement.doScroll("left");
25 } catch {
26 return void setTimeout(r, 50);
27 }
28 u();
29 })(), o.onreadystatechange = function() {
30 o.readyState == "complete" && (o.onreadystatechange = null, u());
31 });
32})(window);
33const x = 0, P = 1, _ = 2, M = 30, w = 8, le = {
34 name: "Latte",
35 palette: ["#dd7878", "#ea76cb", "#8839ef", "#e64553", "#fe640b", "#df8e1d", "#40a02b", "#209fb5", "#1e66f5", "#7287fd"],
36 cssVar: {
37 "--main-color": "#444446",
38 "--main-bgcolor": "#ffffff",
39 "--color": "#777777",
40 "--bgcolor": "#f6f6f6"
41 }
42}, ce = {
43 name: "Dark",
44 palette: ["#848FA0", "#748BE9", "#D2F9FE", "#4145A5", "#789AFA", "#706CF4", "#EF987F", "#775DD5", "#FCEECF", "#DA7FBC"],
45 cssVar: {
46 "--main-color": "#ffffff",
47 "--main-bgcolor": "#4c4f69",
48 "--color": "#cccccc",
49 "--bgcolor": "#252526"
50 }
51};
52function q(e) {
53 return e.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/"/g, "&quot;");
54}
55const Ce = () => /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent), ae = function(e, t) {
56 if (t.id === e)
57 return t;
58 if (t.children && t.children.length) {
59 for (let n = 0; n < t.children.length; n++) {
60 const i = ae(e, t.children[n]);
61 if (i)
62 return i;
63 }
64 return null;
65 } else
66 return null;
67}, L = (e, t) => {
68 if (e.parent = t, e.children)
69 for (let n = 0; n < e.children.length; n++)
70 L(e.children[n], e);
71};
72function de(e) {
73 if (e.id = I(), e.children)
74 for (let t = 0; t < e.children.length; t++)
75 de(e.children[t]);
76}
77const Ee = (e, t) => {
78 let n = Date.now();
79 return function(...i) {
80 Date.now() - n >= t && (e(...i), n = Date.now());
81 };
82};
83function he(e, t, n, i) {
84 const o = i - t, s = e - n;
85 let r = Math.atan(Math.abs(o) / Math.abs(s)) / 3.14 * 180;
86 s < 0 && o > 0 && (r = 180 - r), s < 0 && o < 0 && (r = 180 + r), s > 0 && o < 0 && (r = 360 - r);
87 const a = 20, l = 30, u = r + l, c = r - l;
88 return {
89 x1: n + Math.cos(Math.PI * u / 180) * a,
90 y1: i - Math.sin(Math.PI * u / 180) * a,
91 x2: n + Math.cos(Math.PI * c / 180) * a,
92 y2: i - Math.sin(Math.PI * c / 180) * a
93 };
94}
95function U(e, t, n) {
96 let i, o;
97 const s = (e.cy - n) / (t - e.cx);
98 return s > e.h / e.w || s < -e.h / e.w ? e.cy - n < 0 ? (i = e.cx - e.h / 2 / s, o = e.cy + e.h / 2) : (i = e.cx + e.h / 2 / s, o = e.cy - e.h / 2) : e.cx - t < 0 ? (i = e.cx + e.w / 2, o = e.cy - e.w * s / 2) : (i = e.cx - e.w / 2, o = e.cy + e.w * s / 2), {
99 x: i,
100 y: o
101 };
102}
103function G(e, t, n) {
104 let i, o;
105 const s = (e.cy - n) / (t - e.cx);
106 return s > e.h / e.w || s < -e.h / e.w ? e.cy - n < 0 ? (i = e.cx - e.h / 2 / s, o = e.cy + e.h / 2) : (i = e.cx + e.h / 2 / s, o = e.cy - e.h / 2) : e.cx - t < 0 ? (i = e.cx + e.w / 2, o = e.cy - e.w * s / 2) : (i = e.cx - e.w / 2, o = e.cy + e.w * s / 2), {
107 x: i,
108 y: o
109 };
110}
111function I() {
112 return ((/* @__PURE__ */ new Date()).getTime().toString(16) + Math.random().toString(16).substr(2)).substr(2, 16);
113}
114const ke = function() {
115 const e = I();
116 return {
117 topic: this.newTopicName,
118 id: e
119 };
120};
121function xe(e, t) {
122 let n = !0;
123 for (; t.parent; ) {
124 if (t.parent === e) {
125 n = !1;
126 break;
127 }
128 t = t.parent;
129 }
130 return n;
131}
132const T = (e) => {
133 var i;
134 const t = (i = e.parent) == null ? void 0 : i.children, n = t.indexOf(e);
135 return { siblings: t, index: n };
136};
137function we(e) {
138 const { siblings: t, index: n } = T(e), i = t[n];
139 n === 0 ? (t[n] = t[t.length - 1], t[t.length - 1] = i) : (t[n] = t[n - 1], t[n - 1] = i);
140}
141function Me(e) {
142 const { siblings: t, index: n } = T(e), i = t[n];
143 n === t.length - 1 ? (t[n] = t[0], t[0] = i) : (t[n] = t[n + 1], t[n + 1] = i);
144}
145function Y(e) {
146 const { siblings: t, index: n } = T(e);
147 return t.splice(n, 1), t.length;
148}
149function Le(e, t) {
150 const { siblings: n, index: i } = T(e);
151 n.splice(i + 1, 0, t);
152}
153function $e(e, t) {
154 const { siblings: n, index: i } = T(e);
155 n.splice(i, 0, t);
156}
157function Se(e, t) {
158 const { siblings: n, index: i } = T(e);
159 n[i] = t, t.children = [e];
160}
161function Te(e, t) {
162 Y(e), t.children ? t.children.push(e) : t.children = [e];
163}
164function Pe(e, t) {
165 Y(e);
166 const { siblings: n, index: i } = T(t);
167 n.splice(i, 0, e);
168}
169function Oe(e, t) {
170 Y(e);
171 const { siblings: n, index: i } = T(t);
172 n.splice(i + 1, 0, e);
173}
174function ue(e) {
175 return JSON.parse(
176 JSON.stringify(e, (n, i) => {
177 if (n !== "parent")
178 return i;
179 })
180 );
181}
182const j = {
183 afterMoving: !1,
184 // 区别click事件
185 mousedown: !1,
186 lastX: 0,
187 lastY: 0,
188 onMove(e, t) {
189 if (this.mousedown) {
190 if (this.afterMoving = !0, !this.lastX) {
191 this.lastX = e.pageX, this.lastY = e.pageY;
192 return;
193 }
194 const n = this.lastX - e.pageX, i = this.lastY - e.pageY;
195 t.scrollTo(t.scrollLeft + n, t.scrollTop + i), this.lastX = e.pageX, this.lastY = e.pageY;
196 }
197 },
198 clear() {
199 this.afterMoving = !1, this.mousedown = !1, this.lastX = 0, this.lastY = 0;
200 }
201}, Z = (e) => e.tagName === "ME-TPC";
202function Ae(e) {
203 e.map.addEventListener("click", (t) => {
204 var i;
205 const n = t.target;
206 if (n.tagName === "ME-EPD")
207 e.expandNode(n.previousSibling);
208 else if (e.editable)
209 Z(n) ? e.selectNode(n, !1, t) : n.tagName === "path" ? ((i = n == null ? void 0 : n.parentElement) == null ? void 0 : i.tagName) === "g" && e.selectLink(n.parentElement) : n.className === "circle" || (e.unselectNode(), e.hideLinkController && e.hideLinkController());
210 else
211 return;
212 }), e.map.addEventListener("dblclick", (t) => {
213 if (t.preventDefault(), !e.editable)
214 return;
215 const n = t.target;
216 Z(n) && e.beginEdit(n);
217 }), e.map.addEventListener("mousemove", (t) => {
218 t.target.contentEditable !== "true" && j.onMove(t, e.container);
219 }), e.map.addEventListener("mousedown", (t) => {
220 t.target.contentEditable !== "true" && (j.afterMoving = !1, j.mousedown = !0);
221 }), e.map.addEventListener("mouseleave", () => {
222 j.clear();
223 }), e.map.addEventListener("mouseup", () => {
224 j.clear();
225 });
226}
227const De = {
228 create() {
229 return {
230 handlers: {},
231 showHandler: function() {
232 console.log(this.handlers);
233 },
234 addListener: function(e, t) {
235 this.handlers[e] === void 0 && (this.handlers[e] = []), this.handlers[e].push(t);
236 },
237 fire: function(e, ...t) {
238 if (this.handlers[e] instanceof Array) {
239 const n = this.handlers[e];
240 for (let i = 0; i < n.length; i++)
241 n[i](...t);
242 }
243 },
244 removeListener: function(e, t) {
245 if (!this.handlers[e])
246 return;
247 const n = this.handlers[e];
248 if (!t)
249 n.length = 0;
250 else if (n.length)
251 for (let i = 0; i < n.length; i++)
252 n[i] === t && this.handlers[e].splice(i, 1);
253 }
254 };
255 }
256}, R = document, je = function() {
257 console.time("layout"), this.nodes.innerHTML = "";
258 const e = this.createTopic(this.nodeData);
259 Q(e, this.nodeData), e.draggable = !1;
260 const t = R.createElement("me-root");
261 t.appendChild(e);
262 const n = this.nodeData.children || [];
263 if (this.direction === _) {
264 let i = 0, o = 0;
265 n.map((s) => {
266 s.direction === x ? i += 1 : s.direction === P ? o += 1 : i <= o ? (s.direction = x, i += 1) : (s.direction = P, o += 1);
267 });
268 }
269 He(this, n, t), console.timeEnd("layout");
270}, He = function(e, t, n) {
271 const i = R.createElement("me-main");
272 i.className = "lhs";
273 const o = R.createElement("me-main");
274 o.className = "rhs";
275 for (let s = 0; s < t.length; s++) {
276 const r = t[s], { grp: a } = e.createWrapper(r);
277 e.direction === _ ? r.direction === x ? i.appendChild(a) : o.appendChild(a) : e.direction === x ? i.appendChild(a) : o.appendChild(a);
278 }
279 e.nodes.appendChild(i), e.nodes.appendChild(n), e.nodes.appendChild(o), e.nodes.appendChild(e.lines);
280}, Be = function(e, t) {
281 const n = R.createElement("me-children");
282 for (let i = 0; i < t.length; i++) {
283 const o = t[i], { grp: s } = e.createWrapper(o);
284 n.appendChild(s);
285 }
286 return n;
287}, k = document, E = (e, t) => (t ? t.mindElixirBox : k).querySelector(`[data-nodeid=me${e}]`), Q = function(e, t) {
288 if (e.textContent = t.topic, t.style && (e.style.color = t.style.color || "", e.style.background = t.style.background || "", e.style.fontSize = t.style.fontSize + "px", e.style.fontWeight = t.style.fontWeight || "normal"), t.image) {
289 const n = t.image;
290 if (n.url && n.width && n.height) {
291 const i = k.createElement("img");
292 i.src = n.url, i.style.width = n.width + "px", i.style.height = n.height + "px", e.appendChild(i), e.image = i;
293 } else
294 console.warn("image url/width/height are required");
295 }
296 if (t.hyperLink) {
297 const n = k.createElement("a");
298 n.className = "hyper-link", n.target = "_blank", n.innerText = "🔗", n.href = t.hyperLink, e.appendChild(n), e.linkContainer = n, console.log(n);
299 } else
300 e.linkContainer && (e.linkContainer.remove(), e.linkContainer = null);
301 if (t.icons && t.icons.length) {
302 const n = k.createElement("span");
303 n.className = "icons", n.innerHTML = t.icons.map((i) => `<span>${q(i)}</span>`).join(""), e.appendChild(n), e.icons = n;
304 }
305 if (t.tags && t.tags.length) {
306 const n = k.createElement("div");
307 n.className = "tags", n.innerHTML = t.tags.map((i) => `<span>${q(i)}</span>`).join(""), e.appendChild(n), e.tags = n;
308 }
309 t.branchColor && (e.style.borderColor = t.branchColor);
310}, _e = function(e, t) {
311 const n = k.createElement("me-wrapper"), { p: i, tpc: o } = this.createParent(e);
312 if (n.appendChild(i), !t && e.children && e.children.length > 0) {
313 const s = X(e.expanded);
314 if (i.appendChild(s), e.expanded !== !1) {
315 const r = Be(this, e.children);
316 n.appendChild(r);
317 }
318 }
319 return { grp: n, top: i, tpc: o };
320}, ze = function(e) {
321 const t = k.createElement("me-parent"), n = this.createTopic(e);
322 return Q(n, e), t.appendChild(n), { p: t, tpc: n };
323}, Ve = function(e) {
324 const t = k.createElement("me-children");
325 return t.append(...e), t;
326}, Fe = function(e) {
327 const t = k.createElement("me-tpc");
328 return t.nodeObj = e, t.dataset.nodeid = "me" + e.id, t.draggable = this.draggable, t;
329};
330function qe(e) {
331 const t = k.createRange();
332 t.selectNodeContents(e);
333 const n = window.getSelection();
334 n && (n.removeAllRanges(), n.addRange(t));
335}
336const Re = function(e) {
337 if (console.time("createInputDiv"), !e)
338 return;
339 const t = k.createElement("div"), n = e.childNodes[0].textContent;
340 e.appendChild(t), t.id = "input-box", t.textContent = n, t.contentEditable = "true", t.spellcheck = !1, t.style.cssText = `min-width:${e.offsetWidth - 8}px;`, this.direction === x && (t.style.right = "0"), t.focus(), qe(t), this.inputDiv = t, this.bus.fire("operation", {
341 name: "beginEdit",
342 obj: e.nodeObj
343 }), t.addEventListener("keydown", (i) => {
344 var s;
345 i.stopPropagation();
346 const o = i.key;
347 if (o === "Enter" || o === "Tab") {
348 if (i.shiftKey)
349 return;
350 i.preventDefault(), (s = this.inputDiv) == null || s.blur(), this.map.focus();
351 }
352 }), t.addEventListener("blur", () => {
353 var s;
354 if (!t)
355 return;
356 const i = e.nodeObj, o = ((s = t.textContent) == null ? void 0 : s.trim()) || "";
357 console.log(o), o === "" ? i.topic = n : i.topic = o, t.remove(), this.inputDiv = null, o !== n && (e.childNodes[0].textContent = i.topic, this.linkDiv(), this.bus.fire("operation", {
358 name: "finishEdit",
359 obj: i,
360 origin: n
361 }));
362 }), console.timeEnd("createInputDiv");
363}, X = function(e) {
364 const t = k.createElement("me-epd");
365 return t.expanded = e !== !1, t.className = e !== !1 ? "minus" : "", t;
366}, A = document, D = "http://www.w3.org/2000/svg", Ie = function(e, t) {
367 const n = A.createElementNS(D, "path");
368 return n.setAttribute("d", e), n.setAttribute("stroke", t || "#666"), n.setAttribute("fill", "none"), n.setAttribute("stroke-width", "3"), n;
369}, F = function(e) {
370 const t = A.createElementNS(D, "svg");
371 return t.setAttribute("class", e), t;
372}, ee = function(e, t, n, i) {
373 const o = A.createElementNS(D, "line");
374 return o.setAttribute("x1", String(e)), o.setAttribute("y1", String(t)), o.setAttribute("x2", String(n)), o.setAttribute("y2", String(i)), o.setAttribute("stroke", "#bbb"), o.setAttribute("fill", "none"), o.setAttribute("stroke-width", "2"), o;
375}, Ye = function(e, t) {
376 const n = A.createElementNS(D, "path");
377 return n.setAttribute("d", e), n.setAttribute("stroke", t || "#555"), n.setAttribute("fill", "none"), n.setAttribute("stroke-linecap", "square"), n.setAttribute("stroke-width", "2"), n;
378}, Xe = function(e, t) {
379 const n = A.createElementNS(D, "g"), i = A.createElementNS(D, "path"), o = A.createElementNS(D, "path");
380 return o.setAttribute("d", t), o.setAttribute("stroke", "rgb(235, 95, 82)"), o.setAttribute("fill", "none"), o.setAttribute("stroke-linecap", "cap"), o.setAttribute("stroke-width", "2"), i.setAttribute("d", e), i.setAttribute("stroke", "rgb(235, 95, 82)"), i.setAttribute("fill", "none"), i.setAttribute("stroke-linecap", "cap"), i.setAttribute("stroke-width", "2"), n.appendChild(i), n.appendChild(o), n;
381}, We = (e, t) => {
382 let n = 0, i = 0;
383 for (; t && t !== e; )
384 n += t.offsetLeft, i += t.offsetTop, t = t.offsetParent;
385 return { offsetLeft: n, offsetTop: i };
386};
387let fe = me;
388const Ue = function(e) {
389 console.time("linkDiv");
390 const t = this.map.querySelector("me-root");
391 this.nodes.style.top = `${1e4 - this.nodes.offsetHeight / 2}px`, this.nodes.style.left = `${1e4 - t.offsetLeft - t.offsetWidth / 2}px`;
392 const n = this.map.querySelectorAll("me-main > me-wrapper");
393 this.lines.innerHTML = "", fe = this.subLinkStyle === 2 ? Je : me;
394 for (let i = 0; i < n.length; i++) {
395 const o = n[i], s = o.querySelector("me-tpc"), r = o.firstChild, a = o.parentNode.className;
396 let l = t.offsetLeft + t.offsetWidth / 2;
397 const u = t.offsetTop + t.offsetHeight / 2;
398 let c;
399 const h = this.theme.palette, d = s.nodeObj.branchColor || h[i % h.length], { offsetLeft: p, offsetTop: g } = We(this.nodes, r);
400 a === "lhs" ? c = p + r.offsetWidth : c = p;
401 const f = g + r.offsetHeight / 2;
402 let m = "";
403 if (this.mainLinkStyle === 2)
404 this.direction === _ && (a === "lhs" ? l = l - t.offsetWidth / 6 : l = l + t.offsetWidth / 6), m = Ge({ x1: l, y1: u, x2: c, y2: f });
405 else {
406 const y = (1 - Math.abs(f - o.parentElement.offsetTop - o.parentElement.offsetHeight / 2) / o.parentElement.offsetHeight) * 0.25 * (t.offsetWidth / 2);
407 a === "lhs" ? l = l - t.offsetWidth / 10 - y : l = l + t.offsetWidth / 10 + y, m = Ke({ x1: l, y1: u, x2: c, y2: f });
408 }
409 this.lines.appendChild(Ie(m, d));
410 const b = o.children[0].children[1];
411 if (b && (b.style.top = (b.parentNode.offsetHeight - b.offsetHeight) / 2 + "px", a === "lhs" ? b.style.left = "-10px" : b.style.right = "-10px"), !(e && e !== o) && o.childElementCount) {
412 const v = F("subLines"), y = o.lastChild;
413 y.tagName === "svg" && y.remove(), o.appendChild(v);
414 const N = o.firstChild, C = o.children[1].children, H = pe(C, N, a, !0);
415 v.appendChild(Ye(H, d));
416 }
417 }
418 this.linkSvgGroup.innerHTML = "";
419 for (const i in this.linkData) {
420 const o = this.linkData[i];
421 this.createLink(E(o.from), E(o.to), !0, o);
422 }
423 console.timeEnd("linkDiv");
424}, pe = function(e, t, n, i) {
425 let o = "";
426 const s = t.offsetTop, r = t.offsetLeft, a = t.offsetWidth, l = t.offsetHeight;
427 for (let u = 0; u < e.length; u++) {
428 const c = e[u], h = c.firstChild, d = h.offsetTop, p = h.offsetLeft, g = h.offsetWidth, f = h.offsetHeight;
429 o += fe({ pT: s, pL: r, pW: a, pH: l, cT: d, cL: p, cW: g, cH: f, direction: n, isFirst: i });
430 const m = h.children[1];
431 if (m) {
432 if (m.style.bottom = -(m.offsetHeight / 2) + "px", n === "lhs" ? m.style.left = "10px" : n === "rhs" && (m.style.right = "10px"), !m.expanded)
433 continue;
434 } else
435 continue;
436 const b = c.children[1].children;
437 b.length > 0 && (o += pe(b, h, n));
438 }
439 return o;
440};
441function Ge({ x1: e, y1: t, x2: n, y2: i }) {
442 return `M ${e} ${t} V ${i > t ? i - 20 : i + 20} C ${e} ${i} ${e} ${i} ${n > e ? e + 20 : e - 20} ${i} H ${n}`;
443}
444function Ke({ x1: e, y1: t, x2: n, y2: i }) {
445 return `M ${e} ${t} Q ${e} ${i} ${n} ${i}`;
446}
447function Je({ pT: e, pL: t, pW: n, pH: i, cT: o, cL: s, cW: r, cH: a, direction: l, isFirst: u }) {
448 let c;
449 u ? c = e + i / 2 : c = e + i;
450 const h = o + a;
451 let d = 0, p = 0, g = 0;
452 return l === "lhs" ? (d = t + M, p = s, g = s + r) : l === "rhs" && (d = t + n - M, p = s + r, g = s), h < c + 50 && h > c - 50 ? `M ${d} ${c} H ${g} V ${h} H ${p}` : h >= c ? `M ${d} ${c} H ${g} V ${h - w} A ${w} ${w} 0 0 ${d > p ? 1 : 0} ${d > p ? g - w : g + w} ${h} H ${p}` : `M ${d} ${c} H ${g} V ${h + w} A ${w} ${w} 0 0 ${d > p ? 0 : 1} ${d > p ? g - w : g + w} ${h} H ${p}`;
453}
454function me({ pT: e, pL: t, pW: n, pH: i, cT: o, cL: s, cW: r, cH: a, direction: l, isFirst: u }) {
455 let c = 0, h = 0;
456 u ? c = e + i / 2 : c = e + i;
457 const d = o + a;
458 let p = 0, g = 0, f = 0;
459 const m = Math.min(Math.abs(c - d) / 800, 1.2) * M;
460 return l === "lhs" ? (f = t, p = f + M, g = f - M, h = s + M, `M ${p} ${c} C ${f} ${c} ${f + m} ${d} ${g} ${d} H ${h}`) : (f = t + n, p = f - M, g = f + M, h = s + r - M, `M ${p} ${c} C ${f} ${c} ${f - m} ${d} ${g} ${d} H ${h}`);
461}
462const te = {
463 addChild: "插入子节点",
464 addParent: "插入父节点",
465 addSibling: "插入同级节点",
466 removeNode: "删除节点",
467 focus: "专注",
468 cancelFocus: "取消专注",
469 moveUp: "上移",
470 moveDown: "下移",
471 link: "连接",
472 clickTips: "请点击目标节点"
473}, ne = {
474 cn: te,
475 zh_CN: te,
476 zh_TW: {
477 addChild: "插入子節點",
478 addParent: "插入父節點",
479 addSibling: "插入同級節點",
480 removeNode: "刪除節點",
481 focus: "專注",
482 cancelFocus: "取消專注",
483 moveUp: "上移",
484 moveDown: "下移",
485 link: "連接",
486 clickTips: "請點擊目標節點"
487 },
488 en: {
489 addChild: "Add child",
490 addParent: "Add parent",
491 addSibling: "Add sibling",
492 removeNode: "Remove node",
493 focus: "Focus Mode",
494 cancelFocus: "Cancel Focus Mode",
495 moveUp: "Move up",
496 moveDown: "Move down",
497 link: "Link",
498 clickTips: "Please click the target node"
499 },
500 ru: {
501 addChild: "Добавить дочерний элемент",
502 addParent: "Добавить родительский элемент",
503 addSibling: "Добавить на этом уровне",
504 removeNode: "Удалить узел",
505 focus: "Режим фокусировки",
506 cancelFocus: "Отменить режим фокусировки",
507 moveUp: "Поднять выше",
508 moveDown: "Опустить ниже",
509 link: "Ссылка",
510 clickTips: "Пожалуйста, нажмите на целевой узел"
511 },
512 ja: {
513 addChild: "子ノードを追加する",
514 addParent: "親ノードを追加します",
515 addSibling: "兄弟ノードを追加する",
516 removeNode: "ノードを削除",
517 focus: "集中",
518 cancelFocus: "集中解除",
519 moveUp: "上へ移動",
520 moveDown: "下へ移動",
521 link: "コネクト",
522 clickTips: "ターゲットノードをクリックしてください"
523 },
524 pt: {
525 addChild: "Adicionar item filho",
526 addParent: "Adicionar item pai",
527 addSibling: "Adicionar item irmao",
528 removeNode: "Remover item",
529 focus: "Modo Foco",
530 cancelFocus: "Cancelar Modo Foco",
531 moveUp: "Mover para cima",
532 moveDown: "Mover para baixo",
533 link: "Link",
534 clickTips: "Favor clicar no item alvo"
535 }
536};
537function Qe(e, t) {
538 const n = (v) => {
539 const y = document.createElement("div");
540 return y.innerText = v, y.style.cssText = "position:absolute;bottom:20px;left:50%;transform:translateX(-50%);", y;
541 }, i = (v, y, N) => {
542 const C = document.createElement("li");
543 return C.id = v, C.innerHTML = `<span>${q(y)}</span><span>${q(N)}</span>`, C;
544 }, o = ne[e.locale] ? e.locale : "en", s = ne[o], r = i("cm-add_child", s.addChild, "tab"), a = i("cm-add_parent", s.addParent, ""), l = i("cm-add_sibling", s.addSibling, "enter"), u = i("cm-remove_child", s.removeNode, "delete"), c = i("cm-fucus", s.focus, ""), h = i("cm-unfucus", s.cancelFocus, ""), d = i("cm-up", s.moveUp, "PgUp"), p = i("cm-down", s.moveDown, "Pgdn"), g = i("cm-down", s.link, ""), f = document.createElement("ul");
545 if (f.className = "menu-list", f.appendChild(r), f.appendChild(a), f.appendChild(l), f.appendChild(u), (!t || t.focus) && (f.appendChild(c), f.appendChild(h)), f.appendChild(d), f.appendChild(p), (!t || t.link) && f.appendChild(g), t && t.extend)
546 for (let v = 0; v < t.extend.length; v++) {
547 const y = t.extend[v], N = i(y.name, y.name, y.key || "");
548 f.appendChild(N), N.onclick = (C) => {
549 y.onclick(C);
550 };
551 }
552 const m = document.createElement("div");
553 m.className = "context-menu", m.appendChild(f), m.hidden = !0, e.container.append(m);
554 let b = !0;
555 e.container.oncontextmenu = function(v) {
556 if (v.preventDefault(), !e.editable)
557 return;
558 const y = v.target;
559 if (y.tagName === "ME-TPC") {
560 y.parentElement.tagName === "ME-ROOT" ? b = !0 : b = !1, b ? (c.className = "disabled", d.className = "disabled", p.className = "disabled", l.className = "disabled", u.className = "disabled") : (c.className = "", d.className = "", p.className = "", l.className = "", u.className = ""), e.selectNode(y), m.hidden = !1;
561 const N = f.offsetHeight, C = f.offsetWidth;
562 N + v.clientY > window.innerHeight ? (f.style.top = "", f.style.bottom = "0px") : (f.style.bottom = "", f.style.top = v.clientY + 15 + "px"), C + v.clientX > window.innerWidth ? (f.style.left = "", f.style.right = "0px") : (f.style.right = "", f.style.left = v.clientX + 10 + "px");
563 }
564 }, m.onclick = (v) => {
565 v.target === m && (m.hidden = !0);
566 }, r.onclick = () => {
567 e.addChild(), m.hidden = !0;
568 }, a.onclick = () => {
569 e.insertParent(), m.hidden = !0;
570 }, l.onclick = () => {
571 b || (e.insertSibling(), m.hidden = !0);
572 }, u.onclick = () => {
573 b || (e.removeNode(), m.hidden = !0);
574 }, c.onclick = () => {
575 b || (e.focusNode(e.currentNode), m.hidden = !0);
576 }, h.onclick = () => {
577 e.cancelFocus(), m.hidden = !0;
578 }, d.onclick = () => {
579 b || (e.moveUpNode(), m.hidden = !0);
580 }, p.onclick = () => {
581 b || (e.moveDownNode(), m.hidden = !0);
582 }, g.onclick = () => {
583 m.hidden = !0;
584 const v = e.currentNode, y = n(s.clickTips);
585 e.container.appendChild(y), e.map.addEventListener(
586 "click",
587 (N) => {
588 N.preventDefault(), y.remove();
589 const C = N.target;
590 C.parentElement.tagName === "ME-PARENT" || C.parentElement.tagName === "ME-ROOT" ? e.createLink(v, e.currentNode) : console.log("link cancel");
591 },
592 {
593 once: !0
594 }
595 );
596 };
597}
598const Ze = (e) => {
599 const t = e.map.querySelectorAll(".lhs>me-wrapper>me-parent>me-tpc");
600 e.selectNode(t[Math.ceil(t.length / 2) - 1]);
601}, et = (e) => {
602 const t = e.map.querySelectorAll(".rhs>me-wrapper>me-parent>me-tpc");
603 e.selectNode(t[Math.ceil(t.length / 2) - 1]);
604}, ie = (e) => {
605 e.selectNode(e.map.querySelector("me-root>me-tpc"));
606};
607function tt(e) {
608 const t = {
609 13: () => {
610 e.insertSibling();
611 },
612 9: () => {
613 e.addChild();
614 },
615 113: () => {
616 e.beginEdit();
617 },
618 38: () => {
619 e.selectPrevSibling();
620 },
621 40: () => {
622 e.selectNextSibling();
623 },
624 37: () => {
625 var o;
626 if (!e.currentNode)
627 return;
628 const n = e.currentNode.nodeObj, i = e.currentNode.offsetParent.offsetParent.parentElement;
629 e.currentNode.nodeObj.root ? Ze(e) : i.className === "rhs" ? (o = n.parent) != null && o.root ? ie(e) : e.selectParent() : i.className === "lhs" && e.selectFirstChild();
630 },
631 39: () => {
632 var o;
633 if (!e.currentNode)
634 return;
635 const n = e.currentNode.nodeObj, i = e.currentNode.offsetParent.offsetParent.parentElement;
636 n.root ? et(e) : i.className === "lhs" ? (o = n.parent) != null && o.root ? ie(e) : e.selectParent() : i.className === "rhs" && e.selectFirstChild();
637 },
638 33() {
639 e.moveUpNode();
640 },
641 34() {
642 e.moveDownNode();
643 },
644 67: (n) => {
645 (n.metaKey || n.ctrlKey) && (e.waitCopy = e.currentNode);
646 },
647 86: (n) => {
648 !e.waitCopy || !e.currentNode || (n.metaKey || n.ctrlKey) && (e.copyNode(e.waitCopy, e.currentNode), e.waitCopy = null);
649 },
650 // ctrl +
651 187: (n) => {
652 if (n.metaKey || n.ctrlKey) {
653 if (e.scaleVal > 1.6)
654 return;
655 e.scale(e.scaleVal += 0.2);
656 }
657 },
658 // ctrl -
659 189: (n) => {
660 if (n.metaKey || n.ctrlKey) {
661 if (e.scaleVal < 0.6)
662 return;
663 e.scale(e.scaleVal -= 0.2);
664 }
665 }
666 };
667 e.map.onkeydown = (n) => {
668 if (n.preventDefault(), !!e.editable && n.target === n.currentTarget)
669 if (n.keyCode === 8 || n.keyCode === 46)
670 e.currentLink ? e.removeLink() : e.removeNode();
671 else {
672 const i = t[n.keyCode];
673 i && i(n);
674 }
675 };
676}
677function nt(e, t) {
678 const n = (d, p) => {
679 const g = document.createElement("div");
680 return g.id = d, g.innerHTML = `<svg class="icon" aria-hidden="true">
681 <use xlink:href="#icon-${p}"></use>
682 </svg>`, g;
683 }, i = n("cm-add_child", "zijiedian"), o = n("cm-add_sibling", "tongjijiedian-"), s = n("cm-remove_child", "shanchu2"), r = n("cm-up", "rising"), a = n("cm-down", "falling"), l = n("cm-edit", "edit"), u = document.createElement("ul");
684 if (u.className = "menu-list", t && t.extend)
685 for (let d = 0; d < t.extend.length; d++) {
686 const p = t.extend[d], g = n(p.name, p.name);
687 u.appendChild(g), g.onclick = (f) => {
688 p.onclick(f);
689 };
690 }
691 const c = document.createElement("mmenu");
692 c.className = "mobile-menu", c.appendChild(i), c.appendChild(o), c.appendChild(s), c.appendChild(r), c.appendChild(a), c.appendChild(l), c.hidden = !0, e.container.append(c);
693 let h = !0;
694 e.bus.addListener("unselectNode", function() {
695 c.hidden = !0;
696 }), e.bus.addListener("selectNode", function(d) {
697 c.hidden = !1, d.root ? h = !0 : h = !1;
698 }), c.onclick = (d) => {
699 d.target === c && (c.hidden = !0);
700 }, i.onclick = () => {
701 e.addChild();
702 }, o.onclick = () => {
703 h || e.insertSibling();
704 }, s.onclick = () => {
705 h || e.removeNode();
706 }, r.onclick = (d) => {
707 h || e.moveUpNode();
708 }, a.onclick = (d) => {
709 h || e.moveDownNode();
710 }, l.onclick = (d) => {
711 e.beginEdit();
712 };
713}
714const K = document, it = function(e, t) {
715 if (!t)
716 return J(e), e;
717 const n = e.getElementsByClassName("insert-preview"), i = `insert-preview ${t} show`;
718 if (n.length > 0)
719 n[0].className = i;
720 else {
721 const o = K.createElement("div");
722 o.className = i, e.appendChild(o);
723 }
724 return e;
725}, J = function(e) {
726 if (!e)
727 return;
728 const t = e.getElementsByClassName("insert-preview");
729 for (const n of t || [])
730 n.remove();
731}, oe = function(e, t) {
732 const n = t.parentElement.parentElement.contains(e);
733 return e && e.tagName === "ME-TPC" && e !== t && !n && e.nodeObj.root !== !0;
734}, ot = function(e) {
735 const t = document.createElement("div");
736 return t.className = "mind-elixir-ghost", e.map.appendChild(t), t;
737};
738function st(e) {
739 let t = null, n = null, i = null;
740 const o = ot(e), s = 12;
741 e.map.addEventListener("dragstart", (r) => {
742 var a;
743 t = r.target, t.parentElement.parentElement.style.opacity = "0.5", o.innerHTML = t.innerHTML, (a = r.dataTransfer) == null || a.setDragImage(o, 0, 0), j.clear();
744 }), e.map.addEventListener("dragend", async (r) => {
745 if (!t)
746 return;
747 t.parentElement.parentElement.style.opacity = "1";
748 const a = r.target;
749 if (a.style.opacity = "", !i)
750 return;
751 J(i);
752 const l = t.nodeObj;
753 switch (n) {
754 case "before":
755 e.moveNodeBefore(t, i), e.selectNode(E(l.id));
756 break;
757 case "after":
758 e.moveNodeAfter(t, i), e.selectNode(E(l.id));
759 break;
760 case "in":
761 e.moveNode(t, i);
762 break;
763 }
764 t = null;
765 }), e.map.addEventListener(
766 "dragover",
767 Ee(function(r) {
768 if (!t)
769 return;
770 J(i);
771 const a = K.elementFromPoint(r.clientX, r.clientY - s);
772 if (oe(a, t)) {
773 i = a;
774 const l = a.getBoundingClientRect().y;
775 r.clientY > l + a.clientHeight ? n = "after" : r.clientY > l + a.clientHeight / 2 && (n = "in");
776 } else {
777 const l = K.elementFromPoint(r.clientX, r.clientY + s);
778 if (oe(l, t)) {
779 i = l;
780 const u = l.getBoundingClientRect().y;
781 r.clientY < u ? n = "before" : r.clientY < u + l.clientHeight / 2 && (n = "in");
782 } else
783 n = i = null;
784 }
785 i && it(i, n);
786 }, 200)
787 );
788}
789function rt(e) {
790 let t = [], n = -1, i = e.getData();
791 e.bus.addListener("operation", (o) => {
792 if (o.name === "beginEdit")
793 return;
794 t = t.slice(0, n + 1);
795 const s = e.getData();
796 t.push({ prev: i, currentNodeId: o.obj.id, next: s }), i = s, n = t.length - 1, console.log("operation", o.obj.id, t);
797 }), e.undo = function() {
798 if (n > -1) {
799 const o = t[n];
800 i = o.prev, e.refresh(o.prev), e.selectNode(E(o.currentNodeId)), n--, console.log("current", i);
801 }
802 }, e.redo = function() {
803 if (n < t.length - 1) {
804 n++;
805 const o = t[n];
806 i = o.next, e.refresh(o.next), e.selectNode(E(o.currentNodeId));
807 }
808 }, e.map.addEventListener("keydown", (o) => {
809 (o.metaKey || o.ctrlKey) && o.shiftKey && o.key === "Z" ? e.redo() : (o.metaKey || o.ctrlKey) && o.key === "z" && e.undo();
810 });
811}
812const O = (e, t) => {
813 const n = document.createElement("span");
814 return n.id = e, n.innerHTML = `<svg class="icon" aria-hidden="true">
815 <use xlink:href="#icon-${t}"></use>
816 </svg>`, n;
817};
818function lt(e) {
819 const t = document.createElement("div"), n = O("fullscreen", "full"), i = O("toCenter", "living"), o = O("zoomout", "move"), s = O("zoomin", "add"), r = document.createElement("span");
820 return r.innerText = "100%", t.appendChild(n), t.appendChild(i), t.appendChild(o), t.appendChild(s), t.className = "mind-elixir-toolbar rb", n.onclick = () => {
821 e.container.requestFullscreen();
822 }, i.onclick = () => {
823 e.toCenter();
824 }, o.onclick = () => {
825 e.scaleVal < 0.6 || e.scale(e.scaleVal -= 0.2);
826 }, s.onclick = () => {
827 e.scaleVal > 1.6 || e.scale(e.scaleVal += 0.2);
828 }, t;
829}
830function ct(e) {
831 const t = document.createElement("div"), n = O("tbltl", "left"), i = O("tbltr", "right"), o = O("tblts", "side");
832 return t.appendChild(n), t.appendChild(i), t.appendChild(o), t.className = "mind-elixir-toolbar lt", n.onclick = () => {
833 e.initLeft();
834 }, i.onclick = () => {
835 e.initRight();
836 }, o.onclick = () => {
837 e.initSide();
838 }, t;
839}
840function at(e) {
841 e.container.append(lt(e)), e.container.append(ct(e));
842}
843const dt = function(e, t = !0) {
844 this.theme = e;
845 const n = this.theme.cssVar, i = Object.keys(n);
846 for (let o = 0; o < i.length; o++) {
847 const s = i[o];
848 this.mindElixirBox.style.setProperty(s, n[s]);
849 }
850 t && this.refresh();
851};
852function ge(e) {
853 return {
854 nodeData: e.isFocusMode ? e.nodeDataBackup : e.nodeData,
855 linkData: e.linkData,
856 direction: e.direction,
857 theme: e.theme
858 };
859}
860const ht = function(e, t, n) {
861 if (e) {
862 if (console.time("selectNode"), typeof e == "string") {
863 const i = E(e);
864 return i ? this.selectNode(i) : void 0;
865 }
866 this.currentNode && (this.currentNode.className = ""), e.className = "selected", e.scrollIntoView({ block: "nearest", inline: "nearest" }), this.currentNode = e, t ? this.bus.fire("selectNewNode", e.nodeObj) : this.bus.fire("selectNode", e.nodeObj, n), console.timeEnd("selectNode");
867 }
868}, ut = function() {
869 this.currentNode && (this.currentNode.className = ""), this.currentNode = null, this.bus.fire("unselectNode");
870}, ft = function() {
871 if (!this.currentNode || this.currentNode.dataset.nodeid === "meroot")
872 return !1;
873 const e = this.currentNode.parentElement.parentElement.nextSibling;
874 let t;
875 if (e)
876 t = e.firstChild.firstChild;
877 else
878 return !1;
879 return this.selectNode(t), !0;
880}, pt = function() {
881 if (!this.currentNode || this.currentNode.dataset.nodeid === "meroot")
882 return !1;
883 const e = this.currentNode.parentElement.parentElement.previousSibling;
884 let t;
885 if (e)
886 t = e.firstChild.firstChild;
887 else
888 return !1;
889 return this.selectNode(t), !0;
890}, mt = function() {
891 if (!this.currentNode)
892 return;
893 const e = this.currentNode.parentElement.nextSibling;
894 if (e && e.firstChild) {
895 const t = e.firstChild.firstChild.firstChild;
896 this.selectNode(t);
897 }
898}, gt = function() {
899 if (!this.currentNode || this.currentNode.dataset.nodeid === "meroot")
900 return;
901 const e = this.currentNode.parentElement.parentElement.parentElement.previousSibling;
902 if (e) {
903 const t = e.firstChild;
904 this.selectNode(t);
905 }
906}, bt = function() {
907 const e = ge(this);
908 return JSON.stringify(e, (t, n) => {
909 if (t !== "parent")
910 return t === "from" || t === "to" ? n.nodeObj.id : n;
911 });
912}, vt = function() {
913 return JSON.parse(this.getDataString());
914}, yt = function() {
915 const e = ge(this).nodeData;
916 let t = "# " + e.topic + `
917
918`;
919 function n(i, o) {
920 for (let s = 0; s < i.length; s++)
921 o <= 6 ? t += "".padStart(o, "#") + " " + i[s].topic + `
922
923` : t += "".padStart(o - 7, " ") + "- " + i[s].topic + `
924`, i[s].children && n(i[s].children || [], o + 1);
925 }
926 return n(e.children || [], 2), t;
927}, Nt = function() {
928 this.editable = !0;
929}, Ct = function() {
930 this.editable = !1;
931}, Et = function(e) {
932 this.scaleVal = e, this.map.style.transform = "scale(" + e + ")";
933}, kt = function() {
934 this.container.scrollTo(1e4 - this.container.offsetWidth / 2, 1e4 - this.container.offsetHeight / 2);
935}, xt = function(e) {
936 e(this);
937}, wt = function(e) {
938 e.nodeObj.root || (this.tempDirection === null && (this.tempDirection = this.direction), this.isFocusMode || (this.nodeDataBackup = this.nodeData, this.isFocusMode = !0), this.nodeData = e.nodeObj, this.nodeData.root = !0, this.initRight(), this.toCenter());
939}, Mt = function() {
940 this.isFocusMode = !1, this.tempDirection !== null && (delete this.nodeData.root, this.nodeData = this.nodeDataBackup, this.direction = this.tempDirection, this.tempDirection = null, this.refresh(), this.toCenter());
941}, Lt = function() {
942 this.direction = 0, this.refresh();
943}, $t = function() {
944 this.direction = 1, this.refresh();
945}, St = function() {
946 this.direction = 2, this.refresh();
947}, Tt = function(e) {
948 this.locale = e, this.refresh();
949}, Pt = function(e, t) {
950 const n = e.nodeObj;
951 typeof t == "boolean" ? n.expanded = t : n.expanded !== !1 ? n.expanded = !1 : n.expanded = !0, this.layout(), this.linkDiv(), this.bus.fire("expandNode", n);
952}, Ot = function(e) {
953 e = JSON.parse(JSON.stringify(e)), e && (this.nodeData = e.nodeData, this.linkData = e.linkData || {}), L(this.nodeData), this.layout(), this.linkDiv();
954}, At = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
955 __proto__: null,
956 cancelFocus: Mt,
957 disableEdit: Ct,
958 enableEdit: Nt,
959 expandNode: Pt,
960 focusNode: wt,
961 getData: vt,
962 getDataMd: yt,
963 getDataString: bt,
964 initLeft: Lt,
965 initRight: $t,
966 initSide: St,
967 install: xt,
968 refresh: Ot,
969 scale: Et,
970 selectFirstChild: mt,
971 selectNextSibling: ft,
972 selectNode: ht,
973 selectParent: gt,
974 selectPrevSibling: pt,
975 setLocale: Tt,
976 toCenter: kt,
977 unselectNode: ut
978}, Symbol.toStringTag, { value: "Module" })), W = function(e) {
979 const n = e.parentElement.parentElement.lastElementChild;
980 (n == null ? void 0 : n.tagName) === "svg" && (n == null || n.remove());
981}, be = function(e, t) {
982 var n, i;
983 if (e === x)
984 return x;
985 if (e === P)
986 return P;
987 if (e === _) {
988 const o = ((n = document.querySelector(".lhs")) == null ? void 0 : n.childElementCount) || 0, s = ((i = document.querySelector(".rhs")) == null ? void 0 : i.childElementCount) || 0;
989 return o <= s ? (t.direction = x, x) : (t.direction = P, P);
990 }
991}, Dt = function(e, t) {
992 console.log(t);
993 const n = e.nodeObj, i = ue(n);
994 i.style && t.style && (t.style = Object.assign(i.style, t.style));
995 const o = Object.assign(n, t);
996 Q(e, o), this.linkDiv(), this.bus.fire("operation", {
997 name: "reshapeNode",
998 obj: o,
999 origin: i
1000 });
1001}, jt = function(e, t) {
1002 const n = e || this.currentNode;
1003 if (!n)
1004 return;
1005 const i = n.nodeObj;
1006 if (i.root === !0) {
1007 this.addChild();
1008 return;
1009 }
1010 const o = t || this.generateNewObj();
1011 Le(i, o), L(this.nodeData);
1012 const s = n.parentElement;
1013 console.time("insertSibling_DOM");
1014 const { grp: r, top: a } = this.createWrapper(o);
1015 s.parentNode.parentNode.insertBefore(r, s.parentNode.nextSibling), this.linkDiv(r.offsetParent), t || this.createInputDiv(a.firstChild), this.selectNode(a.firstChild, !0), console.timeEnd("insertSibling_DOM"), this.bus.fire("operation", {
1016 name: "insertSibling",
1017 obj: o
1018 });
1019}, Ht = function(e, t) {
1020 const n = e || this.currentNode;
1021 if (!n)
1022 return;
1023 const i = n.nodeObj;
1024 if (i.root === !0) {
1025 this.addChild();
1026 return;
1027 }
1028 const o = t || this.generateNewObj();
1029 $e(i, o), L(this.nodeData);
1030 const s = n.parentElement;
1031 console.time("insertSibling_DOM");
1032 const { grp: r, top: a } = this.createWrapper(o);
1033 s.parentNode.parentNode.insertBefore(r, s.parentNode), this.linkDiv(r.offsetParent), t || this.createInputDiv(a.firstChild), this.selectNode(a.firstChild, !0), console.timeEnd("insertSibling_DOM"), this.bus.fire("operation", {
1034 name: "insertBefore",
1035 obj: o
1036 });
1037}, Bt = function(e, t) {
1038 const n = e || this.currentNode;
1039 if (!n)
1040 return;
1041 W(n);
1042 const i = n.nodeObj;
1043 if (i.root === !0)
1044 return;
1045 const o = t || this.generateNewObj();
1046 Se(i, o), L(this.nodeData);
1047 const s = n.parentElement.parentElement;
1048 console.time("insertParent_DOM");
1049 const { grp: r, top: a } = this.createWrapper(o, !0);
1050 a.appendChild(X(!0)), s.insertAdjacentElement("afterend", r);
1051 const l = this.createChildren([s]);
1052 a.insertAdjacentElement("afterend", l), this.linkDiv(), t || this.createInputDiv(a.firstChild), this.selectNode(a.firstChild, !0), console.timeEnd("insertParent_DOM"), this.bus.fire("operation", {
1053 name: "insertParent",
1054 obj: o
1055 });
1056}, ve = function(e, t) {
1057 var a, l;
1058 if (!e)
1059 return null;
1060 const n = e.nodeObj;
1061 n.expanded === !1 && (this.expandNode(e, !0), e = E(n.id));
1062 const i = t || this.generateNewObj();
1063 n.children ? n.children.push(i) : n.children = [i], L(this.nodeData);
1064 const o = e.parentElement, { grp: s, top: r } = this.createWrapper(i);
1065 if (o.tagName === "ME-PARENT") {
1066 if (o.children[1])
1067 o.nextSibling.appendChild(s);
1068 else {
1069 const u = this.createChildren([s]);
1070 o.appendChild(X(!0)), o.insertAdjacentElement("afterend", u);
1071 }
1072 this.linkDiv(s.offsetParent);
1073 } else
1074 o.tagName === "ME-ROOT" && (be(this.direction, i) === x ? (a = document.querySelector(".lhs")) == null || a.appendChild(s) : (l = document.querySelector(".rhs")) == null || l.appendChild(s), this.linkDiv());
1075 return { newTop: r, newNodeObj: i };
1076}, _t = function(e, t) {
1077 console.time("addChild");
1078 const n = e || this.currentNode;
1079 if (!n)
1080 return;
1081 const i = ve.call(this, n, t);
1082 if (!i)
1083 return;
1084 const { newTop: o, newNodeObj: s } = i;
1085 this.bus.fire("operation", {
1086 name: "addChild",
1087 obj: s
1088 }), console.timeEnd("addChild"), t || this.createInputDiv(o.firstChild), this.selectNode(o.firstChild, !0);
1089}, zt = function(e, t) {
1090 console.time("copyNode");
1091 const n = ue(e.nodeObj);
1092 de(n);
1093 const i = ve.call(this, t, n);
1094 if (!i)
1095 return;
1096 const { newNodeObj: o } = i;
1097 console.timeEnd("copyNode"), this.bus.fire("operation", {
1098 name: "copyNode",
1099 obj: o
1100 });
1101}, Vt = function(e) {
1102 const t = e || this.currentNode;
1103 if (!t)
1104 return;
1105 const n = t.parentNode.parentNode, i = t.nodeObj;
1106 we(i), n.parentNode.insertBefore(n, n.previousSibling), this.linkDiv(), this.bus.fire("operation", {
1107 name: "moveUpNode",
1108 obj: i
1109 });
1110}, Ft = function(e) {
1111 const t = e || this.currentNode;
1112 if (!t)
1113 return;
1114 const n = t.parentNode.parentNode, i = t.nodeObj;
1115 Me(i), n.nextSibling ? n.nextSibling.insertAdjacentElement("afterend", n) : n.parentNode.prepend(n), this.linkDiv(), this.bus.fire("operation", {
1116 name: "moveDownNode",
1117 obj: i
1118 });
1119}, qt = function(e) {
1120 var u;
1121 const t = e || this.currentNode;
1122 if (!t)
1123 return;
1124 console.log("removeNode", t);
1125 const n = t.nodeObj;
1126 if (n.root === !0)
1127 throw new Error("Can not remove root node");
1128 const i = n.parent.children, o = i.findIndex((c) => c === n), s = i[o + 1], r = s && s.id, a = Y(n), l = t.parentNode;
1129 if (a === 0) {
1130 const c = l.parentNode.parentNode;
1131 c.tagName !== "ME-MAIN" && c.previousSibling.children[1].remove(), this.selectParent();
1132 } else
1133 this.selectPrevSibling() || this.selectNextSibling();
1134 for (const c in this.linkData) {
1135 const h = this.linkData[c];
1136 if (h.from === n.id || h.to === n.id) {
1137 const d = this.mindElixirBox.querySelector(`[data-linkid=${this.linkData[c].id}]`);
1138 this.removeLink(d);
1139 }
1140 }
1141 l.parentNode.remove(), this.linkDiv(), this.bus.fire("operation", {
1142 name: "removeNode",
1143 obj: n,
1144 originSiblingId: r,
1145 originParentId: (u = n == null ? void 0 : n.parent) == null ? void 0 : u.id
1146 });
1147}, Rt = function(e, t) {
1148 var a;
1149 const n = e.nodeObj, i = t.nodeObj, o = (a = n == null ? void 0 : n.parent) == null ? void 0 : a.id;
1150 if (i.expanded === !1 && (this.expandNode(t, !0), e = E(n.id), t = E(i.id)), !xe(n, i)) {
1151 console.warn("Invalid move");
1152 return;
1153 }
1154 console.time("moveNode"), Te(n, i), L(this.nodeData);
1155 const s = e.parentElement, r = t.parentElement;
1156 if (r.tagName === "ME-PARENT")
1157 if (W(e), r.children[1])
1158 r.nextSibling.appendChild(s.parentElement);
1159 else {
1160 const l = this.createChildren([s.parentElement]);
1161 r.appendChild(X(!0)), r.parentElement.insertBefore(l, r.nextSibling);
1162 }
1163 else
1164 r.tagName === "ME-ROOT" && (be(this.direction, n), r.nextSibling.appendChild(s.parentElement));
1165 this.linkDiv(), this.bus.fire("operation", {
1166 name: "moveNode",
1167 obj: n,
1168 toObj: i,
1169 originParentId: o
1170 }), console.timeEnd("moveNode");
1171}, It = function(e, t) {
1172 var u;
1173 const n = e.nodeObj, i = t.nodeObj, o = (u = n.parent) == null ? void 0 : u.id;
1174 Pe(n, i), L(this.nodeData), W(e);
1175 const r = e.parentElement.parentNode;
1176 t.parentElement.parentNode.insertAdjacentElement("beforebegin", r), this.linkDiv(), this.bus.fire("operation", {
1177 name: "moveNodeBefore",
1178 obj: n,
1179 toObj: i,
1180 originParentId: o
1181 });
1182}, Yt = function(e, t) {
1183 var u;
1184 const n = e.nodeObj, i = t.nodeObj, o = (u = n.parent) == null ? void 0 : u.id;
1185 Oe(n, i), L(this.nodeData), W(e);
1186 const r = e.parentElement.parentElement;
1187 t.parentElement.parentElement.insertAdjacentElement("afterend", r), this.linkDiv(), this.bus.fire("operation", {
1188 name: "moveNodeAfter",
1189 obj: n,
1190 toObj: i,
1191 originParentId: o
1192 });
1193}, Xt = function(e) {
1194 const t = e || this.currentNode;
1195 t && this.createInputDiv(t);
1196}, Wt = function(e, t) {
1197 e.childNodes[0].textContent = t, e.nodeObj.topic = t, this.linkDiv();
1198}, ye = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1199 __proto__: null,
1200 addChild: _t,
1201 beginEdit: Xt,
1202 copyNode: zt,
1203 insertBefore: Ht,
1204 insertParent: Bt,
1205 insertSibling: jt,
1206 moveDownNode: Ft,
1207 moveNode: Rt,
1208 moveNodeAfter: Yt,
1209 moveNodeBefore: It,
1210 moveUpNode: Vt,
1211 removeNode: qt,
1212 reshapeNode: Dt,
1213 setNodeTopic: Wt
1214}, Symbol.toStringTag, { value: "Module" })), Ut = function(e) {
1215 return {
1216 dom: e,
1217 mousedown: !1,
1218 lastX: 0,
1219 lastY: 0,
1220 handleMouseMove(t) {
1221 if (t.stopPropagation(), this.mousedown) {
1222 if (!this.lastX) {
1223 this.lastX = t.pageX, this.lastY = t.pageY;
1224 return;
1225 }
1226 const n = this.lastX - t.pageX, i = this.lastY - t.pageY;
1227 this.cb && this.cb(n, i), this.lastX = t.pageX, this.lastY = t.pageY;
1228 }
1229 },
1230 handleMouseDown(t) {
1231 t.stopPropagation(), this.mousedown = !0;
1232 },
1233 handleClear(t) {
1234 t.stopPropagation(), this.clear();
1235 },
1236 cb: null,
1237 init(t, n) {
1238 this.cb = n, this.handleClear = this.handleClear.bind(this), this.handleMouseMove = this.handleMouseMove.bind(this), this.handleMouseDown = this.handleMouseDown.bind(this), t.addEventListener("mousemove", this.handleMouseMove), t.addEventListener("mouseleave", this.handleClear), t.addEventListener("mouseup", this.handleClear), this.dom.addEventListener("mousedown", this.handleMouseDown);
1239 },
1240 destory(t) {
1241 t.removeEventListener("mousemove", this.handleMouseMove), t.removeEventListener("mouseleave", this.handleClear), t.removeEventListener("mouseup", this.handleClear), this.dom.removeEventListener("mousedown", this.handleMouseDown);
1242 },
1243 clear() {
1244 this.mousedown = !1, this.lastX = 0, this.lastY = 0;
1245 }
1246 };
1247}, se = {
1248 create: Ut
1249}, Gt = function(e, t, n, i) {
1250 const o = this.map.getBoundingClientRect();
1251 if (!e || !t)
1252 return;
1253 const s = e.getBoundingClientRect(), r = t.getBoundingClientRect(), a = (s.x + s.width / 2 - o.x) / this.scaleVal, l = (s.y + s.height / 2 - o.y) / this.scaleVal, u = (r.x + r.width / 2 - o.x) / this.scaleVal, c = (r.y + r.height / 2 - o.y) / this.scaleVal;
1254 let h, d, p, g;
1255 n && i ? (h = a + i.delta1.x, d = l + i.delta1.y, p = u + i.delta2.x, g = c + i.delta2.y) : (l + c) / 2 - l <= s.height / 2 ? (h = (s.x + s.width - o.x) / this.scaleVal + 100, d = l, p = (r.x + r.width - o.x) / this.scaleVal + 100, g = c) : (h = (a + u) / 2, d = (l + c) / 2, p = (a + u) / 2, g = (l + c) / 2);
1256 const f = {
1257 cx: a,
1258 cy: l,
1259 w: s.width,
1260 h: s.height
1261 }, m = {
1262 cx: u,
1263 cy: c,
1264 w: r.width,
1265 h: r.height
1266 }, b = U(f, h, d), v = b.x, y = b.y, N = G(m, p, g), C = N.x, H = N.y, z = he(p, g, C, H), S = {
1267 id: "",
1268 label: "",
1269 from: e.nodeObj.id,
1270 to: t.nodeObj.id,
1271 delta1: {
1272 x: h - a,
1273 y: d - l
1274 },
1275 delta2: {
1276 x: p - u,
1277 y: g - c
1278 }
1279 }, V = Xe(
1280 `M ${v} ${y} C ${h} ${d} ${p} ${g} ${C} ${H}`,
1281 `M ${z.x1} ${z.y1} L ${C} ${H} L ${z.x2} ${z.y2}`
1282 );
1283 n && i ? (S.id = i.id, this.linkData[i.id] = S) : (S.id = I(), this.linkData[S.id] = S, this.currentLink = V), V.linkObj = S, V.dataset.linkid = S.id, this.linkSvgGroup.appendChild(V), n || this.showLinkController(h, d, p, g, S, f, m);
1284}, Kt = function(e) {
1285 let t;
1286 if (e ? t = e : t = this.currentLink, !t)
1287 return;
1288 console.log(t), this.hideLinkController();
1289 const n = t.linkObj.id;
1290 console.log(n), delete this.linkData[n], t.remove(), t = null;
1291}, Jt = function(e) {
1292 this.currentLink = e;
1293 const t = e.linkObj;
1294 if (!t)
1295 return;
1296 const n = t.from, i = t.to, o = this.map.getBoundingClientRect(), s = E(n).getBoundingClientRect(), r = E(i).getBoundingClientRect(), a = (s.x + s.width / 2 - o.x) / this.scaleVal, l = (s.y + s.height / 2 - o.y) / this.scaleVal, u = (r.x + r.width / 2 - o.x) / this.scaleVal, c = (r.y + r.height / 2 - o.y) / this.scaleVal, h = {
1297 cx: a,
1298 cy: l,
1299 w: s.width,
1300 h: s.height
1301 }, d = {
1302 cx: u,
1303 cy: c,
1304 w: r.width,
1305 h: r.height
1306 }, p = a + t.delta1.x, g = l + t.delta1.y, f = u + t.delta2.x, m = c + t.delta2.y;
1307 this.showLinkController(p, g, f, m, t, h, d);
1308}, Qt = function() {
1309 this.linkController.style.display = "none", this.P2.style.display = "none", this.P3.style.display = "none";
1310}, Zt = function(e, t, n, i, o, s, r) {
1311 this.linkController.style.display = "initial", this.P2.style.display = "initial", this.P3.style.display = "initial";
1312 const a = U(s, e, t);
1313 let l = a.x, u = a.y;
1314 const c = G(r, n, i);
1315 let h = c.x, d = c.y;
1316 this.P2.style.cssText = `top:${t}px;left:${e}px;`, this.P3.style.cssText = `top:${i}px;left:${n}px;`, this.line1.setAttribute("x1", l), this.line1.setAttribute("y1", u), this.line1.setAttribute("x2", e), this.line1.setAttribute("y2", t), this.line2.setAttribute("x1", n), this.line2.setAttribute("y1", i), this.line2.setAttribute("x2", h), this.line2.setAttribute("y2", d), this.helper1 && (this.helper1.destory(this.map), this.helper2.destory(this.map)), this.helper1 = se.create(this.P2), this.helper2 = se.create(this.P3), this.helper1.init(this.map, (p, g) => {
1317 var m;
1318 e = e - p / this.scaleVal, t = t - g / this.scaleVal;
1319 const f = U(s, e, t);
1320 l = f.x, u = f.y, this.P2.style.top = t + "px", this.P2.style.left = e + "px", (m = this.currentLink) == null || m.children[0].setAttribute("d", `M ${l} ${u} C ${e} ${t} ${n} ${i} ${h} ${d}`), this.line1.setAttribute("x1", l), this.line1.setAttribute("y1", u), this.line1.setAttribute("x2", e), this.line1.setAttribute("y2", t), o.delta1.x = e - s.cx, o.delta1.y = t - s.cy;
1321 }), this.helper2.init(this.map, (p, g) => {
1322 var b, v;
1323 n = n - p / this.scaleVal, i = i - g / this.scaleVal;
1324 const f = G(r, n, i);
1325 h = f.x, d = f.y;
1326 const m = he(n, i, h, d);
1327 this.P3.style.top = i + "px", this.P3.style.left = n + "px", (b = this.currentLink) == null || b.children[0].setAttribute("d", `M ${l} ${u} C ${e} ${t} ${n} ${i} ${h} ${d}`), (v = this.currentLink) == null || v.children[1].setAttribute("d", `M ${m.x1} ${m.y1} L ${h} ${d} L ${m.x2} ${m.y2}`), this.line2.setAttribute("x1", n), this.line2.setAttribute("y1", i), this.line2.setAttribute("x2", h), this.line2.setAttribute("y2", d), o.delta2.x = n - r.cx, o.delta2.y = i - r.cy;
1328 });
1329}, en = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1330 __proto__: null,
1331 createLink: Gt,
1332 hideLinkController: Qt,
1333 removeLink: Kt,
1334 selectLink: Jt,
1335 showLinkController: Zt
1336}, Symbol.toStringTag, { value: "Module" }));
1337function tn(e, t) {
1338 return async function(...n) {
1339 const i = this.before[t];
1340 i && !await i.apply(this, n) || e.apply(this, n);
1341 };
1342}
1343const re = Object.keys(ye), Ne = {};
1344for (let e = 0; e < re.length; e++) {
1345 const t = re[e];
1346 Ne[t] = tn(ye[t], t);
1347}
1348const nn = {
1349 getObjById: ae,
1350 generateNewObj: ke,
1351 layout: je,
1352 linkDiv: Ue,
1353 createInputDiv: Re,
1354 createWrapper: _e,
1355 createParent: ze,
1356 createChildren: Ve,
1357 createTopic: Fe,
1358 findEle: E,
1359 changeTheme: dt,
1360 ...At,
1361 ...Ne,
1362 ...en,
1363 init(e) {
1364 if (!e || !e.nodeData)
1365 return new Error("MindElixir: `data` is required");
1366 e.direction !== void 0 && (this.direction = e.direction), this.changeTheme(e.theme || this.theme, !1), this.nodeData = e.nodeData, L(this.nodeData), this.linkData = e.linkData || {}, this.toolBar && at(this), this.keypress && tt(this), Ce() && this.mobileMenu ? nt(this) : this.contextMenu && Qe(this, this.contextMenuOption), this.draggable && st(this), this.allowUndo && rt(this), this.toCenter(), this.layout(), this.linkDiv();
1367 }
1368}, B = document;
1369function $({
1370 el: e,
1371 direction: t,
1372 locale: n,
1373 draggable: i,
1374 editable: o,
1375 contextMenu: s,
1376 contextMenuOption: r,
1377 toolBar: a,
1378 keypress: l,
1379 before: u,
1380 newTopicName: c,
1381 allowUndo: h,
1382 mainLinkStyle: d,
1383 subLinkStyle: p,
1384 overflowHidden: g,
1385 mobileMenu: f,
1386 theme: m
1387}) {
1388 console.log("ME_version " + $.version, this);
1389 let b = null;
1390 const v = Object.prototype.toString.call(e);
1391 if (v === "[object HTMLDivElement]" ? b = e : v === "[object String]" && (b = document.querySelector(e)), !b)
1392 throw new Error("MindElixir: el is not a valid element");
1393 b.className += " mind-elixir", b.innerHTML = "", b.style.setProperty("--gap", M + "px"), this.mindElixirBox = b, this.before = u || {}, this.locale = n || "en", this.contextMenuOption = r, this.contextMenu = s === void 0 ? !0 : s, this.toolBar = a === void 0 ? !0 : a, this.keypress = l === void 0 ? !0 : l, this.mobileMenu = f || !1, this.direction = typeof t == "number" ? t : 1, this.draggable = i === void 0 ? !0 : i, this.newTopicName = c || "new node", this.editable = o === void 0 ? !0 : o, this.allowUndo = h === void 0 ? !1 : h, this.currentNode = null, this.currentLink = null, this.inputDiv = null, this.scaleVal = 1, this.tempDirection = null, this.mainLinkStyle = d || 0, this.subLinkStyle = p || 0, this.overflowHidden = g || !1, this.bus = De.create(), this.container = B.createElement("div"), this.container.className = "map-container";
1394 const y = window.matchMedia("(prefers-color-scheme: dark)");
1395 this.theme = m || (y.matches ? ce : le);
1396 const N = B.createElement("div");
1397 N.className = "map-canvas", this.map = N, this.map.setAttribute("tabindex", "0"), this.container.appendChild(this.map), this.mindElixirBox.appendChild(this.container), this.nodes = B.createElement("me-nodes"), this.nodes.className = "main-node-container", this.lines = F("lines"), this.linkController = F("linkcontroller"), this.P2 = B.createElement("div"), this.P3 = B.createElement("div"), this.P2.className = this.P3.className = "circle", this.P2.style.display = this.P3.style.display = "none", this.line1 = ee(0, 0, 0, 0), this.line2 = ee(0, 0, 0, 0), this.linkController.appendChild(this.line1), this.linkController.appendChild(this.line2), this.linkSvgGroup = F("topiclinks"), this.map.appendChild(this.nodes), this.map.appendChild(this.linkController), this.map.appendChild(this.linkSvgGroup), this.map.appendChild(this.P2), this.map.appendChild(this.P3), this.overflowHidden ? this.container.style.overflow = "hidden" : Ae(this);
1398}
1399$.prototype = nn;
1400$.LEFT = x;
1401$.RIGHT = P;
1402$.SIDE = _;
1403$.THEME = le;
1404$.DARK_THEME = ce;
1405$.version = "3.0.0";
1406$.E = E;
1407$.new = (e) => ({
1408 nodeData: {
1409 id: I(),
1410 topic: e || "new topic",
1411 root: !0,
1412 children: []
1413 },
1414 linkData: {}
1415});
1416export {
1417 $ as default,
1418 nn as methods
1419};