@codernote/record-tree 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -0
- package/dist/record-tree.js +316 -0
- package/package.json +32 -0
package/README.md
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# 记录软件 - 记录树
|
|
@@ -0,0 +1,316 @@
|
|
|
1
|
+
(function(){"use strict";try{if(typeof document<"u"){var M=document.createElement("style");M.appendChild(document.createTextNode(".popper{width:auto;background-color:#fafafa;color:#212121;text-align:center;padding:2px;display:inline-block;border-radius:3px;position:absolute;font-size:14px;font-weight:400;border:1px #ebebeb solid;z-index:200000;box-shadow:#3a3a3a 0 0 6px}.popper .popper__arrow{width:0;height:0;border-style:solid;position:absolute;margin:5px}.popper[x-placement^=top]{margin-bottom:5px}.popper[x-placement^=top] .popper__arrow{border-width:5px 5px 0 5px;border-color:#fafafa transparent transparent transparent;bottom:-5px;left:calc(50% - 5px);margin-top:0;margin-bottom:0}.popper[x-placement^=bottom]{margin-top:5px}.popper[x-placement^=bottom] .popper__arrow{border-width:0 5px 5px 5px;border-color:transparent transparent #fafafa transparent;top:-5px;left:calc(50% - 5px);margin-top:0;margin-bottom:0}.popper[x-placement^=right]{margin-left:5px}.popper[x-placement^=right] .popper__arrow{border-width:5px 5px 5px 0;border-color:transparent #fafafa transparent transparent;left:-5px;top:calc(50% - 5px);margin-left:0;margin-right:0}.popper[x-placement^=left]{margin-right:5px}.popper[x-placement^=left] .popper__arrow{border-width:5px 0 5px 5px;border-color:transparent transparent transparent #fafafa;right:-5px;top:calc(50% - 5px);margin-left:0;margin-right:0}.popper-content{display:flex;flex-wrap:wrap;padding:10px;box-shadow:0 2px 12px #1d1c1c1f;border:1px solid rgba(29,28,28,.12);border-radius:5px;overflow:hidden;background:#fff;z-index:9999}.popper-content-item{padding:8px 10px;display:flex;align-items:center;justify-content:center;cursor:pointer}.inline-svg{display:inline-block;border-radius:9999px;color:#fff;cursor:pointer}body.is-full-screen .tree-editor{margin-top:0!important}.tree-title-div{position:relative;display:flex;margin-bottom:3px}.tree-title{padding-left:25px;font-weight:700;outline:none;font-size:1.125rem;line-height:1.5;width:100%}.popper-reference{display:flex;position:absolute;top:0px;left:0px;text-align:center;border-radius:9999px;color:#fff}.tree-div{padding-left:25px}.mobile-options{position:fixed;bottom:0px;left:0px;width:100%;display:flex;justify-content:space-between;padding:5px 0;background:rgb(236,236,236)}.option-left{display:flex;padding-left:10px}.option-right{padding-right:10px}.option-item{margin:0 5px;cursor:pointer;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.lzx-waiting-move{box-shadow:0 2px 4px #0000001f,0 0 6px #0000000a}.empty-icon{display:inline-block;border-radius:9999px}.icon{display:inline-block;width:18px;height:18px;margin:0;padding:0!important;line-height:100%;font-size:0;background-position:center;background-repeat:no-repeat;background-size:14px;cursor:pointer}.tree-upload-loading{position:absolute;left:0;top:0;bottom:0;right:0}.tree-upload-loading p{display:flex;justify-content:center;align-items:center;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:200px}.tree-upload-loading{font-size:12px;font-weight:400;color:#666}.icon.icon-loading{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+PHN2ZyB0PSIxNzA2ODY0NzA3OTc0IiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjQ0MTYiIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+PHBhdGggZD0iTTc0Mi4yOTQ1NSAzMzQuMjc3MzQ3bC01Mi41NzU4OTctNTIuNTc1ODk3Yy0xMC4wNjk5OC0xMC4wNjk5OC0xMC4wNjk5OC0yNi40MDE5NDggMC0zNi40NzE5MjlsMTAwLjcxNzgwMy0xMDAuNzE3ODAzYzEwLjA2OTk4LTEwLjA2OTk4IDI2LjQwMTk0OC0xMC4wNjk5OCAzNi40NzE5MjkgMGw1Mi41NzU4OTcgNTIuNTc1ODk3YzEwLjA2OTk4IDEwLjA2OTk4IDEwLjA2OTk4IDI2LjQwMTk0OCAwIDM2LjQ3MTkyOWwtMTAwLjcxNzgwMyAxMDAuNzE3ODAzYy0xMC4wNzM5OCAxMC4wNzM5OC0yNi40MDE5NDggMTAuMDczOTgtMzYuNDcxOTI5IDB6IiBmaWxsPSIjQ0VFOEZBIiBwLWlkPSI0NDE3Ij48L3BhdGg+PHBhdGggZD0iTTc2MC41Mjg1MTUgMzcxLjMwNTI3NWMtMTQuNzU5OTcxIDAtMjguNjM1OTQ0LTUuNzQ3OTg5LTM5LjA3NTkyNC0xNi4xODM5NjlsLTUyLjU3NTg5Ny01Mi41NzU4OTdjLTEwLjQzNTk4LTEwLjQzNTk4LTE2LjE4NTk2OC0yNC4zMTU5NTMtMTYuMTg1OTY5LTM5LjA3NTkyNCAwLTE0Ljc2MTk3MSA1Ljc0OTk4OS0yOC42NDE5NDQgMTYuMTg5OTY5LTM5LjA4MTkyM2wxMDAuNzEzODAzLTEwMC43MTM4MDRjMTAuNDM5OTgtMTAuNDM1OTggMjQuMzE1OTUzLTE2LjE4Mzk2OCAzOS4wNzc5MjQtMTYuMTgzOTY4IDE0Ljc1OTk3MSAwIDI4LjYzNTk0NCA1Ljc0Nzk4OSAzOS4wNzU5MjMgMTYuMTc5OTY4bDUyLjU3NTg5OCA1Mi41Nzk4OThjMTAuNDM1OTggMTAuNDMzOTggMTYuMTg1OTY4IDI0LjMxMTk1MyAxNi4xODU5NjggMzkuMDc1OTIzIDAgMTQuNzU5OTcxLTUuNzQ5OTg5IDI4LjYzNzk0NC0xNi4xODk5NjggMzkuMDc3OTI0bC0xMDAuNzEzODA0IDEwMC43MTM4MDNjLTEwLjQzNTk4IDEwLjQzOTk4LTI0LjMxMzk1MyAxNi4xODc5NjgtMzkuMDc3OTIzIDE2LjE4Nzk2OXogbS00Ny4zNjU5MDgtMTA3LjgzNzc5bDQ3LjM2NTkwOCA0Ny4zNjc5MDggOTUuNTA1ODEzLTk1LjUwOTgxNC00Ny4zNjE5MDctNDcuMzY3OTA3LTk1LjUwOTgxNCA5NS41MDk4MTN6IiBmaWxsPSIjMkQ1MjdDIiBwLWlkPSI0NDE4Ij48L3BhdGg+PHBhdGggZD0iTTE5Ny4wODc2MTUgODc5LjQ4NDI4MmwtNTIuNTc1ODk3LTUyLjU3NTg5N2MtMTAuMDY5OTgtMTAuMDY5OTgtMTAuMDY5OTgtMjYuNDAxOTQ4IDAtMzYuNDcxOTI5bDEwMC43MTc4MDMtMTAwLjcxNzgwM2MxMC4wNjk5OC0xMC4wNjk5OCAyNi40MDE5NDgtMTAuMDY5OTggMzYuNDcxOTI5IDBsNTIuNTc1ODk3IDUyLjU3NTg5N2MxMC4wNjk5OCAxMC4wNjk5OCAxMC4wNjk5OCAyNi40MDE5NDggMCAzNi40NzE5MjlsLTEwMC43MTc4MDMgMTAwLjcxNzgwM2MtMTAuMDY5OTggMTAuMDY5OTgtMjYuMzk3OTQ4IDEwLjA2OTk4LTM2LjQ3MTkyOSAweiIgZmlsbD0iI0NFRThGQSIgcC1pZD0iNDQxOSI+PC9wYXRoPjxwYXRoIGQ9Ik0yMTUuMzI1NTc5IDkxNi41MTAyMWMtMTQuNzU5OTcxIDAtMjguNjM1OTQ0LTUuNzQ3OTg5LTM5LjA3NTkyMy0xNi4xODM5NjhsLTUyLjU3NTg5OC01Mi41Nzk4OThjLTEwLjQzNTk4LTEwLjQzMzk4LTE2LjE4NTk2OC0yNC4zMTE5NTMtMTYuMTg1OTY4LTM5LjA3NTkyMyAwLTE0Ljc1OTk3MSA1Ljc0OTk4OS0yOC42Mzc5NDQgMTYuMTg5OTY4LTM5LjA3NzkyNGwxMDAuNzEzODA0LTEwMC43MTM4MDNjMTAuNDM1OTgtMTAuNDM1OTggMjQuMzE1OTUzLTE2LjE4NTk2OCAzOS4wNzc5MjMtMTYuMTg1OTY5IDE0Ljc1OTk3MSAwIDI4LjYzNTk0NCA1Ljc0Nzk4OSAzOS4wNzU5MjQgMTYuMTgzOTY5bDUyLjU3NTg5NyA1Mi41NzU4OTdjMTAuNDM1OTggMTAuNDM1OTggMTYuMTg1OTY4IDI0LjMxNTk1MyAxNi4xODU5NjkgMzkuMDc3OTI0IDAgMTQuNzU5OTcxLTUuNzQ5OTg5IDI4LjYzNzk0NC0xNi4xODk5NjkgMzkuMDc3OTIzbC0xMDAuNzEzODAzIDEwMC43MTM4MDRjLTEwLjQ0MTk4IDEwLjQzNzk4LTI0LjMxNzk1MyAxNi4xODc5NjgtMzkuMDc3OTI0IDE2LjE4Nzk2OHogbS00Ny4zNjU5MDctMTA3LjgzOTc4OWw0Ny4zNjE5MDcgNDcuMzY3OTA3IDk1LjUwOTgxNC05NS41MDk4MTMtNDcuMzY1OTA4LTQ3LjM2NzkwOC05NS41MDU4MTMgOTUuNTA5ODE0eiIgZmlsbD0iIzJENTI3QyIgcC1pZD0iNDQyMCI+PC9wYXRoPjxwYXRoIGQ9Ik02ODkuNzE2NjUzIDc0Mi4yOTQ1NWw1Mi41NzU4OTctNTIuNTc1ODk3YzEwLjA2OTk4LTEwLjA2OTk4IDI2LjQwMTk0OC0xMC4wNjk5OCAzNi40NzE5MjkgMGwxMDAuNzE3ODAzIDEwMC43MTc4MDNjMTAuMDY5OTggMTAuMDY5OTggMTAuMDY5OTggMjYuNDAxOTQ4IDAgMzYuNDcxOTI5bC01Mi41NzU4OTcgNTIuNTc1ODk3Yy0xMC4wNjk5OCAxMC4wNjk5OC0yNi40MDE5NDggMTAuMDY5OTgtMzYuNDcxOTI5IDBsLTEwMC43MTc4MDMtMTAwLjcxNzgwM2MtMTAuMDY5OTgtMTAuMDczOTgtMTAuMDY5OTgtMjYuNDAxOTQ4IDAtMzYuNDcxOTI5eiIgZmlsbD0iI0NFRThGQSIgcC1pZD0iNDQyMSI+PC9wYXRoPjxwYXRoIGQ9Ik04MDguNjcyNDIxIDkxNi41MTAyMWMtMTQuNzYzOTcxIDAtMjguNjM3OTQ0LTUuNzQ5OTg5LTM5LjA3NzkyNC0xNi4xODU5NjhsLTEwMC43MTc4MDMtMTAwLjcxNzgwNGMtMTAuNDM1OTgtMTAuNDM5OTgtMTYuMTg1OTY4LTI0LjMxNTk1My0xNi4xODU5NjktMzkuMDc3OTIzczUuNzQ5OTg5LTI4LjY0MTk0NCAxNi4xODk5NjktMzkuMDgxOTI0bDUyLjU2OTg5Ny01Mi41Njk4OTdjMTAuNDQxOTgtMTAuNDM5OTggMjQuMzE3OTUzLTE2LjE4NTk2OCAzOS4wNzc5MjQtMTYuMTg1OTY5IDE0Ljc2Mzk3MSAwIDI4LjY0MTk0NCA1Ljc0OTk4OSAzOS4wNzc5MjMgMTYuMTg1OTY5bDEwMC43MTc4MDQgMTAwLjcxMzgwM2MxMC40MzU5OCAxMC40Mzk5OCAxNi4xODU5NjggMjQuMzE1OTUzIDE2LjE4NTk2OCAzOS4wNzc5MjRzLTUuNzQ5OTg5IDI4LjY0MTk0NC0xNi4xODk5NjggMzkuMDgxOTIzbC01Mi41Njk4OTggNTIuNTY5ODk4Yy0xMC40NDE5OCAxMC40NDM5OC0yNC4zMTc5NTMgMTYuMTg5OTY4LTM5LjA3NzkyMyAxNi4xODk5Njh6IG0tOTUuNTA5ODE0LTE1NS45ODE2OTVsOTUuNTA5ODE0IDk1LjUwOTgxMyA0Ny4zNjE5MDctNDcuMzY3OTA3LTk1LjUwNTgxMy05NS41MDk4MTQtNDcuMzY1OTA4IDQ3LjM2NzkwOHoiIGZpbGw9IiMyRDUyN0MiIHAtaWQ9IjQ0MjIiPjwvcGF0aD48cGF0aCBkPSJNMTQ0LjUxMzcxOCAxOTcuMDg3NjE1bDUyLjU3NTg5Ny01Mi41NzU4OTdjMTAuMDY5OTgtMTAuMDY5OTggMjYuNDAxOTQ4LTEwLjA2OTk4IDM2LjQ3MTkyOSAwbDEwMC43MTc4MDMgMTAwLjcxNzgwM2MxMC4wNjk5OCAxMC4wNjk5OCAxMC4wNjk5OCAyNi40MDE5NDggMCAzNi40NzE5MjlsLTUyLjU3NTg5NyA1Mi41NzU4OTdjLTEwLjA2OTk4IDEwLjA2OTk4LTI2LjQwMTk0OCAxMC4wNjk5OC0zNi40NzE5MjkgMGwtMTAwLjcxNzgwMy0xMDAuNzEzODAzYy0xMC4wNjk5OC0xMC4wNzM5OC0xMC4wNjk5OC0yNi40MDE5NDggMC0zNi40NzU5Mjl6IiBmaWxsPSIjQ0VFOEZBIiBwLWlkPSI0NDIzIj48L3BhdGg+PHBhdGggZD0iTTI2My40Njk0ODUgMzcxLjMwNTI3NWMtMTQuNzYxOTcxIDAtMjguNjQxOTQ0LTUuNzQ5OTg5LTM5LjA3NzkyMy0xNi4xODU5NjlsLTEwMC43MTc4MDQtMTAwLjcxMzgwM2MtMTAuNDM1OTgtMTAuNDM5OTgtMTYuMTg1OTY4LTI0LjMxNTk1My0xNi4xODU5NjgtMzkuMDc3OTI0IDAtMTQuNzYxOTcxIDUuNzQ5OTg5LTI4LjY0MTk0NCAxNi4xODk5NjgtMzkuMDgxOTIzbDUyLjU2OTg5OC01Mi41Njk4OThjMTAuNDQxOTgtMTAuNDM5OTggMjQuMzE3OTUzLTE2LjE4NTk2OCAzOS4wNzc5MjMtMTYuMTg1OTY4IDE0Ljc2MTk3MSAwIDI4LjYzNzk0NCA1Ljc0Nzk4OSAzOS4wNzc5MjQgMTYuMTgzOTY4bDEwMC43MTc4MDMgMTAwLjcxNzgwNGMxMC40MzU5OCAxMC40Mzk5OCAxNi4xODU5NjggMjQuMzE1OTUzIDE2LjE4NTk2OSAzOS4wNzc5MjMgMCAxNC43NTk5NzEtNS43NDk5ODkgMjguNjM3OTQ0LTE2LjE4OTk2OSAzOS4wNzc5MjRsLTUyLjU2OTg5NyA1Mi41Njk4OTdjLTEwLjQ0NTk4IDEwLjQzOTk4LTI0LjMyMTk1MiAxNi4xODc5NjgtMzkuMDc3OTI0IDE2LjE4Nzk2OXogbS05NS41MDk4MTMtMTU1Ljk3OTY5Nmw5NS41MDU4MTMgOTUuNTA5ODE0IDQ3LjM2NTkwOC00Ny4zNjU5MDgtOTUuNTA1ODE0LTk1LjUxMTgxMy00Ny4zNjU5MDcgNDcuMzY3OTA3ek04OTQuNzY4MjUyIDYwNC40MzY4MTloLTY4LjQ2Nzg2NmMtMzAuNDcxOTQgMC01NS4yNjM4OTItMjQuNzkxOTUyLTU1LjI2Mzg5Mi01NS4yNjE4OTJ2LTc0LjM1Mzg1NGMwLTMwLjQ3MTk0IDI0Ljc5MTk1Mi01NS4yNjE4OTIgNTUuMjYzODkyLTU1LjI2MTg5MmgxNDIuNDMzNzIyYzMwLjQ3MTk0IDAgNTUuMjYzODkyIDI0Ljc5MTk1MiA1NS4yNjM4OTIgNTUuMjYxODkydjc0LjM1Mzg1NGMwIDE2LjI3Nzk2OC0xMy4xOTc5NzQgMjkuNDcxOTQyLTI5LjQ3MTk0MiAyOS40NzE5NDNzLTI5LjQ3MTk0Mi0xMy4xOTU5NzQtMjkuNDcxOTQzLTI5LjQ3MTk0M3YtNzAuNjY5ODYyaC0xMzUuMDcxNzM2djY2Ljk4Nzg3aDY0Ljc4Nzg3M2MxNi4yNzM5NjggMCAyOS40NzE5NDIgMTMuMTk1OTc0IDI5LjQ3MTk0MyAyOS40NzE5NDIgMCAxNi4yNzk5NjgtMTMuMTk3OTc0IDI5LjQ3MTk0Mi0yOS40NzM5NDMgMjkuNDcxOTQyek0xOTcuNjk3NjE0IDYwNC40MzY4MTlINTUuMjYzODkyQzI0Ljc5MTk1MiA2MDQuNDM2ODE5IDAgNTc5LjY0NDg2OCAwIDU0OS4xNzY5Mjd2LTc0LjM1Mzg1NGMwLTE2LjI3Nzk2OCAxMy4xOTc5NzQtMjkuNDcxOTQyIDI5LjQ3MTk0Mi0yOS40NzE5NDNzMjkuNDcxOTQyIDEzLjE5NTk3NCAyOS40NzE5NDMgMjkuNDcxOTQzdjcwLjY2OTg2MmgxMzUuMDcxNzM2di02Ni45ODc4N0gxMjguNTMzNzQ5Yy0xNi4yNzM5NjggMC0yOS40NzE5NDItMTMuMTk1OTc0LTI5LjQ3MTk0Mi0yOS40NzE5NDIgMC0xNi4yNzc5NjggMTMuMTk3OTc0LTI5LjQ3MTk0MiAyOS40NzE5NDItMjkuNDcxOTQyaDY5LjE2Mzg2NWMzMC40NzE5NCAwIDU1LjI2Mzg5MiAyNC43OTE5NTIgNTUuMjYzODkyIDU1LjI2MTg5MnY3NC4zNTM4NTRjMCAzMC40Njc5NC0yNC43OTE5NTIgNTUuMjU5ODkyLTU1LjI2Mzg5MiA1NS4yNTk4OTJ6TTU0OS4xNzY5MjcgMTAyMy45OThINDc0LjgxOTA3M2MtMTYuMjczOTY4IDAtMjkuNDcxOTQyLTEzLjE5Mzk3NC0yOS40NzE5NDMtMjkuNDcxOTQyczEzLjE5Nzk3NC0yOS40NzE5NDIgMjkuNDcxOTQzLTI5LjQ3MTk0M2g3MC42NzM4NjJ2LTEzNS4wNzE3MzZoLTY2Ljk4Nzg3djY2LjE3Nzg3MWMwIDE2LjI3Nzk2OC0xMy4xOTc5NzQgMjkuNDcxOTQyLTI5LjQ3MTk0MiAyOS40NzE5NDJzLTI5LjQ3MTk0Mi0xMy4xOTM5NzQtMjkuNDcxOTQyLTI5LjQ3MTk0MlY4MjYuMjk4Mzg2YzAtMzAuNDcxOTQgMjQuNzg5OTUyLTU1LjI2MTg5MiA1NS4yNjE4OTItNTUuMjYxODkyaDc0LjM1Nzg1NGMzMC40NzE5NCAwIDU1LjI2MTg5MiAyNC43OTE5NTIgNTUuMjYxODkyIDU1LjI2MTg5MnYxNDIuNDM1NzIyQzYwNC40MzY4MTkgOTk5LjIwNjA0OCA1NzkuNjQ4ODY4IDEwMjMuOTk4IDU0OS4xNzY5MjcgMTAyMy45OTh6TTU0OS4xNzY5MjcgMjUyLjk2MTUwNkg0NzQuODE5MDczYy0zMC40NzE5NCAwLTU1LjI2MTg5Mi0yNC43OTE5NTItNTUuMjYxODkyLTU1LjI2MTg5MlY1NS4yNTk4OTJDNDE5LjU1NzE4MSAyNC43ODk5NTIgNDQ0LjM0NzEzMiAwIDQ3NC44MTkwNzMgMGg3NC4zNTc4NTRjMTYuMjczOTY4IDAgMjkuNDcxOTQyIDEzLjE5NTk3NCAyOS40NzE5NDMgMjkuNDcxOTQycy0xMy4xOTc5NzQgMjkuNDcxOTQyLTI5LjQ3MTk0MyAyOS40NzE5NDNoLTcwLjY3Mzg2MnYxMzUuMDcxNzM2aDY2Ljk4Nzg3VjEyOS41ODk3NDdjMC0xNi4yNzc5NjggMTMuMTk3OTc0LTI5LjQ3MTk0MiAyOS40NzE5NDItMjkuNDcxOTQzczI5LjQ3MTk0MiAxMy4xOTU5NzQgMjkuNDcxOTQyIDI5LjQ3MTk0M3Y2OC4xMDc4NjdjMC4wMDIgMzAuNDcxOTQtMjQuNzg1OTUyIDU1LjI2Mzg5Mi01NS4yNTc4OTIgNTUuMjYzODkyek0zOTIuMDkxMjM0IDU0MS40NzA5NDJoLTM3LjIzNTkyN2MtMTYuMjczOTY4IDAtMjkuNDcxOTQyLTEzLjE5NTk3NC0yOS40NzE5NDMtMjkuNDcxOTQyIDAtMTYuMjc3OTY4IDEzLjE5Nzk3NC0yOS40NzE5NDIgMjkuNDcxOTQzLTI5LjQ3MTk0MmgzNy4yMzU5MjdjMTYuMjczOTY4IDAgMjkuNDcxOTQyIDEzLjE5NTk3NCAyOS40NzE5NDMgMjkuNDcxOTQyIDAuMDAyIDE2LjI3Nzk2OC0xMy4xOTM5NzQgMjkuNDcxOTQyLTI5LjQ3MTk0MyAyOS40NzE5NDJ6TTUzMC42MTY5NjQgNTQxLjQ3MDk0Mkg0OTMuMzc5MDM2Yy0xNi4yNzM5NjggMC0yOS40NzE5NDItMTMuMTk1OTc0LTI5LjQ3MTk0Mi0yOS40NzE5NDIgMC0xNi4yNzc5NjggMTMuMTk3OTc0LTI5LjQ3MTk0MiAyOS40NzE5NDItMjkuNDcxOTQyaDM3LjIzNzkyOGMxNi4yNzM5NjggMCAyOS40NzE5NDIgMTMuMTk1OTc0IDI5LjQ3MTk0MiAyOS40NzE5NDIgMCAxNi4yNzc5NjgtMTMuMTkzOTc0IDI5LjQ3MTk0Mi0yOS40NzE5NDIgMjkuNDcxOTQyek02NjkuMTM4NjkzIDU0MS40NzA5NDJoLTM3LjIzNTkyN2MtMTYuMjczOTY4IDAtMjkuNDcxOTQyLTEzLjE5NTk3NC0yOS40NzE5NDMtMjkuNDcxOTQyIDAtMTYuMjc3OTY4IDEzLjE5Nzk3NC0yOS40NzE5NDIgMjkuNDcxOTQzLTI5LjQ3MTk0MmgzNy4yMzU5MjdjMTYuMjczOTY4IDAgMjkuNDcxOTQyIDEzLjE5NTk3NCAyOS40NzE5NDMgMjkuNDcxOTQyIDAuMDAyIDE2LjI3Nzk2OC0xMy4xOTM5NzQgMjkuNDcxOTQyLTI5LjQ3MTk0MyAyOS40NzE5NDJ6IiBmaWxsPSIjMkQ1MjdDIiBwLWlkPSI0NDI0Ij48L3BhdGg+PC9zdmc+)}")),document.head.appendChild(M)}}catch(T){console.error("vite-plugin-css-injected-by-js",T)}})();
|
|
2
|
+
import _ from "@codernote/tree-editor";
|
|
3
|
+
import v from "vue-popperjs";
|
|
4
|
+
import { oss as b } from "@codernote/utils";
|
|
5
|
+
function m(e, t, i, a, r, l, u, c) {
|
|
6
|
+
var s = typeof e == "function" ? e.options : e;
|
|
7
|
+
t && (s.render = t, s.staticRenderFns = i, s._compiled = !0), a && (s.functional = !0), l && (s._scopeId = "data-v-" + l);
|
|
8
|
+
var n;
|
|
9
|
+
if (u ? (n = function(o) {
|
|
10
|
+
o = o || this.$vnode && this.$vnode.ssrContext || this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext, !o && typeof __VUE_SSR_CONTEXT__ < "u" && (o = __VUE_SSR_CONTEXT__), r && r.call(this, o), o && o._registeredComponents && o._registeredComponents.add(u);
|
|
11
|
+
}, s._ssrRegister = n) : r && (n = c ? function() {
|
|
12
|
+
r.call(
|
|
13
|
+
this,
|
|
14
|
+
(s.functional ? this.parent : this).$root.$options.shadowRoot
|
|
15
|
+
);
|
|
16
|
+
} : r), n)
|
|
17
|
+
if (s.functional) {
|
|
18
|
+
s._injectStyles = n;
|
|
19
|
+
var p = s.render;
|
|
20
|
+
s.render = function(g, f) {
|
|
21
|
+
return n.call(f), p(g, f);
|
|
22
|
+
};
|
|
23
|
+
} else {
|
|
24
|
+
var h = s.beforeCreate;
|
|
25
|
+
s.beforeCreate = h ? [].concat(h, n) : [n];
|
|
26
|
+
}
|
|
27
|
+
return {
|
|
28
|
+
exports: e,
|
|
29
|
+
options: s
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
let d = null;
|
|
33
|
+
const C = {
|
|
34
|
+
name: "recordTree",
|
|
35
|
+
components: {
|
|
36
|
+
Popper: v
|
|
37
|
+
},
|
|
38
|
+
props: {
|
|
39
|
+
editNote: {
|
|
40
|
+
type: Object,
|
|
41
|
+
default: function() {
|
|
42
|
+
return { title: "" };
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
// 图标相关配置
|
|
46
|
+
tagConfig: {
|
|
47
|
+
type: Object,
|
|
48
|
+
default: () => ({})
|
|
49
|
+
},
|
|
50
|
+
// 是否移动端
|
|
51
|
+
isMobile: {
|
|
52
|
+
type: Boolean,
|
|
53
|
+
default: !1
|
|
54
|
+
},
|
|
55
|
+
// 是否显示完成按钮
|
|
56
|
+
showComplete: {
|
|
57
|
+
type: Boolean,
|
|
58
|
+
default: !1
|
|
59
|
+
},
|
|
60
|
+
// 是否区分双击enter
|
|
61
|
+
isDbEnter: {
|
|
62
|
+
type: Boolean,
|
|
63
|
+
default: !1
|
|
64
|
+
}
|
|
65
|
+
},
|
|
66
|
+
data() {
|
|
67
|
+
return {
|
|
68
|
+
uploadLoading: !1,
|
|
69
|
+
curEditNote: {},
|
|
70
|
+
curNodes: [],
|
|
71
|
+
curTag: {},
|
|
72
|
+
// 传入图标有关的所有参数集合,外界根据需要传入
|
|
73
|
+
tagDefaultConfig: {
|
|
74
|
+
show: !0,
|
|
75
|
+
// tag总开关,false时取消tag所有功能
|
|
76
|
+
tags: [],
|
|
77
|
+
// 所有注册的图标
|
|
78
|
+
tagSize: 18,
|
|
79
|
+
// 图标大小
|
|
80
|
+
popW: "184px",
|
|
81
|
+
// 显示所有图标容器的宽度
|
|
82
|
+
popH: "auto",
|
|
83
|
+
// 显示所有图标容器的高度
|
|
84
|
+
tagL: "0px",
|
|
85
|
+
// 图标定位left值
|
|
86
|
+
tagT: "0px"
|
|
87
|
+
// 图标定位top值
|
|
88
|
+
},
|
|
89
|
+
tagObj: {},
|
|
90
|
+
curData: {},
|
|
91
|
+
nextDom: null,
|
|
92
|
+
// ->方向键寻找的下一个元素
|
|
93
|
+
touchTimer: null,
|
|
94
|
+
isTouching: !1,
|
|
95
|
+
showTag: !0,
|
|
96
|
+
delayData: {},
|
|
97
|
+
treeEditor: null
|
|
98
|
+
};
|
|
99
|
+
},
|
|
100
|
+
async created() {
|
|
101
|
+
this.curEditNote = JSON.parse(JSON.stringify(this.editNote)), this.curNodes = this.formatContent(this.curEditNote.content), this.tagObj = JSON.parse(
|
|
102
|
+
JSON.stringify({
|
|
103
|
+
...this.tagDefaultConfig,
|
|
104
|
+
...this.tagConfig
|
|
105
|
+
})
|
|
106
|
+
), this.findTagConfig(this.curEditNote.tag_id), this.curData = JSON.parse(JSON.stringify(this.editNote));
|
|
107
|
+
},
|
|
108
|
+
watch: {
|
|
109
|
+
// 1.新增弹框tags获取(Record项目需要)
|
|
110
|
+
tagConfig: {
|
|
111
|
+
handler(e) {
|
|
112
|
+
e && (this.showTag = !1, this.tagObj.tags = e.tags, this.$nextTick(() => {
|
|
113
|
+
this.showTag = !0;
|
|
114
|
+
}));
|
|
115
|
+
},
|
|
116
|
+
deep: !0
|
|
117
|
+
}
|
|
118
|
+
},
|
|
119
|
+
mounted() {
|
|
120
|
+
let e = this;
|
|
121
|
+
this.treeEditor = new _("root_tree"), this.$nextTick(() => {
|
|
122
|
+
function t() {
|
|
123
|
+
e.treeChange(e.delayData);
|
|
124
|
+
}
|
|
125
|
+
this.treeEditor.on("fileUpload", (i, a) => {
|
|
126
|
+
this.uploadLoading = !0, b.uploadFile(i, (r, l) => {
|
|
127
|
+
if (this.uploadLoading = !1, l && a) {
|
|
128
|
+
const u = l.filter((c) => c.code === 0).map((c) => c.data);
|
|
129
|
+
a(u);
|
|
130
|
+
}
|
|
131
|
+
});
|
|
132
|
+
}), this.treeEditor.on("dataChanged", (i, a = !1) => {
|
|
133
|
+
Object.assign(e.curData, { line: 167, send: a }), e.delayData = {
|
|
134
|
+
...e.curData,
|
|
135
|
+
content: JSON.stringify(i)
|
|
136
|
+
}, t();
|
|
137
|
+
}), this.treeEditor.loadTree(this.curNodes);
|
|
138
|
+
});
|
|
139
|
+
},
|
|
140
|
+
methods: {
|
|
141
|
+
treeChange(e) {
|
|
142
|
+
let t = !1;
|
|
143
|
+
this.curData.content != e.content && (t = !0, this.$set(this.curData, "content", e.content)), this.curData.title != e.title && (t = !0, this.$set(this.curData, "title", e.title));
|
|
144
|
+
let i = {
|
|
145
|
+
type: "tree",
|
|
146
|
+
data: e
|
|
147
|
+
};
|
|
148
|
+
(t || e.send) && this.$emit("treeChange", i);
|
|
149
|
+
},
|
|
150
|
+
refreshTree(e) {
|
|
151
|
+
this.curNodes = this.formatContent(e || '[{"text":""}]'), this.treeEditor.loadTree(this.curNodes, 1);
|
|
152
|
+
},
|
|
153
|
+
hideHoverNote() {
|
|
154
|
+
this.$emit("hideHoverNote");
|
|
155
|
+
},
|
|
156
|
+
// 根据svg的icon名找到svg实体
|
|
157
|
+
setSvgSrc(e) {
|
|
158
|
+
return "";
|
|
159
|
+
},
|
|
160
|
+
// 选择tag图标
|
|
161
|
+
tagSelect(e) {
|
|
162
|
+
this.curTag = e, this.findTagConfig(e.created_at), Object.assign(this.curData, {
|
|
163
|
+
line: 293,
|
|
164
|
+
send: !0
|
|
165
|
+
});
|
|
166
|
+
let t = {
|
|
167
|
+
type: "tag",
|
|
168
|
+
data: this.curData
|
|
169
|
+
};
|
|
170
|
+
this.$emit("treeChange", t);
|
|
171
|
+
},
|
|
172
|
+
findTagConfig(e) {
|
|
173
|
+
if (!this.tagObj.tags)
|
|
174
|
+
return;
|
|
175
|
+
let t = this.tagObj.tags.filter((i) => i.created_at === e);
|
|
176
|
+
t.length > 0 && (this.curTag = t[0], this.curData.tag_id = t[0].created_at);
|
|
177
|
+
},
|
|
178
|
+
titleClick(e) {
|
|
179
|
+
e.stopPropagation();
|
|
180
|
+
},
|
|
181
|
+
// 标题失去焦点
|
|
182
|
+
titleBlur() {
|
|
183
|
+
let e = document.querySelector("#tree_title").innerText;
|
|
184
|
+
if (this.curData.title !== e) {
|
|
185
|
+
this.curData.title = e, this.$set(this.curData, "title", e), Object.assign(this.curData, {
|
|
186
|
+
line: 328,
|
|
187
|
+
send: !0
|
|
188
|
+
});
|
|
189
|
+
let t = {
|
|
190
|
+
type: "title",
|
|
191
|
+
data: this.curData
|
|
192
|
+
};
|
|
193
|
+
this.$emit("treeChange", t);
|
|
194
|
+
}
|
|
195
|
+
},
|
|
196
|
+
// 标题enter输入
|
|
197
|
+
handleEnter(e) {
|
|
198
|
+
e.preventDefault(), this.isDbEnter ? d ? (clearTimeout(d), d = null, this.titleBlur(), this.$emit("dbEnter")) : d = setTimeout(() => {
|
|
199
|
+
d = null, this.keyEnter();
|
|
200
|
+
}, 180) : this.keyEnter();
|
|
201
|
+
},
|
|
202
|
+
handlePaste(e) {
|
|
203
|
+
if (e.clipboardData) {
|
|
204
|
+
const t = e.clipboardData.items;
|
|
205
|
+
Array.from(t).some((a) => a.kind === "file") && (e.preventDefault(), this.treeEditor.addFiles(
|
|
206
|
+
{
|
|
207
|
+
target: this.keyEnter()
|
|
208
|
+
},
|
|
209
|
+
e.clipboardData.files,
|
|
210
|
+
-1
|
|
211
|
+
));
|
|
212
|
+
}
|
|
213
|
+
},
|
|
214
|
+
keyEnter() {
|
|
215
|
+
let e = document.querySelector("#outline_tree .node-text");
|
|
216
|
+
return e.focus(), document.querySelectorAll(".lzx-tree-focus").forEach((i) => {
|
|
217
|
+
i.classList.remove("lzx-tree-focus");
|
|
218
|
+
}), e.classList.add("lzx-tree-focus"), e;
|
|
219
|
+
},
|
|
220
|
+
// 移动端=====================
|
|
221
|
+
setToParent() {
|
|
222
|
+
let e = new KeyboardEvent("keydown", {
|
|
223
|
+
bubbles: !0,
|
|
224
|
+
cancelable: !0,
|
|
225
|
+
key: "Tab",
|
|
226
|
+
shiftKey: !0
|
|
227
|
+
});
|
|
228
|
+
window.getSelection().baseNode.parentNode.dispatchEvent(e);
|
|
229
|
+
},
|
|
230
|
+
setToChild() {
|
|
231
|
+
let e = new KeyboardEvent("keydown", {
|
|
232
|
+
bubbles: !0,
|
|
233
|
+
cancelable: !0,
|
|
234
|
+
key: "Tab",
|
|
235
|
+
shiftKey: !1
|
|
236
|
+
});
|
|
237
|
+
window.getSelection().baseNode.parentNode.dispatchEvent(e);
|
|
238
|
+
},
|
|
239
|
+
setToUp() {
|
|
240
|
+
let e = new KeyboardEvent("keydown", {
|
|
241
|
+
bubbles: !0,
|
|
242
|
+
cancelable: !0,
|
|
243
|
+
key: "ArrowUp",
|
|
244
|
+
shiftKey: !1
|
|
245
|
+
});
|
|
246
|
+
window.getSelection().baseNode.parentNode.dispatchEvent(e);
|
|
247
|
+
},
|
|
248
|
+
setToDown() {
|
|
249
|
+
let e = new KeyboardEvent("keydown", {
|
|
250
|
+
bubbles: !0,
|
|
251
|
+
cancelable: !0,
|
|
252
|
+
key: "ArrowDown",
|
|
253
|
+
shiftKey: !1
|
|
254
|
+
});
|
|
255
|
+
window.getSelection().baseNode.parentNode.dispatchEvent(e);
|
|
256
|
+
},
|
|
257
|
+
complete() {
|
|
258
|
+
this.$emit("complete", this.curEditNote);
|
|
259
|
+
},
|
|
260
|
+
formatContent(e) {
|
|
261
|
+
try {
|
|
262
|
+
return JSON.parse(e);
|
|
263
|
+
} catch {
|
|
264
|
+
return [
|
|
265
|
+
{
|
|
266
|
+
text: e
|
|
267
|
+
}
|
|
268
|
+
];
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
};
|
|
273
|
+
var y = function() {
|
|
274
|
+
var t = this, i = t._self._c;
|
|
275
|
+
return i("div", { staticClass: "tree-editor", on: { mouseenter: t.hideHoverNote } }, [t._t("default"), i("div", { staticClass: "tree-title-div" }, [t.tagObj.show && t.showTag ? i("popper", { staticClass: "hover-popper", attrs: { trigger: "hover", options: {
|
|
276
|
+
placement: "bottom",
|
|
277
|
+
modifiers: { offset: { offset: "0px, 0px" } }
|
|
278
|
+
} } }, [i("div", { staticClass: "popper-content", style: { width: t.tagObj.popW, height: t.tagObj.popH } }, t._l(t.tagObj.tags, function(a, r) {
|
|
279
|
+
return i("span", { key: r, staticClass: "popper-content-item", on: { click: function(l) {
|
|
280
|
+
return t.tagSelect(a);
|
|
281
|
+
} } }, [t.setSvgSrc(a) ? i("inline-svg", { staticClass: "inline-svg", style: { backgroundColor: a.color }, attrs: { src: t.setSvgSrc(a), width: t.tagObj.tagSize, height: t.tagObj.tagSize } }) : i("span", { staticClass: "empty-icon", style: {
|
|
282
|
+
width: t.tagObj.tagSize + "px",
|
|
283
|
+
height: t.tagObj.tagSize + "px",
|
|
284
|
+
backgroundColor: a.color
|
|
285
|
+
} })], 1);
|
|
286
|
+
}), 0), i("span", { staticClass: "popper-reference", style: {
|
|
287
|
+
backgroundColor: t.curTag.color,
|
|
288
|
+
top: t.tagObj.tagT,
|
|
289
|
+
left: t.tagObj.tagL
|
|
290
|
+
}, attrs: { slot: "reference" }, slot: "reference" }, [t.setSvgSrc(t.curTag) ? i("inline-svg", { staticClass: "inline-svg", attrs: { src: t.setSvgSrc(t.curTag), width: t.tagObj.tagSize, height: t.tagObj.tagSize } }) : i("span", { staticClass: "inline-svg", style: {
|
|
291
|
+
width: t.tagObj.tagSize + "px",
|
|
292
|
+
height: t.tagObj.tagSize + "px",
|
|
293
|
+
backgroundColor: t.curTag.color
|
|
294
|
+
} })], 1)]) : t._e(), i("div", { staticClass: "tree-title", attrs: { contenteditable: "true", id: "tree_title" }, domProps: { innerHTML: t._s(t.editNote.title) }, on: { blur: t.titleBlur, click: t.titleClick, keydown: function(a) {
|
|
295
|
+
return !a.type.indexOf("key") && t._k(a.keyCode, "enter", 13, a.key, "Enter") ? null : (a.preventDefault(), t.handleEnter.apply(null, arguments));
|
|
296
|
+
}, paste: t.handlePaste } })], 1), t._m(0), t.isMobile ? i("div", { staticClass: "mobile-options" }, [i("div", { staticClass: "option-left" }, [i("div", { staticClass: "option-item", on: { click: t.setToParent } }, [t._v("向前")]), i("div", { staticClass: "option-item", on: { click: t.setToChild } }, [t._v("向后")]), i("div", { staticClass: "option-item", on: { click: t.setToUp } }, [t._v("向上")]), i("div", { staticClass: "option-item", on: { click: t.setToDown } }, [t._v("向下")])]), i("div", { staticClass: "option-right" }, [t.showComplete ? i("div", { staticClass: "option-item", on: { click: t.complete } }, [t._v(" 完成 ")]) : t._e()])]) : t._e(), t.uploadLoading ? i("div", { staticClass: "tree-upload-loading" }, [t._m(1)]) : t._e()], 2);
|
|
297
|
+
}, T = [function() {
|
|
298
|
+
var e = this, t = e._self._c;
|
|
299
|
+
return t("div", { attrs: { id: "outline_tree" } }, [t("div", { attrs: { id: "root_tree" } })]);
|
|
300
|
+
}, function() {
|
|
301
|
+
var e = this, t = e._self._c;
|
|
302
|
+
return t("p", [t("span", { staticClass: "icon icon-loading animate-spin" }), t("b", [e._v("正在上传资源,请稍后...")])]);
|
|
303
|
+
}], S = /* @__PURE__ */ m(
|
|
304
|
+
C,
|
|
305
|
+
y,
|
|
306
|
+
T,
|
|
307
|
+
!1,
|
|
308
|
+
null,
|
|
309
|
+
null,
|
|
310
|
+
null,
|
|
311
|
+
null
|
|
312
|
+
);
|
|
313
|
+
const k = S.exports;
|
|
314
|
+
export {
|
|
315
|
+
k as RecordTree
|
|
316
|
+
};
|
package/package.json
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@codernote/record-tree",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"dependencies": {
|
|
7
|
+
"vue-popperjs": "^2.3.0",
|
|
8
|
+
"@codernote/utils": "1.0.1",
|
|
9
|
+
"@codernote/tree-editor": "1.0.1"
|
|
10
|
+
},
|
|
11
|
+
"devDependencies": {
|
|
12
|
+
"vue": "^2.7.14",
|
|
13
|
+
"@vitejs/plugin-vue2": "^2.3.1",
|
|
14
|
+
"vite-plugin-css-injected-by-js": "^3.4.0",
|
|
15
|
+
"autoprefixer": "^10.4.13",
|
|
16
|
+
"postcss": "^8.4.20",
|
|
17
|
+
"typescript": "^4.9.3",
|
|
18
|
+
"vite": "^4.0.0",
|
|
19
|
+
"vite-svg-loader": "^4.0.0"
|
|
20
|
+
},
|
|
21
|
+
"files": [
|
|
22
|
+
"dist"
|
|
23
|
+
],
|
|
24
|
+
"publishConfig": {
|
|
25
|
+
"registry": "https://registry.npmjs.org/"
|
|
26
|
+
},
|
|
27
|
+
"scripts": {
|
|
28
|
+
"dev": "vite",
|
|
29
|
+
"build": "vite build",
|
|
30
|
+
"watch": "vite build --watch"
|
|
31
|
+
}
|
|
32
|
+
}
|