@hufe921/canvas-editor 0.9.40 → 0.9.42

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.
@@ -1,4 +1,4 @@
1
- (()=>{(function(){"use strict";try{if(typeof document!="undefined"){var e=document.createElement("style");e.appendChild(document.createTextNode('.ce-select-control-popup{max-width:160px;min-width:69px;max-height:225px;position:absolute;z-index:1;border:1px solid #e4e7ed;border-radius:4px;background-color:#fff;box-shadow:0 2px 12px #0000001a;box-sizing:border-box;margin:5px 0;overflow-y:auto}.ce-select-control-popup ul{list-style:none;padding:3px 0;margin:0;box-sizing:border-box}.ce-select-control-popup ul li{font-size:13px;padding:0 20px;position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#666;height:36px;line-height:36px;box-sizing:border-box;cursor:pointer}.ce-select-control-popup ul li:hover{background-color:#eef2fd}.ce-select-control-popup ul li.active{color:var(--COLOR-HOVER, #5175f4);font-weight:700}.ce-date-container{display:none;width:300px;overflow:hidden;left:0;right:0;position:absolute;z-index:1;color:#606266;background:#ffffff;border-radius:4px;padding:10px;user-select:none;border:1px solid #e4e7ed;box-shadow:0 2px 12px #0000001a}.ce-date-container.active{display:block}.ce-date-wrap{display:none}.ce-date-wrap.active{display:block}.ce-date-title{display:flex;justify-content:center;align-items:center;text-align:center;color:#606266;font-size:16px}.ce-date-title>span{display:inline-block}.ce-date-title>span:not(.ce-date-title__now){font-family:cursive;cursor:pointer}.ce-date-title>span:not(.ce-date-title__now):hover{color:#5175f4}.ce-date-title .ce-date-title__pre-year,.ce-date-title .ce-date-title__pre-month{width:15%}.ce-date-title .ce-date-title__now{width:40%}.ce-date-title .ce-date-title__next-year,.ce-date-title .ce-date-title__next-month{width:15%}.ce-date-week{width:100%;display:flex;justify-content:center;margin-top:15px;padding-bottom:5px;border-bottom:1px solid #e4e7ed}.ce-date-week>span{list-style:none;width:14.28571%;text-align:center;color:#606266;font-size:14px}.ce-date-day{width:100%;display:flex;flex-wrap:wrap;align-items:center;margin-top:5px}.ce-date-day>div{width:14.28571%;height:40px;text-align:center;color:#606266;font-size:14px;cursor:pointer;line-height:40px;border-radius:4px}.ce-date-day>div:hover{color:#5175f4;opacity:.8}.ce-date-day>div.active{color:#5175f4;font-weight:700}.ce-date-day>div.disable{color:#c0c4cc}.ce-date-day>div.select{color:#fff;background-color:#5175f4}.ce-time-wrap{display:none;padding:10px;height:286px}.ce-time-wrap ::-webkit-scrollbar{width:0}.ce-time-wrap.active{display:flex}.ce-time-wrap li{list-style:none}.ce-time-wrap>li{width:33.3%;height:100%;text-align:center}.ce-time-wrap>li>span{transform:translateY(-5px);display:inline-block}.ce-time-wrap>li>ol{height:calc(100% - 20px);overflow-y:auto;border:1px solid #e2e2e2;position:relative}.ce-time-wrap>li:first-child>ol{border-right:0}.ce-time-wrap>li:last-child>ol{border-left:0}.ce-time-wrap>li>ol>li{line-height:30px;cursor:pointer;transition:all .3s}.ce-time-wrap>li>ol>li:hover{background-color:#eaeaea}.ce-time-wrap>li>ol>li.active{color:#fff;background:#5175F4}.ce-date-menu{width:100%;height:28px;display:flex;justify-content:flex-end;align-items:center;padding-top:10px;position:relative;border-top:1px solid #e4e7ed}.ce-date-menu button{display:inline-block;line-height:1;white-space:nowrap;cursor:pointer;background:#fff;border:1px solid #dcdfe6;color:#606266;appearance:none;text-align:center;box-sizing:border-box;outline:none;transition:.1s;font-weight:500;user-select:none;padding:7px 15px;font-size:12px;border-radius:3px;margin:0 0 0 10px}.ce-date-menu button:hover{color:#5175f4;border-color:#5175f4}.ce-date-menu button.ce-date-menu__time{border:1px solid transparent;position:absolute;left:0;margin-left:0}.ce-date-menu button.ce-date-menu__time:hover{color:#5175f4}.ce-block-item{position:absolute;z-index:0;overflow:hidden;border-radius:8px;background-color:#fff;border:1px solid rgb(235 236 240)}.ce-table-tool__row{position:absolute;width:12px;border-radius:6.5px;overflow:hidden;background-color:#e2e6ed}.ce-table-tool__row .ce-table-tool__row__item{width:100%;position:relative}.ce-table-tool__row .ce-table-tool__row__item:after{content:"";position:absolute;bottom:0;left:2px;width:8px;height:1px;background-color:#c0c6cf}.ce-table-tool__row .ce-table-tool__row__item:last-child:after{display:none}.ce-table-tool__col{position:absolute;height:12px;border-radius:6.5px;overflow:hidden;background-color:#e2e6ed;display:flex}.ce-table-tool__col .ce-table-tool__col__item{height:100%;position:relative}.ce-table-tool__col .ce-table-tool__col__item:after{content:"";position:absolute;top:2px;left:-1px;width:1px;height:8px;z-index:1;background-color:#c0c6cf}.ce-table-tool__col .ce-table-tool__col__item:first-child:after{display:none}.ce-table-tool__row .ce-table-tool__row__item.active,.ce-table-tool__col .ce-table-tool__col__item.active{background-color:#c4d7fa}.ce-table-tool__col .ce-table-tool__anchor{right:-5px;width:10px;height:12px;z-index:9;position:absolute;cursor:col-resize}.ce-table-tool__row .ce-table-tool__anchor{bottom:-5px;left:0;width:12px;height:10px;z-index:9;position:absolute;cursor:row-resize}.ce-table-anchor__line{z-index:9;position:absolute;border:1px dotted #000000}.ce-table-tool__border{position:absolute;z-index:1;background:transparent;pointer-events:none}.ce-table-tool__border__row{position:absolute;cursor:row-resize;pointer-events:auto}.ce-table-tool__border__col{position:absolute;cursor:col-resize;pointer-events:auto}.ce-resizer-selection{position:absolute;border:1px solid}.ce-resizer-selection>div{position:absolute;z-index:9;width:10px;height:10px;box-shadow:0 1px 4px #0000004d;border-radius:5px;border:2px solid #ffffff;box-sizing:border-box}.ce-resizer-selection .handle-0{cursor:nw-resize}.ce-resizer-selection .handle-1{cursor:n-resize}.ce-resizer-selection .handle-2{cursor:ne-resize}.ce-resizer-selection .handle-3{cursor:e-resize}.ce-resizer-selection .handle-4{cursor:se-resize}.ce-resizer-selection .handle-5{cursor:s-resize}.ce-resizer-selection .handle-6{cursor:sw-resize}.ce-resizer-selection .handle-7{cursor:w-resize}.ce-resizer-image{position:absolute;opacity:.5}.ce-image-previewer{position:fixed;left:0;top:0;z-index:1000;width:100%;height:100%;overflow:hidden;background:#f2f4f7;display:flex;align-items:center;justify-content:center;animation:previewerAnimation .3s}@keyframes previewerAnimation{0%{opacity:.1}to{opacity:1}}.ce-image-previewer .image-close{width:24px;height:24px;display:inline-block;position:absolute;right:50px;top:30px;z-index:99;cursor:pointer;background:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTIzLjk3IDdsMS40MTUgMS40MTQtNy43NzkgNy43NzggNy43NzkgNy43NzktMS40MTQgMS40MTQtNy43NzktNy43NzktNy43NzggNy43NzlMNyAyMy45N2w3Ljc3OC03Ljc3OUw3IDguNDE0IDguNDE0IDdsNy43NzggNy43NzhMMjMuOTcxIDd6IiBmaWxsPSIjM0Q0NzU3IiBmaWxsLXJ1bGU9ImV2ZW5vZGQiLz48L3N2Zz4=) no-repeat;background-size:100% 100%;transition:all .3s;border-radius:50%}.ce-image-previewer .image-close:hover{background-color:#e2e6ed}.ce-image-previewer .ce-image-container{position:relative}.ce-image-previewer .ce-image-container img{cursor:move;position:relative}.ce-image-previewer .ce-image-menu{height:50px;position:absolute;bottom:50px;z-index:99;display:flex;align-items:center;justify-content:center}.ce-image-previewer .ce-image-menu i{width:32px;height:32px;margin:0 8px;cursor:pointer;display:inline-block;background-repeat:no-repeat;background-size:100% 100%;transition:all .3s;border-radius:50%}.ce-image-previewer .ce-image-menu i:hover{background-color:#e2e6ed}.ce-image-previewer .ce-image-menu i.zoom-in{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTE0IDE0di00aDJ2NGg0djJoLTR2NGgtMnYtNGgtNHYtMmg0em04Ljc0OSAxMC4xNjNBMTEuOTUyIDExLjk1MiAwIDAxMTUgMjdDOC4zNzMgMjcgMyAyMS42MjcgMyAxNVM4LjM3MyAzIDE1IDNzMTIgNS4zNzMgMTIgMTJjMCAyLjk1NC0xLjA2NyA1LjY1OC0yLjgzNyA3Ljc0OWw0LjkwOCA0LjkwOC0xLjQxNCAxLjQxNC00LjkwOC00LjkwOHpNMTUgMjVjNS41MjMgMCAxMC00LjQ3NyAxMC0xMFMyMC41MjMgNSAxNSA1IDUgOS40NzcgNSAxNXM0LjQ3NyAxMCAxMCAxMHoiIGZpbGw9IiMzRDQ3NTciLz48L3N2Zz4=)}.ce-image-previewer .ce-image-menu i.zoom-out{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTIyLjc0OSAyNC4xNjNBMTEuOTUyIDExLjk1MiAwIDAxMTUgMjdDOC4zNzMgMjcgMyAyMS42MjcgMyAxNVM4LjM3MyAzIDE1IDNzMTIgNS4zNzMgMTIgMTJjMCAyLjk1NC0xLjA2NyA1LjY1OC0yLjgzNyA3Ljc0OWw0LjkwOCA0LjkwOC0xLjQxNCAxLjQxNC00LjkwOC00LjkwOHpNMTUgMjVjNS41MjMgMCAxMC00LjQ3NyAxMC0xMFMyMC41MjMgNSAxNSA1IDUgOS40NzcgNSAxNXM0LjQ3NyAxMCAxMCAxMHptLTUtMTFoMTB2MkgxMHYtMnoiIGZpbGw9IiMzRDQ3NTciLz48L3N2Zz4=)}.ce-image-previewer .ce-image-menu i.rotate{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0iIzNENDc1NyIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJNMTYgNGM2LjYyNyAwIDEyIDUuMzczIDEyIDEyYTExLjk3IDExLjk3IDAgMDEtNCA4Ljk0NFYyM2gtLjg2QTkuOTY4IDkuOTY4IDAgMDAyNiAxNmMwLTUuNTIzLTQuNDc3LTEwLTEwLTEwUzYgMTAuNDc3IDYgMTZjMCA1LjE4NSAzLjk0NyA5LjQ0OSA5IDkuOTV2Mi4wMDlDOC44NCAyNy40NTEgNCAyMi4yOTEgNCAxNiA0IDkuMzczIDkuMzczIDQgMTYgNHoiIGZpbGwtcnVsZT0ibm9uemVybyIvPjxwYXRoIGQ9Ik0xOS44NzkgMjcuMzI4bDEuNzY3LTYuNzE3IDQuOTUgNC45NXoiLz48L2c+PC9zdmc+)}.ce-image-previewer .ce-image-menu i.original-size{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTQgNGgyNHYyNEg0VjR6bTIgMnYyMGgyMFY2SDZ6bTQgNWgydjEwaC0yVjExem01IDJoMnYyaC0ydi0yem0wIDRoMnYyaC0ydi0yem01LTZoMnYxMGgtMlYxMXoiIGZpbGw9IiMzRDQ3NTciLz48L3N2Zz4=)}.ce-image-previewer .ce-image-menu i.image-download{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTQuNSAxNXYzLjVoMTVWMTVIMjF2NUgzdi01aDEuNXptOC4yMzItMTEuMjI2djkuMTk2bDQuMDUtNC4wNSAxLjA2IDEuMDYtNS44MzQgNS44MzQtNS44MzMtNS44MzMgMS4wNi0xLjA2IDMuOTk4IDMuOTk2VjMuNzc0aDEuNXoiIGZpbGw9IiMzRDQ3NTciLz48L3N2Zz4=)}.ce-contextmenu-container{z-index:9;position:fixed;display:none;padding:4px;overflow-x:hidden;overflow-y:auto;background:#fff;box-shadow:0 2px 12px #38383833;border:1px solid #e2e6ed;border-radius:2px}.ce-contextmenu-content{display:flex;flex-direction:column}.ce-contextmenu-content .ce-contextmenu-sub-item:after{position:absolute;content:"";width:16px;height:16px;right:12px;background:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJNMCAwaDE2djE2SDB6Ii8+PGcgZmlsbD0iIzc2N0M4NSI+PHBhdGggZD0iTTcgMTIuMjQzbC0uNzA3LS43MDcgNC4yNDMtNC4yNDMuNzA3LjcwN3oiLz48cGF0aCBkPSJNNi4yOTMgNC40NjRMNyAzLjc1NyAxMS4yNDMgOGwtLjcwNy43MDd6Ii8+PC9nPjwvZz48L3N2Zz4=)}.ce-contextmenu-content .ce-contextmenu-item{min-width:140px;padding:0 32px 0 16px;height:30px;display:flex;align-items:center;white-space:nowrap;box-sizing:border-box;cursor:pointer}.ce-contextmenu-content .ce-contextmenu-item.hover{background:rgba(25,55,88,.04)}.ce-contextmenu-content .ce-contextmenu-item span{max-width:300px;font-size:12px;color:#3d4757;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.ce-contextmenu-content .ce-contextmenu-item span.ce-shortcut{color:#767c85;height:30px;flex:1;text-align:right;line-height:30px;margin-left:20px}.ce-contextmenu-content .ce-contextmenu-item i{width:16px;height:16px;vertical-align:middle;display:inline-block;background-repeat:no-repeat;background-size:100% 100%;flex-shrink:0;margin-right:8px}.ce-contextmenu-divider{background-color:#e2e6ed;margin:4px 16px;height:1px}.ce-contextmenu-print{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBmaWxsPSIjM0Q0NzU3IiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxwYXRoIGQ9Ik0xMiA0aC0xVjJINXYySDRWMmExIDEgMCAwMTEtMWg2YTEgMSAwIDAxMSAxdjJ6bTAgNXY0YTEgMSAwIDAxLTEgMUg1YTEgMSAwIDAxLTEtMVY5aDF2NGg2VjloMXoiLz48cGF0aCBkPSJNMTIgMTJ2LTFoMlY1SDJ2NmgydjFIMmExIDEgMCAwMS0xLTFWNWExIDEgMCAwMTEtMWgxMmExIDEgMCAwMTEgMXY2YTEgMSAwIDAxLTEgMWgtMnoiLz48cGF0aCBkPSJNMyA4aDEwdjFIM3ptOC0yaDJ2MWgtMnoiLz48L2c+PC9zdmc+)}.ce-contextmenu-image{background-image:url(data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSLlm77lsYJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4PSIwIiB5PSIwIiB2aWV3Qm94PSIwIDAgMTYgMTYiIHhtbDpzcGFjZT0icHJlc2VydmUiPjxzdHlsZT4uc3Qwe2ZpbGw6IzNkNDc1N308L3N0eWxlPjxnIGlkPSJfeDMwXzAt5YWs5YWxX3gyRl8wMuW3peWFt+agj194MkZf5o+S5YWl5Zu+54mHLTE2cHgtIj48ZyBpZD0iR3JvdXAtMTkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEgMSkiPjxwYXRoIGlkPSJDb21iaW5lZC1TaGFwZSIgY2xhc3M9InN0MCIgZD0iTTEgMGgxMmMuNiAwIDEgLjQgMSAxdjExYzAgLjYtLjQgMS0xIDFIMWMtLjYgMC0xLS40LTEtMVYxYzAtLjYuNC0xIDEtMXptMCAxdjExaDEyVjFIMXoiLz48Y2lyY2xlIGlkPSLmpK3lnIblvaIiIGNsYXNzPSJzdDAiIGN4PSIxMCIgY3k9IjQiIHI9IjEiLz48cGF0aCBpZD0iUGF0aCIgY2xhc3M9InN0MCIgZD0iTTguNSAxMS4ybC00LTQuMUwxIDEwLjdWOS4yYzEuNy0xLjYgMi43LTIuNSAzLTIuOC40LS41LjctLjQgMSAwTDguNSAxMCAxMSA3LjNjLjQtLjUuNi0uNSAxLS4xbDIgMi44djEuNWwtMi41LTMuNC0zIDMuMXoiLz48L2c+PC9nPjwvc3ZnPg==)}.ce-contextmenu-image-change{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyIDQpIiBmaWxsPSIjM0Q0NzU3Ij48Y2lyY2xlIGZpbGwtcnVsZT0ibm9uemVybyIgY3g9IjMiIGN5PSIxIiByPSIxIi8+PHBhdGggZD0iTTcuNDczIDguMjIzTDMuNDcgNC4xMDcgMCA3LjY2N3YtMS41QzEuNzE1IDQuNiAyLjcwNyAzLjY2NCAyLjk3NSAzLjM1OGMuNDAyLS40NTcuNjUxLS4zOSAxLjA0MiAwTDcuNDczIDcgOS45NiA0LjM0OWMuNDE0LS40NjIuNjItLjQ2MiAxLjAxMS0uMDcxTDEzIDcuMDZ2MS41bC0yLjUxLTMuNDEtMy4wMTcgMy4wNzJ6Ii8+PC9nPjxwYXRoIGQ9Ik02IDEuNUgxLjV2MTJoMTN2LTRWMTNhLjUuNSAwIDAxLS41LjVIMmEuNS41IDAgMDEtLjUtLjVWMmEuNS41IDAgMDEuNS0uNWg0em04LjUgOFY2bC0uNS41aDFsLS41LS41djMuNXpNNiAxLjVoNEw5LjUgMXYxbC41LS41SDZ6IiBzdHJva2U9IiMzRDQ3NTciLz48cGF0aCBkPSJNMTMuMDg1IDEuMzE2bC0zLjgxNCA0YTEgMSAwIDAwMS40NTggMS4zNjhsMy44MTUtNGExIDEgMCAxMC0xLjQ1OS0xLjM2OHoiIGZpbGw9IiMzRDQ3NTciIGZpbGwtcnVsZT0ibm9uemVybyIvPjwvZz48L3N2Zz4=)}.ce-contextmenu-insert-row-col{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBzdHJva2U9IiMzRDQ3NTciIGQ9Ik04LjUgNS41aDZ2NGgtNnoiLz48cGF0aCBmaWxsPSIjM0Q0NzU3IiBkPSJNNCA3djFoMlY3em0tMyAuNUw0IDV2NXpNMSAxaDEydjFIMXptMCAxMmgxMnYxSDF6Ii8+PC9nPjwvc3ZnPg==)}.ce-contextmenu-insert-top-row{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBmaWxsPSIjM0Q0NzU3IiBkPSJNOCA1SDd2M2gxem0tLjUtM0wxMCA1SDV6Ii8+PHJlY3Qgc3Ryb2tlPSIjM0Q0NzU3IiB4PSIxLjUiIHk9IjEwLjUiIHdpZHRoPSIxMiIgaGVpZ2h0PSIzIiByeD0iMSIvPjwvZz48L3N2Zz4=)}.ce-contextmenu-insert-bottom-row{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBmaWxsPSIjM0Q0NzU3IiBkPSJNNyAxMWgxVjhIN3ptLjUgM0w1IDExaDV6Ii8+PHJlY3Qgc3Ryb2tlPSIjM0Q0NzU3IiB4PSIxLjUiIHk9IjIuNSIgd2lkdGg9IjEyIiBoZWlnaHQ9IjMiIHJ4PSIxIi8+PC9nPjwvc3ZnPg==)}.ce-contextmenu-insert-left-col{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBmaWxsPSIjM0Q0NzU3IiBkPSJNMTEgN3YxaDNWN3ptLTMgLjVMMTEgNXY1eiIvPjxyZWN0IHN0cm9rZT0iIzNENDc1NyIgdHJhbnNmb3JtPSJyb3RhdGUoOTAgNCA3LjUpIiB4PSItMiIgeT0iNiIgd2lkdGg9IjEyIiBoZWlnaHQ9IjMiIHJ4PSIxIi8+PC9nPjwvc3ZnPg==)}.ce-contextmenu-insert-right-col{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBmaWxsPSIjM0Q0NzU3IiBkPSJNNSA4VjdIMnYxem0zLS41TDUgMTBWNXoiLz48cmVjdCBzdHJva2U9IiMzRDQ3NTciIHRyYW5zZm9ybT0icm90YXRlKDkwIDEyIDcuNSkiIHg9IjYiIHk9IjYiIHdpZHRoPSIxMiIgaGVpZ2h0PSIzIiByeD0iMSIvPjwvZz48L3N2Zz4=)}.ce-contextmenu-delete-row-col{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBzdHJva2U9IiM5MjlBQTgiIGQ9Ik04LjUgNi41aDZ2MmgtNnoiLz48cGF0aCBmaWxsPSIjM0Q0NzU3IiBkPSJNMiAxMmgxMXYxSDJ6TTIgMmgxMXYxSDJ6bS42MyAzTDcgOS4zNWwtLjYzNS42NUwyIDUuNjN6Ii8+PHBhdGggZmlsbD0iIzNENDc1NyIgZD0iTTIgOS4zNjNMNi4zNTUgNSA3IDUuNzA3IDIuNjk1IDEweiIvPjwvZz48L3N2Zz4=)}.ce-contextmenu-delete-row{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBzdHJva2U9IiM5MjlBQTgiIGQ9Ik04LjUgNS41aDZ2NGgtNnoiLz48cGF0aCBmaWxsPSIjM0Q0NzU3IiBkPSJNMSAxM2gxMnYxSDF6TTEgMWgxMnYxSDF6bTAgNGgxdjFIMXptMSAxaDF2MUgyem0xIDFoMXYxSDN6bTEtMWgxdjFINHptMS0xaDF2MUg1ek00IDhoMXYxSDR6TTIgOGgxdjFIMnptMyAxaDF2MUg1ek0xIDloMXYxSDF6Ii8+PC9nPjwvc3ZnPg==)}.ce-contextmenu-delete-col{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBzdHJva2U9IiM5MjlBQTgiIGQ9Ik01LjUgNy41di02aDR2NnoiLz48cGF0aCBmaWxsPSIjM0Q0NzU3IiBkPSJNMTMgMTVWM2gxdjEyek0xIDE1VjNoMXYxMnptNCAwdi0xaDF2MXptMS0xdi0xaDF2MXptMS0xdi0xaDF2MXptLTEtMXYtMWgxdjF6bS0xLTF2LTFoMXYxem0zIDF2LTFoMXYxem0wIDJ2LTFoMXYxem0xLTN2LTFoMXYxem0wIDR2LTFoMXYxeiIvPjwvZz48L3N2Zz4=)}.ce-contextmenu-delete-table{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0iIzNENDc1NyIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJNMTQgMTNoLTF2LTNIMnYzSDF2LTNhMSAxIDAgMDExLTFoMTFhMSAxIDAgMDExIDF2M3oiIGZpbGwtcnVsZT0ibm9uemVybyIvPjxwYXRoIGQ9Ik01LjYyNSAyTDEwIDYuMzc1IDkuMzc1IDcgNSAyLjYyNXoiLz48cGF0aCBkPSJNNSA2LjM3NUw5LjM3NSAybC42MjUuNjI1TDUuNjI1IDd6Ii8+PC9nPjwvc3ZnPg==)}.ce-contextmenu-merge-cell{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0iIzNENDc1NyIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJNNiAxdjFIMnYxMWg0djFIMmExIDEgMCAwMS0xLTFWMmExIDEgMCAwMTEtMWg0em0zIDBoNGExIDEgMCAwMTEgMXYxMWExIDEgMCAwMS0xIDFIOXYtMWg0VjJIOVYxeiIvPjxwYXRoIGZpbGwtcnVsZT0ibm9uemVybyIgZD0iTTYgMWgxdjRINnptMiAwaDF2NEg4eiIvPjxwYXRoIGQ9Ik04IDcuNUwxMCA2djN6bS0xIDBMNSA2djN6Ii8+PHBhdGggZD0iTTkgN2gzdjFIOXpNMyA3aDN2MUgzeiIvPjxwYXRoIGZpbGwtcnVsZT0ibm9uemVybyIgZD0iTTggMTBoMXY0SDh6bS0yIDBoMXY0SDZ6Ii8+PC9nPjwvc3ZnPg==)}.ce-contextmenu-merge-cancel-cell{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0iIzNENDc1NyIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJNNiAxdjFIMnYxMWg0djFIMmExIDEgMCAwMS0xLTFWMmExIDEgMCAwMTEtMWg0em0zIDBoNGExIDEgMCAwMTEgMXYxMWExIDEgMCAwMS0xIDFIOXYtMWg0VjJIOVYxeiIvPjxwYXRoIGZpbGwtcnVsZT0ibm9uemVybyIgZD0iTTYgMWgxdjRINnptMiAwaDF2NEg4eiIvPjxwYXRoIGQ9Ik0zIDcuNUw1IDZ2M3ptOSAwTDEwIDZ2M3oiLz48cGF0aCBkPSJNNCA3aDN2MUg0em00IDBoM3YxSDh6Ii8+PHBhdGggZmlsbC1ydWxlPSJub256ZXJvIiBkPSJNOCAxMGgxdjRIOHptLTIgMGgxdjRINnoiLz48L2c+PC9zdmc+)}.ce-contextmenu-vertical-align{background-image:url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjE2IiB2aWV3Qm94PSIwIDAgMTYgMTYiIHdpZHRoPSIxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMiAxM2gxMnYxSDJ6bTAtM2g4djFIMnptMC0zaDEydjFIMnptMC02aDEydjFIMnptMCAzaDh2MUgyeiIgZmlsbD0iIzNkNDc1NyIgZmlsbC1ydWxlPSJldmVub2RkIi8+PC9zdmc+)}.ce-contextmenu-vertical-align-top{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTggOEg3djZoMXptLS41LTNMMTAgOEg1ek0yIDNoMTF2MUgyeiIgZmlsbD0iIzNENDc1NyIgZmlsbC1ydWxlPSJldmVub2RkIi8+PC9zdmc+)}.ce-contextmenu-vertical-align-middle{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNOCAxMkg3djNoMXptLS41LTNsMi41IDNINXpNNyAzaDFWMEg3em0uNSAzTDUgM2g1ek0yIDdoMTF2MUgyeiIgZmlsbD0iIzNENDc1NyIgZmlsbC1ydWxlPSJldmVub2RkIi8+PC9zdmc+)}.ce-contextmenu-vertical-align-bottom{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTcgOWgxVjNIN3ptLjUgM0w1IDloNXpNMiAxM2gxMXYxSDJ6IiBmaWxsPSIjM0Q0NzU3IiBmaWxsLXJ1bGU9ImV2ZW5vZGQiLz48L3N2Zz4=)}.ce-contextmenu-border-all{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTIuNSAzYS41LjUgMCAwMS41LS41aDExYS41LjUgMCAwMS41LjV2MTFhLjUuNSAwIDAxLS41LjVIM2EuNS41IDAgMDEtLjUtLjVWM3oiIHN0cm9rZT0iIzNENDc1NyIvPjxwYXRoIGZpbGw9IiMzRDQ3NTciIGQ9Ik0zIDhoMTF2MUgzeiIvPjxwYXRoIGZpbGw9IiMzRDQ3NTciIGQ9Ik05IDN2MTFIOFYzeiIvPjwvc3ZnPg==)}.ce-contextmenu-border-empty{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMyAzaC0xVjJoMWExIDEgMCAwMTEgMXYxaC0xVjN6bS0zLTF2MUg4LjV2MmgtMVYzSDZWMmg0ek00IDJ2MUgzdjFIMlYzYTEgMSAwIDAxMS0xaDF6TTIgNmgxdjEuNWgydjFIM1YxMEgyVjZ6bTAgNmgxdjFoMXYxSDNhMSAxIDAgMDEtMS0xdi0xem00IDJ2LTFoMS41di0yaDF2MkgxMHYxSDZ6bTYgMHYtMWgxdi0xaDF2MWExIDEgMCAwMS0xIDFoLTF6bTItNGgtMVY4LjVoLTJ2LTFoMlY2aDF2NHpNOC41IDcuNXYtMWgtMXYxaC0xdjFoMXYxaDF2LTFoMXYtMWgtMXoiIGZpbGw9IiNBQUFDQjAiLz48L3N2Zz4=)}.ce-contextmenu-border-external{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTIuNSAzYS41LjUgMCAwMS41LS41aDExYS41LjUgMCAwMS41LjV2MTFhLjUuNSAwIDAxLS41LjVIM2EuNS41IDAgMDEtLjUtLjVWM3oiIHN0cm9rZT0iIzNENDc1NyIvPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNOSA1VjNIOHYyaDF6bTAgOXYtMkg4djJoMXpNNSA4SDN2MWgyVjh6bTkgMGgtMnYxaDJWOHpNOSA3djFoMXYxSDl2MUg4VjlIN1Y4aDFWN2gxeiIgZmlsbD0iI0FBQUNCMCIvPjwvc3ZnPg==)}.ce-hyperlink-popup{background:#fff;box-shadow:0 2px 12px #626b8433;border-radius:2px;color:#3d4757;padding:12px 16px;position:absolute;z-index:1;text-align:center;display:none}.ce-hyperlink-popup a{min-width:100px;max-width:300px;font-size:12px;display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;text-decoration:none;border-bottom-width:1px;border-bottom-style:solid;color:#00f}.ce-zone-indicator>div{padding:3px 6px;color:#000;font-size:12px;background:rgb(218 231 252);position:absolute;transform-origin:0 0}.ce-zone-indicator-border__top,.ce-zone-indicator-border__bottom,.ce-zone-indicator-border__left,.ce-zone-indicator-border__right{display:block;position:absolute;z-index:0}.ce-zone-indicator-border__top{border-top:2px dashed rgb(238,238,238)}.ce-zone-indicator-border__bottom{border-top:2px dashed rgb(238,238,238);width:100%}.ce-zone-indicator-border__left{border-left:2px dashed rgb(238,238,238)}.ce-zone-indicator-border__right{border-right:2px dashed rgb(238,238,238)}.ce-inputarea{width:100px;height:30px;min-width:0;min-height:0;margin:0;padding:0;left:0;right:0;letter-spacing:0;font-size:12px;position:absolute;z-index:-1;outline:none;resize:none;border:none;overflow:hidden;color:transparent;user-select:none;background-color:transparent}.ce-cursor{width:1px;height:20px;left:0;right:0;position:absolute;outline:none;background-color:#000;pointer-events:none}.ce-cursor.ce-cursor--animation{animation-duration:1s;animation-iteration-count:infinite;animation-name:cursorAnimation}@keyframes cursorAnimation{0%{opacity:1}13%{opacity:0}50%{opacity:0}63%{opacity:1}to{opacity:1}}')),document.head.appendChild(e)}}catch(i){console.error("vite-plugin-css-injected-by-js",i)}})();})();
1
+ (()=>{(function(){"use strict";try{if(typeof document!="undefined"){var e=document.createElement("style");e.id="canvas-editor-style",e.appendChild(document.createTextNode('.ce-select-control-popup{max-width:160px;min-width:69px;max-height:225px;position:absolute;z-index:1;border:1px solid #e4e7ed;border-radius:4px;background-color:#fff;box-shadow:0 2px 12px #0000001a;box-sizing:border-box;margin:5px 0;overflow-y:auto}.ce-select-control-popup ul{list-style:none;padding:3px 0;margin:0;box-sizing:border-box}.ce-select-control-popup ul li{font-size:13px;padding:0 20px;position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#666;height:36px;line-height:36px;box-sizing:border-box;cursor:pointer}.ce-select-control-popup ul li:hover{background-color:#eef2fd}.ce-select-control-popup ul li.active{color:var(--COLOR-HOVER, #5175f4);font-weight:700}.ce-date-container{display:none;width:300px;overflow:hidden;left:0;right:0;position:absolute;z-index:1;color:#606266;background:#ffffff;border-radius:4px;padding:10px;user-select:none;border:1px solid #e4e7ed;box-shadow:0 2px 12px #0000001a}.ce-date-container.active{display:block}.ce-date-wrap{display:none}.ce-date-wrap.active{display:block}.ce-date-title{display:flex;justify-content:center;align-items:center;text-align:center;color:#606266;font-size:16px}.ce-date-title>span{display:inline-block}.ce-date-title>span:not(.ce-date-title__now){font-family:cursive;cursor:pointer}.ce-date-title>span:not(.ce-date-title__now):hover{color:#5175f4}.ce-date-title .ce-date-title__pre-year,.ce-date-title .ce-date-title__pre-month{width:15%}.ce-date-title .ce-date-title__now{width:40%}.ce-date-title .ce-date-title__next-year,.ce-date-title .ce-date-title__next-month{width:15%}.ce-date-week{width:100%;display:flex;justify-content:center;margin-top:15px;padding-bottom:5px;border-bottom:1px solid #e4e7ed}.ce-date-week>span{list-style:none;width:14.28571%;text-align:center;color:#606266;font-size:14px}.ce-date-day{width:100%;display:flex;flex-wrap:wrap;align-items:center;margin-top:5px}.ce-date-day>div{width:14.28571%;height:40px;text-align:center;color:#606266;font-size:14px;cursor:pointer;line-height:40px;border-radius:4px}.ce-date-day>div:hover{color:#5175f4;opacity:.8}.ce-date-day>div.active{color:#5175f4;font-weight:700}.ce-date-day>div.disable{color:#c0c4cc}.ce-date-day>div.select{color:#fff;background-color:#5175f4}.ce-time-wrap{display:none;padding:10px;height:286px}.ce-time-wrap ::-webkit-scrollbar{width:0}.ce-time-wrap.active{display:flex}.ce-time-wrap li{list-style:none}.ce-time-wrap>li{width:33.3%;height:100%;text-align:center}.ce-time-wrap>li>span{transform:translateY(-5px);display:inline-block}.ce-time-wrap>li>ol{height:calc(100% - 20px);overflow-y:auto;border:1px solid #e2e2e2;position:relative}.ce-time-wrap>li:first-child>ol{border-right:0}.ce-time-wrap>li:last-child>ol{border-left:0}.ce-time-wrap>li>ol>li{line-height:30px;cursor:pointer;transition:all .3s}.ce-time-wrap>li>ol>li:hover{background-color:#eaeaea}.ce-time-wrap>li>ol>li.active{color:#fff;background:#5175F4}.ce-date-menu{width:100%;height:28px;display:flex;justify-content:flex-end;align-items:center;padding-top:10px;position:relative;border-top:1px solid #e4e7ed}.ce-date-menu button{display:inline-block;line-height:1;white-space:nowrap;cursor:pointer;background:#fff;border:1px solid #dcdfe6;color:#606266;appearance:none;text-align:center;box-sizing:border-box;outline:none;transition:.1s;font-weight:500;user-select:none;padding:7px 15px;font-size:12px;border-radius:3px;margin:0 0 0 10px}.ce-date-menu button:hover{color:#5175f4;border-color:#5175f4}.ce-date-menu button.ce-date-menu__time{border:1px solid transparent;position:absolute;left:0;margin-left:0}.ce-date-menu button.ce-date-menu__time:hover{color:#5175f4}.ce-block-item{position:absolute;z-index:0;overflow:hidden;border-radius:8px;background-color:#fff;border:1px solid rgb(235 236 240)}.ce-table-tool__row{position:absolute;width:12px;border-radius:6.5px;overflow:hidden;background-color:#e2e6ed}.ce-table-tool__row .ce-table-tool__row__item{width:100%;position:relative}.ce-table-tool__row .ce-table-tool__row__item:after{content:"";position:absolute;bottom:0;left:2px;width:8px;height:1px;background-color:#c0c6cf}.ce-table-tool__row .ce-table-tool__row__item:last-child:after{display:none}.ce-table-tool__col{position:absolute;height:12px;border-radius:6.5px;overflow:hidden;background-color:#e2e6ed;display:flex}.ce-table-tool__col .ce-table-tool__col__item{height:100%;position:relative}.ce-table-tool__col .ce-table-tool__col__item:after{content:"";position:absolute;top:2px;left:-1px;width:1px;height:8px;z-index:1;background-color:#c0c6cf}.ce-table-tool__col .ce-table-tool__col__item:first-child:after{display:none}.ce-table-tool__row .ce-table-tool__row__item.active,.ce-table-tool__col .ce-table-tool__col__item.active{background-color:#c4d7fa}.ce-table-tool__col .ce-table-tool__anchor{right:-5px;width:10px;height:12px;z-index:9;position:absolute;cursor:col-resize}.ce-table-tool__row .ce-table-tool__anchor{bottom:-5px;left:0;width:12px;height:10px;z-index:9;position:absolute;cursor:row-resize}.ce-table-anchor__line{z-index:9;position:absolute;border:1px dotted #000000}.ce-table-tool__border{position:absolute;z-index:1;background:transparent;pointer-events:none}.ce-table-tool__border__row{position:absolute;cursor:row-resize;pointer-events:auto}.ce-table-tool__border__col{position:absolute;cursor:col-resize;pointer-events:auto}.ce-resizer-selection{position:absolute;border:1px solid}.ce-resizer-selection>div{position:absolute;z-index:9;width:10px;height:10px;box-shadow:0 1px 4px #0000004d;border-radius:5px;border:2px solid #ffffff;box-sizing:border-box}.ce-resizer-selection .handle-0{cursor:nw-resize}.ce-resizer-selection .handle-1{cursor:n-resize}.ce-resizer-selection .handle-2{cursor:ne-resize}.ce-resizer-selection .handle-3{cursor:e-resize}.ce-resizer-selection .handle-4{cursor:se-resize}.ce-resizer-selection .handle-5{cursor:s-resize}.ce-resizer-selection .handle-6{cursor:sw-resize}.ce-resizer-selection .handle-7{cursor:w-resize}.ce-resizer-image{position:absolute;opacity:.5}.ce-image-previewer{position:fixed;left:0;top:0;z-index:1000;width:100%;height:100%;overflow:hidden;background:#f2f4f7;display:flex;align-items:center;justify-content:center;animation:previewerAnimation .3s}@keyframes previewerAnimation{0%{opacity:.1}to{opacity:1}}.ce-image-previewer .image-close{width:24px;height:24px;display:inline-block;position:absolute;right:50px;top:30px;z-index:99;cursor:pointer;background:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTIzLjk3IDdsMS40MTUgMS40MTQtNy43NzkgNy43NzggNy43NzkgNy43NzktMS40MTQgMS40MTQtNy43NzktNy43NzktNy43NzggNy43NzlMNyAyMy45N2w3Ljc3OC03Ljc3OUw3IDguNDE0IDguNDE0IDdsNy43NzggNy43NzhMMjMuOTcxIDd6IiBmaWxsPSIjM0Q0NzU3IiBmaWxsLXJ1bGU9ImV2ZW5vZGQiLz48L3N2Zz4=) no-repeat;background-size:100% 100%;transition:all .3s;border-radius:50%}.ce-image-previewer .image-close:hover{background-color:#e2e6ed}.ce-image-previewer .ce-image-container{position:relative}.ce-image-previewer .ce-image-container img{cursor:move;position:relative}.ce-image-previewer .ce-image-menu{height:50px;position:absolute;bottom:50px;z-index:99;display:flex;align-items:center;justify-content:center}.ce-image-previewer .ce-image-menu i{width:32px;height:32px;margin:0 8px;cursor:pointer;display:inline-block;background-repeat:no-repeat;background-size:100% 100%;transition:all .3s;border-radius:50%}.ce-image-previewer .ce-image-menu i:hover{background-color:#e2e6ed}.ce-image-previewer .ce-image-menu i.zoom-in{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTE0IDE0di00aDJ2NGg0djJoLTR2NGgtMnYtNGgtNHYtMmg0em04Ljc0OSAxMC4xNjNBMTEuOTUyIDExLjk1MiAwIDAxMTUgMjdDOC4zNzMgMjcgMyAyMS42MjcgMyAxNVM4LjM3MyAzIDE1IDNzMTIgNS4zNzMgMTIgMTJjMCAyLjk1NC0xLjA2NyA1LjY1OC0yLjgzNyA3Ljc0OWw0LjkwOCA0LjkwOC0xLjQxNCAxLjQxNC00LjkwOC00LjkwOHpNMTUgMjVjNS41MjMgMCAxMC00LjQ3NyAxMC0xMFMyMC41MjMgNSAxNSA1IDUgOS40NzcgNSAxNXM0LjQ3NyAxMCAxMCAxMHoiIGZpbGw9IiMzRDQ3NTciLz48L3N2Zz4=)}.ce-image-previewer .ce-image-menu i.zoom-out{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTIyLjc0OSAyNC4xNjNBMTEuOTUyIDExLjk1MiAwIDAxMTUgMjdDOC4zNzMgMjcgMyAyMS42MjcgMyAxNVM4LjM3MyAzIDE1IDNzMTIgNS4zNzMgMTIgMTJjMCAyLjk1NC0xLjA2NyA1LjY1OC0yLjgzNyA3Ljc0OWw0LjkwOCA0LjkwOC0xLjQxNCAxLjQxNC00LjkwOC00LjkwOHpNMTUgMjVjNS41MjMgMCAxMC00LjQ3NyAxMC0xMFMyMC41MjMgNSAxNSA1IDUgOS40NzcgNSAxNXM0LjQ3NyAxMCAxMCAxMHptLTUtMTFoMTB2MkgxMHYtMnoiIGZpbGw9IiMzRDQ3NTciLz48L3N2Zz4=)}.ce-image-previewer .ce-image-menu i.rotate{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0iIzNENDc1NyIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJNMTYgNGM2LjYyNyAwIDEyIDUuMzczIDEyIDEyYTExLjk3IDExLjk3IDAgMDEtNCA4Ljk0NFYyM2gtLjg2QTkuOTY4IDkuOTY4IDAgMDAyNiAxNmMwLTUuNTIzLTQuNDc3LTEwLTEwLTEwUzYgMTAuNDc3IDYgMTZjMCA1LjE4NSAzLjk0NyA5LjQ0OSA5IDkuOTV2Mi4wMDlDOC44NCAyNy40NTEgNCAyMi4yOTEgNCAxNiA0IDkuMzczIDkuMzczIDQgMTYgNHoiIGZpbGwtcnVsZT0ibm9uemVybyIvPjxwYXRoIGQ9Ik0xOS44NzkgMjcuMzI4bDEuNzY3LTYuNzE3IDQuOTUgNC45NXoiLz48L2c+PC9zdmc+)}.ce-image-previewer .ce-image-menu i.original-size{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTQgNGgyNHYyNEg0VjR6bTIgMnYyMGgyMFY2SDZ6bTQgNWgydjEwaC0yVjExem01IDJoMnYyaC0ydi0yem0wIDRoMnYyaC0ydi0yem01LTZoMnYxMGgtMlYxMXoiIGZpbGw9IiMzRDQ3NTciLz48L3N2Zz4=)}.ce-image-previewer .ce-image-menu i.image-download{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTQuNSAxNXYzLjVoMTVWMTVIMjF2NUgzdi01aDEuNXptOC4yMzItMTEuMjI2djkuMTk2bDQuMDUtNC4wNSAxLjA2IDEuMDYtNS44MzQgNS44MzQtNS44MzMtNS44MzMgMS4wNi0xLjA2IDMuOTk4IDMuOTk2VjMuNzc0aDEuNXoiIGZpbGw9IiMzRDQ3NTciLz48L3N2Zz4=)}.ce-contextmenu-container{z-index:9;position:fixed;display:none;padding:4px;overflow-x:hidden;overflow-y:auto;background:#fff;box-shadow:0 2px 12px #38383833;border:1px solid #e2e6ed;border-radius:2px}.ce-contextmenu-content{display:flex;flex-direction:column}.ce-contextmenu-content .ce-contextmenu-sub-item:after{position:absolute;content:"";width:16px;height:16px;right:12px;background:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJNMCAwaDE2djE2SDB6Ii8+PGcgZmlsbD0iIzc2N0M4NSI+PHBhdGggZD0iTTcgMTIuMjQzbC0uNzA3LS43MDcgNC4yNDMtNC4yNDMuNzA3LjcwN3oiLz48cGF0aCBkPSJNNi4yOTMgNC40NjRMNyAzLjc1NyAxMS4yNDMgOGwtLjcwNy43MDd6Ii8+PC9nPjwvZz48L3N2Zz4=)}.ce-contextmenu-content .ce-contextmenu-item{min-width:140px;padding:0 32px 0 16px;height:30px;display:flex;align-items:center;white-space:nowrap;box-sizing:border-box;cursor:pointer}.ce-contextmenu-content .ce-contextmenu-item.hover{background:rgba(25,55,88,.04)}.ce-contextmenu-content .ce-contextmenu-item span{max-width:300px;font-size:12px;color:#3d4757;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.ce-contextmenu-content .ce-contextmenu-item span.ce-shortcut{color:#767c85;height:30px;flex:1;text-align:right;line-height:30px;margin-left:20px}.ce-contextmenu-content .ce-contextmenu-item i{width:16px;height:16px;vertical-align:middle;display:inline-block;background-repeat:no-repeat;background-size:100% 100%;flex-shrink:0;margin-right:8px}.ce-contextmenu-divider{background-color:#e2e6ed;margin:4px 16px;height:1px}.ce-contextmenu-print{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBmaWxsPSIjM0Q0NzU3IiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxwYXRoIGQ9Ik0xMiA0aC0xVjJINXYySDRWMmExIDEgMCAwMTEtMWg2YTEgMSAwIDAxMSAxdjJ6bTAgNXY0YTEgMSAwIDAxLTEgMUg1YTEgMSAwIDAxLTEtMVY5aDF2NGg2VjloMXoiLz48cGF0aCBkPSJNMTIgMTJ2LTFoMlY1SDJ2NmgydjFIMmExIDEgMCAwMS0xLTFWNWExIDEgMCAwMTEtMWgxMmExIDEgMCAwMTEgMXY2YTEgMSAwIDAxLTEgMWgtMnoiLz48cGF0aCBkPSJNMyA4aDEwdjFIM3ptOC0yaDJ2MWgtMnoiLz48L2c+PC9zdmc+)}.ce-contextmenu-image{background-image:url(data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSLlm77lsYJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4PSIwIiB5PSIwIiB2aWV3Qm94PSIwIDAgMTYgMTYiIHhtbDpzcGFjZT0icHJlc2VydmUiPjxzdHlsZT4uc3Qwe2ZpbGw6IzNkNDc1N308L3N0eWxlPjxnIGlkPSJfeDMwXzAt5YWs5YWxX3gyRl8wMuW3peWFt+agj194MkZf5o+S5YWl5Zu+54mHLTE2cHgtIj48ZyBpZD0iR3JvdXAtMTkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEgMSkiPjxwYXRoIGlkPSJDb21iaW5lZC1TaGFwZSIgY2xhc3M9InN0MCIgZD0iTTEgMGgxMmMuNiAwIDEgLjQgMSAxdjExYzAgLjYtLjQgMS0xIDFIMWMtLjYgMC0xLS40LTEtMVYxYzAtLjYuNC0xIDEtMXptMCAxdjExaDEyVjFIMXoiLz48Y2lyY2xlIGlkPSLmpK3lnIblvaIiIGNsYXNzPSJzdDAiIGN4PSIxMCIgY3k9IjQiIHI9IjEiLz48cGF0aCBpZD0iUGF0aCIgY2xhc3M9InN0MCIgZD0iTTguNSAxMS4ybC00LTQuMUwxIDEwLjdWOS4yYzEuNy0xLjYgMi43LTIuNSAzLTIuOC40LS41LjctLjQgMSAwTDguNSAxMCAxMSA3LjNjLjQtLjUuNi0uNSAxLS4xbDIgMi44djEuNWwtMi41LTMuNC0zIDMuMXoiLz48L2c+PC9nPjwvc3ZnPg==)}.ce-contextmenu-image-change{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyIDQpIiBmaWxsPSIjM0Q0NzU3Ij48Y2lyY2xlIGZpbGwtcnVsZT0ibm9uemVybyIgY3g9IjMiIGN5PSIxIiByPSIxIi8+PHBhdGggZD0iTTcuNDczIDguMjIzTDMuNDcgNC4xMDcgMCA3LjY2N3YtMS41QzEuNzE1IDQuNiAyLjcwNyAzLjY2NCAyLjk3NSAzLjM1OGMuNDAyLS40NTcuNjUxLS4zOSAxLjA0MiAwTDcuNDczIDcgOS45NiA0LjM0OWMuNDE0LS40NjIuNjItLjQ2MiAxLjAxMS0uMDcxTDEzIDcuMDZ2MS41bC0yLjUxLTMuNDEtMy4wMTcgMy4wNzJ6Ii8+PC9nPjxwYXRoIGQ9Ik02IDEuNUgxLjV2MTJoMTN2LTRWMTNhLjUuNSAwIDAxLS41LjVIMmEuNS41IDAgMDEtLjUtLjVWMmEuNS41IDAgMDEuNS0uNWg0em04LjUgOFY2bC0uNS41aDFsLS41LS41djMuNXpNNiAxLjVoNEw5LjUgMXYxbC41LS41SDZ6IiBzdHJva2U9IiMzRDQ3NTciLz48cGF0aCBkPSJNMTMuMDg1IDEuMzE2bC0zLjgxNCA0YTEgMSAwIDAwMS40NTggMS4zNjhsMy44MTUtNGExIDEgMCAxMC0xLjQ1OS0xLjM2OHoiIGZpbGw9IiMzRDQ3NTciIGZpbGwtcnVsZT0ibm9uemVybyIvPjwvZz48L3N2Zz4=)}.ce-contextmenu-insert-row-col{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBzdHJva2U9IiMzRDQ3NTciIGQ9Ik04LjUgNS41aDZ2NGgtNnoiLz48cGF0aCBmaWxsPSIjM0Q0NzU3IiBkPSJNNCA3djFoMlY3em0tMyAuNUw0IDV2NXpNMSAxaDEydjFIMXptMCAxMmgxMnYxSDF6Ii8+PC9nPjwvc3ZnPg==)}.ce-contextmenu-insert-top-row{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBmaWxsPSIjM0Q0NzU3IiBkPSJNOCA1SDd2M2gxem0tLjUtM0wxMCA1SDV6Ii8+PHJlY3Qgc3Ryb2tlPSIjM0Q0NzU3IiB4PSIxLjUiIHk9IjEwLjUiIHdpZHRoPSIxMiIgaGVpZ2h0PSIzIiByeD0iMSIvPjwvZz48L3N2Zz4=)}.ce-contextmenu-insert-bottom-row{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBmaWxsPSIjM0Q0NzU3IiBkPSJNNyAxMWgxVjhIN3ptLjUgM0w1IDExaDV6Ii8+PHJlY3Qgc3Ryb2tlPSIjM0Q0NzU3IiB4PSIxLjUiIHk9IjIuNSIgd2lkdGg9IjEyIiBoZWlnaHQ9IjMiIHJ4PSIxIi8+PC9nPjwvc3ZnPg==)}.ce-contextmenu-insert-left-col{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBmaWxsPSIjM0Q0NzU3IiBkPSJNMTEgN3YxaDNWN3ptLTMgLjVMMTEgNXY1eiIvPjxyZWN0IHN0cm9rZT0iIzNENDc1NyIgdHJhbnNmb3JtPSJyb3RhdGUoOTAgNCA3LjUpIiB4PSItMiIgeT0iNiIgd2lkdGg9IjEyIiBoZWlnaHQ9IjMiIHJ4PSIxIi8+PC9nPjwvc3ZnPg==)}.ce-contextmenu-insert-right-col{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBmaWxsPSIjM0Q0NzU3IiBkPSJNNSA4VjdIMnYxem0zLS41TDUgMTBWNXoiLz48cmVjdCBzdHJva2U9IiMzRDQ3NTciIHRyYW5zZm9ybT0icm90YXRlKDkwIDEyIDcuNSkiIHg9IjYiIHk9IjYiIHdpZHRoPSIxMiIgaGVpZ2h0PSIzIiByeD0iMSIvPjwvZz48L3N2Zz4=)}.ce-contextmenu-delete-row-col{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBzdHJva2U9IiM5MjlBQTgiIGQ9Ik04LjUgNi41aDZ2MmgtNnoiLz48cGF0aCBmaWxsPSIjM0Q0NzU3IiBkPSJNMiAxMmgxMXYxSDJ6TTIgMmgxMXYxSDJ6bS42MyAzTDcgOS4zNWwtLjYzNS42NUwyIDUuNjN6Ii8+PHBhdGggZmlsbD0iIzNENDc1NyIgZD0iTTIgOS4zNjNMNi4zNTUgNSA3IDUuNzA3IDIuNjk1IDEweiIvPjwvZz48L3N2Zz4=)}.ce-contextmenu-delete-row{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBzdHJva2U9IiM5MjlBQTgiIGQ9Ik04LjUgNS41aDZ2NGgtNnoiLz48cGF0aCBmaWxsPSIjM0Q0NzU3IiBkPSJNMSAxM2gxMnYxSDF6TTEgMWgxMnYxSDF6bTAgNGgxdjFIMXptMSAxaDF2MUgyem0xIDFoMXYxSDN6bTEtMWgxdjFINHptMS0xaDF2MUg1ek00IDhoMXYxSDR6TTIgOGgxdjFIMnptMyAxaDF2MUg1ek0xIDloMXYxSDF6Ii8+PC9nPjwvc3ZnPg==)}.ce-contextmenu-delete-col{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBzdHJva2U9IiM5MjlBQTgiIGQ9Ik01LjUgNy41di02aDR2NnoiLz48cGF0aCBmaWxsPSIjM0Q0NzU3IiBkPSJNMTMgMTVWM2gxdjEyek0xIDE1VjNoMXYxMnptNCAwdi0xaDF2MXptMS0xdi0xaDF2MXptMS0xdi0xaDF2MXptLTEtMXYtMWgxdjF6bS0xLTF2LTFoMXYxem0zIDF2LTFoMXYxem0wIDJ2LTFoMXYxem0xLTN2LTFoMXYxem0wIDR2LTFoMXYxeiIvPjwvZz48L3N2Zz4=)}.ce-contextmenu-delete-table{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0iIzNENDc1NyIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJNMTQgMTNoLTF2LTNIMnYzSDF2LTNhMSAxIDAgMDExLTFoMTFhMSAxIDAgMDExIDF2M3oiIGZpbGwtcnVsZT0ibm9uemVybyIvPjxwYXRoIGQ9Ik01LjYyNSAyTDEwIDYuMzc1IDkuMzc1IDcgNSAyLjYyNXoiLz48cGF0aCBkPSJNNSA2LjM3NUw5LjM3NSAybC42MjUuNjI1TDUuNjI1IDd6Ii8+PC9nPjwvc3ZnPg==)}.ce-contextmenu-merge-cell{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0iIzNENDc1NyIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJNNiAxdjFIMnYxMWg0djFIMmExIDEgMCAwMS0xLTFWMmExIDEgMCAwMTEtMWg0em0zIDBoNGExIDEgMCAwMTEgMXYxMWExIDEgMCAwMS0xIDFIOXYtMWg0VjJIOVYxeiIvPjxwYXRoIGZpbGwtcnVsZT0ibm9uemVybyIgZD0iTTYgMWgxdjRINnptMiAwaDF2NEg4eiIvPjxwYXRoIGQ9Ik04IDcuNUwxMCA2djN6bS0xIDBMNSA2djN6Ii8+PHBhdGggZD0iTTkgN2gzdjFIOXpNMyA3aDN2MUgzeiIvPjxwYXRoIGZpbGwtcnVsZT0ibm9uemVybyIgZD0iTTggMTBoMXY0SDh6bS0yIDBoMXY0SDZ6Ii8+PC9nPjwvc3ZnPg==)}.ce-contextmenu-merge-cancel-cell{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0iIzNENDc1NyIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJNNiAxdjFIMnYxMWg0djFIMmExIDEgMCAwMS0xLTFWMmExIDEgMCAwMTEtMWg0em0zIDBoNGExIDEgMCAwMTEgMXYxMWExIDEgMCAwMS0xIDFIOXYtMWg0VjJIOVYxeiIvPjxwYXRoIGZpbGwtcnVsZT0ibm9uemVybyIgZD0iTTYgMWgxdjRINnptMiAwaDF2NEg4eiIvPjxwYXRoIGQ9Ik0zIDcuNUw1IDZ2M3ptOSAwTDEwIDZ2M3oiLz48cGF0aCBkPSJNNCA3aDN2MUg0em00IDBoM3YxSDh6Ii8+PHBhdGggZmlsbC1ydWxlPSJub256ZXJvIiBkPSJNOCAxMGgxdjRIOHptLTIgMGgxdjRINnoiLz48L2c+PC9zdmc+)}.ce-contextmenu-vertical-align{background-image:url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjE2IiB2aWV3Qm94PSIwIDAgMTYgMTYiIHdpZHRoPSIxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMiAxM2gxMnYxSDJ6bTAtM2g4djFIMnptMC0zaDEydjFIMnptMC02aDEydjFIMnptMCAzaDh2MUgyeiIgZmlsbD0iIzNkNDc1NyIgZmlsbC1ydWxlPSJldmVub2RkIi8+PC9zdmc+)}.ce-contextmenu-vertical-align-top{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTggOEg3djZoMXptLS41LTNMMTAgOEg1ek0yIDNoMTF2MUgyeiIgZmlsbD0iIzNENDc1NyIgZmlsbC1ydWxlPSJldmVub2RkIi8+PC9zdmc+)}.ce-contextmenu-vertical-align-middle{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNOCAxMkg3djNoMXptLS41LTNsMi41IDNINXpNNyAzaDFWMEg3em0uNSAzTDUgM2g1ek0yIDdoMTF2MUgyeiIgZmlsbD0iIzNENDc1NyIgZmlsbC1ydWxlPSJldmVub2RkIi8+PC9zdmc+)}.ce-contextmenu-vertical-align-bottom{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTcgOWgxVjNIN3ptLjUgM0w1IDloNXpNMiAxM2gxMXYxSDJ6IiBmaWxsPSIjM0Q0NzU3IiBmaWxsLXJ1bGU9ImV2ZW5vZGQiLz48L3N2Zz4=)}.ce-contextmenu-border-all{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTIuNSAzYS41LjUgMCAwMS41LS41aDExYS41LjUgMCAwMS41LjV2MTFhLjUuNSAwIDAxLS41LjVIM2EuNS41IDAgMDEtLjUtLjVWM3oiIHN0cm9rZT0iIzNENDc1NyIvPjxwYXRoIGZpbGw9IiMzRDQ3NTciIGQ9Ik0zIDhoMTF2MUgzeiIvPjxwYXRoIGZpbGw9IiMzRDQ3NTciIGQ9Ik05IDN2MTFIOFYzeiIvPjwvc3ZnPg==)}.ce-contextmenu-border-empty{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMyAzaC0xVjJoMWExIDEgMCAwMTEgMXYxaC0xVjN6bS0zLTF2MUg4LjV2MmgtMVYzSDZWMmg0ek00IDJ2MUgzdjFIMlYzYTEgMSAwIDAxMS0xaDF6TTIgNmgxdjEuNWgydjFIM1YxMEgyVjZ6bTAgNmgxdjFoMXYxSDNhMSAxIDAgMDEtMS0xdi0xem00IDJ2LTFoMS41di0yaDF2MkgxMHYxSDZ6bTYgMHYtMWgxdi0xaDF2MWExIDEgMCAwMS0xIDFoLTF6bTItNGgtMVY4LjVoLTJ2LTFoMlY2aDF2NHpNOC41IDcuNXYtMWgtMXYxaC0xdjFoMXYxaDF2LTFoMXYtMWgtMXoiIGZpbGw9IiNBQUFDQjAiLz48L3N2Zz4=)}.ce-contextmenu-border-external{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTIuNSAzYS41LjUgMCAwMS41LS41aDExYS41LjUgMCAwMS41LjV2MTFhLjUuNSAwIDAxLS41LjVIM2EuNS41IDAgMDEtLjUtLjVWM3oiIHN0cm9rZT0iIzNENDc1NyIvPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNOSA1VjNIOHYyaDF6bTAgOXYtMkg4djJoMXpNNSA4SDN2MWgyVjh6bTkgMGgtMnYxaDJWOHpNOSA3djFoMXYxSDl2MUg4VjlIN1Y4aDFWN2gxeiIgZmlsbD0iI0FBQUNCMCIvPjwvc3ZnPg==)}.ce-hyperlink-popup{background:#fff;box-shadow:0 2px 12px #626b8433;border-radius:2px;color:#3d4757;padding:12px 16px;position:absolute;z-index:1;text-align:center;display:none}.ce-hyperlink-popup a{min-width:100px;max-width:300px;font-size:12px;display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;text-decoration:none;border-bottom-width:1px;border-bottom-style:solid;color:#00f}.ce-zone-indicator>div{padding:3px 6px;color:#000;font-size:12px;background:rgb(218 231 252);position:absolute;transform-origin:0 0}.ce-zone-indicator-border__top,.ce-zone-indicator-border__bottom,.ce-zone-indicator-border__left,.ce-zone-indicator-border__right{display:block;position:absolute;z-index:0}.ce-zone-indicator-border__top{border-top:2px dashed rgb(238,238,238)}.ce-zone-indicator-border__bottom{border-top:2px dashed rgb(238,238,238);width:100%}.ce-zone-indicator-border__left{border-left:2px dashed rgb(238,238,238)}.ce-zone-indicator-border__right{border-right:2px dashed rgb(238,238,238)}.ce-inputarea{width:100px;height:30px;min-width:0;min-height:0;margin:0;padding:0;left:0;right:0;letter-spacing:0;font-size:12px;position:absolute;z-index:-1;outline:none;resize:none;border:none;overflow:hidden;color:transparent;user-select:none;background-color:transparent}.ce-cursor{width:1px;height:20px;left:0;right:0;position:absolute;outline:none;background-color:#000;pointer-events:none}.ce-cursor.ce-cursor--animation{animation-duration:1s;animation-iteration-count:infinite;animation-name:cursorAnimation}@keyframes cursorAnimation{0%{opacity:1}13%{opacity:0}50%{opacity:0}63%{opacity:1}to{opacity:1}}')),document.head.appendChild(e)}}catch(i){console.error("vite-plugin-css-injected-by-js",i)}})();})();
2
2
  var __defProp = Object.defineProperty;
