mind-elixir
Version:
Mind elixir is a free open source mind map core.
688 lines (687 loc) • 117 kB
JavaScript
(function(){"use strict";try{if(typeof document<"u"){var e=document.createElement("style");e.appendChild(document.createTextNode(".map-container{--gap: 30px;--root-radius: 30px;--main-radius: 20px;--root-color: #ffffff;--root-bgcolor: #4c4f69;--root-border-color: rgba(0, 0, 0, 0);--main-color: #444446;--main-bgcolor: #ffffff;--topic-padding: 3px;--color: #777777;--bgcolor: #f6f6f6;--selected: #4dc4ff;--panel-color: #444446;--panel-bgcolor: #ffffff;--panel-border-color: #eaeaea;-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;-webkit-user-select:none;user-select:none;height:100%;width:100%;overflow:scroll;font-size:15px}.map-container *{box-sizing:border-box}.map-container::-webkit-scrollbar{width:0px;height:0px}.map-container .selected{outline:2px solid var(--selected);outline-offset:1px}.map-container .hyper-link{text-decoration:none;margin-left:.3em}.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{position:relative}.map-container .map-canvas me-root me-tpc{display:block;font-size:25px;color:var(--root-color);padding:10px var(--gap);border-radius:var(--root-radius);border:var(--root-border-color) 2px solid;white-space:pre-wrap;background-color:var(--root-bgcolor)}.map-container me-main>me-wrapper{position:relative;margin:45px 65px}.map-container me-main>me-wrapper>me-parent{margin:10px;padding:0}.map-container me-main>me-wrapper>me-parent>me-tpc{border-radius:var(--main-radius);background-color:var(--main-bgcolor);border:2px solid var(--main-color);color:var(--main-color);padding:8px 25px}.map-container me-wrapper{display:block;pointer-events:none;width:fit-content}.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:35em;white-space:pre-wrap;padding:var(--topic-padding)}.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 .summary,.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,.map-container .summary{pointer-events:none}.map-container .topiclinks text,.map-container .linkcontroller text,.map-container .summary text{pointer-events:all}.map-container .topiclinks .selected,.map-container .linkcontroller .selected,.map-container .summary .selected{pointer-events:none}.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;width:max-content;max-width:35em;z-index:11;direction:ltr;-webkit-user-select:auto;user-select:auto;pointer-events:auto;background-color:var(--bgcolor)}.map-container me-tpc>*{pointer-events:none}.map-container me-tpc>a,.map-container me-tpc>iframe{pointer-events:auto}.map-container me-tpc>img{display:block;margin-bottom:8px;object-fit:cover}.map-container me-tpc>.text{display:inline-block}.map-container .circle{position:absolute;height:10px;width:10px;margin-top:-5px;margin-left:-5px;border-radius:100%;background:#757575;border:2px solid #ffffff;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 4px 0 0;font-size:12px;line-height:1.3em}.map-container .icons{display:inline-block;direction:ltr;margin-left:5px}.map-container .icons span{display:inline-block;line-height:1.3em}.map-container .mind-elixir-ghost{position:fixed;top:-100%;left:-100%;box-sizing:content-box;opacity:.5;background-color:var(--main-bgcolor);border:2px solid var(--main-color);color:var(--main-color);max-width:200px;width:fit-content;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;padding:8px 16px;border-radius:6px}.map-container .selection-area{background:#4f90f22d;border:1px solid #4f90f2}.map-container .context-menu{position:fixed;top:0;left:0;width:100%;height:100%;z-index:99}.map-container .context-menu .menu-list{position:fixed;list-style:none;margin:0;padding:0;color:var(--panel-color);box-shadow:0 12px 15px #0003;border-radius:5px;overflow:hidden}.map-container .context-menu .menu-list li{min-width:200px;overflow:hidden;white-space:nowrap;padding:6px 10px;background:var(--panel-bgcolor);border-bottom:1px solid var(--panel-border-color);cursor:pointer}.map-container .context-menu .menu-list li span{line-height:20px}.map-container .context-menu .menu-list li a{color:#333;text-decoration:none}.map-container .context-menu .menu-list li.disabled{display:none}.map-container .context-menu .menu-list li:hover{filter:brightness(.95)}.map-container .context-menu .menu-list li:last-child{border-bottom:0}.map-container .context-menu .menu-list li span:last-child{float:right}.map-container .context-menu .key{font-size:10px;background-color:#f1f1f1;color:#333;padding:2px 5px;border-radius:3px}.map-container .tips{position:absolute;bottom:20px;left:50%;transform:translate(-50%);color:var(--panel-color);font-weight:bolder}.mind-elixir-toolbar{font-family:iconfont;position:absolute;color:var(--panel-color);background:var(--panel-bgcolor);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(e)}}catch(o){console.error("vite-plugin-css-injected-by-js",o)}})();
(function(e) {
var t, n, o, i, s, r, c = '<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");
if (l && !e.__iconfont__svg__cssinject__) {
e.__iconfont__svg__cssinject__ = !0;
try {
document.write(
"<style>.svgfont {display: inline-block;width: 1em;height: 1em;fill: currentColor;vertical-align: -0.1em;font-size:16px;}</style>"
);
} catch {
}
}
function d() {
s || (s = !0, o());
}
t = function() {
var a, u, h, p;
(p = document.createElement("div")).innerHTML = c, c = null, (h = p.getElementsByTagName("svg")[0]) && (h.setAttribute("aria-hidden", "true"), h.style.position = "absolute", h.style.width = 0, h.style.height = 0, h.style.overflow = "hidden", a = h, (u = document.body).firstChild ? (p = a, (h = u.firstChild).parentNode.insertBefore(p, h)) : u.appendChild(a));
}, document.addEventListener ? ~["complete", "loaded", "interactive"].indexOf(document.readyState) ? setTimeout(t, 0) : (n = function() {
document.removeEventListener("DOMContentLoaded", n, !1), t();
}, document.addEventListener("DOMContentLoaded", n, !1)) : document.attachEvent && (o = t, i = e.document, s = !1, (r = function() {
try {
i.documentElement.doScroll("left");
} catch {
return void setTimeout(r, 50);
}
d();
})(), i.onreadystatechange = function() {
i.readyState == "complete" && (i.onreadystatechange = null, d());
});
})(window);
const $ = 0, P = 1, ae = 2, Be = {
name: "Latte",
type: "light",
palette: ["#dd7878", "#ea76cb", "#8839ef", "#e64553", "#fe640b", "#df8e1d", "#40a02b", "#209fb5", "#1e66f5", "#7287fd"],
cssVar: {
"--gap": "30px",
"--main-color": "#444446",
"--main-bgcolor": "#ffffff",
"--color": "#777777",
"--bgcolor": "#f6f6f6",
"--panel-color": "#444446",
"--panel-bgcolor": "#ffffff",
"--panel-border-color": "#eaeaea"
}
}, Re = {
name: "Dark",
type: "dark",
palette: ["#848FA0", "#748BE9", "#D2F9FE", "#4145A5", "#789AFA", "#706CF4", "#EF987F", "#775DD5", "#FCEECF", "#DA7FBC"],
cssVar: {
"--main-color": "#ffffff",
"--main-bgcolor": "#4c4f69",
"--color": "#cccccc",
"--bgcolor": "#252526",
"--panel-color": "#ffffff",
"--panel-bgcolor": "#2d3748",
"--panel-border-color": "#696969"
}
};
function ie(e) {
return e.replace(/&/g, "&").replace(/</g, "<").replace(/"/g, """);
}
const se = function(e, t) {
if (t.id === e)
return t;
if (t.children && t.children.length) {
for (let n = 0; n < t.children.length; n++) {
const o = se(e, t.children[n]);
if (o)
return o;
}
return null;
} else
return null;
}, B = (e, t) => {
if (e.parent = t, e.children)
for (let n = 0; n < e.children.length; n++)
B(e.children[n], e);
};
function pe(e) {
if (e.id = U(), e.children)
for (let t = 0; t < e.children.length; t++)
pe(e.children[t]);
}
function re(e, t, n, o) {
const i = o - t, s = e - n;
let r = Math.atan(Math.abs(i) / Math.abs(s)) / 3.14 * 180;
s < 0 && i > 0 && (r = 180 - r), s < 0 && i < 0 && (r = 180 + r), s > 0 && i < 0 && (r = 360 - r);
const c = 12, l = 30, d = r + l, a = r - l;
return {
x1: n + Math.cos(Math.PI * d / 180) * c,
y1: o - Math.sin(Math.PI * d / 180) * c,
x2: n + Math.cos(Math.PI * a / 180) * c,
y2: o - Math.sin(Math.PI * a / 180) * c
};
}
function U() {
return ((/* @__PURE__ */ new Date()).getTime().toString(16) + Math.random().toString(16).substr(2)).substr(2, 16);
}
const nt = function() {
const e = U();
return {
topic: this.newTopicName,
id: e
};
};
function me(e) {
return JSON.parse(
JSON.stringify(e, (n, o) => {
if (n !== "parent")
return o;
})
);
}
const R = (e, t) => {
let n = 0, o = 0;
for (; t && t !== e; )
n += t.offsetLeft, o += t.offsetTop, t = t.offsetParent;
return { offsetLeft: n, offsetTop: o };
}, C = (e, t) => {
for (const n in t)
e.setAttribute(n, t[n]);
}, he = (e) => e ? e.tagName === "ME-TPC" : !1, de = (e) => e.filter((t) => {
for (let n = 0; n < e.length; n++) {
if (t === e[n])
continue;
if (e[n].parentElement.parentElement.contains(t))
return !1;
}
return !0;
}), k = {
moved: !1,
// diffrentiate click and move
mousedown: !1,
onMove(e, t) {
if (this.mousedown) {
this.moved = !0;
const n = e.movementX, o = e.movementY, { container: i, map: s, scaleVal: r } = t;
let c = i.scrollLeft - n, l = i.scrollTop - o;
if (r < 1) {
const d = (i.scrollWidth - s.clientWidth * r) / 2, a = (i.scrollHeight - s.clientHeight * r) / 2;
c = Math.max(d, Math.min(i.scrollWidth - d - i.clientWidth, c)), l = Math.max(a, Math.min(i.scrollHeight - a - i.clientHeight, l));
}
i.scrollTo(c, l);
}
},
clear() {
setTimeout(() => {
this.moved = !1, this.mousedown = !1;
}, 0);
}
};
function ot(e) {
e.map.addEventListener("click", (t) => {
var o, i;
if (t.button !== 0)
return;
if ((o = e.helper1) != null && o.moved) {
e.helper1.clear();
return;
}
if ((i = e.helper2) != null && i.moved) {
e.helper2.clear();
return;
}
if (k.moved) {
k.clear();
return;
}
e.clearSelection();
const n = t.target;
if (n.tagName === "ME-EPD")
e.expandNode(n.previousSibling);
else if (he(n))
e.selectNode(n, !1, t);
else if (e.editable)
n.tagName === "text" ? n.dataset.type === "custom-link" ? e.selectArrow(n.parentElement) : e.selectSummary(n.parentElement) : n.className;
else
return;
}), e.map.addEventListener("dblclick", (t) => {
if (!e.editable)
return;
const n = t.target;
he(n) ? e.beginEdit(n) : n.tagName === "text" && (n.dataset.type === "custom-link" ? e.editArrowLabel(n.parentElement) : e.editSummary(n.parentElement));
}), e.map.addEventListener("mousemove", (t) => {
t.target.contentEditable === "inherit" && k.onMove(t, e);
}), e.map.addEventListener("mousedown", (t) => {
const n = e.mouseSelectionButton === 0 ? 2 : 0;
t.button === n && t.target.contentEditable === "inherit" && (k.moved = !1, k.mousedown = !0);
}), e.map.addEventListener("mouseleave", (t) => {
const n = e.mouseSelectionButton === 0 ? 2 : 0;
t.button === n && k.clear();
}), e.map.addEventListener("mouseup", (t) => {
const n = e.mouseSelectionButton === 0 ? 2 : 0;
t.button === n && k.clear();
});
}
const it = {
create() {
return {
handlers: {},
showHandler: function() {
},
addListener: function(e, t) {
this.handlers[e] === void 0 && (this.handlers[e] = []), this.handlers[e].push(t);
},
fire: function(e, ...t) {
if (this.handlers[e] instanceof Array) {
const n = this.handlers[e];
for (let o = 0; o < n.length; o++)
n[o](...t);
}
},
removeListener: function(e, t) {
if (!this.handlers[e])
return;
const n = this.handlers[e];
if (!t)
n.length = 0;
else if (n.length)
for (let o = 0; o < n.length; o++)
n[o] === t && this.handlers[e].splice(o, 1);
}
};
}
};
var L = /* @__PURE__ */ ((e) => (e.LHS = "lhs", e.RHS = "rhs", e))(L || {});
const ce = document, st = function() {
this.nodes.innerHTML = "";
const e = this.createTopic(this.nodeData);
ge(e, this.nodeData), e.draggable = !1;
const t = ce.createElement("me-root");
t.appendChild(e);
const n = this.nodeData.children || [];
if (this.direction === ae) {
let o = 0, i = 0;
n.map((s) => {
s.direction === $ ? o += 1 : s.direction === P ? i += 1 : o <= i ? (s.direction = $, o += 1) : (s.direction = P, i += 1);
});
}
rt(this, n, t);
}, rt = function(e, t, n) {
const o = ce.createElement("me-main");
o.className = L.LHS;
const i = ce.createElement("me-main");
i.className = L.RHS;
for (let s = 0; s < t.length; s++) {
const r = t[s], { grp: c } = e.createWrapper(r);
e.direction === ae ? r.direction === $ ? o.appendChild(c) : i.appendChild(c) : e.direction === $ ? o.appendChild(c) : i.appendChild(c);
}
e.nodes.appendChild(o), e.nodes.appendChild(n), e.nodes.appendChild(i), e.nodes.appendChild(e.lines);
}, ct = function(e, t) {
const n = ce.createElement("me-children");
for (let o = 0; o < t.length; o++) {
const i = t[o], { grp: s } = e.createWrapper(i);
n.appendChild(s);
}
return n;
}, T = document, S = (e, t) => {
const o = (t ? t.mindElixirBox : T).querySelector(`[data-nodeid=me${e}]`);
if (!o)
throw new Error(`FindEle: Node ${e} not found, maybe it's collapsed.`);
return o;
}, ge = function(e, t) {
if (e.innerHTML = "", 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.dangerouslySetInnerHTML) {
e.innerHTML = t.dangerouslySetInnerHTML;
return;
}
if (t.image) {
const n = t.image;
if (n.url && n.width && n.height) {
const o = T.createElement("img");
o.src = n.url, o.style.width = n.width + "px", o.style.height = n.height + "px", n.fit && (o.style.objectFit = n.fit), e.appendChild(o), e.image = o;
}
} else
e.image && (e.image = void 0);
{
const n = T.createElement("span");
n.className = "text", n.textContent = t.topic, e.appendChild(n), e.text = n;
}
if (t.hyperLink) {
const n = T.createElement("a");
n.className = "hyper-link", n.target = "_blank", n.innerText = "🔗", n.href = t.hyperLink, e.appendChild(n), e.link = n;
} else
e.link && (e.link = void 0);
if (t.icons && t.icons.length) {
const n = T.createElement("span");
n.className = "icons", n.innerHTML = t.icons.map((o) => `<span>${ie(o)}</span>`).join(""), e.appendChild(n), e.icons = n;
} else
e.icons && (e.icons = void 0);
if (t.tags && t.tags.length) {
const n = T.createElement("div");
n.className = "tags", n.innerHTML = t.tags.map((o) => `<span>${ie(o)}</span>`).join(""), e.appendChild(n), e.tags = n;
} else
e.tags && (e.tags = void 0);
}, lt = function(e, t) {
const n = T.createElement("me-wrapper"), { p: o, tpc: i } = this.createParent(e);
if (n.appendChild(o), !t && e.children && e.children.length > 0) {
const s = ve(e.expanded);
if (o.appendChild(s), e.expanded !== !1) {
const r = ct(this, e.children);
n.appendChild(r);
}
}
return { grp: n, top: o, tpc: i };
}, at = function(e) {
const t = T.createElement("me-parent"), n = this.createTopic(e);
return ge(n, e), t.appendChild(n), { p: t, tpc: n };
}, dt = function(e) {
const t = T.createElement("me-children");
return t.append(...e), t;
}, ht = function(e) {
const t = T.createElement("me-tpc");
return t.nodeObj = e, t.dataset.nodeid = "me" + e.id, t.draggable = this.draggable, t;
};
function ze(e) {
const t = T.createRange();
t.selectNodeContents(e);
const n = window.getSelection();
n && (n.removeAllRanges(), n.addRange(t));
}
const ut = function(e) {
if (!e)
return;
const t = T.createElement("div"), n = e.text.textContent;
e.appendChild(t), t.id = "input-box", t.textContent = n, t.contentEditable = "plaintext-only", t.spellcheck = !1;
const o = getComputedStyle(e);
t.style.cssText = `min-width:${e.offsetWidth - 8}px;
color:${o.color};
padding:${o.padding};
margin:${o.margin};
font:${o.font};
background-color:${o.backgroundColor !== "rgba(0, 0, 0, 0)" && o.backgroundColor};
border-radius:${o.borderRadius};`, this.direction === $ && (t.style.right = "0"), t.focus(), ze(t), this.bus.fire("operation", {
name: "beginEdit",
obj: e.nodeObj
}), t.addEventListener("keydown", (i) => {
i.stopPropagation();
const s = i.key;
if (s === "Enter" || s === "Tab") {
if (i.shiftKey)
return;
i.preventDefault(), t.blur(), this.map.focus();
}
}), t.addEventListener("blur", () => {
var r;
if (!t)
return;
const i = e.nodeObj, s = ((r = t.textContent) == null ? void 0 : r.trim()) || "";
s === "" ? i.topic = n : i.topic = s, t.remove(), s !== n && (e.text.textContent = i.topic, this.linkDiv(), this.bus.fire("operation", {
name: "finishEdit",
obj: i,
origin: n
}));
});
}, ve = function(e) {
const t = T.createElement("me-epd");
return t.expanded = e !== !1, t.className = e !== !1 ? "minus" : "", t;
}, K = document, Z = "http://www.w3.org/2000/svg", Fe = function(e, t, n) {
const o = K.createElementNS(Z, "path");
return C(o, {
d: e,
stroke: t || "#666",
fill: "none",
"stroke-width": n
}), o;
}, J = function(e) {
const t = K.createElementNS(Z, "svg");
return t.setAttribute("class", e), t.setAttribute("overflow", "visible"), t;
}, Ne = function() {
const e = K.createElementNS(Z, "line");
return e.setAttribute("stroke", "#bbb"), e.setAttribute("fill", "none"), e.setAttribute("stroke-width", "2"), e;
}, ft = function(e, t, n) {
const o = {
stroke: "rgb(235, 95, 82)",
fill: "none",
"stroke-linecap": "cap",
"stroke-width": "2"
}, i = K.createElementNS(Z, "g");
return [e, t, n].forEach((s, r) => {
const c = K.createElementNS(Z, "path"), l = {
d: s,
...o
};
C(c, l), r === 0 && c.setAttribute("stroke-dasharray", "8,2"), i.appendChild(c);
}), i;
}, qe = function(e, t, n) {
if (!t)
return;
const o = K.createElement("div");
e.nodes.appendChild(o);
const i = t.innerHTML;
o.id = "input-box", o.textContent = i, o.contentEditable = "plaintext-only", o.spellcheck = !1;
const s = t.getBBox();
o.style.cssText = `
min-width:${Math.max(88, s.width)}px;
position:absolute;
left:${s.x}px;
top:${s.y}px;
padding: 2px 4px;
margin: -2px -4px;
`, o.focus(), ze(o), o.addEventListener("keydown", (r) => {
r.stopPropagation();
const c = r.key;
if (c === "Enter" || c === "Tab") {
if (r.shiftKey)
return;
r.preventDefault(), o.blur(), e.map.focus();
}
}), o.addEventListener("blur", () => {
o && n(o);
});
}, pt = function(e) {
const t = this.map.querySelector("me-root"), n = t.offsetTop, o = t.offsetLeft, i = t.offsetWidth, s = t.offsetHeight, c = this.map.querySelector("me-nodes").offsetWidth;
this.nodes.style.top = `${1e4 - this.nodes.offsetHeight / 2}px`, this.alignment === "root" ? this.nodes.style.left = `${1e4 - o - i / 2}px` : this.nodes.style.left = `${1e4 - c / 2}px`;
const l = this.map.querySelectorAll("me-main > me-wrapper");
this.lines.innerHTML = "";
for (let d = 0; d < l.length; d++) {
const a = l[d], u = a.querySelector("me-tpc"), { offsetLeft: h, offsetTop: p } = R(this.nodes, u), g = u.offsetWidth, v = u.offsetHeight, m = a.parentNode.className, f = this.generateMainBranch({ pT: n, pL: o, pW: i, pH: s, cT: p, cL: h, cW: g, cH: v, direction: m, containerHeight: this.nodes.offsetHeight }), b = this.theme.palette, x = u.nodeObj.branchColor || b[d % b.length];
u.style.borderColor = x, this.lines.appendChild(Fe(f, x, "3"));
const E = a.children[0].children[1];
if (E && (E.style.top = (E.parentNode.offsetHeight - E.offsetHeight) / 2 + "px", m === L.LHS ? E.style.left = "-10px" : E.style.right = "-10px"), e && e !== a)
continue;
const y = J("subLines"), w = a.lastChild;
w.tagName === "svg" && w.remove(), a.appendChild(y), Ve(this, y, x, a, m, !0);
}
this.renderArrow(), this.renderSummary(), this.bus.fire("linkDiv");
}, Ve = function(e, t, n, o, i, s) {
const r = o.firstChild, c = o.children[1].children;
if (c.length === 0)
return;
const l = r.offsetTop, d = r.offsetLeft, a = r.offsetWidth, u = r.offsetHeight;
for (let h = 0; h < c.length; h++) {
const p = c[h], g = p.firstChild, v = g.offsetTop, m = g.offsetLeft, f = g.offsetWidth, b = g.offsetHeight, x = g.firstChild.nodeObj.branchColor || n, E = e.generateSubBranch({ pT: l, pL: d, pW: a, pH: u, cT: v, cL: m, cW: f, cH: b, direction: i, isFirst: s });
t.appendChild(Fe(E, x, "2"));
const y = g.children[1];
if (y) {
if (y.style.bottom = -(y.offsetHeight / 2) + "px", i === L.LHS ? y.style.left = "10px" : i === L.RHS && (y.style.right = "10px"), !y.expanded)
continue;
} else
continue;
Ve(e, t, x, p, i);
}
}, Ce = {
addChild: "插入子节点",
addParent: "插入父节点",
addSibling: "插入同级节点",
removeNode: "删除节点",
focus: "专注",
cancelFocus: "取消专注",
moveUp: "上移",
moveDown: "下移",
link: "连接",
clickTips: "请点击目标节点",
summary: "摘要"
}, Se = {
cn: Ce,
zh_CN: Ce,
zh_TW: {
addChild: "插入子節點",
addParent: "插入父節點",
addSibling: "插入同級節點",
removeNode: "刪除節點",
focus: "專注",
cancelFocus: "取消專注",
moveUp: "上移",
moveDown: "下移",
link: "連接",
clickTips: "請點擊目標節點",
summary: "摘要"
},
en: {
addChild: "Add child",
addParent: "Add parent",
addSibling: "Add sibling",
removeNode: "Remove node",
focus: "Focus Mode",
cancelFocus: "Cancel Focus Mode",
moveUp: "Move up",
moveDown: "Move down",
link: "Link",
clickTips: "Please click the target node",
summary: "Summary"
},
ru: {
addChild: "Добавить дочерний элемент",
addParent: "Добавить родительский элемент",
addSibling: "Добавить на этом уровне",
removeNode: "Удалить узел",
focus: "Режим фокусировки",
cancelFocus: "Отменить режим фокусировки",
moveUp: "Поднять выше",
moveDown: "Опустить ниже",
link: "Ссылка",
clickTips: "Пожалуйста, нажмите на целевой узел",
summary: "Описание"
},
ja: {
addChild: "子ノードを追加する",
addParent: "親ノードを追加します",
addSibling: "兄弟ノードを追加する",
removeNode: "ノードを削除",
focus: "集中",
cancelFocus: "集中解除",
moveUp: "上へ移動",
moveDown: "下へ移動",
link: "コネクト",
clickTips: "ターゲットノードをクリックしてください",
summary: "概要"
},
pt: {
addChild: "Adicionar item filho",
addParent: "Adicionar item pai",
addSibling: "Adicionar item irmao",
removeNode: "Remover item",
focus: "Modo Foco",
cancelFocus: "Cancelar Modo Foco",
moveUp: "Mover para cima",
moveDown: "Mover para baixo",
link: "Link",
clickTips: "Favor clicar no item alvo",
summary: "Resumo"
},
it: {
addChild: "Aggiungi figlio",
addParent: "Aggiungi genitore",
addSibling: "Aggiungi fratello",
removeNode: "Rimuovi nodo",
focus: "Modalità Focus",
cancelFocus: "Annulla Modalità Focus",
moveUp: "Sposta su",
moveDown: "Sposta giù",
link: "Collega",
clickTips: "Si prega di fare clic sul nodo di destinazione",
summary: "Unisci nodi"
},
es: {
addChild: "Agregar hijo",
addParent: "Agregar padre",
addSibling: "Agregar hermano",
removeNode: "Eliminar nodo",
focus: "Modo Enfoque",
cancelFocus: "Cancelar Modo Enfoque",
moveUp: "Mover hacia arriba",
moveDown: "Mover hacia abajo",
link: "Enlace",
clickTips: "Por favor haga clic en el nodo de destino",
summary: "Resumen"
},
fr: {
addChild: "Ajout enfant",
addParent: "Ajout parent",
addSibling: "Ajout voisin",
removeNode: "Supprimer",
focus: "Cibler",
cancelFocus: "Retour",
moveUp: "Monter",
moveDown: "Descendre",
link: "Lier",
clickTips: "Cliquer sur le noeud cible",
summary: "Annoter"
},
ko: {
addChild: "자식 추가",
addParent: "부모 추가",
addSibling: "형제 추가",
removeNode: "노드 삭제",
focus: "포커스 모드",
cancelFocus: "포커스 모드 취소",
moveUp: "위로 이동",
moveDown: "아래로 이동",
link: "연결",
clickTips: "대상 노드를 클릭하십시오",
summary: "요약"
}
};
function mt(e, t) {
const n = (y) => {
const w = document.createElement("div");
return w.innerText = y, w.className = "tips", w;
}, o = (y, w, _) => {
const M = document.createElement("li");
return M.id = y, M.innerHTML = `<span>${ie(w)}</span><span ${_ ? 'class="key"' : ""}>${ie(_)}</span>`, M;
}, i = Se[e.locale] ? e.locale : "en", s = Se[i], r = o("cm-add_child", s.addChild, "Tab"), c = o("cm-add_parent", s.addParent, "Ctrl + Enter"), l = o("cm-add_sibling", s.addSibling, "Enter"), d = o("cm-remove_child", s.removeNode, "Delete"), a = o("cm-fucus", s.focus, ""), u = o("cm-unfucus", s.cancelFocus, ""), h = o("cm-up", s.moveUp, "PgUp"), p = o("cm-down", s.moveDown, "Pgdn"), g = o("cm-link", s.link, ""), v = o("cm-link-bidirectional", "Bidreactional Link", ""), m = o("cm-summary", s.summary, ""), f = document.createElement("ul");
if (f.className = "menu-list", f.appendChild(r), f.appendChild(c), f.appendChild(l), f.appendChild(d), (!t || t.focus) && (f.appendChild(a), f.appendChild(u)), f.appendChild(h), f.appendChild(p), f.appendChild(m), (!t || t.link) && (f.appendChild(g), f.appendChild(v)), t && t.extend)
for (let y = 0; y < t.extend.length; y++) {
const w = t.extend[y], _ = o(w.name, w.name, w.key || "");
f.appendChild(_), _.onclick = (M) => {
w.onclick(M);
};
}
const b = document.createElement("div");
b.className = "context-menu", b.appendChild(f), b.hidden = !0, e.container.append(b);
let x = !0;
e.container.oncontextmenu = function(y) {
if (y.preventDefault(), !e.editable || k.moved)
return;
const w = y.target;
if (he(w)) {
w.parentElement.tagName === "ME-ROOT" ? x = !0 : x = !1, x ? (a.className = "disabled", h.className = "disabled", p.className = "disabled", c.className = "disabled", l.className = "disabled", d.className = "disabled") : (a.className = "", h.className = "", p.className = "", c.className = "", l.className = "", d.className = ""), e.currentNodes || e.selectNode(w), b.hidden = !1, k.mousedown && (k.mousedown = !1), f.style.top = "", f.style.bottom = "", f.style.left = "", f.style.right = "";
const _ = f.getBoundingClientRect(), M = f.offsetHeight, j = f.offsetWidth, z = y.clientY - _.top, X = y.clientX - _.left;
M + z > window.innerHeight ? (f.style.top = "", f.style.bottom = "0px") : (f.style.bottom = "", f.style.top = z + 15 + "px"), j + X > window.innerWidth ? (f.style.left = "", f.style.right = "0px") : (f.style.right = "", f.style.left = X + 10 + "px");
}
}, b.onclick = (y) => {
y.target === b && (b.hidden = !0);
}, r.onclick = () => {
e.addChild(), b.hidden = !0;
}, c.onclick = () => {
e.insertParent(), b.hidden = !0;
}, l.onclick = () => {
x || (e.insertSibling("after"), b.hidden = !0);
}, d.onclick = () => {
x || (e.removeNode(), b.hidden = !0);
}, a.onclick = () => {
x || (e.focusNode(e.currentNode), b.hidden = !0);
}, u.onclick = () => {
e.cancelFocus(), b.hidden = !0;
}, h.onclick = () => {
x || (e.moveUpNode(), b.hidden = !0);
}, p.onclick = () => {
x || (e.moveDownNode(), b.hidden = !0);
};
const E = (y) => {
b.hidden = !0;
const w = e.currentNode, _ = n(s.clickTips);
e.container.appendChild(_), e.map.addEventListener(
"click",
(M) => {
M.preventDefault(), _.remove();
const j = M.target;
(j.parentElement.tagName === "ME-PARENT" || j.parentElement.tagName === "ME-ROOT") && e.createArrow(w, j, y);
},
{
once: !0
}
);
};
return g.onclick = () => E(), v.onclick = () => E({ bidirectional: !0 }), m.onclick = () => {
b.hidden = !0, e.createSummary(), e.unselectNodes();
}, () => {
r.onclick = null, c.onclick = null, l.onclick = null, d.onclick = null, a.onclick = null, u.onclick = null, h.onclick = null, p.onclick = null, g.onclick = null, m.onclick = null, b.onclick = null, e.container.oncontextmenu = null;
};
}
const gt = (e) => {
const t = e.map.querySelectorAll(".lhs>me-wrapper>me-parent>me-tpc");
e.selectNode(t[Math.ceil(t.length / 2) - 1]);
}, vt = (e) => {
const t = e.map.querySelectorAll(".rhs>me-wrapper>me-parent>me-tpc");
e.selectNode(t[Math.ceil(t.length / 2) - 1]);
}, bt = (e) => {
e.selectNode(e.map.querySelector("me-root>me-tpc"));
}, yt = function(e, t) {
const n = t.parentElement.parentElement.parentElement.previousSibling;
if (n) {
const o = n.firstChild;
e.selectNode(o);
}
}, xt = function(e, t) {
const n = t.parentElement.nextSibling;
if (n && n.firstChild) {
const o = n.firstChild.firstChild.firstChild;
e.selectNode(o);
}
}, _e = function(e, t) {
var s, r;
const n = e.currentNode || ((s = e.currentNodes) == null ? void 0 : s[0]);
if (!n)
return;
const o = n.nodeObj, i = n.offsetParent.offsetParent.parentElement;
o.parent ? i.className === t ? xt(e, n) : (r = o.parent) != null && r.parent ? yt(e, n) : bt(e) : t === L.LHS ? gt(e) : vt(e);
}, Le = function(e, t) {
var r;
const n = e.currentNode || ((r = e.currentNodes) == null ? void 0 : r[0]);
if (!n || !n.nodeObj.parent)
return;
const i = t + "Sibling", s = n.parentElement.parentElement[i];
s && e.selectNode(s.firstChild.firstChild);
}, ee = function(e, t) {
switch (t) {
case "in":
if (e.scaleVal > 1.6)
return;
e.scale(e.scaleVal += 0.2);
break;
case "out":
if (e.scaleVal < 0.6)
return;