@hufe921/canvas-editor 0.9.65 → 0.9.66

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.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 .resizer-handle{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-size-view{display:flex;align-items:center;height:20px;white-space:nowrap;position:absolute;top:-30px;left:0;opacity:.9;background-color:#000;padding:0 5px;border-radius:4px}.ce-resizer-size-view span{color:#fff;font-size:12px}.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-contextmenu-border-td{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTIuNSAzYS41LjUgMCAwMS41LS41aDExYS41LjUgMCAwMS41LjV2MTFhLjUuNSAwIDAxLS41LjVIM2EuNS41IDAgMDEtLjUtLjVWM3oiIHN0cm9rZT0iI0FBQUNCMCIvPjxwYXRoIHN0cm9rZT0iIzNENDc1NyIgZD0iTTguNSAyLjUgdjYgaC02Ii8+PC9zdmc+)}.ce-contextmenu-border-td-top{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTIuNSAzYS41LjUgMCAwMS41LS41aDExYS41LjUgMCAwMS41LjV2MTFhLjUuNSAwIDAxLS41LjVIM2EuNS41IDAgMDEtLjUtLjVWM3oiIHN0cm9rZT0iI0FBQUNCMCIvPjxwYXRoIHN0cm9rZT0iIzNENDc1NyIgc3Ryb2tlLXdpZHRoPSIyIiBkPSJNMi41IDMgaDEyIi8+PC9zdmc+)}.ce-contextmenu-border-td-left{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTIuNSAzYS41LjUgMCAwMS41LS41aDExYS41LjUgMCAwMS41LjV2MTFhLjUuNSAwIDAxLS41LjVIM2EuNS41IDAgMDEtLjUtLjVWM3oiIHN0cm9rZT0iI0FBQUNCMCIvPjxwYXRoIHN0cm9rZT0iIzNENDc1NyIgc3Ryb2tlLXdpZHRoPSIyIiBkPSJNMyAzIHYxMSIvPjwvc3ZnPg==)}.ce-contextmenu-border-td-bottom{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTIuNSAzYS41LjUgMCAwMS41LS41aDExYS41LjUgMCAwMS41LjV2MTFhLjUuNSAwIDAxLS41LjVIM2EuNS41IDAgMDEtLjUtLjVWM3oiIHN0cm9rZT0iI0FBQUNCMCIvPjxwYXRoIHN0cm9rZT0iIzNENDc1NyIgc3Ryb2tlLXdpZHRoPSIyIiBkPSJNMi41IDE0IGgxMiIvPjwvc3ZnPg==)}.ce-contextmenu-border-td-right{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTIuNSAzYS41LjUgMCAwMS41LS41aDExYS41LjUgMCAwMS41LjV2MTFhLjUuNSAwIDAxLS41LjVIM2EuNS41IDAgMDEtLjUtLjVWM3oiIHN0cm9rZT0iI0FBQUNCMCIvPjxwYXRoIHN0cm9rZT0iIzNENDc1NyIgc3Ryb2tlLXdpZHRoPSIyIiBkPSJNMTQgMyB2MTEiLz48L3N2Zz4=)}.ce-contextmenu-border-td-forward{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTIuNSAzYS41LjUgMCAwMS41LS41aDExYS41LjUgMCAwMS41LjV2MTFhLjUuNSAwIDAxLS41LjVIM2EuNS41IDAgMDEtLjUtLjVWM3oiIHN0cm9rZT0iI0FBQUNCMCIgLz48cGF0aCBzdHJva2U9IiMzRDQ3NTciIGQ9Ik0xNCAzIGwtMTEgMTEiIC8+PC9zdmc+)}.ce-contextmenu-border-td-back{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTIuNSAzYS41LjUgMCAwMS41LS41aDExYS41LjUgMCAwMS41LjV2MTFhLjUuNSAwIDAxLS41LjVIM2EuNS41IDAgMDEtLjUtLjVWM3oiIHN0cm9rZT0iI0FBQUNCMCIgLz48cGF0aCBzdHJva2U9IiMzRDQ3NTciIGQ9Ik0zIDMgbDExIDExIiAvPjwvc3ZnPg==)}.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-zone-tip{display:none;align-items:center;height:30px;white-space:nowrap;position:fixed;opacity:.9;background-color:#000;padding:0 5px;border-radius:4px;z-index:9;transition:all .3s;outline:none;user-select:none;pointer-events:none;transform:translate(10px,10px)}.ce-zone-tip.show{display:flex}.ce-zone-tip span{color:#fff;font-size:12px}.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;caret-color:transparent;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;pointer-events:none}.ce-resizer-selection .resizer-handle{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;pointer-events:initial}.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-size-view{display:flex;align-items:center;height:20px;white-space:nowrap;position:absolute;z-index:9;top:-30px;left:0;opacity:.9;background-color:#000;padding:0 5px;border-radius:4px}.ce-resizer-size-view span{color:#fff;font-size:12px}.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-contextmenu-border-td{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTIuNSAzYS41LjUgMCAwMS41LS41aDExYS41LjUgMCAwMS41LjV2MTFhLjUuNSAwIDAxLS41LjVIM2EuNS41IDAgMDEtLjUtLjVWM3oiIHN0cm9rZT0iI0FBQUNCMCIvPjxwYXRoIHN0cm9rZT0iIzNENDc1NyIgZD0iTTguNSAyLjUgdjYgaC02Ii8+PC9zdmc+)}.ce-contextmenu-border-td-top{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTIuNSAzYS41LjUgMCAwMS41LS41aDExYS41LjUgMCAwMS41LjV2MTFhLjUuNSAwIDAxLS41LjVIM2EuNS41IDAgMDEtLjUtLjVWM3oiIHN0cm9rZT0iI0FBQUNCMCIvPjxwYXRoIHN0cm9rZT0iIzNENDc1NyIgc3Ryb2tlLXdpZHRoPSIyIiBkPSJNMi41IDMgaDEyIi8+PC9zdmc+)}.ce-contextmenu-border-td-left{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTIuNSAzYS41LjUgMCAwMS41LS41aDExYS41LjUgMCAwMS41LjV2MTFhLjUuNSAwIDAxLS41LjVIM2EuNS41IDAgMDEtLjUtLjVWM3oiIHN0cm9rZT0iI0FBQUNCMCIvPjxwYXRoIHN0cm9rZT0iIzNENDc1NyIgc3Ryb2tlLXdpZHRoPSIyIiBkPSJNMyAzIHYxMSIvPjwvc3ZnPg==)}.ce-contextmenu-border-td-bottom{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTIuNSAzYS41LjUgMCAwMS41LS41aDExYS41LjUgMCAwMS41LjV2MTFhLjUuNSAwIDAxLS41LjVIM2EuNS41IDAgMDEtLjUtLjVWM3oiIHN0cm9rZT0iI0FBQUNCMCIvPjxwYXRoIHN0cm9rZT0iIzNENDc1NyIgc3Ryb2tlLXdpZHRoPSIyIiBkPSJNMi41IDE0IGgxMiIvPjwvc3ZnPg==)}.ce-contextmenu-border-td-right{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTIuNSAzYS41LjUgMCAwMS41LS41aDExYS41LjUgMCAwMS41LjV2MTFhLjUuNSAwIDAxLS41LjVIM2EuNS41IDAgMDEtLjUtLjVWM3oiIHN0cm9rZT0iI0FBQUNCMCIvPjxwYXRoIHN0cm9rZT0iIzNENDc1NyIgc3Ryb2tlLXdpZHRoPSIyIiBkPSJNMTQgMyB2MTEiLz48L3N2Zz4=)}.ce-contextmenu-border-td-forward{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTIuNSAzYS41LjUgMCAwMS41LS41aDExYS41LjUgMCAwMS41LjV2MTFhLjUuNSAwIDAxLS41LjVIM2EuNS41IDAgMDEtLjUtLjVWM3oiIHN0cm9rZT0iI0FBQUNCMCIgLz48cGF0aCBzdHJva2U9IiMzRDQ3NTciIGQ9Ik0xNCAzIGwtMTEgMTEiIC8+PC9zdmc+)}.ce-contextmenu-border-td-back{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTIuNSAzYS41LjUgMCAwMS41LS41aDExYS41LjUgMCAwMS41LjV2MTFhLjUuNSAwIDAxLS41LjVIM2EuNS41IDAgMDEtLjUtLjVWM3oiIHN0cm9rZT0iI0FBQUNCMCIgLz48cGF0aCBzdHJva2U9IiMzRDQ3NTciIGQ9Ik0zIDMgbDExIDExIiAvPjwvc3ZnPg==)}.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-zone-tip{display:none;align-items:center;height:30px;white-space:nowrap;position:fixed;opacity:.9;background-color:#000;padding:0 5px;border-radius:4px;z-index:9;transition:all .3s;outline:none;user-select:none;pointer-events:none;transform:translate(10px,10px)}.ce-zone-tip.show{display:flex}.ce-zone-tip span{color:#fff;font-size:12px}.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;caret-color:transparent;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}}.ce-float-image{position:absolute;opacity:.5;pointer-events:none}')),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.65";
26
+ const version = "0.9.66";
27
27
  var MaxHeightRatio;
28
28
  (function(MaxHeightRatio2) {
29
29
  MaxHeightRatio2["HALF"] = "half";
@@ -35,6 +35,13 @@ var NumberType;
35
35
  NumberType2["ARABIC"] = "arabic";
36
36
  NumberType2["CHINESE"] = "chinese";
37
37
  })(NumberType || (NumberType = {}));
38
+ var ImageDisplay;
39
+ (function(ImageDisplay2) {
40
+ ImageDisplay2["INLINE"] = "inline";
41
+ ImageDisplay2["BLOCK"] = "block";
42
+ ImageDisplay2["FLOAT_TOP"] = "float-top";
43
+ ImageDisplay2["FLOAT_BOTTOM"] = "float-bottom";
44
+ })(ImageDisplay || (ImageDisplay = {}));
38
45
  const ZERO = "\u200B";
39
46
  const WRAP = "\n";
40
47
  const NBSP = " ";
@@ -413,12 +420,15 @@ const EDITOR_ELEMENT_ZIP_ATTR = [
413
420
  "listStyle",
414
421
  "listWrap",
415
422
  "groupIds",
416
- "conceptId"
423
+ "conceptId",
424
+ "imgDisplay",
425
+ "imgFloatPosition"
417
426
  ];
418
427
  const TABLE_TD_ZIP_ATTR = [
419
428
  "verticalAlign",
420
429
  "backgroundColor",
421
- "borderType"
430
+ "borderTypes",
431
+ "slashTypes"
422
432
  ];
423
433
  const TABLE_CONTEXT_ATTR = [
424
434
  "tdId",
@@ -460,9 +470,55 @@ class ImageParticle {
460
470
  __publicField(this, "draw");
461
471
  __publicField(this, "options");
462
472
  __publicField(this, "imageCache");
473
+ __publicField(this, "container");
474
+ __publicField(this, "floatImageContainer");
475
+ __publicField(this, "floatImage");
463
476
  this.draw = draw;
464
477
  this.options = draw.getOptions();
478
+ this.container = draw.getContainer();
465
479
  this.imageCache = new Map();
480
+ this.floatImageContainer = null;
481
+ this.floatImage = null;
482
+ }
483
+ createFloatImage(element) {
484
+ const { scale } = this.options;
485
+ let floatImageContainer = this.floatImageContainer;
486
+ let floatImage = this.floatImage;
487
+ if (!floatImageContainer) {
488
+ floatImageContainer = document.createElement("div");
489
+ floatImageContainer.classList.add(`${EDITOR_PREFIX}-float-image`);
490
+ this.container.append(floatImageContainer);
491
+ this.floatImageContainer = floatImageContainer;
492
+ }
493
+ if (!floatImage) {
494
+ floatImage = document.createElement("img");
495
+ floatImageContainer.append(floatImage);
496
+ this.floatImage = floatImage;
497
+ }
498
+ floatImageContainer.style.display = "none";
499
+ floatImage.style.width = `${element.width * scale}px`;
500
+ floatImage.style.height = `${element.height * scale}px`;
501
+ const height = this.draw.getHeight();
502
+ const pageGap = this.draw.getPageGap();
503
+ const preY = this.draw.getPageNo() * (height + pageGap);
504
+ const imgFloatPosition = element.imgFloatPosition;
505
+ floatImageContainer.style.left = `${imgFloatPosition.x}px`;
506
+ floatImageContainer.style.top = `${preY + imgFloatPosition.y}px`;
507
+ floatImage.src = element.value;
508
+ }
509
+ dragFloatImage(movementX, movementY) {
510
+ if (!this.floatImageContainer)
511
+ return;
512
+ this.floatImageContainer.style.display = "block";
513
+ const x = parseFloat(this.floatImageContainer.style.left) + movementX;
514
+ const y = parseFloat(this.floatImageContainer.style.top) + movementY;
515
+ this.floatImageContainer.style.left = `${x}px`;
516
+ this.floatImageContainer.style.top = `${y}px`;
517
+ }
518
+ destroyFloatImage() {
519
+ if (this.floatImageContainer) {
520
+ this.floatImageContainer.style.display = "none";
521
+ }
466
522
  }
467
523
  addImageObserver(promise) {
468
524
  this.draw.getImageObserver().add(promise);
@@ -497,9 +553,17 @@ class ImageParticle {
497
553
  img.setAttribute("crossOrigin", "Anonymous");
498
554
  img.src = element.value;
499
555
  img.onload = () => {
500
- ctx.drawImage(img, x, y, width, height);
501
556
  this.imageCache.set(element.id, img);
502
557
  resolve(element);
558
+ if (element.imgDisplay === ImageDisplay.FLOAT_BOTTOM) {
559
+ this.draw.render({
560
+ isCompute: false,
561
+ isSetCursor: false,
562
+ isSubmitHistory: false
563
+ });
564
+ } else {
565
+ ctx.drawImage(img, x, y, width, height);
566
+ }
503
567
  };
504
568
  img.onerror = (error) => {
505
569
  const fallbackImage = this.getFallbackImage(width, height);
@@ -3607,11 +3671,6 @@ var ControlComponent;
3607
3671
  ControlComponent2["VALUE"] = "value";
3608
3672
  ControlComponent2["CHECKBOX"] = "checkbox";
3609
3673
  })(ControlComponent || (ControlComponent = {}));
3610
- var ImageDisplay;
3611
- (function(ImageDisplay2) {
3612
- ImageDisplay2["INLINE"] = "inline";
3613
- ImageDisplay2["BLOCK"] = "block";
3614
- })(ImageDisplay || (ImageDisplay = {}));
3615
3674
  var ControlIndentation;
3616
3675
  (function(ControlIndentation2) {
3617
3676
  ControlIndentation2["ROW_START"] = "rowStart";
@@ -5165,6 +5224,15 @@ class CheckboxControl {
5165
5224
  return -1;
5166
5225
  }
5167
5226
  }
5227
+ function setRangeCache(host) {
5228
+ const draw = host.getDraw();
5229
+ const position = draw.getPosition();
5230
+ const rangeManager = draw.getRange();
5231
+ host.isAllowDrag = true;
5232
+ host.cacheRange = deepClone(rangeManager.getRange());
5233
+ host.cacheElementList = draw.getElementList();
5234
+ host.cachePositionList = position.getPositionList();
5235
+ }
5168
5236
  function mousedown(evt, host) {
5169
5237
  var _a;
5170
5238
  if (evt.button === MouseEventButton.RIGHT)
@@ -5178,10 +5246,7 @@ function mousedown(evt, host) {
5178
5246
  if (!isReadonly && range.startIndex !== range.endIndex) {
5179
5247
  const isPointInRange = rangeManager.getIsPointInRange(evt.offsetX, evt.offsetY);
5180
5248
  if (isPointInRange) {
5181
- host.isAllowDrag = true;
5182
- host.cacheRange = deepClone(range);
5183
- host.cacheElementList = draw.getElementList();
5184
- host.cachePositionList = position.getPositionList();
5249
+ setRangeCache(host);
5185
5250
  return;
5186
5251
  }
5187
5252
  }
@@ -5200,7 +5265,9 @@ function mousedown(evt, host) {
5200
5265
  return;
5201
5266
  const { index: index2, isDirectHit, isCheckbox, isImage, isTable, tdValueIndex, hitLineStartIndex } = positionResult;
5202
5267
  host.mouseDownStartPosition = __spreadProps(__spreadValues({}, positionResult), {
5203
- index: isTable ? tdValueIndex : index2
5268
+ index: isTable ? tdValueIndex : index2,
5269
+ x: evt.offsetX,
5270
+ y: evt.offsetY
5204
5271
  });
5205
5272
  const elementList = draw.getElementList();
5206
5273
  const positionList = position.getPositionList();
@@ -5255,6 +5322,10 @@ function mousedown(evt, host) {
5255
5322
  draw.getCursor().drawCursor({
5256
5323
  isShow: false
5257
5324
  });
5325
+ setRangeCache(host);
5326
+ if (curElement.imgDisplay === ImageDisplay.FLOAT_TOP || curElement.imgDisplay === ImageDisplay.FLOAT_BOTTOM) {
5327
+ draw.getImageParticle().createFloatImage(curElement);
5328
+ }
5258
5329
  }
5259
5330
  const tableTool = draw.getTableTool();
5260
5331
  tableTool.dispose();
@@ -5284,6 +5355,19 @@ function createDragId(element) {
5284
5355
  function getElementIndexByDragId(dragId, elementList) {
5285
5356
  return elementList.findIndex((el) => el.dragId === dragId);
5286
5357
  }
5358
+ function moveImgPosition(element, evt, host) {
5359
+ const draw = host.getDraw();
5360
+ if (element.imgDisplay === ImageDisplay.FLOAT_TOP || element.imgDisplay === ImageDisplay.FLOAT_BOTTOM) {
5361
+ const moveX = evt.offsetX - host.mouseDownStartPosition.x;
5362
+ const moveY = evt.offsetY - host.mouseDownStartPosition.y;
5363
+ const imgFloatPosition = element.imgFloatPosition;
5364
+ element.imgFloatPosition = {
5365
+ x: imgFloatPosition.x + moveX,
5366
+ y: imgFloatPosition.y + moveY
5367
+ };
5368
+ }
5369
+ draw.getImageParticle().destroyFloatImage();
5370
+ }
5287
5371
  function mouseup(evt, host) {
5288
5372
  var _a, _b, _c;
5289
5373
  if (host.isAllowDrop) {
@@ -5297,20 +5381,38 @@ function mouseup(evt, host) {
5297
5381
  const cacheElementList = host.cacheElementList;
5298
5382
  const cachePositionList = host.cachePositionList;
5299
5383
  const range = rangeManager.getRange();
5300
- if (range.startIndex >= cacheRange.startIndex && range.endIndex <= cacheRange.endIndex) {
5384
+ const isCacheRangeCollapsed = cacheRange.startIndex === cacheRange.endIndex;
5385
+ const cacheStartIndex = isCacheRangeCollapsed ? cacheRange.startIndex - 1 : cacheRange.startIndex;
5386
+ const cacheEndIndex = cacheRange.endIndex;
5387
+ if (range.startIndex >= cacheStartIndex && range.endIndex <= cacheEndIndex) {
5388
+ draw.clearSideEffect();
5389
+ let isSubmitHistory = false;
5390
+ if (isCacheRangeCollapsed) {
5391
+ const dragElement = cacheElementList[cacheEndIndex];
5392
+ if (dragElement.type === ElementType.IMAGE || dragElement.type === ElementType.LATEX) {
5393
+ moveImgPosition(dragElement, evt, host);
5394
+ if (dragElement.imgDisplay === ImageDisplay.FLOAT_TOP || dragElement.imgDisplay === ImageDisplay.FLOAT_BOTTOM) {
5395
+ draw.getPreviewer().drawResizer(dragElement);
5396
+ isSubmitHistory = true;
5397
+ } else {
5398
+ const cachePosition = cachePositionList[cacheEndIndex];
5399
+ draw.getPreviewer().drawResizer(dragElement, cachePosition);
5400
+ }
5401
+ }
5402
+ }
5301
5403
  rangeManager.replaceRange(__spreadValues({}, cacheRange));
5302
5404
  draw.render({
5303
5405
  isSetCursor: false,
5304
5406
  isCompute: false,
5305
- isSubmitHistory: false
5407
+ isSubmitHistory
5306
5408
  });
5307
5409
  return;
5308
5410
  }
5309
- const dragElementList = cacheElementList.slice(cacheRange.startIndex + 1, cacheRange.endIndex + 1);
5411
+ const dragElementList = cacheElementList.slice(cacheStartIndex + 1, cacheEndIndex + 1);
5310
5412
  const isContainControl = dragElementList.find((element) => element.controlId);
5311
5413
  if (isContainControl) {
5312
- const cacheStartElement2 = cacheElementList[cacheRange.startIndex + 1];
5313
- const cacheEndElement2 = cacheElementList[cacheRange.endIndex];
5414
+ const cacheStartElement2 = cacheElementList[cacheStartIndex + 1];
5415
+ const cacheEndElement2 = cacheElementList[cacheEndIndex];
5314
5416
  const isAllowDragControl = (!cacheStartElement2.controlId || cacheStartElement2.controlComponent === ControlComponent.PREFIX) && (!cacheEndElement2.controlId || cacheEndElement2.controlComponent === ControlComponent.POSTFIX) || cacheStartElement2.controlId === cacheEndElement2.controlId && cacheStartElement2.controlComponent === ControlComponent.PREFIX && cacheEndElement2.controlComponent === ControlComponent.POSTFIX || ((_a = cacheStartElement2.control) == null ? void 0 : _a.type) === ControlType.TEXT && cacheStartElement2.controlComponent === ControlComponent.VALUE && ((_b = cacheEndElement2.control) == null ? void 0 : _b.type) === ControlType.TEXT && cacheEndElement2.controlComponent === ControlComponent.VALUE;
5315
5417
  if (!isAllowDragControl) {
5316
5418
  draw.render({
@@ -5346,8 +5448,8 @@ function mouseup(evt, host) {
5346
5448
  }
5347
5449
  });
5348
5450
  formatElementContext(elementList, replaceElementList, range.startIndex);
5349
- const cacheRangeStartId = createDragId(cacheElementList[cacheRange.startIndex]);
5350
- const cacheRangeEndId = createDragId(cacheElementList[cacheRange.endIndex]);
5451
+ const cacheRangeStartId = createDragId(cacheElementList[cacheStartIndex]);
5452
+ const cacheRangeEndId = createDragId(cacheElementList[cacheEndIndex]);
5351
5453
  const replaceLength = replaceElementList.length;
5352
5454
  let rangeStart = range.startIndex;
5353
5455
  let rangeEnd = rangeStart + replaceLength;
@@ -5380,9 +5482,9 @@ function mouseup(evt, host) {
5380
5482
  draw.spliceElementList(cacheElementList, cacheRangeStartIndex + 1, cacheRangeEndIndex - cacheRangeStartIndex);
5381
5483
  }
5382
5484
  const startElement = elementList[range.startIndex];
5383
- const cacheStartElement = cacheElementList[cacheRange.startIndex];
5485
+ const cacheStartElement = cacheElementList[cacheStartIndex];
5384
5486
  const startPosition = positionList[range.startIndex];
5385
- const cacheStartPosition = cachePositionList[cacheRange.startIndex];
5487
+ const cacheStartPosition = cachePositionList[cacheStartIndex];
5386
5488
  const positionContext = position.getPositionContext();
5387
5489
  let positionContextIndex = positionContext.index;
5388
5490
  if (positionContextIndex) {
@@ -5401,10 +5503,29 @@ function mouseup(evt, host) {
5401
5503
  }
5402
5504
  const rangeStartIndex = getElementIndexByDragId(rangeStartId, elementList);
5403
5505
  const rangeEndIndex = getElementIndexByDragId(rangeEndId, elementList);
5404
- rangeManager.setRange(rangeStartIndex, rangeEndIndex, range.tableId, range.startTdIndex, range.endTdIndex, range.startTrIndex, range.endTrIndex);
5506
+ rangeManager.setRange(isCacheRangeCollapsed ? rangeEndIndex : rangeStartIndex, rangeEndIndex, range.tableId, range.startTdIndex, range.endTdIndex, range.startTrIndex, range.endTrIndex);
5507
+ draw.clearSideEffect();
5508
+ let imgElement = null;
5509
+ if (isCacheRangeCollapsed) {
5510
+ const elementList2 = draw.getElementList();
5511
+ const dragElement = elementList2[rangeEndIndex];
5512
+ if (dragElement.type === ElementType.IMAGE || dragElement.type === ElementType.LATEX) {
5513
+ moveImgPosition(dragElement, evt, host);
5514
+ imgElement = dragElement;
5515
+ }
5516
+ }
5405
5517
  draw.render({
5406
5518
  isSetCursor: false
5407
5519
  });
5520
+ if (imgElement) {
5521
+ if (imgElement.imgDisplay === ImageDisplay.FLOAT_TOP || imgElement.imgDisplay === ImageDisplay.FLOAT_BOTTOM) {
5522
+ draw.getPreviewer().drawResizer(imgElement);
5523
+ } else {
5524
+ const dragPositionList = position.getPositionList();
5525
+ const dragPosition = dragPositionList[rangeEndIndex];
5526
+ draw.getPreviewer().drawResizer(imgElement, dragPosition);
5527
+ }
5528
+ }
5408
5529
  } else if (host.isAllowDrag) {
5409
5530
  host.mousedown(evt);
5410
5531
  }
@@ -5419,6 +5540,7 @@ function mouseleave(evt, host) {
5419
5540
  host.setIsAllowSelection(false);
5420
5541
  }
5421
5542
  function mousemove(evt, host) {
5543
+ var _a;
5422
5544
  const draw = host.getDraw();
5423
5545
  if (host.isAllowDrag) {
5424
5546
  const x = evt.offsetX;
@@ -5431,6 +5553,14 @@ function mousemove(evt, host) {
5431
5553
  return;
5432
5554
  }
5433
5555
  }
5556
+ const cacheStartIndex = (_a = host.cacheRange) == null ? void 0 : _a.startIndex;
5557
+ if (cacheStartIndex) {
5558
+ const dragElement = host.cacheElementList[cacheStartIndex];
5559
+ if ((dragElement == null ? void 0 : dragElement.type) === ElementType.IMAGE && (dragElement.imgDisplay === ImageDisplay.FLOAT_TOP || dragElement.imgDisplay === ImageDisplay.FLOAT_BOTTOM)) {
5560
+ draw.getPreviewer().clearResizer();
5561
+ draw.getImageParticle().dragFloatImage(evt.movementX, evt.movementY);
5562
+ }
5563
+ }
5434
5564
  host.dragover(evt);
5435
5565
  host.isAllowDrop = true;
5436
5566
  return;
@@ -6058,16 +6188,22 @@ function dblclick(host, evt) {
6058
6188
  const draw = host.getDraw();
6059
6189
  const LETTER_REG = draw.getLetterReg();
6060
6190
  const position = draw.getPosition();
6191
+ const positionContext = position.getPositionByXY({
6192
+ x: evt.offsetX,
6193
+ y: evt.offsetY
6194
+ });
6195
+ if (positionContext.isImage && positionContext.isDirectHit) {
6196
+ draw.getPreviewer().render();
6197
+ return;
6198
+ }
6061
6199
  if (draw.getIsPagingMode()) {
6062
- const positionContext = position.getPositionByXY({
6063
- x: evt.offsetX,
6064
- y: evt.offsetY
6065
- });
6066
6200
  if (!~positionContext.index && positionContext.zone) {
6067
6201
  draw.getZone().setZone(positionContext.zone);
6068
6202
  return;
6069
6203
  }
6070
6204
  }
6205
+ if (positionContext.isCheckbox && positionContext.isDirectHit)
6206
+ return;
6071
6207
  const cursorPosition = position.getCursorPosition();
6072
6208
  if (!cursorPosition)
6073
6209
  return;
@@ -6539,9 +6675,11 @@ class Position {
6539
6675
  __publicField(this, "cursorPosition");
6540
6676
  __publicField(this, "positionContext");
6541
6677
  __publicField(this, "positionList");
6678
+ __publicField(this, "floatPositionList");
6542
6679
  __publicField(this, "draw");
6543
6680
  __publicField(this, "options");
6544
6681
  this.positionList = [];
6682
+ this.floatPositionList = [];
6545
6683
  this.cursorPosition = null;
6546
6684
  this.positionContext = {
6547
6685
  isTable: false,
@@ -6550,6 +6688,9 @@ class Position {
6550
6688
  this.draw = draw;
6551
6689
  this.options = draw.getOptions();
6552
6690
  }
6691
+ getFloatPositionList() {
6692
+ return this.floatPositionList;
6693
+ }
6553
6694
  getTablePositionList(sourceElementList) {
6554
6695
  const { index: index2, trIndex, tdIndex } = this.positionContext;
6555
6696
  return sourceElementList[index2].trList[trIndex].tdList[tdIndex].positionList || [];
@@ -6627,6 +6768,23 @@ class Position {
6627
6768
  rightBottom: [x + metrics.width, y + curRow.height]
6628
6769
  }
6629
6770
  };
6771
+ if (element.imgDisplay === ImageDisplay.FLOAT_TOP || element.imgDisplay === ImageDisplay.FLOAT_BOTTOM) {
6772
+ const prePosition = positionList[positionList.length - 1];
6773
+ if (prePosition) {
6774
+ positionItem.metrics = prePosition.metrics;
6775
+ positionItem.coordinate = prePosition.coordinate;
6776
+ }
6777
+ this.floatPositionList.push({
6778
+ pageNo,
6779
+ element,
6780
+ position: positionItem,
6781
+ isTable: payload.isTable,
6782
+ index: payload.index,
6783
+ tdIndex: payload.tdIndex,
6784
+ trIndex: payload.trIndex,
6785
+ tdValueIndex: index2
6786
+ });
6787
+ }
6630
6788
  positionList.push(positionItem);
6631
6789
  index2++;
6632
6790
  x += metrics.width;
@@ -6647,7 +6805,11 @@ class Position {
6647
6805
  startIndex: 0,
6648
6806
  startX: (td.x + tdPadding[3]) * scale + tablePreX,
6649
6807
  startY: (td.y + tdPadding[0]) * scale + tablePreY,
6650
- innerWidth: (td.width - tdPaddingWidth) * scale
6808
+ innerWidth: (td.width - tdPaddingWidth) * scale,
6809
+ isTable: true,
6810
+ index: index2 - 1,
6811
+ tdIndex: d,
6812
+ trIndex: t
6651
6813
  });
6652
6814
  if (td.verticalAlign === VerticalAlign.MIDDLE || td.verticalAlign === VerticalAlign.BOTTOM) {
6653
6815
  const rowsHeight = rowList2.reduce((pre, cur) => pre + cur.height, 0);
@@ -6679,6 +6841,7 @@ class Position {
6679
6841
  computePositionList() {
6680
6842
  var _a;
6681
6843
  this.positionList = [];
6844
+ this.floatPositionList = [];
6682
6845
  const innerWidth = this.draw.getInnerWidth();
6683
6846
  const pageRowList = this.draw.getPageRowList();
6684
6847
  const margins = this.draw.getMargins();
@@ -6744,6 +6907,13 @@ class Position {
6744
6907
  const curPageNo = (_a = payload.pageNo) != null ? _a : this.draw.getPageNo();
6745
6908
  const isMainActive = zoneManager.isMainActive();
6746
6909
  const positionNo = isMainActive ? curPageNo : 0;
6910
+ if (!isTable) {
6911
+ const floatTopPosition = this.getFloatPositionByXY(__spreadProps(__spreadValues({}, payload), {
6912
+ imgDisplay: ImageDisplay.FLOAT_TOP
6913
+ }));
6914
+ if (floatTopPosition)
6915
+ return floatTopPosition;
6916
+ }
6747
6917
  for (let j = 0; j < positionList.length; j++) {
6748
6918
  const { index: index2, pageNo, left, isFirstLetter, coordinate: { leftTop, rightTop, leftBottom } } = positionList[j];
6749
6919
  if (positionNo !== pageNo)
@@ -6818,6 +6988,13 @@ class Position {
6818
6988
  };
6819
6989
  }
6820
6990
  }
6991
+ if (!isTable) {
6992
+ const floatBottomPosition = this.getFloatPositionByXY(__spreadProps(__spreadValues({}, payload), {
6993
+ imgDisplay: ImageDisplay.FLOAT_BOTTOM
6994
+ }));
6995
+ if (floatBottomPosition)
6996
+ return floatBottomPosition;
6997
+ }
6821
6998
  let isLastArea = false;
6822
6999
  let curPositionIndex = -1;
6823
7000
  let hitLineStartIndex;
@@ -6900,6 +7077,36 @@ class Position {
6900
7077
  isControl: !!((_c = elementList[curPositionIndex]) == null ? void 0 : _c.controlId)
6901
7078
  };
6902
7079
  }
7080
+ getFloatPositionByXY(payload) {
7081
+ const { x, y } = payload;
7082
+ for (let f = 0; f < this.floatPositionList.length; f++) {
7083
+ const { position, element, isTable, index: index2, trIndex, tdIndex, tdValueIndex } = this.floatPositionList[f];
7084
+ if (element.type === ElementType.IMAGE && element.imgDisplay === payload.imgDisplay) {
7085
+ const imgFloatPosition = element.imgFloatPosition;
7086
+ if (x >= imgFloatPosition.x && x <= imgFloatPosition.x + element.width && y >= imgFloatPosition.y && y <= imgFloatPosition.y + element.height) {
7087
+ if (isTable) {
7088
+ return {
7089
+ index: index2,
7090
+ isDirectHit: true,
7091
+ isImage: true,
7092
+ isTable,
7093
+ trIndex,
7094
+ tdIndex,
7095
+ tdValueIndex,
7096
+ tdId: element.tdId,
7097
+ trId: element.trId,
7098
+ tableId: element.tableId
7099
+ };
7100
+ }
7101
+ return {
7102
+ index: position.index,
7103
+ isDirectHit: true,
7104
+ isImage: true
7105
+ };
7106
+ }
7107
+ }
7108
+ }
7109
+ }
6903
7110
  adjustPositionContext(payload) {
6904
7111
  const positionResult = this.getPositionByXY(payload);
6905
7112
  if (!~positionResult.index)
@@ -7488,7 +7695,7 @@ class AbstractRichText {
7488
7695
  }
7489
7696
  recordFillInfo(ctx, x, y, width, height, color) {
7490
7697
  const isFirstRecord = !this.fillRect.width;
7491
- if (!isFirstRecord && this.fillColor && this.fillColor !== color) {
7698
+ if (!isFirstRecord && this.fillColor !== color) {
7492
7699
  this.render(ctx);
7493
7700
  this.clearFillInfo();
7494
7701
  this.recordFillInfo(ctx, x, y, width, height, color);
@@ -8251,16 +8458,18 @@ class TableParticle {
8251
8458
  ctx.translate(-0.5, -0.5);
8252
8459
  }
8253
8460
  _drawSlash(ctx, td, startX, startY) {
8461
+ var _a, _b;
8254
8462
  const { scale } = this.options;
8255
8463
  ctx.save();
8256
8464
  const width = td.width * scale;
8257
8465
  const height = td.height * scale;
8258
8466
  const x = Math.round(td.x * scale + startX);
8259
8467
  const y = Math.round(td.y * scale + startY);
8260
- if (td.slashType === TdSlash.FORWARD) {
8468
+ if ((_a = td.slashTypes) == null ? void 0 : _a.includes(TdSlash.FORWARD)) {
8261
8469
  ctx.moveTo(x + width, y);
8262
8470
  ctx.lineTo(x, y + height);
8263
- } else {
8471
+ }
8472
+ if ((_b = td.slashTypes) == null ? void 0 : _b.includes(TdSlash.BACK)) {
8264
8473
  ctx.moveTo(x, y);
8265
8474
  ctx.lineTo(x + width, y + height);
8266
8475
  }
@@ -8268,6 +8477,7 @@ class TableParticle {
8268
8477
  ctx.restore();
8269
8478
  }
8270
8479
  _drawBorder(ctx, element, startX, startY) {
8480
+ var _a, _b, _c, _d, _e, _f;
8271
8481
  const { colgroup, trList, borderType } = element;
8272
8482
  if (!colgroup || !trList)
8273
8483
  return;
@@ -8292,10 +8502,10 @@ class TableParticle {
8292
8502
  const tr = trList[t];
8293
8503
  for (let d = 0; d < tr.tdList.length; d++) {
8294
8504
  const td = tr.tdList[d];
8295
- if (td.slashType) {
8505
+ if ((_a = td.slashTypes) == null ? void 0 : _a.length) {
8296
8506
  this._drawSlash(ctx, td, startX, startY);
8297
8507
  }
8298
- if (!td.borderType && (isEmptyBorderType || isExternalBorderType)) {
8508
+ if (!((_b = td.borderTypes) == null ? void 0 : _b.length) && (isEmptyBorderType || isExternalBorderType)) {
8299
8509
  continue;
8300
8510
  }
8301
8511
  const width = td.width * scale;
@@ -8304,22 +8514,22 @@ class TableParticle {
8304
8514
  const y = Math.round(td.y * scale + startY);
8305
8515
  ctx.translate(0.5, 0.5);
8306
8516
  ctx.beginPath();
8307
- if (td.borderType === TdBorder.TOP) {
8517
+ if ((_c = td.borderTypes) == null ? void 0 : _c.includes(TdBorder.TOP)) {
8308
8518
  ctx.moveTo(x - width, y);
8309
8519
  ctx.lineTo(x, y);
8310
8520
  ctx.stroke();
8311
8521
  }
8312
- if (td.borderType === TdBorder.RIGHT) {
8522
+ if ((_d = td.borderTypes) == null ? void 0 : _d.includes(TdBorder.RIGHT)) {
8313
8523
  ctx.moveTo(x, y);
8314
8524
  ctx.lineTo(x, y + height);
8315
8525
  ctx.stroke();
8316
8526
  }
8317
- if (td.borderType === TdBorder.BOTTOM) {
8527
+ if ((_e = td.borderTypes) == null ? void 0 : _e.includes(TdBorder.BOTTOM)) {
8318
8528
  ctx.moveTo(x, y + height);
8319
8529
  ctx.lineTo(x - width, y + height);
8320
8530
  ctx.stroke();
8321
8531
  }
8322
- if (td.borderType === TdBorder.LEFT) {
8532
+ if ((_f = td.borderTypes) == null ? void 0 : _f.includes(TdBorder.LEFT)) {
8323
8533
  ctx.moveTo(x - width, y);
8324
8534
  ctx.lineTo(x - width, y + height);
8325
8535
  ctx.stroke();
@@ -10234,7 +10444,7 @@ function WorkerWrapper$2() {
10234
10444
  objURL && (window.URL || window.webkitURL).revokeObjectURL(objURL);
10235
10445
  }
10236
10446
  }
10237
- const encodedJs$1 = "KCgpPT57KGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO3ZhciBnOyhmdW5jdGlvbihlKXtlLlRJVExFPSJ0aXRsZSJ9KShnfHwoZz17fSkpO3ZhciBvOyhmdW5jdGlvbihlKXtlLkZJUlNUPSJmaXJzdCIsZS5TRUNPTkQ9InNlY29uZCIsZS5USElSRD0idGhpcmQiLGUuRk9VUlRIPSJmb3VydGgiLGUuRklGVEg9ImZpZnRoIixlLlNJWFRIPSJzaXh0aCJ9KShvfHwobz17fSkpO2NvbnN0IHU9e1tvLkZJUlNUXToxLFtvLlNFQ09ORF06Mixbby5USElSRF06Myxbby5GT1VSVEhdOjQsW28uRklGVEhdOjUsW28uU0lYVEhdOjZ9LEk9Ilx1MjAwQiI7ZnVuY3Rpb24gZihlKXtjb25zdCBhPVtdO2xldCBzPTA7Zm9yKDtzPGUubGVuZ3RoOyl7Y29uc3QgdD1lW3NdO2lmKHQudGl0bGVJZCl7Y29uc3Qgbj10LnRpdGxlSWQsbD10LmxldmVsLGM9e3R5cGU6Zy5USVRMRSx2YWx1ZToiIixsZXZlbDpsLHRpdGxlSWQ6bn0saT1bXTtmb3IoO3M8ZS5sZW5ndGg7KXtjb25zdCB2PWVbc107aWYobiE9PXYudGl0bGVJZCl7cy0tO2JyZWFrfWkucHVzaCh2KSxzKyt9Yy52YWx1ZT1pLm1hcCh2PT52LnZhbHVlKS5qb2luKCIiKS5yZXBsYWNlKG5ldyBSZWdFeHAoSSwiZyIpLCIiKSxhLnB1c2goYyl9cysrfWlmKCFhLmxlbmd0aClyZXR1cm4gbnVsbDtjb25zdCBoPSh0LG4pPT57Y29uc3QgbD1uLnN1YkNhdGFsb2dbbi5zdWJDYXRhbG9nLmxlbmd0aC0xXSxjPXVbbD09bnVsbD92b2lkIDA6bC5sZXZlbF0saT11W3QubGV2ZWxdO2wmJmk+Yz9oKHQsbCk6bi5zdWJDYXRhbG9nLnB1c2goe2lkOnQudGl0bGVJZCxuYW1lOnQudmFsdWUsbGV2ZWw6dC5sZXZlbCxzdWJDYXRhbG9nOltdfSl9LHI9W107Zm9yKGxldCB0PTA7dDxhLmxlbmd0aDt0Kyspe2NvbnN0IG49YVt0XSxsPXJbci5sZW5ndGgtMV0sYz11W2w9PW51bGw/dm9pZCAwOmwubGV2ZWxdLGk9dVtuLmxldmVsXTtsJiZpPmM/aChuLGwpOnIucHVzaCh7aWQ6bi50aXRsZUlkLG5hbWU6bi52YWx1ZSxsZXZlbDpuLmxldmVsLHN1YkNhdGFsb2c6W119KX1yZXR1cm4gcn1vbm1lc3NhZ2U9ZT0+e2NvbnN0IGE9ZS5kYXRhLHM9ZihhKTtwb3N0TWVzc2FnZShzKX19KSgpO30pKCk7Cg==";
10447
+ const encodedJs$1 = "KCgpPT57KGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO3ZhciBvOyhmdW5jdGlvbih0KXt0LlRFWFQ9InRleHQiLHQuSU1BR0U9ImltYWdlIix0LlRBQkxFPSJ0YWJsZSIsdC5IWVBFUkxJTks9Imh5cGVybGluayIsdC5TVVBFUlNDUklQVD0ic3VwZXJzY3JpcHQiLHQuU1VCU0NSSVBUPSJzdWJzY3JpcHQiLHQuU0VQQVJBVE9SPSJzZXBhcmF0b3IiLHQuUEFHRV9CUkVBSz0icGFnZUJyZWFrIix0LkNPTlRST0w9ImNvbnRyb2wiLHQuQ0hFQ0tCT1g9ImNoZWNrYm94Iix0LkxBVEVYPSJsYXRleCIsdC5UQUI9InRhYiIsdC5EQVRFPSJkYXRlIix0LkJMT0NLPSJibG9jayIsdC5USVRMRT0idGl0bGUiLHQuTElTVD0ibGlzdCJ9KShvfHwobz17fSkpO3ZhciBuOyhmdW5jdGlvbih0KXt0LkZJUlNUPSJmaXJzdCIsdC5TRUNPTkQ9InNlY29uZCIsdC5USElSRD0idGhpcmQiLHQuRk9VUlRIPSJmb3VydGgiLHQuRklGVEg9ImZpZnRoIix0LlNJWFRIPSJzaXh0aCJ9KShufHwobj17fSkpO2NvbnN0IEk9e1tuLkZJUlNUXToxLFtuLlNFQ09ORF06Mixbbi5USElSRF06Myxbbi5GT1VSVEhdOjQsW24uRklGVEhdOjUsW24uU0lYVEhdOjZ9LHY9W28uVEVYVCxvLkhZUEVSTElOSyxvLlNVQlNDUklQVCxvLlNVUEVSU0NSSVBULG8uQ09OVFJPTCxvLkRBVEVdLGg9Ilx1MjAwQiI7ZnVuY3Rpb24gVCh0KXtyZXR1cm4hdC50eXBlfHx2LmluY2x1ZGVzKHQudHlwZSl9ZnVuY3Rpb24gRSh0KXtjb25zdCBjPVtdO2xldCBhPTA7Zm9yKDthPHQubGVuZ3RoOyl7Y29uc3Qgcz10W2FdO2lmKHMudGl0bGVJZCl7Y29uc3QgZT1zLnRpdGxlSWQsbD1zLmxldmVsLGk9e3R5cGU6by5USVRMRSx2YWx1ZToiIixsZXZlbDpsLHRpdGxlSWQ6ZX0sdT1bXTtmb3IoO2E8dC5sZW5ndGg7KXtjb25zdCByPXRbYV07aWYoZSE9PXIudGl0bGVJZCl7YS0tO2JyZWFrfXUucHVzaChyKSxhKyt9aS52YWx1ZT11LmZpbHRlcihyPT5UKHIpKS5tYXAocj0+ci52YWx1ZSkuam9pbigiIikucmVwbGFjZShuZXcgUmVnRXhwKGgsImciKSwiIiksYy5wdXNoKGkpfWErK31pZighYy5sZW5ndGgpcmV0dXJuIG51bGw7Y29uc3QgZz0ocyxlKT0+e2NvbnN0IGw9ZS5zdWJDYXRhbG9nW2Uuc3ViQ2F0YWxvZy5sZW5ndGgtMV0saT1JW2w9PW51bGw/dm9pZCAwOmwubGV2ZWxdLHU9SVtzLmxldmVsXTtsJiZ1Pmk/ZyhzLGwpOmUuc3ViQ2F0YWxvZy5wdXNoKHtpZDpzLnRpdGxlSWQsbmFtZTpzLnZhbHVlLGxldmVsOnMubGV2ZWwsc3ViQ2F0YWxvZzpbXX0pfSxSPVtdO2ZvcihsZXQgcz0wO3M8Yy5sZW5ndGg7cysrKXtjb25zdCBlPWNbc10sbD1SW1IubGVuZ3RoLTFdLGk9SVtsPT1udWxsP3ZvaWQgMDpsLmxldmVsXSx1PUlbZS5sZXZlbF07bCYmdT5pP2coZSxsKTpSLnB1c2goe2lkOmUudGl0bGVJZCxuYW1lOmUudmFsdWUsbGV2ZWw6ZS5sZXZlbCxzdWJDYXRhbG9nOltdfSl9cmV0dXJuIFJ9b25tZXNzYWdlPXQ9Pntjb25zdCBjPXQuZGF0YSxhPUUoYyk7cG9zdE1lc3NhZ2UoYSl9fSkoKTt9KSgpOwo=";
10238
10448
  const blob$1 = typeof window !== "undefined" && window.Blob && new Blob([atob(encodedJs$1)], { type: "text/javascript;charset=utf-8" });
10239
10449
  function WorkerWrapper$1() {
10240
10450
  const objURL = blob$1 && (window.URL || window.webkitURL).createObjectURL(blob$1);
@@ -10349,10 +10559,25 @@ class Previewer {
10349
10559
  this.mousedownX = 0;
10350
10560
  this.mousedownY = 0;
10351
10561
  this.curHandleIndex = 0;
10352
- resizerSelection.ondblclick = this._dblclick.bind(this);
10353
10562
  this.previewerContainer = null;
10354
10563
  this.previewerImage = null;
10355
10564
  }
10565
+ _getElementPosition(element, position = null) {
10566
+ let x = 0;
10567
+ let y = 0;
10568
+ const height = this.draw.getHeight();
10569
+ const pageGap = this.draw.getPageGap();
10570
+ const preY = this.draw.getPageNo() * (height + pageGap);
10571
+ if (element.imgFloatPosition) {
10572
+ x = element.imgFloatPosition.x;
10573
+ y = element.imgFloatPosition.y + preY;
10574
+ } else if (position) {
10575
+ const { coordinate: { leftTop: [left, top] }, ascent } = position;
10576
+ x = left;
10577
+ y = top + preY + ascent;
10578
+ }
10579
+ return { x, y };
10580
+ }
10356
10581
  _createResizerDom() {
10357
10582
  const resizerSelection = document.createElement("div");
10358
10583
  resizerSelection.classList.add(`${EDITOR_PREFIX}-resizer-selection`);
@@ -10391,11 +10616,9 @@ class Previewer {
10391
10616
  }
10392
10617
  _mousedown(evt) {
10393
10618
  this.canvas = this.draw.getPage();
10394
- if (!this.curPosition || !this.curElement)
10619
+ if (!this.curElement)
10395
10620
  return;
10396
10621
  const { scale } = this.options;
10397
- const height = this.draw.getHeight();
10398
- const pageGap = this.draw.getPageGap();
10399
10622
  this.mousedownX = evt.x;
10400
10623
  this.mousedownY = evt.y;
10401
10624
  const target = evt.target;
@@ -10405,16 +10628,15 @@ class Previewer {
10405
10628
  this.canvas.style.cursor = cursor;
10406
10629
  this.resizerImage.src = this.curElementSrc;
10407
10630
  this.resizerImageContainer.style.display = "block";
10408
- const { coordinate: { leftTop: [left, top] }, ascent } = this.curPosition;
10409
- const prePageHeight = this.draw.getPageNo() * (height + pageGap);
10410
- this.resizerImageContainer.style.left = `${left}px`;
10411
- this.resizerImageContainer.style.top = `${top + prePageHeight + ascent}px`;
10631
+ const { x: resizerLeft, y: resizerTop } = this._getElementPosition(this.curElement, this.curPosition);
10632
+ this.resizerImageContainer.style.left = `${resizerLeft}px`;
10633
+ this.resizerImageContainer.style.top = `${resizerTop}px`;
10412
10634
  this.resizerImage.style.width = `${this.curElement.width * scale}px`;
10413
10635
  this.resizerImage.style.height = `${this.curElement.height * scale}px`;
10414
10636
  const mousemoveFn = this._mousemove.bind(this);
10415
10637
  document.addEventListener("mousemove", mousemoveFn);
10416
10638
  document.addEventListener("mouseup", () => {
10417
- if (this.curElement && this.curPosition) {
10639
+ if (this.curElement) {
10418
10640
  this.curElement.width = this.width;
10419
10641
  this.curElement.height = this.height;
10420
10642
  this.draw.render({ isSetCursor: false });
@@ -10495,10 +10717,6 @@ class Previewer {
10495
10717
  this._updateResizerSizeView(elementWidth, elementHeight);
10496
10718
  evt.preventDefault();
10497
10719
  }
10498
- _dblclick() {
10499
- this._drawPreviewer();
10500
- document.body.style.overflow = "hidden";
10501
- }
10502
10720
  _drawPreviewer() {
10503
10721
  const previewerContainer = document.createElement("div");
10504
10722
  previewerContainer.classList.add(`${EDITOR_PREFIX}-image-previewer`);
@@ -10627,18 +10845,19 @@ class Previewer {
10627
10845
  _updateResizerSizeView(width, height) {
10628
10846
  this.resizerSize.innerText = `${Math.round(width)} \xD7 ${Math.round(height)}`;
10629
10847
  }
10630
- drawResizer(element, position, options = {}) {
10848
+ render() {
10849
+ this._drawPreviewer();
10850
+ document.body.style.overflow = "hidden";
10851
+ }
10852
+ drawResizer(element, position = null, options = {}) {
10631
10853
  this.previewerDrawOption = options;
10632
10854
  const { scale } = this.options;
10633
- const { coordinate: { leftTop: [left, top] }, ascent } = position;
10634
10855
  const elementWidth = element.width * scale;
10635
10856
  const elementHeight = element.height * scale;
10636
- const height = this.draw.getHeight();
10637
- const pageGap = this.draw.getPageGap();
10638
- const preY = this.draw.getPageNo() * (height + pageGap);
10639
10857
  this._updateResizerSizeView(elementWidth, elementHeight);
10640
- this.resizerSelection.style.left = `${left}px`;
10641
- this.resizerSelection.style.top = `${top + preY + ascent}px`;
10858
+ const { x: resizerLeft, y: resizerTop } = this._getElementPosition(element, position);
10859
+ this.resizerSelection.style.left = `${resizerLeft}px`;
10860
+ this.resizerSelection.style.top = `${resizerTop}px`;
10642
10861
  this._updateResizerRect(elementWidth, elementHeight);
10643
10862
  this.resizerSelection.style.display = "block";
10644
10863
  this.curElement = element;
@@ -10675,7 +10894,9 @@ const contextmenu$1 = {
10675
10894
  textWrap: "\u6587\u5B57\u73AF\u7ED5",
10676
10895
  textWrapType: {
10677
10896
  embed: "\u5D4C\u5165\u578B",
10678
- upDown: "\u4E0A\u4E0B\u578B\u73AF\u7ED5"
10897
+ upDown: "\u4E0A\u4E0B\u578B\u73AF\u7ED5",
10898
+ floatTop: "\u6D6E\u4E8E\u6587\u5B57\u4E0A\u65B9",
10899
+ floatBottom: "\u886C\u4E8E\u6587\u5B57\u4E0B\u65B9"
10679
10900
  }
10680
10901
  },
10681
10902
  table: {
@@ -11463,7 +11684,9 @@ const contextmenu = {
11463
11684
  textWrap: "Text wrap",
11464
11685
  textWrapType: {
11465
11686
  embed: "Embed",
11466
- upDown: "Up down"
11687
+ upDown: "Up down",
11688
+ floatTop: "Float above text",
11689
+ floatBottom: "Float below text"
11467
11690
  }
11468
11691
  },
11469
11692
  table: {
@@ -13124,22 +13347,28 @@ class Draw {
13124
13347
  const offsetX = curRow.offsetX || element.listId && listStyleMap.get(element.listId) || 0;
13125
13348
  const availableWidth = innerWidth - offsetX;
13126
13349
  if (element.type === ElementType.IMAGE || element.type === ElementType.LATEX) {
13127
- const elementWidth = element.width * scale;
13128
- const elementHeight = element.height * scale;
13129
- const curRowWidth2 = element.imgDisplay === ImageDisplay.INLINE ? 0 : curRow.width;
13130
- if (curRowWidth2 + elementWidth > availableWidth) {
13131
- const surplusWidth = availableWidth - curRowWidth2;
13132
- const adaptiveWidth = surplusWidth > 0 ? surplusWidth : Math.min(elementWidth, availableWidth);
13133
- const adaptiveHeight = elementHeight * adaptiveWidth / elementWidth;
13134
- element.width = adaptiveWidth / scale;
13135
- element.height = adaptiveHeight / scale;
13136
- metrics.width = adaptiveWidth;
13137
- metrics.height = adaptiveHeight;
13138
- metrics.boundingBoxDescent = adaptiveHeight;
13350
+ if (element.imgDisplay === ImageDisplay.FLOAT_TOP || element.imgDisplay === ImageDisplay.FLOAT_BOTTOM) {
13351
+ metrics.width = 0;
13352
+ metrics.height = 0;
13353
+ metrics.boundingBoxDescent = 0;
13139
13354
  } else {
13140
- metrics.width = elementWidth;
13141
- metrics.height = elementHeight;
13142
- metrics.boundingBoxDescent = elementHeight;
13355
+ const elementWidth = element.width * scale;
13356
+ const elementHeight = element.height * scale;
13357
+ const curRowWidth2 = element.imgDisplay === ImageDisplay.INLINE ? 0 : curRow.width;
13358
+ if (curRowWidth2 + elementWidth > availableWidth) {
13359
+ const surplusWidth = availableWidth - curRowWidth2;
13360
+ const adaptiveWidth = surplusWidth > 0 ? surplusWidth : Math.min(elementWidth, availableWidth);
13361
+ const adaptiveHeight = elementHeight * adaptiveWidth / elementWidth;
13362
+ element.width = adaptiveWidth / scale;
13363
+ element.height = adaptiveHeight / scale;
13364
+ metrics.width = adaptiveWidth;
13365
+ metrics.height = adaptiveHeight;
13366
+ metrics.boundingBoxDescent = adaptiveHeight;
13367
+ } else {
13368
+ metrics.width = elementWidth;
13369
+ metrics.height = elementHeight;
13370
+ metrics.boundingBoxDescent = elementHeight;
13371
+ }
13143
13372
  }
13144
13373
  metrics.boundingBoxAscent = 0;
13145
13374
  } else if (element.type === ElementType.TABLE) {
@@ -13483,7 +13712,9 @@ class Draw {
13483
13712
  }
13484
13713
  if (element.type === ElementType.IMAGE) {
13485
13714
  this._drawRichText(ctx);
13486
- this.imageParticle.render(ctx, element, x, y + offsetY);
13715
+ if (element.imgDisplay !== ImageDisplay.FLOAT_TOP && element.imgDisplay !== ImageDisplay.FLOAT_BOTTOM) {
13716
+ this.imageParticle.render(ctx, element, x, y + offsetY);
13717
+ }
13487
13718
  } else if (element.type === ElementType.LATEX) {
13488
13719
  this._drawRichText(ctx);
13489
13720
  this.laTexParticle.render(ctx, element, x, y + offsetY);
@@ -13620,6 +13851,18 @@ class Draw {
13620
13851
  }
13621
13852
  }
13622
13853
  }
13854
+ _drawFloat(ctx, payload) {
13855
+ const floatPositionList = this.position.getFloatPositionList();
13856
+ const { imgDisplay, pageNo } = payload;
13857
+ for (let e = 0; e < floatPositionList.length; e++) {
13858
+ const floatPosition = floatPositionList[e];
13859
+ const element = floatPosition.element;
13860
+ if (pageNo === floatPosition.pageNo && element.imgDisplay === imgDisplay && element.type === ElementType.IMAGE) {
13861
+ const imgFloatPosition = element.imgFloatPosition;
13862
+ this.imageParticle.render(ctx, element, imgFloatPosition.x, imgFloatPosition.y);
13863
+ }
13864
+ }
13865
+ }
13623
13866
  _clearPage(pageNo) {
13624
13867
  const ctx = this.ctxList[pageNo];
13625
13868
  const pageDom = this.pageList[pageNo];
@@ -13638,6 +13881,10 @@ class Draw {
13638
13881
  if (this.mode !== EditorMode.PRINT) {
13639
13882
  this.margin.render(ctx, pageNo);
13640
13883
  }
13884
+ this._drawFloat(ctx, {
13885
+ pageNo,
13886
+ imgDisplay: ImageDisplay.FLOAT_BOTTOM
13887
+ });
13641
13888
  this.control.renderHighlightList(ctx, pageNo);
13642
13889
  const index2 = (_a = rowList[0]) == null ? void 0 : _a.startIndex;
13643
13890
  this.drawRow(ctx, {
@@ -13660,6 +13907,10 @@ class Draw {
13660
13907
  this.footer.render(ctx, pageNo);
13661
13908
  }
13662
13909
  }
13910
+ this._drawFloat(ctx, {
13911
+ pageNo,
13912
+ imgDisplay: ImageDisplay.FLOAT_TOP
13913
+ });
13663
13914
  if (this.search.getSearchKeyword()) {
13664
13915
  this.search.render(ctx, pageNo);
13665
13916
  }
@@ -13821,6 +14072,12 @@ class Draw {
13821
14072
  this.scrollObserver.removeEvent();
13822
14073
  this.selectionObserver.removeEvent();
13823
14074
  }
14075
+ clearSideEffect() {
14076
+ this.getPreviewer().clearResizer();
14077
+ this.getTableTool().dispose();
14078
+ this.getHyperlinkParticle().clearHyperlinkPopup();
14079
+ this.getDateParticle().clearDatePicker();
14080
+ }
13824
14081
  }
13825
14082
  class Command {
13826
14083
  constructor(adapt) {
@@ -15300,12 +15557,26 @@ class CommandAdapt {
15300
15557
  if (!rowCol)
15301
15558
  return;
15302
15559
  const tdList = rowCol.flat();
15303
- const isSetBorderType = tdList.some((td) => td.borderType !== payload);
15560
+ const isSetBorderType = tdList.some((td) => {
15561
+ var _a;
15562
+ return !((_a = td.borderTypes) == null ? void 0 : _a.includes(payload));
15563
+ });
15304
15564
  tdList.forEach((td) => {
15565
+ if (!td.borderTypes) {
15566
+ td.borderTypes = [];
15567
+ }
15568
+ const borderTypeIndex = td.borderTypes.findIndex((type) => type === payload);
15305
15569
  if (isSetBorderType) {
15306
- td.borderType = payload;
15570
+ if (!~borderTypeIndex) {
15571
+ td.borderTypes.push(payload);
15572
+ }
15307
15573
  } else {
15308
- delete td.borderType;
15574
+ if (~borderTypeIndex) {
15575
+ td.borderTypes.splice(borderTypeIndex, 1);
15576
+ }
15577
+ }
15578
+ if (!td.borderTypes.length) {
15579
+ delete td.borderTypes;
15309
15580
  }
15310
15581
  });
15311
15582
  const { endIndex } = this.range.getRange();
@@ -15321,12 +15592,26 @@ class CommandAdapt {
15321
15592
  if (!rowCol)
15322
15593
  return;
15323
15594
  const tdList = rowCol.flat();
15324
- const isSetTdSlashType = tdList.some((td) => td.slashType !== payload);
15595
+ const isSetTdSlashType = tdList.some((td) => {
15596
+ var _a;
15597
+ return !((_a = td.slashTypes) == null ? void 0 : _a.includes(payload));
15598
+ });
15325
15599
  tdList.forEach((td) => {
15600
+ if (!td.slashTypes) {
15601
+ td.slashTypes = [];
15602
+ }
15603
+ const slashTypeIndex = td.slashTypes.findIndex((type) => type === payload);
15326
15604
  if (isSetTdSlashType) {
15327
- td.slashType = payload;
15605
+ if (!~slashTypeIndex) {
15606
+ td.slashTypes.push(payload);
15607
+ }
15328
15608
  } else {
15329
- delete td.slashType;
15609
+ if (~slashTypeIndex) {
15610
+ td.slashTypes.splice(slashTypeIndex, 1);
15611
+ }
15612
+ }
15613
+ if (!td.slashTypes.length) {
15614
+ delete td.slashTypes;
15330
15615
  }
15331
15616
  });
15332
15617
  const { endIndex } = this.range.getRange();
@@ -15770,6 +16055,17 @@ class CommandAdapt {
15770
16055
  if (element.imgDisplay === display)
15771
16056
  return;
15772
16057
  element.imgDisplay = display;
16058
+ if (display === ImageDisplay.FLOAT_TOP || display === ImageDisplay.FLOAT_BOTTOM) {
16059
+ const positionList = this.position.getPositionList();
16060
+ const { startIndex } = this.range.getRange();
16061
+ const { coordinate: { leftTop } } = positionList[startIndex];
16062
+ element.imgFloatPosition = {
16063
+ x: leftTop[0],
16064
+ y: leftTop[1]
16065
+ };
16066
+ } else {
16067
+ delete element.imgFloatPosition;
16068
+ }
15773
16069
  this.draw.getPreviewer().clearResizer();
15774
16070
  this.draw.render({
15775
16071
  isSetCursor: false
@@ -16159,7 +16455,9 @@ const INTERNAL_CONTEXT_MENU_KEY = {
16159
16455
  SAVE_AS: "imageSaveAs",
16160
16456
  TEXT_WRAP: "imageTextWrap",
16161
16457
  TEXT_WRAP_EMBED: "imageTextWrapEmbed",
16162
- TEXT_WRAP_UP_DOWN: "imageTextWrapUpDown"
16458
+ TEXT_WRAP_UP_DOWN: "imageTextWrapUpDown",
16459
+ TEXT_WRAP_FLOAT_TOP: "imageTextWrapFloatTop",
16460
+ TEXT_WRAP_FLOAT_BOTTOM: "imageTextWrapFloatBottom"
16163
16461
  },
16164
16462
  TABLE: {
16165
16463
  BORDER: "border",
@@ -16303,7 +16601,7 @@ const hyperlinkMenus = [
16303
16601
  }
16304
16602
  }
16305
16603
  ];
16306
- const { IMAGE: { CHANGE, SAVE_AS, TEXT_WRAP, TEXT_WRAP_EMBED, TEXT_WRAP_UP_DOWN } } = INTERNAL_CONTEXT_MENU_KEY;
16604
+ const { IMAGE: { CHANGE, SAVE_AS, TEXT_WRAP, TEXT_WRAP_EMBED, TEXT_WRAP_UP_DOWN, TEXT_WRAP_FLOAT_TOP, TEXT_WRAP_FLOAT_BOTTOM } } = INTERNAL_CONTEXT_MENU_KEY;
16307
16605
  const imageMenus = [
16308
16606
  {
16309
16607
  key: CHANGE,
@@ -16364,6 +16662,22 @@ const imageMenus = [
16364
16662
  callback: (command, context) => {
16365
16663
  command.executeChangeImageDisplay(context.startElement, ImageDisplay.INLINE);
16366
16664
  }
16665
+ },
16666
+ {
16667
+ key: TEXT_WRAP_FLOAT_TOP,
16668
+ i18nPath: "contextmenu.image.textWrapType.floatTop",
16669
+ when: () => true,
16670
+ callback: (command, context) => {
16671
+ command.executeChangeImageDisplay(context.startElement, ImageDisplay.FLOAT_TOP);
16672
+ }
16673
+ },
16674
+ {
16675
+ key: TEXT_WRAP_FLOAT_BOTTOM,
16676
+ i18nPath: "contextmenu.image.textWrapType.floatBottom",
16677
+ when: () => true,
16678
+ callback: (command, context) => {
16679
+ command.executeChangeImageDisplay(context.startElement, ImageDisplay.FLOAT_BOTTOM);
16680
+ }
16367
16681
  }
16368
16682
  ]
16369
16683
  }