3
3
  var __defProps = Object.defineProperties;
4
4
  var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
@@ -23,7 +23,7 @@ var __publicField = (obj, key, value) => {
23
23
  return value;
24
24
  };
25
25
  var index = "";
26
- const version = "0.9.40";
26
+ const version = "0.9.42";
27
27
  var MaxHeightRatio;
28
28
  (function(MaxHeightRatio2) {
29
29
  MaxHeightRatio2["HALF"] = "half";
@@ -228,6 +228,15 @@ function cloneProperty(properties, sourceElement, targetElement) {
228
228
  }
229
229
  }
230
230
  }
231
+ function omitObject(object, keys) {
232
+ const cloneObject = deepClone(object);
233
+ for (const key in object) {
234
+ if (keys.includes(key)) {
235
+ delete cloneObject[key];
236
+ }
237
+ }
238
+ return cloneObject;
239
+ }
231
240
  function convertStringToBase64(input2) {
232
241
  const encoder = new TextEncoder();
233
242
  const data2 = encoder.encode(input2);
@@ -353,103 +362,6 @@ const VIRTUAL_ELEMENT_TYPE = [
353
362
  ElementType.TITLE,
354
363
  ElementType.LIST
355
364
  ];
356
- var ListType;
357
- (function(ListType2) {
358
- ListType2["UL"] = "ul";
359
- ListType2["OL"] = "ol";
360
- })(ListType || (ListType = {}));
361
- var UlStyle;
362
- (function(UlStyle2) {
363
- UlStyle2["DISC"] = "disc";
364
- UlStyle2["CIRCLE"] = "circle";
365
- UlStyle2["SQUARE"] = "square";
366
- })(UlStyle || (UlStyle = {}));
367
- var OlStyle;
368
- (function(OlStyle2) {
369
- OlStyle2["DECIMAL"] = "decimal";
370
- })(OlStyle || (OlStyle = {}));
371
- var ListStyle;
372
- (function(ListStyle2) {
373
- ListStyle2["DISC"] = "disc";
374
- ListStyle2["CIRCLE"] = "circle";
375
- ListStyle2["SQUARE"] = "square";
376
- ListStyle2["DECIMAL"] = "decimal";
377
- })(ListStyle || (ListStyle = {}));
378
- const ulStyleMapping = {
379
- [UlStyle.DISC]: "\u2022",
380
- [UlStyle.CIRCLE]: "\u25E6",
381
- [UlStyle.SQUARE]: "\u25AB\uFE0E"
382
- };
383
- const listTypeElementMapping = {
384
- [ListType.OL]: "ol",
385
- [ListType.UL]: "ul"
386
- };
387
- const listStyleCSSMapping = {
388
- [ListStyle.DISC]: "disc",
389
- [ListStyle.CIRCLE]: "circle",
390
- [ListStyle.SQUARE]: "square",
391
- [ListStyle.DECIMAL]: "decimal"
392
- };
393
- var TitleLevel;
394
- (function(TitleLevel2) {
395
- TitleLevel2["FIRST"] = "first";
396
- TitleLevel2["SECOND"] = "second";
397
- TitleLevel2["THIRD"] = "third";
398
- TitleLevel2["FOURTH"] = "fourth";
399
- TitleLevel2["FIFTH"] = "fifth";
400
- TitleLevel2["SIXTH"] = "sixth";
401
- })(TitleLevel || (TitleLevel = {}));
402
- const defaultTitleOption = {
403
- defaultFirstSize: 26,
404
- defaultSecondSize: 24,
405
- defaultThirdSize: 22,
406
- defaultFourthSize: 20,
407
- defaultFifthSize: 18,
408
- defaultSixthSize: 16
409
- };
410
- const titleSizeMapping = {
411
- [TitleLevel.FIRST]: "defaultFirstSize",
412
- [TitleLevel.SECOND]: "defaultSecondSize",
413
- [TitleLevel.THIRD]: "defaultThirdSize",
414
- [TitleLevel.FOURTH]: "defaultFourthSize",
415
- [TitleLevel.FIFTH]: "defaultFifthSize",
416
- [TitleLevel.SIXTH]: "defaultSixthSize"
417
- };
418
- const titleOrderNumberMapping = {
419
- [TitleLevel.FIRST]: 1,
420
- [TitleLevel.SECOND]: 2,
421
- [TitleLevel.THIRD]: 3,
422
- [TitleLevel.FOURTH]: 4,
423
- [TitleLevel.FIFTH]: 5,
424
- [TitleLevel.SIXTH]: 6
425
- };
426
- const titleNodeNameMapping = {
427
- H1: TitleLevel.FIRST,
428
- H2: TitleLevel.SECOND,
429
- H3: TitleLevel.THIRD,
430
- H4: TitleLevel.FOURTH,
431
- H5: TitleLevel.FIFTH,
432
- H6: TitleLevel.SIXTH
433
- };
434
- var ControlType;
435
- (function(ControlType2) {
436
- ControlType2["TEXT"] = "text";
437
- ControlType2["SELECT"] = "select";
438
- ControlType2["CHECKBOX"] = "checkbox";
439
- })(ControlType || (ControlType = {}));
440
- var ControlComponent;
441
- (function(ControlComponent2) {
442
- ControlComponent2["PREFIX"] = "prefix";
443
- ControlComponent2["POSTFIX"] = "postfix";
444
- ControlComponent2["PLACEHOLDER"] = "placeholder";
445
- ControlComponent2["VALUE"] = "value";
446
- ControlComponent2["CHECKBOX"] = "checkbox";
447
- })(ControlComponent || (ControlComponent = {}));
448
- var ImageDisplay;
449
- (function(ImageDisplay2) {
450
- ImageDisplay2["INLINE"] = "inline";
451
- ImageDisplay2["BLOCK"] = "block";
452
- })(ImageDisplay || (ImageDisplay = {}));
453
365
  class ImageParticle {
454
366
  constructor(draw) {
455
367
  __publicField(this, "draw");
@@ -3524,6 +3436,103 @@ const defaultControlOption = {
3524
3436
  prefix: "{",
3525
3437
  postfix: "}"
3526
3438
  };
3439
+ var ListType;
3440
+ (function(ListType2) {
3441
+ ListType2["UL"] = "ul";
3442
+ ListType2["OL"] = "ol";
3443
+ })(ListType || (ListType = {}));
3444
+ var UlStyle;
3445
+ (function(UlStyle2) {
3446
+ UlStyle2["DISC"] = "disc";
3447
+ UlStyle2["CIRCLE"] = "circle";
3448
+ UlStyle2["SQUARE"] = "square";
3449
+ })(UlStyle || (UlStyle = {}));
3450
+ var OlStyle;
3451
+ (function(OlStyle2) {
3452
+ OlStyle2["DECIMAL"] = "decimal";
3453
+ })(OlStyle || (OlStyle = {}));
3454
+ var ListStyle;
3455
+ (function(ListStyle2) {
3456
+ ListStyle2["DISC"] = "disc";
3457
+ ListStyle2["CIRCLE"] = "circle";
3458
+ ListStyle2["SQUARE"] = "square";
3459
+ ListStyle2["DECIMAL"] = "decimal";
3460
+ })(ListStyle || (ListStyle = {}));
3461
+ const ulStyleMapping = {
3462
+ [UlStyle.DISC]: "\u2022",
3463
+ [UlStyle.CIRCLE]: "\u25E6",
3464
+ [UlStyle.SQUARE]: "\u25AB\uFE0E"
3465
+ };
3466
+ const listTypeElementMapping = {
3467
+ [ListType.OL]: "ol",
3468
+ [ListType.UL]: "ul"
3469
+ };
3470
+ const listStyleCSSMapping = {
3471
+ [ListStyle.DISC]: "disc",
3472
+ [ListStyle.CIRCLE]: "circle",
3473
+ [ListStyle.SQUARE]: "square",
3474
+ [ListStyle.DECIMAL]: "decimal"
3475
+ };
3476
+ var TitleLevel;
3477
+ (function(TitleLevel2) {
3478
+ TitleLevel2["FIRST"] = "first";
3479
+ TitleLevel2["SECOND"] = "second";
3480
+ TitleLevel2["THIRD"] = "third";
3481
+ TitleLevel2["FOURTH"] = "fourth";
3482
+ TitleLevel2["FIFTH"] = "fifth";
3483
+ TitleLevel2["SIXTH"] = "sixth";
3484
+ })(TitleLevel || (TitleLevel = {}));
3485
+ const defaultTitleOption = {
3486
+ defaultFirstSize: 26,
3487
+ defaultSecondSize: 24,
3488
+ defaultThirdSize: 22,
3489
+ defaultFourthSize: 20,
3490
+ defaultFifthSize: 18,
3491
+ defaultSixthSize: 16
3492
+ };
3493
+ const titleSizeMapping = {
3494
+ [TitleLevel.FIRST]: "defaultFirstSize",
3495
+ [TitleLevel.SECOND]: "defaultSecondSize",
3496
+ [TitleLevel.THIRD]: "defaultThirdSize",
3497
+ [TitleLevel.FOURTH]: "defaultFourthSize",
3498
+ [TitleLevel.FIFTH]: "defaultFifthSize",
3499
+ [TitleLevel.SIXTH]: "defaultSixthSize"
3500
+ };
3501
+ const titleOrderNumberMapping = {
3502
+ [TitleLevel.FIRST]: 1,
3503
+ [TitleLevel.SECOND]: 2,
3504
+ [TitleLevel.THIRD]: 3,
3505
+ [TitleLevel.FOURTH]: 4,
3506
+ [TitleLevel.FIFTH]: 5,
3507
+ [TitleLevel.SIXTH]: 6
3508
+ };
3509
+ const titleNodeNameMapping = {
3510
+ H1: TitleLevel.FIRST,
3511
+ H2: TitleLevel.SECOND,
3512
+ H3: TitleLevel.THIRD,
3513
+ H4: TitleLevel.FOURTH,
3514
+ H5: TitleLevel.FIFTH,
3515
+ H6: TitleLevel.SIXTH
3516
+ };
3517
+ var ControlType;
3518
+ (function(ControlType2) {
3519
+ ControlType2["TEXT"] = "text";
3520
+ ControlType2["SELECT"] = "select";
3521
+ ControlType2["CHECKBOX"] = "checkbox";
3522
+ })(ControlType || (ControlType = {}));
3523
+ var ControlComponent;
3524
+ (function(ControlComponent2) {
3525
+ ControlComponent2["PREFIX"] = "prefix";
3526
+ ControlComponent2["POSTFIX"] = "postfix";
3527
+ ControlComponent2["PLACEHOLDER"] = "placeholder";
3528
+ ControlComponent2["VALUE"] = "value";
3529
+ ControlComponent2["CHECKBOX"] = "checkbox";
3530
+ })(ControlComponent || (ControlComponent = {}));
3531
+ var ImageDisplay;
3532
+ (function(ImageDisplay2) {
3533
+ ImageDisplay2["INLINE"] = "inline";
3534
+ ImageDisplay2["BLOCK"] = "block";
3535
+ })(ImageDisplay || (ImageDisplay = {}));
3527
3536
  function unzipElementList(elementList) {
3528
3537
  const result = [];
3529
3538
  for (let v = 0; v < elementList.length; v++) {
@@ -4036,31 +4045,6 @@ function formatElementContext(sourceElementList, formatElementList2, anchorIndex
4036
4045
  cloneProperty(EDITOR_ELEMENT_CONTEXT_ATTR, copyElement, targetElement);
4037
4046
  }
4038
4047
  }
4039
- function writeClipboardItem(text, html) {
4040
- if (!text || !html)
4041
- return;
4042
- const plainText = new Blob([text], { type: "text/plain" });
4043
- const htmlText = new Blob([html], { type: "text/html" });
4044
- if (window.ClipboardItem) {
4045
- const item = new ClipboardItem({
4046
- [plainText.type]: plainText,
4047
- [htmlText.type]: htmlText
4048
- });
4049
- window.navigator.clipboard.write([item]);
4050
- } else {
4051
- const fakeElement = document.createElement("div");
4052
- fakeElement.setAttribute("contenteditable", "true");
4053
- fakeElement.innerHTML = html;
4054
- document.body.append(fakeElement);
4055
- const selection = window.getSelection();
4056
- const range = document.createRange();
4057
- range.selectNodeContents(fakeElement);
4058
- selection == null ? void 0 : selection.removeAllRanges();
4059
- selection == null ? void 0 : selection.addRange(range);
4060
- document.execCommand("copy");
4061
- fakeElement.remove();
4062
- }
4063
- }
4064
4048
  function convertElementToDom(element, options) {
4065
4049
  let tagName = "span";
4066
4050
  if (element.type === ElementType.SUPERSCRIPT) {
@@ -4092,10 +4076,10 @@ function convertElementToDom(element, options) {
4092
4076
  dom.innerText = element.value.replace(new RegExp(`${ZERO}`, "g"), "\n");
4093
4077
  return dom;
4094
4078
  }
4095
- function writeElementList(elementList, options) {
4096
- function buildDomFromElementList(payload) {
4079
+ function createDomFromElementList(elementList, options) {
4080
+ function buildDom(payload) {
4097
4081
  var _a, _b, _c, _d, _e;
4098
- const clipboardDom2 = document.createElement("div");
4082
+ const clipboardDom = document.createElement("div");
4099
4083
  for (let e = 0; e < payload.length; e++) {
4100
4084
  const element = payload[e];
4101
4085
  if (element.type === ElementType.TABLE) {
@@ -4110,7 +4094,7 @@ function writeElementList(elementList, options) {
4110
4094
  const td = tr.tdList[d];
4111
4095
  tdDom.colSpan = td.colspan;
4112
4096
  tdDom.rowSpan = td.rowspan;
4113
- const childDom = buildDomFromElementList(zipElementList(td.value));
4097
+ const childDom = buildDom(zipElementList(td.value));
4114
4098
  tdDom.innerHTML = childDom.innerHTML;
4115
4099
  if (td.backgroundColor) {
4116
4100
  tdDom.style.backgroundColor = td.backgroundColor;
@@ -4119,19 +4103,19 @@ function writeElementList(elementList, options) {
4119
4103
  }
4120
4104
  tableDom.append(trDom);
4121
4105
  }
4122
- clipboardDom2.append(tableDom);
4106
+ clipboardDom.append(tableDom);
4123
4107
  } else if (element.type === ElementType.HYPERLINK) {
4124
4108
  const a = document.createElement("a");
4125
4109
  a.innerText = element.valueList.map((v) => v.value).join("");
4126
4110
  if (element.url) {
4127
4111
  a.href = element.url;
4128
4112
  }
4129
- clipboardDom2.append(a);
4113
+ clipboardDom.append(a);
4130
4114
  } else if (element.type === ElementType.TITLE) {
4131
4115
  const h = document.createElement(`h${titleOrderNumberMapping[element.level]}`);
4132
- const childDom = buildDomFromElementList(zipElementList(element.valueList));
4116
+ const childDom = buildDom(zipElementList(element.valueList));
4133
4117
  h.innerHTML = childDom.innerHTML;
4134
- clipboardDom2.append(h);
4118
+ clipboardDom.append(h);
4135
4119
  } else if (element.type === ElementType.LIST) {
4136
4120
  const list = document.createElement(listTypeElementMapping[element.listType]);
4137
4121
  if (element.listStyle) {
@@ -4163,11 +4147,11 @@ function writeElementList(elementList, options) {
4163
4147
  }
4164
4148
  listElementListMap.forEach((listElementList) => {
4165
4149
  const li = document.createElement("li");
4166
- const childDom = buildDomFromElementList(listElementList);
4150
+ const childDom = buildDom(listElementList);
4167
4151
  li.innerHTML = childDom.innerHTML;
4168
4152
  list.append(li);
4169
4153
  });
4170
- clipboardDom2.append(list);
4154
+ clipboardDom.append(list);
4171
4155
  } else if (element.type === ElementType.IMAGE) {
4172
4156
  const img = document.createElement("img");
4173
4157
  if (element.value) {
@@ -4175,46 +4159,39 @@ function writeElementList(elementList, options) {
4175
4159
  img.width = element.width;
4176
4160
  img.height = element.height;
4177
4161
  }
4178
- clipboardDom2.append(img);
4162
+ clipboardDom.append(img);
4179
4163
  } else if (element.type === ElementType.SEPARATOR) {
4180
4164
  const hr = document.createElement("hr");
4181
- clipboardDom2.append(hr);
4165
+ clipboardDom.append(hr);
4182
4166
  } else if (element.type === ElementType.CHECKBOX) {
4183
4167
  const checkbox = document.createElement("input");
4184
4168
  checkbox.type = "checkbox";
4185
4169
  if ((_a = element.checkbox) == null ? void 0 : _a.value) {
4186
4170
  checkbox.setAttribute("checked", "true");
4187
4171
  }
4188
- clipboardDom2.append(checkbox);
4172
+ clipboardDom.append(checkbox);
4189
4173
  } else if (!element.type || element.type === ElementType.LATEX || TEXTLIKE_ELEMENT_TYPE.includes(element.type)) {
4190
- let text2 = "";
4174
+ let text = "";
4191
4175
  if (element.type === ElementType.CONTROL) {
4192
- text2 = ((_c = (_b = element.control.value) == null ? void 0 : _b[0]) == null ? void 0 : _c.value) || "";
4176
+ text = ((_c = (_b = element.control.value) == null ? void 0 : _b[0]) == null ? void 0 : _c.value) || "";
4193
4177
  } else if (element.type === ElementType.DATE) {
4194
- text2 = ((_d = element.valueList) == null ? void 0 : _d.map((v) => v.value).join("")) || "";
4178
+ text = ((_d = element.valueList) == null ? void 0 : _d.map((v) => v.value).join("")) || "";
4195
4179
  } else {
4196
- text2 = element.value;
4180
+ text = element.value;
4197
4181
  }
4198
- if (!text2)
4182
+ if (!text)
4199
4183
  continue;
4200
4184
  if (((_e = payload[e - 1]) == null ? void 0 : _e.type) === ElementType.TITLE) {
4201
- text2 = text2.replace(/^\n/, "");
4185
+ text = text.replace(/^\n/, "");
4202
4186
  }
4203
4187
  const dom = convertElementToDom(element, options);
4204
- dom.innerText = text2.replace(new RegExp(`${ZERO}`, "g"), "\n");
4205
- clipboardDom2.append(dom);
4188
+ dom.innerText = text.replace(new RegExp(`${ZERO}`, "g"), "\n");
4189
+ clipboardDom.append(dom);
4206
4190
  }
4207
4191
  }
4208
- return clipboardDom2;
4192
+ return clipboardDom;
4209
4193
  }
4210
- const clipboardDom = buildDomFromElementList(zipElementList(elementList));
4211
- document.body.append(clipboardDom);
4212
- const text = clipboardDom.innerText;
4213
- clipboardDom.remove();
4214
- const html = clipboardDom.innerHTML;
4215
- if (!text || !html)
4216
- return;
4217
- writeClipboardItem(text, html);
4194
+ return buildDom(zipElementList(elementList));
4218
4195
  }
4219
4196
  function convertTextNodeToElement(textNode) {
4220
4197
  if (!textNode || textNode.nodeType !== 3)
@@ -5388,6 +5365,10 @@ function keydown(evt, host) {
5388
5365
  if (listener.saved) {
5389
5366
  listener.saved(draw.getValue());
5390
5367
  }
5368
+ const eventBus = draw.getEventBus();
5369
+ if (eventBus.isSubscribe("saved")) {
5370
+ eventBus.emit("saved", draw.getValue());
5371
+ }
5391
5372
  evt.preventDefault();
5392
5373
  } else if (evt.key === KeyMap.ESC) {
5393
5374
  host.clearPainterStyle();
@@ -5493,6 +5474,41 @@ function removeComposingInput(host) {
5493
5474
  rangeManager.setRange(startIndex, startIndex);
5494
5475
  host.compositionInfo = null;
5495
5476
  }
5477
+ function writeClipboardItem(text, html) {
5478
+ if (!text || !html)
5479
+ return;
5480
+ const plainText = new Blob([text], { type: "text/plain" });
5481
+ const htmlText = new Blob([html], { type: "text/html" });
5482
+ if (window.ClipboardItem) {
5483
+ const item = new ClipboardItem({
5484
+ [plainText.type]: plainText,
5485
+ [htmlText.type]: htmlText
5486
+ });
5487
+ window.navigator.clipboard.write([item]);
5488
+ } else {
5489
+ const fakeElement = document.createElement("div");
5490
+ fakeElement.setAttribute("contenteditable", "true");
5491
+ fakeElement.innerHTML = html;
5492
+ document.body.append(fakeElement);
5493
+ const selection = window.getSelection();
5494
+ const range = document.createRange();
5495
+ range.selectNodeContents(fakeElement);
5496
+ selection == null ? void 0 : selection.removeAllRanges();
5497
+ selection == null ? void 0 : selection.addRange(range);
5498
+ document.execCommand("copy");
5499
+ fakeElement.remove();
5500
+ }
5501
+ }
5502
+ function writeElementList(elementList, options) {
5503
+ const clipboardDom = createDomFromElementList(elementList, options);
5504
+ document.body.append(clipboardDom);
5505
+ const text = clipboardDom.innerText;
5506
+ clipboardDom.remove();
5507
+ const html = clipboardDom.innerHTML;
5508
+ if (!text || !html)
5509
+ return;
5510
+ writeClipboardItem(text, html);
5511
+ }
5496
5512
  function cut(host) {
5497
5513
  const draw = host.getDraw();
5498
5514
  const rangeManager = draw.getRange();
@@ -5859,7 +5875,6 @@ class CanvasEvent {
5859
5875
  class GlobalEvent {
5860
5876
  constructor(draw, canvasEvent) {
5861
5877
  __publicField(this, "draw");
5862
- __publicField(this, "canvas");
5863
5878
  __publicField(this, "options");
5864
5879
  __publicField(this, "cursor");
5865
5880
  __publicField(this, "canvasEvent");
@@ -5870,17 +5885,17 @@ class GlobalEvent {
5870
5885
  __publicField(this, "control");
5871
5886
  __publicField(this, "dateParticle");
5872
5887
  __publicField(this, "dprMediaQueryList");
5873
- __publicField(this, "recoverEffect", (evt) => {
5888
+ __publicField(this, "clearSideEffect", (evt) => {
5874
5889
  if (!this.cursor)
5875
5890
  return;
5876
- const cursorDom = this.cursor.getCursorDom();
5877
- const agentDom = this.cursor.getAgentDom();
5878
- const innerDoms = [this.canvas, cursorDom, agentDom, document.body];
5879
- if (innerDoms.includes(evt.target)) {
5891
+ const target = (evt == null ? void 0 : evt.composedPath()[0]) || evt.target;
5892
+ const pageList = this.draw.getPageList();
5893
+ const innerEditorDom = findParent(target, (node) => pageList.includes(node), true);
5894
+ if (innerEditorDom) {
5880
5895
  this.setRangeStyle();
5881
5896
  return;
5882
5897
  }
5883
- const outerEditorDom = findParent(evt.target, (node) => !!node && node.nodeType === 1 && !!node.getAttribute(EDITOR_COMPONENT), true);
5898
+ const outerEditorDom = findParent(target, (node) => !!node && node.nodeType === 1 && !!node.getAttribute(EDITOR_COMPONENT), true);
5884
5899
  if (outerEditorDom) {
5885
5900
  this.setRangeStyle();
5886
5901
  this.watchCursorActive();
@@ -5931,7 +5946,6 @@ class GlobalEvent {
5931
5946
  this.draw.setPageDevicePixel();
5932
5947
  });
5933
5948
  this.draw = draw;
5934
- this.canvas = draw.getPage();
5935
5949
  this.options = draw.getOptions();
5936
5950
  this.canvasEvent = canvasEvent;
5937
5951
  this.cursor = null;
@@ -5948,18 +5962,18 @@ class GlobalEvent {
5948
5962
  this.addEvent();
5949
5963
  }
5950
5964
  addEvent() {
5951
- window.addEventListener("blur", this.recoverEffect);
5965
+ window.addEventListener("blur", this.clearSideEffect);
5952
5966
  document.addEventListener("keyup", this.setRangeStyle);
5953
- document.addEventListener("click", this.recoverEffect);
5967
+ document.addEventListener("click", this.clearSideEffect);
5954
5968
  document.addEventListener("mouseup", this.setCanvasEventAbility);
5955
5969
  document.addEventListener("wheel", this.setPageScale, { passive: false });
5956
5970
  document.addEventListener("visibilitychange", this._handleVisibilityChange);
5957
5971
  this.dprMediaQueryList.addEventListener("change", this._handleDprChange);
5958
5972
  }
5959
5973
  removeEvent() {
5960
- window.removeEventListener("blur", this.recoverEffect);
5974
+ window.removeEventListener("blur", this.clearSideEffect);
5961
5975
  document.removeEventListener("keyup", this.setRangeStyle);
5962
- document.removeEventListener("click", this.recoverEffect);
5976
+ document.removeEventListener("click", this.clearSideEffect);
5963
5977
  document.removeEventListener("mouseup", this.setCanvasEventAbility);
5964
5978
  document.removeEventListener("wheel", this.setPageScale);
5965
5979
  document.removeEventListener("visibilitychange", this._handleVisibilityChange);
@@ -6446,11 +6460,13 @@ class RangeManager {
6446
6460
  __publicField(this, "options");
6447
6461
  __publicField(this, "range");
6448
6462
  __publicField(this, "listener");
6463
+ __publicField(this, "eventBus");
6449
6464
  __publicField(this, "position");
6450
6465
  __publicField(this, "historyManager");
6451
6466
  this.draw = draw;
6452
6467
  this.options = draw.getOptions();
6453
6468
  this.listener = draw.getListener();
6469
+ this.eventBus = draw.getEventBus();
6454
6470
  this.position = draw.getPosition();
6455
6471
  this.historyManager = draw.getHistoryManager();
6456
6472
  this.range = {
@@ -6619,7 +6635,9 @@ class RangeManager {
6619
6635
  this.setRange(range.startIndex, range.endIndex, range.tableId, range.startTdIndex, range.endTdIndex, range.startTrIndex, range.endTrIndex);
6620
6636
  }
6621
6637
  setRangeStyle() {
6622
- if (!this.listener.rangeStyleChange)
6638
+ const rangeStyleChangeListener = this.listener.rangeStyleChange;
6639
+ const isSubscribeRangeStyleChange = this.eventBus.isSubscribe("rangeStyleChange");
6640
+ if (!rangeStyleChangeListener && !isSubscribeRangeStyleChange)
6623
6641
  return;
6624
6642
  const { startIndex, endIndex, isCrossRowCol } = this.range;
6625
6643
  if (!~startIndex && !~endIndex)
@@ -6655,7 +6673,7 @@ class RangeManager {
6655
6673
  const painter = !!this.draw.getPainterStyle();
6656
6674
  const undo = this.historyManager.isCanUndo();
6657
6675
  const redo = this.historyManager.isCanRedo();
6658
- this.listener.rangeStyleChange({
6676
+ const rangeStyle = {
6659
6677
  type,
6660
6678
  undo,
6661
6679
  redo,
@@ -6674,10 +6692,18 @@ class RangeManager {
6674
6692
  level,
6675
6693
  listType,
6676
6694
  listStyle
6677
- });
6695
+ };
6696
+ if (rangeStyleChangeListener) {
6697
+ rangeStyleChangeListener(rangeStyle);
6698
+ }
6699
+ if (isSubscribeRangeStyleChange) {
6700
+ this.eventBus.emit("rangeStyleChange", rangeStyle);
6701
+ }
6678
6702
  }
6679
6703
  recoveryRangeStyle() {
6680
- if (!this.listener.rangeStyleChange)
6704
+ const rangeStyleChangeListener = this.listener.rangeStyleChange;
6705
+ const isSubscribeRangeStyleChange = this.eventBus.isSubscribe("rangeStyleChange");
6706
+ if (!rangeStyleChangeListener && !isSubscribeRangeStyleChange)
6681
6707
  return;
6682
6708
  const font = this.options.defaultFont;
6683
6709
  const size = this.options.defaultSize;
@@ -6685,7 +6711,7 @@ class RangeManager {
6685
6711
  const painter = !!this.draw.getPainterStyle();
6686
6712
  const undo = this.historyManager.isCanUndo();
6687
6713
  const redo = this.historyManager.isCanRedo();
6688
- this.listener.rangeStyleChange({
6714
+ const rangeStyle = {
6689
6715
  type: null,
6690
6716
  undo,
6691
6717
  redo,
@@ -6704,7 +6730,13 @@ class RangeManager {
6704
6730
  level: null,
6705
6731
  listType: null,
6706
6732
  listStyle: null
6707
- });
6733
+ };
6734
+ if (rangeStyleChangeListener) {
6735
+ rangeStyleChangeListener(rangeStyle);
6736
+ }
6737
+ if (isSubscribeRangeStyleChange) {
6738
+ this.eventBus.emit("rangeStyleChange", rangeStyle);
6739
+ }
6708
6740
  }
6709
6741
  shrinkBoundary() {
6710
6742
  const elementList = this.draw.getElementList();
@@ -7202,7 +7234,7 @@ class TextParticle {
7202
7234
  let i = curIndex;
7203
7235
  while (i < elementList.length) {
7204
7236
  const element = elementList[i];
7205
- if (!LETTER_REG.test(element.value)) {
7237
+ if (element.type && element.type !== ElementType.TEXT || !LETTER_REG.test(element.value)) {
7206
7238
  endElement = element;
7207
7239
  break;
7208
7240
  }
@@ -8073,7 +8105,7 @@ class HyperlinkParticle {
8073
8105
  }
8074
8106
  }
8075
8107
  class Header {
8076
- constructor(draw) {
8108
+ constructor(draw, data2) {
8077
8109
  __publicField(this, "draw");
8078
8110
  __publicField(this, "position");
8079
8111
  __publicField(this, "options");
@@ -8083,7 +8115,7 @@ class Header {
8083
8115
  this.draw = draw;
8084
8116
  this.position = draw.getPosition();
8085
8117
  this.options = draw.getOptions();
8086
- this.elementList = draw.getHeaderElementList();
8118
+ this.elementList = data2 || [];
8087
8119
  this.rowList = [];
8088
8120
  this.positionList = [];
8089
8121
  }
@@ -8410,11 +8442,12 @@ class SelectControl {
8410
8442
  this.control.removePlaceholder(startIndex);
8411
8443
  const elementList = this.control.getElementList();
8412
8444
  const startElement = elementList[startIndex];
8445
+ const anchorElement = startElement.controlComponent === ControlComponent.PREFIX ? omitObject(startElement, EDITOR_ELEMENT_STYLE_ATTR) : startElement;
8413
8446
  const start = startIndex + 1;
8414
8447
  const data2 = splitText(valueSet.value);
8415
8448
  const draw = this.control.getDraw();
8416
8449
  for (let i = 0; i < data2.length; i++) {
8417
- const newElement = __spreadProps(__spreadValues({}, startElement), {
8450
+ const newElement = __spreadProps(__spreadValues({}, anchorElement), {
8418
8451
  value: data2[i],
8419
8452
  controlComponent: ControlComponent.VALUE
8420
8453
  });
@@ -8531,9 +8564,10 @@ class TextControl {
8531
8564
  this.control.removePlaceholder(startIndex);
8532
8565
  }
8533
8566
  const startElement = elementList[startIndex];
8567
+ const anchorElement = startElement.controlComponent === ControlComponent.PREFIX ? omitObject(startElement, EDITOR_ELEMENT_STYLE_ATTR) : startElement;
8534
8568
  const start = range.startIndex + 1;
8535
8569
  for (let i = 0; i < data2.length; i++) {
8536
- const newElement = __spreadProps(__spreadValues(__spreadValues({}, startElement), data2[i]), {
8570
+ const newElement = __spreadProps(__spreadValues(__spreadValues({}, anchorElement), data2[i]), {
8537
8571
  controlComponent: ControlComponent.VALUE
8538
8572
  });
8539
8573
  formatElementContext(elementList, [newElement], startIndex);
@@ -8614,11 +8648,13 @@ class Control {
8614
8648
  __publicField(this, "draw");
8615
8649
  __publicField(this, "range");
8616
8650
  __publicField(this, "listener");
8651
+ __publicField(this, "eventBus");
8617
8652
  __publicField(this, "options");
8618
8653
  __publicField(this, "activeControl");
8619
8654
  this.draw = draw;
8620
8655
  this.range = draw.getRange();
8621
8656
  this.listener = draw.getListener();
8657
+ this.eventBus = draw.getEventBus();
8622
8658
  this.options = draw.getOptions().control;
8623
8659
  this.activeControl = null;
8624
8660
  }
@@ -8698,17 +8734,24 @@ class Control {
8698
8734
  } else if (control.type === ControlType.CHECKBOX) {
8699
8735
  this.activeControl = new CheckboxControl(element, this);
8700
8736
  }
8701
- setTimeout(() => {
8737
+ nextTick(() => {
8702
8738
  var _a;
8703
- if (this.listener.controlChange) {
8704
- let payload;
8705
- const value = (_a = this.activeControl) == null ? void 0 : _a.getValue();
8706
- if (value && value.length) {
8707
- payload = zipElementList(value)[0].control;
8708
- } else {
8709
- payload = pickElementAttr(deepClone(element)).control;
8710
- }
8711
- this.listener.controlChange(payload);
8739
+ const controlChangeListener = this.listener.controlChange;
8740
+ const isSubscribeControlChange = this.eventBus.isSubscribe("controlChange");
8741
+ if (!controlChangeListener && !isSubscribeControlChange)
8742
+ return;
8743
+ let payload;
8744
+ const value = (_a = this.activeControl) == null ? void 0 : _a.getValue();
8745
+ if (value && value.length) {
8746
+ payload = zipElementList(value)[0].control;
8747
+ } else {
8748
+ payload = pickElementAttr(deepClone(element)).control;
8749
+ }
8750
+ if (controlChangeListener) {
8751
+ controlChangeListener(payload);
8752
+ }
8753
+ if (isSubscribeControlChange) {
8754
+ this.eventBus.emit("controlChange", payload);
8712
8755
  }
8713
8756
  });
8714
8757
  }
@@ -8718,9 +8761,16 @@ class Control {
8718
8761
  this.activeControl.destroy();
8719
8762
  }
8720
8763
  this.activeControl = null;
8721
- setTimeout(() => {
8722
- if (this.listener.controlChange) {
8723
- this.listener.controlChange(null);
8764
+ nextTick(() => {
8765
+ const controlChangeListener = this.listener.controlChange;
8766
+ const isSubscribeControlChange = this.eventBus.isSubscribe("controlChange");
8767
+ if (!controlChangeListener && !isSubscribeControlChange)
8768
+ return;
8769
+ if (controlChangeListener) {
8770
+ controlChangeListener(null);
8771
+ }
8772
+ if (isSubscribeControlChange) {
8773
+ this.eventBus.emit("controlChange", null);
8724
8774
  }
8725
8775
  });
8726
8776
  }
@@ -10226,6 +10276,10 @@ class Zone {
10226
10276
  if (listener.zoneChange) {
10227
10277
  listener.zoneChange(payload);
10228
10278
  }
10279
+ const eventBus = this.draw.getEventBus();
10280
+ if (eventBus.isSubscribe("zoneChange")) {
10281
+ eventBus.emit("zoneChange", payload);
10282
+ }
10229
10283
  });
10230
10284
  }
10231
10285
  drawZoneIndicator() {
@@ -10290,7 +10344,7 @@ class Zone {
10290
10344
  }
10291
10345
  }
10292
10346
  class Footer {
10293
- constructor(draw) {
10347
+ constructor(draw, data2) {
10294
10348
  __publicField(this, "draw");
10295
10349
  __publicField(this, "position");
10296
10350
  __publicField(this, "options");
@@ -10300,7 +10354,7 @@ class Footer {
10300
10354
  this.draw = draw;
10301
10355
  this.position = draw.getPosition();
10302
10356
  this.options = draw.getOptions();
10303
- this.elementList = draw.getFooterElementList();
10357
+ this.elementList = data2 || [];
10304
10358
  this.rowList = [];
10305
10359
  this.positionList = [];
10306
10360
  }
@@ -10553,7 +10607,7 @@ class Placeholder {
10553
10607
  }
10554
10608
  }
10555
10609
  class Draw {
10556
- constructor(rootContainer, options, data2, listener) {
10610
+ constructor(rootContainer, options, data2, listener, eventBus) {
10557
10611
  __publicField(this, "container");
10558
10612
  __publicField(this, "pageContainer");
10559
10613
  __publicField(this, "pageList");
@@ -10564,10 +10618,9 @@ class Draw {
10564
10618
  __publicField(this, "options");
10565
10619
  __publicField(this, "position");
10566
10620
  __publicField(this, "zone");
10567
- __publicField(this, "headerElementList");
10568
10621
  __publicField(this, "elementList");
10569
- __publicField(this, "footerElementList");
10570
10622
  __publicField(this, "listener");
10623
+ __publicField(this, "eventBus");
10571
10624
  __publicField(this, "i18n");
10572
10625
  __publicField(this, "canvasEvent");
10573
10626
  __publicField(this, "globalEvent");
@@ -10619,10 +10672,9 @@ class Draw {
10619
10672
  this.pagePixelRatio = null;
10620
10673
  this.mode = options.mode;
10621
10674
  this.options = options;
10622
- this.headerElementList = data2.header || [];
10623
10675
  this.elementList = data2.main;
10624
- this.footerElementList = data2.footer || [];
10625
10676
  this.listener = listener;
10677
+ this.eventBus = eventBus;
10626
10678
  this._formatContainer();
10627
10679
  this.pageContainer = this._createPageContainer();
10628
10680
  this._createPage(0);
@@ -10646,8 +10698,8 @@ class Draw {
10646
10698
  this.pageNumber = new PageNumber(this);
10647
10699
  this.waterMark = new Watermark(this);
10648
10700
  this.placeholder = new Placeholder(this);
10649
- this.header = new Header(this);
10650
- this.footer = new Footer(this);
10701
+ this.header = new Header(this, data2.header);
10702
+ this.footer = new Footer(this, data2.footer);
10651
10703
  this.hyperlinkParticle = new HyperlinkParticle(this);
10652
10704
  this.dateParticle = new DateParticle(this);
10653
10705
  this.separatorParticle = new SeparatorParticle();
@@ -10674,7 +10726,10 @@ class Draw {
10674
10726
  this.visiblePageNoList = [];
10675
10727
  this.intersectionPageNo = 0;
10676
10728
  this.lazyRenderIntersectionObserver = null;
10677
- this.render({ isSetCursor: false });
10729
+ this.render({
10730
+ isInit: true,
10731
+ isSetCursor: false
10732
+ });
10678
10733
  }
10679
10734
  getMode() {
10680
10735
  return this.mode;
@@ -10764,6 +10819,9 @@ class Draw {
10764
10819
  if (this.listener.visiblePageNoListChange) {
10765
10820
  this.listener.visiblePageNoListChange(this.visiblePageNoList);
10766
10821
  }
10822
+ if (this.eventBus.isSubscribe("visiblePageNoListChange")) {
10823
+ this.eventBus.emit("visiblePageNoListChange", this.visiblePageNoList);
10824
+ }
10767
10825
  }
10768
10826
  getIntersectionPageNo() {
10769
10827
  return this.intersectionPageNo;
@@ -10773,6 +10831,9 @@ class Draw {
10773
10831
  if (this.listener.intersectionPageNoChange) {
10774
10832
  this.listener.intersectionPageNoChange(this.intersectionPageNo);
10775
10833
  }
10834
+ if (this.eventBus.isSubscribe("intersectionPageNoChange")) {
10835
+ this.eventBus.emit("intersectionPageNoChange", this.intersectionPageNo);
10836
+ }
10776
10837
  }
10777
10838
  getPageNo() {
10778
10839
  return this.pageNo;
@@ -10833,7 +10894,7 @@ class Draw {
10833
10894
  return this.range;
10834
10895
  }
10835
10896
  getHeaderElementList() {
10836
- return this.headerElementList;
10897
+ return this.header.getElementList();
10837
10898
  }
10838
10899
  getTableElementList(sourceElementList) {
10839
10900
  const positionContext = this.position.getPositionContext();
@@ -10852,10 +10913,10 @@ class Draw {
10852
10913
  getOriginalElementList() {
10853
10914
  const zoneManager = this.getZone();
10854
10915
  if (zoneManager.isHeaderActive()) {
10855
- return this.header.getElementList();
10916
+ return this.getHeaderElementList();
10856
10917
  }
10857
10918
  if (zoneManager.isFooterActive()) {
10858
- return this.footer.getElementList();
10919
+ return this.getFooterElementList();
10859
10920
  }
10860
10921
  return this.elementList;
10861
10922
  }
@@ -10863,7 +10924,7 @@ class Draw {
10863
10924
  return this.elementList;
10864
10925
  }
10865
10926
  getFooterElementList() {
10866
- return this.footerElementList;
10927
+ return this.footer.getElementList();
10867
10928
  }
10868
10929
  insertElementList(payload) {
10869
10930
  if (!payload.length)
@@ -10948,6 +11009,9 @@ class Draw {
10948
11009
  getListener() {
10949
11010
  return this.listener;
10950
11011
  }
11012
+ getEventBus() {
11013
+ return this.eventBus;
11014
+ }
10951
11015
  getCursor() {
10952
11016
  return this.cursor;
10953
11017
  }
@@ -11060,6 +11124,9 @@ class Draw {
11060
11124
  if (this.listener.pageModeChange) {
11061
11125
  this.listener.pageModeChange(payload);
11062
11126
  }
11127
+ if (this.eventBus.isSubscribe("pageModeChange")) {
11128
+ this.eventBus.emit("pageModeChange", payload);
11129
+ }
11063
11130
  });
11064
11131
  }
11065
11132
  setPageScale(payload) {
@@ -11160,9 +11227,9 @@ class Draw {
11160
11227
  mainElementList = this.pageRowList[pageNo].flatMap((row) => row.elementList);
11161
11228
  }
11162
11229
  const data2 = {
11163
- header: zipElementList(this.headerElementList),
11230
+ header: zipElementList(this.getHeaderElementList()),
11164
11231
  main: zipElementList(mainElementList),
11165
- footer: zipElementList(this.footerElementList)
11232
+ footer: zipElementList(this.getFooterElementList())
11166
11233
  };
11167
11234
  return {
11168
11235
  version,
@@ -11806,7 +11873,7 @@ class Draw {
11806
11873
  render(payload) {
11807
11874
  var _a;
11808
11875
  const { header, footer } = this.options;
11809
- const { isSubmitHistory = true, isSetCursor = true, isCompute = true, isLazy = true } = payload || {};
11876
+ const { isSubmitHistory = true, isSetCursor = true, isCompute = true, isLazy = true, isInit = false } = payload || {};
11810
11877
  let { curIndex } = payload || {};
11811
11878
  const innerWidth = this.getInnerWidth();
11812
11879
  const isPagingMode = this.getIsPagingMode();
@@ -11893,8 +11960,16 @@ class Draw {
11893
11960
  if (this.listener.pageSizeChange) {
11894
11961
  this.listener.pageSizeChange(this.pageRowList.length);
11895
11962
  }
11896
- if (this.listener.contentChange && isSubmitHistory) {
11897
- this.listener.contentChange();
11963
+ if (this.eventBus.isSubscribe("pageSizeChange")) {
11964
+ this.eventBus.emit("pageSizeChange", this.pageRowList.length);
11965
+ }
11966
+ if (isSubmitHistory && !isInit) {
11967
+ if (this.listener.contentChange) {
11968
+ this.listener.contentChange();
11969
+ }
11970
+ if (this.eventBus.isSubscribe("contentChange")) {
11971
+ this.eventBus.emit("contentChange");
11972
+ }
11898
11973
  }
11899
11974
  });
11900
11975
  }
@@ -11979,9 +12054,11 @@ class Command {
11979
12054
  __publicField(this, "executeSetLocale");
11980
12055
  __publicField(this, "executeLocationCatalog");
11981
12056
  __publicField(this, "executeWordTool");
12057
+ __publicField(this, "executeSetHTML");
11982
12058
  __publicField(this, "getCatalog");
11983
12059
  __publicField(this, "getImage");
11984
12060
  __publicField(this, "getValue");
12061
+ __publicField(this, "getHTML");
11985
12062
  __publicField(this, "getWordCount");
11986
12063
  __publicField(this, "getRangeText");
11987
12064
  __publicField(this, "getRangeContext");
@@ -12059,8 +12136,10 @@ class Command {
12059
12136
  this.executeSetLocale = adapt.setLocale.bind(adapt);
12060
12137
  this.executeLocationCatalog = adapt.locationCatalog.bind(adapt);
12061
12138
  this.executeWordTool = adapt.wordTool.bind(adapt);
12139
+ this.executeSetHTML = adapt.setHTML.bind(adapt);
12062
12140
  this.getImage = adapt.getImage.bind(adapt);
12063
12141
  this.getValue = adapt.getValue.bind(adapt);
12142
+ this.getHTML = adapt.getHTML.bind(adapt);
12064
12143
  this.getWordCount = adapt.getWordCount.bind(adapt);
12065
12144
  this.getRangeText = adapt.getRangeText.bind(adapt);
12066
12145
  this.getRangeContext = adapt.getRangeContext.bind(adapt);
@@ -13633,6 +13712,17 @@ class CommandAdapt {
13633
13712
  getValue(options) {
13634
13713
  return this.draw.getValue(options);
13635
13714
  }
13715
+ getHTML() {
13716
+ const options = this.options;
13717
+ const headerElementList = this.draw.getHeaderElementList();
13718
+ const mainElementList = this.draw.getOriginalMainElementList();
13719
+ const footerElementList = this.draw.getFooterElementList();
13720
+ return {
13721
+ header: createDomFromElementList(headerElementList, options).innerHTML,
13722
+ main: createDomFromElementList(mainElementList, options).innerHTML,
13723
+ footer: createDomFromElementList(footerElementList, options).innerHTML
13724
+ };
13725
+ }
13636
13726
  getWordCount() {
13637
13727
  return this.workerManager.getWordCount();
13638
13728
  }
@@ -13783,6 +13873,18 @@ class CommandAdapt {
13783
13873
  });
13784
13874
  }
13785
13875
  }
13876
+ setHTML(payload) {
13877
+ const { header, main, footer } = payload;
13878
+ const innerWidth = this.draw.getOriginalInnerWidth();
13879
+ const getElementList = (htmlText) => htmlText !== void 0 ? getElementListByHTML(htmlText, {
13880
+ innerWidth
13881
+ }) : void 0;
13882
+ this.setValue({
13883
+ header: getElementList(header),
13884
+ main: getElementList(main),
13885
+ footer: getElementList(footer)
13886
+ });
13887
+ }
13786
13888
  }
13787
13889
  class Listener {
13788
13890
  constructor() {
@@ -14186,9 +14288,10 @@ class ContextMenu {
14186
14288
  }
14187
14289
  evt.preventDefault();
14188
14290
  });
14189
- __publicField(this, "_handleEffect", (evt) => {
14291
+ __publicField(this, "_handleSideEffect", (evt) => {
14190
14292
  if (this.contextMenuContainerList.length) {
14191
- const contextMenuDom = findParent(evt.target, (node) => !!node && node.nodeType === 1 && node.getAttribute(EDITOR_COMPONENT) === EditorComponent.CONTEXTMENU, true);
14293
+ const target = (evt == null ? void 0 : evt.composedPath()[0]) || evt.target;
14294
+ const contextMenuDom = findParent(target, (node) => !!node && node.nodeType === 1 && node.getAttribute(EDITOR_COMPONENT) === EditorComponent.CONTEXTMENU, true);
14192
14295
  if (!contextMenuDom) {
14193
14296
  this.dispose();
14194
14297
  }
@@ -14214,11 +14317,11 @@ class ContextMenu {
14214
14317
  }
14215
14318
  _addEvent() {
14216
14319
  this.container.addEventListener("contextmenu", this._proxyContextMenuEvent);
14217
- document.addEventListener("mousedown", this._handleEffect);
14320
+ document.addEventListener("mousedown", this._handleSideEffect);
14218
14321
  }
14219
14322
  removeEvent() {
14220
14323
  this.container.removeEventListener("contextmenu", this._proxyContextMenuEvent);
14221
- document.removeEventListener("mousedown", this._handleEffect);
14324
+ document.removeEventListener("mousedown", this._handleSideEffect);
14222
14325
  }
14223
14326
  _getContext() {
14224
14327
  const isReadonly = this.draw.isReadonly();
@@ -14614,10 +14717,48 @@ class Plugin {
14614
14717
  pluginFunction(this.editor, options);
14615
14718
  }
14616
14719
  }
14720
+ class EventBus {
14721
+ constructor() {
14722
+ __publicField(this, "eventHub");
14723
+ this.eventHub = new Map();
14724
+ }
14725
+ on(eventName, callback) {
14726
+ if (!eventName || typeof callback !== "function")
14727
+ return;
14728
+ const eventSet = this.eventHub.get(eventName) || new Set();
14729
+ eventSet.add(callback);
14730
+ this.eventHub.set(eventName, eventSet);
14731
+ }
14732
+ emit(eventName, payload) {
14733
+ if (!eventName)
14734
+ return;
14735
+ const callBackSet = this.eventHub.get(eventName);
14736
+ if (!callBackSet)
14737
+ return;
14738
+ if (callBackSet.size === 1) {
14739
+ const callBack = [...callBackSet];
14740
+ return callBack[0](payload);
14741
+ }
14742
+ callBackSet.forEach((callBack) => callBack(payload));
14743
+ }
14744
+ off(eventName, callback) {
14745
+ if (!eventName || typeof callback !== "function")
14746
+ return;
14747
+ const callBackSet = this.eventHub.get(eventName);
14748
+ if (!callBackSet)
14749
+ return;
14750
+ callBackSet.delete(callback);
14751
+ }
14752
+ isSubscribe(eventName) {
14753
+ const eventSet = this.eventHub.get(eventName);
14754
+ return !!eventSet && eventSet.size > 0;
14755
+ }
14756
+ }
14617
14757
  class Editor {
14618
14758
  constructor(container, data2, options = {}) {
14619
14759
  __publicField(this, "command");
14620
14760
  __publicField(this, "listener");
14761
+ __publicField(this, "eventBus");
14621
14762
  __publicField(this, "register");
14622
14763
  __publicField(this, "destroy");
14623
14764
  __publicField(this, "use");
@@ -14700,11 +14841,12 @@ class Editor {
14700
14841
  });
14701
14842
  });
14702
14843
  this.listener = new Listener();
14844
+ this.eventBus = new EventBus();
14703
14845
  const draw = new Draw(container, editorOptions, {
14704
14846
  header: headerElementList,
14705
14847
  main: mainElementList,
14706
14848
  footer: footerElementList
14707
- }, this.listener);
14849
+ }, this.listener, this.eventBus);
14708
14850
  this.command = new Command(new CommandAdapt(draw));
14709
14851
  const contextMenu = new ContextMenu(draw, this.command);
14710
14852
  const shortcut = new Shortcut(draw, this.command);