@hufe921/canvas-editor 0.9.24 → 0.9.27

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- (()=>{(function(){"use strict";try{if(typeof document!="undefined"){var e=document.createElement("style");e.appendChild(document.createTextNode('.ce-select-control-popup{max-width:160px;min-width:69px;max-height:225px;position:absolute;z-index:1;border:1px solid #e4e7ed;border-radius:4px;background-color:#fff;box-shadow:0 2px 12px #0000001a;box-sizing:border-box;margin:5px 0;overflow-y:auto}.ce-select-control-popup ul{list-style:none;padding:3px 0;margin:0;box-sizing:border-box}.ce-select-control-popup ul li{font-size:13px;padding:0 20px;position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#666;height:36px;line-height:36px;box-sizing:border-box;cursor:pointer}.ce-select-control-popup ul li:hover{background-color:#eef2fd}.ce-select-control-popup ul li.active{color:var(--COLOR-HOVER, #5175f4);font-weight:700}.ce-date-container{display:none;width:300px;overflow:hidden;left:0;right:0;position:absolute;z-index:1;color:#606266;background:#ffffff;border-radius:4px;padding:10px;user-select:none;border:1px solid #e4e7ed;box-shadow:0 2px 12px #0000001a}.ce-date-container.active{display:block}.ce-date-wrap{display:none}.ce-date-wrap.active{display:block}.ce-date-title{display:flex;justify-content:center;align-items:center;text-align:center;color:#606266;font-size:16px}.ce-date-title>span{display:inline-block}.ce-date-title>span:not(.ce-date-title__now){font-family:cursive;cursor:pointer}.ce-date-title>span:not(.ce-date-title__now):hover{color:#5175f4}.ce-date-title .ce-date-title__pre-year,.ce-date-title .ce-date-title__pre-month{width:15%}.ce-date-title .ce-date-title__now{width:40%}.ce-date-title .ce-date-title__next-year,.ce-date-title .ce-date-title__next-month{width:15%}.ce-date-week{width:100%;display:flex;justify-content:center;margin-top:15px;padding-bottom:5px;border-bottom:1px solid #e4e7ed}.ce-date-week>span{list-style:none;width:14.28571%;text-align:center;color:#606266;font-size:14px}.ce-date-day{width:100%;display:flex;flex-wrap:wrap;align-items:center;margin-top:5px}.ce-date-day>div{width:14.28571%;height:40px;text-align:center;color:#606266;font-size:14px;cursor:pointer;line-height:40px;border-radius:4px}.ce-date-day>div:hover{color:#5175f4;opacity:.8}.ce-date-day>div.active{color:#5175f4;font-weight:700}.ce-date-day>div.disable{color:#c0c4cc}.ce-date-day>div.select{color:#fff;background-color:#5175f4}.ce-time-wrap{display:none;padding:10px;height:286px}.ce-time-wrap ::-webkit-scrollbar{width:0}.ce-time-wrap.active{display:flex}.ce-time-wrap li{list-style:none}.ce-time-wrap>li{width:33.3%;height:100%;text-align:center}.ce-time-wrap>li>span{transform:translateY(-5px);display:inline-block}.ce-time-wrap>li>ol{height:calc(100% - 20px);overflow-y:auto;border:1px solid #e2e2e2;position:relative}.ce-time-wrap>li:first-child>ol{border-right:0}.ce-time-wrap>li:last-child>ol{border-left:0}.ce-time-wrap>li>ol>li{line-height:30px;cursor:pointer;transition:all .3s}.ce-time-wrap>li>ol>li:hover{background-color:#eaeaea}.ce-time-wrap>li>ol>li.active{color:#fff;background:#5175F4}.ce-date-menu{width:100%;height:28px;display:flex;justify-content:flex-end;align-items:center;padding-top:10px;position:relative;border-top:1px solid #e4e7ed}.ce-date-menu button{display:inline-block;line-height:1;white-space:nowrap;cursor:pointer;background:#fff;border:1px solid #dcdfe6;color:#606266;appearance:none;text-align:center;box-sizing:border-box;outline:none;transition:.1s;font-weight:500;user-select:none;padding:7px 15px;font-size:12px;border-radius:3px;margin:0 0 0 10px}.ce-date-menu button:hover{color:#5175f4;border-color:#5175f4}.ce-date-menu button.ce-date-menu__time{border:1px solid transparent;position:absolute;left:0;margin-left:0}.ce-date-menu button.ce-date-menu__time:hover{color:#5175f4}.ce-block-item{position:absolute;z-index:0;overflow:hidden;border-radius:8px;background-color:#fff;border:1px solid rgb(235 236 240)}.ce-table-tool__row{position:absolute;width:12px;border-radius:6.5px;overflow:hidden;background-color:#e2e6ed}.ce-table-tool__row .ce-table-tool__row__item{width:100%;position:relative}.ce-table-tool__row .ce-table-tool__row__item:after{content:"";position:absolute;bottom:0;left:2px;width:8px;height:1px;background-color:#c0c6cf}.ce-table-tool__row .ce-table-tool__row__item:last-child:after{display:none}.ce-table-tool__col{position:absolute;height:12px;border-radius:6.5px;overflow:hidden;background-color:#e2e6ed;display:flex}.ce-table-tool__col .ce-table-tool__col__item{height:100%;position:relative}.ce-table-tool__col .ce-table-tool__col__item:after{content:"";position:absolute;top:2px;left:-1px;width:1px;height:8px;z-index:1;background-color:#c0c6cf}.ce-table-tool__col .ce-table-tool__col__item:first-child:after{display:none}.ce-table-tool__row .ce-table-tool__row__item.active,.ce-table-tool__col .ce-table-tool__col__item.active{background-color:#c4d7fa}.ce-table-tool__col .ce-table-tool__anchor{right:-5px;width:10px;height:12px;z-index:9;position:absolute;cursor:col-resize}.ce-table-tool__row .ce-table-tool__anchor{bottom:-5px;left:0;width:12px;height:10px;z-index:9;position:absolute;cursor:row-resize}.ce-table-anchor__line{z-index:9;position:absolute;border:1px dotted #000000}.ce-resizer-selection{position:absolute;border:1px solid}.ce-resizer-selection>div{position:absolute;width:10px;height:10px;box-shadow:0 1px 4px #0000004d;border-radius:5px;border:2px solid #ffffff;box-sizing:border-box}.ce-resizer-selection .handle-0{cursor:nw-resize}.ce-resizer-selection .handle-1{cursor:n-resize}.ce-resizer-selection .handle-2{cursor:ne-resize}.ce-resizer-selection .handle-3{cursor:e-resize}.ce-resizer-selection .handle-4{cursor:se-resize}.ce-resizer-selection .handle-5{cursor:s-resize}.ce-resizer-selection .handle-6{cursor:sw-resize}.ce-resizer-selection .handle-7{cursor:w-resize}.ce-resizer-image{position:absolute;opacity:.5}.ce-image-previewer{position:fixed;left:0;top:0;z-index:1000;width:100%;height:100%;overflow:hidden;background:#f2f4f7;display:flex;align-items:center;justify-content:center;animation:previewerAnimation .3s}@keyframes previewerAnimation{0%{opacity:.1}to{opacity:1}}.ce-image-previewer .image-close{width:24px;height:24px;display:inline-block;position:absolute;right:50px;top:30px;z-index:99;cursor:pointer;background:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTIzLjk3IDdsMS40MTUgMS40MTQtNy43NzkgNy43NzggNy43NzkgNy43NzktMS40MTQgMS40MTQtNy43NzktNy43NzktNy43NzggNy43NzlMNyAyMy45N2w3Ljc3OC03Ljc3OUw3IDguNDE0IDguNDE0IDdsNy43NzggNy43NzhMMjMuOTcxIDd6IiBmaWxsPSIjM0Q0NzU3IiBmaWxsLXJ1bGU9ImV2ZW5vZGQiLz48L3N2Zz4=) no-repeat;background-size:100% 100%;transition:all .3s;border-radius:50%}.ce-image-previewer .image-close:hover{background-color:#e2e6ed}.ce-image-previewer .ce-image-container{position:relative}.ce-image-previewer .ce-image-container img{cursor:move;position:relative}.ce-image-previewer .ce-image-menu{height:50px;position:absolute;bottom:50px;z-index:99;display:flex;align-items:center;justify-content:center}.ce-image-previewer .ce-image-menu i{width:32px;height:32px;margin:0 8px;cursor:pointer;display:inline-block;background-repeat:no-repeat;background-size:100% 100%;transition:all .3s;border-radius:50%}.ce-image-previewer .ce-image-menu i:hover{background-color:#e2e6ed}.ce-image-previewer .ce-image-menu i.zoom-in{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTE0IDE0di00aDJ2NGg0djJoLTR2NGgtMnYtNGgtNHYtMmg0em04Ljc0OSAxMC4xNjNBMTEuOTUyIDExLjk1MiAwIDAxMTUgMjdDOC4zNzMgMjcgMyAyMS42MjcgMyAxNVM4LjM3MyAzIDE1IDNzMTIgNS4zNzMgMTIgMTJjMCAyLjk1NC0xLjA2NyA1LjY1OC0yLjgzNyA3Ljc0OWw0LjkwOCA0LjkwOC0xLjQxNCAxLjQxNC00LjkwOC00LjkwOHpNMTUgMjVjNS41MjMgMCAxMC00LjQ3NyAxMC0xMFMyMC41MjMgNSAxNSA1IDUgOS40NzcgNSAxNXM0LjQ3NyAxMCAxMCAxMHoiIGZpbGw9IiMzRDQ3NTciLz48L3N2Zz4=)}.ce-image-previewer .ce-image-menu i.zoom-out{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTIyLjc0OSAyNC4xNjNBMTEuOTUyIDExLjk1MiAwIDAxMTUgMjdDOC4zNzMgMjcgMyAyMS42MjcgMyAxNVM4LjM3MyAzIDE1IDNzMTIgNS4zNzMgMTIgMTJjMCAyLjk1NC0xLjA2NyA1LjY1OC0yLjgzNyA3Ljc0OWw0LjkwOCA0LjkwOC0xLjQxNCAxLjQxNC00LjkwOC00LjkwOHpNMTUgMjVjNS41MjMgMCAxMC00LjQ3NyAxMC0xMFMyMC41MjMgNSAxNSA1IDUgOS40NzcgNSAxNXM0LjQ3NyAxMCAxMCAxMHptLTUtMTFoMTB2MkgxMHYtMnoiIGZpbGw9IiMzRDQ3NTciLz48L3N2Zz4=)}.ce-image-previewer .ce-image-menu i.rotate{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0iIzNENDc1NyIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJNMTYgNGM2LjYyNyAwIDEyIDUuMzczIDEyIDEyYTExLjk3IDExLjk3IDAgMDEtNCA4Ljk0NFYyM2gtLjg2QTkuOTY4IDkuOTY4IDAgMDAyNiAxNmMwLTUuNTIzLTQuNDc3LTEwLTEwLTEwUzYgMTAuNDc3IDYgMTZjMCA1LjE4NSAzLjk0NyA5LjQ0OSA5IDkuOTV2Mi4wMDlDOC44NCAyNy40NTEgNCAyMi4yOTEgNCAxNiA0IDkuMzczIDkuMzczIDQgMTYgNHoiIGZpbGwtcnVsZT0ibm9uemVybyIvPjxwYXRoIGQ9Ik0xOS44NzkgMjcuMzI4bDEuNzY3LTYuNzE3IDQuOTUgNC45NXoiLz48L2c+PC9zdmc+)}.ce-image-previewer .ce-image-menu i.original-size{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTQgNGgyNHYyNEg0VjR6bTIgMnYyMGgyMFY2SDZ6bTQgNWgydjEwaC0yVjExem01IDJoMnYyaC0ydi0yem0wIDRoMnYyaC0ydi0yem01LTZoMnYxMGgtMlYxMXoiIGZpbGw9IiMzRDQ3NTciLz48L3N2Zz4=)}.ce-image-previewer .ce-image-menu i.image-download{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTQuNSAxNXYzLjVoMTVWMTVIMjF2NUgzdi01aDEuNXptOC4yMzItMTEuMjI2djkuMTk2bDQuMDUtNC4wNSAxLjA2IDEuMDYtNS44MzQgNS44MzQtNS44MzMtNS44MzMgMS4wNi0xLjA2IDMuOTk4IDMuOTk2VjMuNzc0aDEuNXoiIGZpbGw9IiMzRDQ3NTciLz48L3N2Zz4=)}.ce-contextmenu-container{z-index:9;position:fixed;display:none;padding:4px;overflow-x:hidden;overflow-y:auto;background:#fff;box-shadow:0 2px 12px #38383833;border:1px solid #e2e6ed;border-radius:2px}.ce-contextmenu-content{display:flex;flex-direction:column}.ce-contextmenu-content .ce-contextmenu-sub-item:after{position:absolute;content:"";width:16px;height:16px;right:12px;background:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJNMCAwaDE2djE2SDB6Ii8+PGcgZmlsbD0iIzc2N0M4NSI+PHBhdGggZD0iTTcgMTIuMjQzbC0uNzA3LS43MDcgNC4yNDMtNC4yNDMuNzA3LjcwN3oiLz48cGF0aCBkPSJNNi4yOTMgNC40NjRMNyAzLjc1NyAxMS4yNDMgOGwtLjcwNy43MDd6Ii8+PC9nPjwvZz48L3N2Zz4=)}.ce-contextmenu-content .ce-contextmenu-item{min-width:140px;padding:0 32px 0 16px;height:30px;display:flex;align-items:center;white-space:nowrap;box-sizing:border-box;cursor:pointer}.ce-contextmenu-content .ce-contextmenu-item.hover{background:rgba(25,55,88,.04)}.ce-contextmenu-content .ce-contextmenu-item span{max-width:300px;font-size:12px;color:#3d4757;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.ce-contextmenu-content .ce-contextmenu-item span.ce-shortcut{color:#767c85;height:30px;flex:1;text-align:right;line-height:30px;margin-left:20px}.ce-contextmenu-content .ce-contextmenu-item i{width:16px;height:16px;vertical-align:middle;display:inline-block;background-repeat:no-repeat;background-size:100% 100%;flex-shrink:0;margin-right:8px}.ce-contextmenu-divider{background-color:#e2e6ed;margin:4px 16px;height:1px}.ce-contextmenu-print{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBmaWxsPSIjM0Q0NzU3IiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxwYXRoIGQ9Ik0xMiA0aC0xVjJINXYySDRWMmExIDEgMCAwMTEtMWg2YTEgMSAwIDAxMSAxdjJ6bTAgNXY0YTEgMSAwIDAxLTEgMUg1YTEgMSAwIDAxLTEtMVY5aDF2NGg2VjloMXoiLz48cGF0aCBkPSJNMTIgMTJ2LTFoMlY1SDJ2NmgydjFIMmExIDEgMCAwMS0xLTFWNWExIDEgMCAwMTEtMWgxMmExIDEgMCAwMTEgMXY2YTEgMSAwIDAxLTEgMWgtMnoiLz48cGF0aCBkPSJNMyA4aDEwdjFIM3ptOC0yaDJ2MWgtMnoiLz48L2c+PC9zdmc+)}.ce-contextmenu-image{background-image:url(data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSLlm77lsYJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4PSIwIiB5PSIwIiB2aWV3Qm94PSIwIDAgMTYgMTYiIHhtbDpzcGFjZT0icHJlc2VydmUiPjxzdHlsZT4uc3Qwe2ZpbGw6IzNkNDc1N308L3N0eWxlPjxnIGlkPSJfeDMwXzAt5YWs5YWxX3gyRl8wMuW3peWFt+agj194MkZf5o+S5YWl5Zu+54mHLTE2cHgtIj48ZyBpZD0iR3JvdXAtMTkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEgMSkiPjxwYXRoIGlkPSJDb21iaW5lZC1TaGFwZSIgY2xhc3M9InN0MCIgZD0iTTEgMGgxMmMuNiAwIDEgLjQgMSAxdjExYzAgLjYtLjQgMS0xIDFIMWMtLjYgMC0xLS40LTEtMVYxYzAtLjYuNC0xIDEtMXptMCAxdjExaDEyVjFIMXoiLz48Y2lyY2xlIGlkPSLmpK3lnIblvaIiIGNsYXNzPSJzdDAiIGN4PSIxMCIgY3k9IjQiIHI9IjEiLz48cGF0aCBpZD0iUGF0aCIgY2xhc3M9InN0MCIgZD0iTTguNSAxMS4ybC00LTQuMUwxIDEwLjdWOS4yYzEuNy0xLjYgMi43LTIuNSAzLTIuOC40LS41LjctLjQgMSAwTDguNSAxMCAxMSA3LjNjLjQtLjUuNi0uNSAxLS4xbDIgMi44djEuNWwtMi41LTMuNC0zIDMuMXoiLz48L2c+PC9nPjwvc3ZnPg==)}.ce-contextmenu-image-change{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyIDQpIiBmaWxsPSIjM0Q0NzU3Ij48Y2lyY2xlIGZpbGwtcnVsZT0ibm9uemVybyIgY3g9IjMiIGN5PSIxIiByPSIxIi8+PHBhdGggZD0iTTcuNDczIDguMjIzTDMuNDcgNC4xMDcgMCA3LjY2N3YtMS41QzEuNzE1IDQuNiAyLjcwNyAzLjY2NCAyLjk3NSAzLjM1OGMuNDAyLS40NTcuNjUxLS4zOSAxLjA0MiAwTDcuNDczIDcgOS45NiA0LjM0OWMuNDE0LS40NjIuNjItLjQ2MiAxLjAxMS0uMDcxTDEzIDcuMDZ2MS41bC0yLjUxLTMuNDEtMy4wMTcgMy4wNzJ6Ii8+PC9nPjxwYXRoIGQ9Ik02IDEuNUgxLjV2MTJoMTN2LTRWMTNhLjUuNSAwIDAxLS41LjVIMmEuNS41IDAgMDEtLjUtLjVWMmEuNS41IDAgMDEuNS0uNWg0em04LjUgOFY2bC0uNS41aDFsLS41LS41djMuNXpNNiAxLjVoNEw5LjUgMXYxbC41LS41SDZ6IiBzdHJva2U9IiMzRDQ3NTciLz48cGF0aCBkPSJNMTMuMDg1IDEuMzE2bC0zLjgxNCA0YTEgMSAwIDAwMS40NTggMS4zNjhsMy44MTUtNGExIDEgMCAxMC0xLjQ1OS0xLjM2OHoiIGZpbGw9IiMzRDQ3NTciIGZpbGwtcnVsZT0ibm9uemVybyIvPjwvZz48L3N2Zz4=)}.ce-contextmenu-insert-row-col{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBzdHJva2U9IiMzRDQ3NTciIGQ9Ik04LjUgNS41aDZ2NGgtNnoiLz48cGF0aCBmaWxsPSIjM0Q0NzU3IiBkPSJNNCA3djFoMlY3em0tMyAuNUw0IDV2NXpNMSAxaDEydjFIMXptMCAxMmgxMnYxSDF6Ii8+PC9nPjwvc3ZnPg==)}.ce-contextmenu-insert-top-row{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBmaWxsPSIjM0Q0NzU3IiBkPSJNOCA1SDd2M2gxem0tLjUtM0wxMCA1SDV6Ii8+PHJlY3Qgc3Ryb2tlPSIjM0Q0NzU3IiB4PSIxLjUiIHk9IjEwLjUiIHdpZHRoPSIxMiIgaGVpZ2h0PSIzIiByeD0iMSIvPjwvZz48L3N2Zz4=)}.ce-contextmenu-insert-bottom-row{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBmaWxsPSIjM0Q0NzU3IiBkPSJNNyAxMWgxVjhIN3ptLjUgM0w1IDExaDV6Ii8+PHJlY3Qgc3Ryb2tlPSIjM0Q0NzU3IiB4PSIxLjUiIHk9IjIuNSIgd2lkdGg9IjEyIiBoZWlnaHQ9IjMiIHJ4PSIxIi8+PC9nPjwvc3ZnPg==)}.ce-contextmenu-insert-left-col{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBmaWxsPSIjM0Q0NzU3IiBkPSJNMTEgN3YxaDNWN3ptLTMgLjVMMTEgNXY1eiIvPjxyZWN0IHN0cm9rZT0iIzNENDc1NyIgdHJhbnNmb3JtPSJyb3RhdGUoOTAgNCA3LjUpIiB4PSItMiIgeT0iNiIgd2lkdGg9IjEyIiBoZWlnaHQ9IjMiIHJ4PSIxIi8+PC9nPjwvc3ZnPg==)}.ce-contextmenu-insert-right-col{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBmaWxsPSIjM0Q0NzU3IiBkPSJNNSA4VjdIMnYxem0zLS41TDUgMTBWNXoiLz48cmVjdCBzdHJva2U9IiMzRDQ3NTciIHRyYW5zZm9ybT0icm90YXRlKDkwIDEyIDcuNSkiIHg9IjYiIHk9IjYiIHdpZHRoPSIxMiIgaGVpZ2h0PSIzIiByeD0iMSIvPjwvZz48L3N2Zz4=)}.ce-contextmenu-delete-row-col{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBzdHJva2U9IiM5MjlBQTgiIGQ9Ik04LjUgNi41aDZ2MmgtNnoiLz48cGF0aCBmaWxsPSIjM0Q0NzU3IiBkPSJNMiAxMmgxMXYxSDJ6TTIgMmgxMXYxSDJ6bS42MyAzTDcgOS4zNWwtLjYzNS42NUwyIDUuNjN6Ii8+PHBhdGggZmlsbD0iIzNENDc1NyIgZD0iTTIgOS4zNjNMNi4zNTUgNSA3IDUuNzA3IDIuNjk1IDEweiIvPjwvZz48L3N2Zz4=)}.ce-contextmenu-delete-row{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBzdHJva2U9IiM5MjlBQTgiIGQ9Ik04LjUgNS41aDZ2NGgtNnoiLz48cGF0aCBmaWxsPSIjM0Q0NzU3IiBkPSJNMSAxM2gxMnYxSDF6TTEgMWgxMnYxSDF6bTAgNGgxdjFIMXptMSAxaDF2MUgyem0xIDFoMXYxSDN6bTEtMWgxdjFINHptMS0xaDF2MUg1ek00IDhoMXYxSDR6TTIgOGgxdjFIMnptMyAxaDF2MUg1ek0xIDloMXYxSDF6Ii8+PC9nPjwvc3ZnPg==)}.ce-contextmenu-delete-col{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBzdHJva2U9IiM5MjlBQTgiIGQ9Ik01LjUgNy41di02aDR2NnoiLz48cGF0aCBmaWxsPSIjM0Q0NzU3IiBkPSJNMTMgMTVWM2gxdjEyek0xIDE1VjNoMXYxMnptNCAwdi0xaDF2MXptMS0xdi0xaDF2MXptMS0xdi0xaDF2MXptLTEtMXYtMWgxdjF6bS0xLTF2LTFoMXYxem0zIDF2LTFoMXYxem0wIDJ2LTFoMXYxem0xLTN2LTFoMXYxem0wIDR2LTFoMXYxeiIvPjwvZz48L3N2Zz4=)}.ce-contextmenu-delete-table{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0iIzNENDc1NyIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJNMTQgMTNoLTF2LTNIMnYzSDF2LTNhMSAxIDAgMDExLTFoMTFhMSAxIDAgMDExIDF2M3oiIGZpbGwtcnVsZT0ibm9uemVybyIvPjxwYXRoIGQ9Ik01LjYyNSAyTDEwIDYuMzc1IDkuMzc1IDcgNSAyLjYyNXoiLz48cGF0aCBkPSJNNSA2LjM3NUw5LjM3NSAybC42MjUuNjI1TDUuNjI1IDd6Ii8+PC9nPjwvc3ZnPg==)}.ce-contextmenu-merge-cell{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0iIzNENDc1NyIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJNNiAxdjFIMnYxMWg0djFIMmExIDEgMCAwMS0xLTFWMmExIDEgMCAwMTEtMWg0em0zIDBoNGExIDEgMCAwMTEgMXYxMWExIDEgMCAwMS0xIDFIOXYtMWg0VjJIOVYxeiIvPjxwYXRoIGZpbGwtcnVsZT0ibm9uemVybyIgZD0iTTYgMWgxdjRINnptMiAwaDF2NEg4eiIvPjxwYXRoIGQ9Ik04IDcuNUwxMCA2djN6bS0xIDBMNSA2djN6Ii8+PHBhdGggZD0iTTkgN2gzdjFIOXpNMyA3aDN2MUgzeiIvPjxwYXRoIGZpbGwtcnVsZT0ibm9uemVybyIgZD0iTTggMTBoMXY0SDh6bS0yIDBoMXY0SDZ6Ii8+PC9nPjwvc3ZnPg==)}.ce-contextmenu-merge-cancel-cell{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0iIzNENDc1NyIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJNNiAxdjFIMnYxMWg0djFIMmExIDEgMCAwMS0xLTFWMmExIDEgMCAwMTEtMWg0em0zIDBoNGExIDEgMCAwMTEgMXYxMWExIDEgMCAwMS0xIDFIOXYtMWg0VjJIOVYxeiIvPjxwYXRoIGZpbGwtcnVsZT0ibm9uemVybyIgZD0iTTYgMWgxdjRINnptMiAwaDF2NEg4eiIvPjxwYXRoIGQ9Ik0zIDcuNUw1IDZ2M3ptOSAwTDEwIDZ2M3oiLz48cGF0aCBkPSJNNCA3aDN2MUg0em00IDBoM3YxSDh6Ii8+PHBhdGggZmlsbC1ydWxlPSJub256ZXJvIiBkPSJNOCAxMGgxdjRIOHptLTIgMGgxdjRINnoiLz48L2c+PC9zdmc+)}.ce-contextmenu-vertical-align{background-image:url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjE2IiB2aWV3Qm94PSIwIDAgMTYgMTYiIHdpZHRoPSIxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMiAxM2gxMnYxSDJ6bTAtM2g4djFIMnptMC0zaDEydjFIMnptMC02aDEydjFIMnptMCAzaDh2MUgyeiIgZmlsbD0iIzNkNDc1NyIgZmlsbC1ydWxlPSJldmVub2RkIi8+PC9zdmc+)}.ce-contextmenu-vertical-align-top{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTggOEg3djZoMXptLS41LTNMMTAgOEg1ek0yIDNoMTF2MUgyeiIgZmlsbD0iIzNENDc1NyIgZmlsbC1ydWxlPSJldmVub2RkIi8+PC9zdmc+)}.ce-contextmenu-vertical-align-middle{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNOCAxMkg3djNoMXptLS41LTNsMi41IDNINXpNNyAzaDFWMEg3em0uNSAzTDUgM2g1ek0yIDdoMTF2MUgyeiIgZmlsbD0iIzNENDc1NyIgZmlsbC1ydWxlPSJldmVub2RkIi8+PC9zdmc+)}.ce-contextmenu-vertical-align-bottom{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTcgOWgxVjNIN3ptLjUgM0w1IDloNXpNMiAxM2gxMXYxSDJ6IiBmaWxsPSIjM0Q0NzU3IiBmaWxsLXJ1bGU9ImV2ZW5vZGQiLz48L3N2Zz4=)}.ce-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-header-indicator>div{padding:3px 6px;color:#000;font-size:12px;background:rgb(218 231 252);position:absolute;transform:translate(10px,10px)}.ce-inputarea{width:1px;height:12px;min-width:0;min-height:0;margin:0;padding:0;left:0;right:0;letter-spacing:0;font-size:12px;position:absolute;z-index:-1;outline:none;resize:none;border:none;overflow:hidden;color:transparent;user-select:none;background-color:transparent}.ce-cursor{width:1px;height:20px;left:0;right:0;position:absolute;outline:none;background-color:#000;pointer-events:none}.ce-cursor.ce-cursor--animation{animation-duration:1s;animation-iteration-count:infinite;animation-name:cursorAnimation}@keyframes cursorAnimation{0%{opacity:1}13%{opacity:0}50%{opacity:0}63%{opacity:1}to{opacity:1}}')),document.head.appendChild(e)}}catch(i){console.error("vite-plugin-css-injected-by-js",i)}})();})();
1
+ (()=>{(function(){"use strict";try{if(typeof document!="undefined"){var e=document.createElement("style");e.appendChild(document.createTextNode('.ce-select-control-popup{max-width:160px;min-width:69px;max-height:225px;position:absolute;z-index:1;border:1px solid #e4e7ed;border-radius:4px;background-color:#fff;box-shadow:0 2px 12px #0000001a;box-sizing:border-box;margin:5px 0;overflow-y:auto}.ce-select-control-popup ul{list-style:none;padding:3px 0;margin:0;box-sizing:border-box}.ce-select-control-popup ul li{font-size:13px;padding:0 20px;position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#666;height:36px;line-height:36px;box-sizing:border-box;cursor:pointer}.ce-select-control-popup ul li:hover{background-color:#eef2fd}.ce-select-control-popup ul li.active{color:var(--COLOR-HOVER, #5175f4);font-weight:700}.ce-date-container{display:none;width:300px;overflow:hidden;left:0;right:0;position:absolute;z-index:1;color:#606266;background:#ffffff;border-radius:4px;padding:10px;user-select:none;border:1px solid #e4e7ed;box-shadow:0 2px 12px #0000001a}.ce-date-container.active{display:block}.ce-date-wrap{display:none}.ce-date-wrap.active{display:block}.ce-date-title{display:flex;justify-content:center;align-items:center;text-align:center;color:#606266;font-size:16px}.ce-date-title>span{display:inline-block}.ce-date-title>span:not(.ce-date-title__now){font-family:cursive;cursor:pointer}.ce-date-title>span:not(.ce-date-title__now):hover{color:#5175f4}.ce-date-title .ce-date-title__pre-year,.ce-date-title .ce-date-title__pre-month{width:15%}.ce-date-title .ce-date-title__now{width:40%}.ce-date-title .ce-date-title__next-year,.ce-date-title .ce-date-title__next-month{width:15%}.ce-date-week{width:100%;display:flex;justify-content:center;margin-top:15px;padding-bottom:5px;border-bottom:1px solid #e4e7ed}.ce-date-week>span{list-style:none;width:14.28571%;text-align:center;color:#606266;font-size:14px}.ce-date-day{width:100%;display:flex;flex-wrap:wrap;align-items:center;margin-top:5px}.ce-date-day>div{width:14.28571%;height:40px;text-align:center;color:#606266;font-size:14px;cursor:pointer;line-height:40px;border-radius:4px}.ce-date-day>div:hover{color:#5175f4;opacity:.8}.ce-date-day>div.active{color:#5175f4;font-weight:700}.ce-date-day>div.disable{color:#c0c4cc}.ce-date-day>div.select{color:#fff;background-color:#5175f4}.ce-time-wrap{display:none;padding:10px;height:286px}.ce-time-wrap ::-webkit-scrollbar{width:0}.ce-time-wrap.active{display:flex}.ce-time-wrap li{list-style:none}.ce-time-wrap>li{width:33.3%;height:100%;text-align:center}.ce-time-wrap>li>span{transform:translateY(-5px);display:inline-block}.ce-time-wrap>li>ol{height:calc(100% - 20px);overflow-y:auto;border:1px solid #e2e2e2;position:relative}.ce-time-wrap>li:first-child>ol{border-right:0}.ce-time-wrap>li:last-child>ol{border-left:0}.ce-time-wrap>li>ol>li{line-height:30px;cursor:pointer;transition:all .3s}.ce-time-wrap>li>ol>li:hover{background-color:#eaeaea}.ce-time-wrap>li>ol>li.active{color:#fff;background:#5175F4}.ce-date-menu{width:100%;height:28px;display:flex;justify-content:flex-end;align-items:center;padding-top:10px;position:relative;border-top:1px solid #e4e7ed}.ce-date-menu button{display:inline-block;line-height:1;white-space:nowrap;cursor:pointer;background:#fff;border:1px solid #dcdfe6;color:#606266;appearance:none;text-align:center;box-sizing:border-box;outline:none;transition:.1s;font-weight:500;user-select:none;padding:7px 15px;font-size:12px;border-radius:3px;margin:0 0 0 10px}.ce-date-menu button:hover{color:#5175f4;border-color:#5175f4}.ce-date-menu button.ce-date-menu__time{border:1px solid transparent;position:absolute;left:0;margin-left:0}.ce-date-menu button.ce-date-menu__time:hover{color:#5175f4}.ce-block-item{position:absolute;z-index:0;overflow:hidden;border-radius:8px;background-color:#fff;border:1px solid rgb(235 236 240)}.ce-table-tool__row{position:absolute;width:12px;border-radius:6.5px;overflow:hidden;background-color:#e2e6ed}.ce-table-tool__row .ce-table-tool__row__item{width:100%;position:relative}.ce-table-tool__row .ce-table-tool__row__item:after{content:"";position:absolute;bottom:0;left:2px;width:8px;height:1px;background-color:#c0c6cf}.ce-table-tool__row .ce-table-tool__row__item:last-child:after{display:none}.ce-table-tool__col{position:absolute;height:12px;border-radius:6.5px;overflow:hidden;background-color:#e2e6ed;display:flex}.ce-table-tool__col .ce-table-tool__col__item{height:100%;position:relative}.ce-table-tool__col .ce-table-tool__col__item:after{content:"";position:absolute;top:2px;left:-1px;width:1px;height:8px;z-index:1;background-color:#c0c6cf}.ce-table-tool__col .ce-table-tool__col__item:first-child:after{display:none}.ce-table-tool__row .ce-table-tool__row__item.active,.ce-table-tool__col .ce-table-tool__col__item.active{background-color:#c4d7fa}.ce-table-tool__col .ce-table-tool__anchor{right:-5px;width:10px;height:12px;z-index:9;position:absolute;cursor:col-resize}.ce-table-tool__row .ce-table-tool__anchor{bottom:-5px;left:0;width:12px;height:10px;z-index:9;position:absolute;cursor:row-resize}.ce-table-anchor__line{z-index:9;position:absolute;border:1px dotted #000000}.ce-table-tool__border{position:absolute;z-index:1;background:transparent;pointer-events:none}.ce-table-tool__border__row{position:absolute;cursor:row-resize;pointer-events:auto}.ce-table-tool__border__col{position:absolute;cursor:col-resize;pointer-events:auto}.ce-resizer-selection{position:absolute;border:1px solid}.ce-resizer-selection>div{position:absolute;width:10px;height:10px;box-shadow:0 1px 4px #0000004d;border-radius:5px;border:2px solid #ffffff;box-sizing:border-box}.ce-resizer-selection .handle-0{cursor:nw-resize}.ce-resizer-selection .handle-1{cursor:n-resize}.ce-resizer-selection .handle-2{cursor:ne-resize}.ce-resizer-selection .handle-3{cursor:e-resize}.ce-resizer-selection .handle-4{cursor:se-resize}.ce-resizer-selection .handle-5{cursor:s-resize}.ce-resizer-selection .handle-6{cursor:sw-resize}.ce-resizer-selection .handle-7{cursor:w-resize}.ce-resizer-image{position:absolute;opacity:.5}.ce-image-previewer{position:fixed;left:0;top:0;z-index:1000;width:100%;height:100%;overflow:hidden;background:#f2f4f7;display:flex;align-items:center;justify-content:center;animation:previewerAnimation .3s}@keyframes previewerAnimation{0%{opacity:.1}to{opacity:1}}.ce-image-previewer .image-close{width:24px;height:24px;display:inline-block;position:absolute;right:50px;top:30px;z-index:99;cursor:pointer;background:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTIzLjk3IDdsMS40MTUgMS40MTQtNy43NzkgNy43NzggNy43NzkgNy43NzktMS40MTQgMS40MTQtNy43NzktNy43NzktNy43NzggNy43NzlMNyAyMy45N2w3Ljc3OC03Ljc3OUw3IDguNDE0IDguNDE0IDdsNy43NzggNy43NzhMMjMuOTcxIDd6IiBmaWxsPSIjM0Q0NzU3IiBmaWxsLXJ1bGU9ImV2ZW5vZGQiLz48L3N2Zz4=) no-repeat;background-size:100% 100%;transition:all .3s;border-radius:50%}.ce-image-previewer .image-close:hover{background-color:#e2e6ed}.ce-image-previewer .ce-image-container{position:relative}.ce-image-previewer .ce-image-container img{cursor:move;position:relative}.ce-image-previewer .ce-image-menu{height:50px;position:absolute;bottom:50px;z-index:99;display:flex;align-items:center;justify-content:center}.ce-image-previewer .ce-image-menu i{width:32px;height:32px;margin:0 8px;cursor:pointer;display:inline-block;background-repeat:no-repeat;background-size:100% 100%;transition:all .3s;border-radius:50%}.ce-image-previewer .ce-image-menu i:hover{background-color:#e2e6ed}.ce-image-previewer .ce-image-menu i.zoom-in{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTE0IDE0di00aDJ2NGg0djJoLTR2NGgtMnYtNGgtNHYtMmg0em04Ljc0OSAxMC4xNjNBMTEuOTUyIDExLjk1MiAwIDAxMTUgMjdDOC4zNzMgMjcgMyAyMS42MjcgMyAxNVM4LjM3MyAzIDE1IDNzMTIgNS4zNzMgMTIgMTJjMCAyLjk1NC0xLjA2NyA1LjY1OC0yLjgzNyA3Ljc0OWw0LjkwOCA0LjkwOC0xLjQxNCAxLjQxNC00LjkwOC00LjkwOHpNMTUgMjVjNS41MjMgMCAxMC00LjQ3NyAxMC0xMFMyMC41MjMgNSAxNSA1IDUgOS40NzcgNSAxNXM0LjQ3NyAxMCAxMCAxMHoiIGZpbGw9IiMzRDQ3NTciLz48L3N2Zz4=)}.ce-image-previewer .ce-image-menu i.zoom-out{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTIyLjc0OSAyNC4xNjNBMTEuOTUyIDExLjk1MiAwIDAxMTUgMjdDOC4zNzMgMjcgMyAyMS42MjcgMyAxNVM4LjM3MyAzIDE1IDNzMTIgNS4zNzMgMTIgMTJjMCAyLjk1NC0xLjA2NyA1LjY1OC0yLjgzNyA3Ljc0OWw0LjkwOCA0LjkwOC0xLjQxNCAxLjQxNC00LjkwOC00LjkwOHpNMTUgMjVjNS41MjMgMCAxMC00LjQ3NyAxMC0xMFMyMC41MjMgNSAxNSA1IDUgOS40NzcgNSAxNXM0LjQ3NyAxMCAxMCAxMHptLTUtMTFoMTB2MkgxMHYtMnoiIGZpbGw9IiMzRDQ3NTciLz48L3N2Zz4=)}.ce-image-previewer .ce-image-menu i.rotate{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0iIzNENDc1NyIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJNMTYgNGM2LjYyNyAwIDEyIDUuMzczIDEyIDEyYTExLjk3IDExLjk3IDAgMDEtNCA4Ljk0NFYyM2gtLjg2QTkuOTY4IDkuOTY4IDAgMDAyNiAxNmMwLTUuNTIzLTQuNDc3LTEwLTEwLTEwUzYgMTAuNDc3IDYgMTZjMCA1LjE4NSAzLjk0NyA5LjQ0OSA5IDkuOTV2Mi4wMDlDOC44NCAyNy40NTEgNCAyMi4yOTEgNCAxNiA0IDkuMzczIDkuMzczIDQgMTYgNHoiIGZpbGwtcnVsZT0ibm9uemVybyIvPjxwYXRoIGQ9Ik0xOS44NzkgMjcuMzI4bDEuNzY3LTYuNzE3IDQuOTUgNC45NXoiLz48L2c+PC9zdmc+)}.ce-image-previewer .ce-image-menu i.original-size{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTQgNGgyNHYyNEg0VjR6bTIgMnYyMGgyMFY2SDZ6bTQgNWgydjEwaC0yVjExem01IDJoMnYyaC0ydi0yem0wIDRoMnYyaC0ydi0yem01LTZoMnYxMGgtMlYxMXoiIGZpbGw9IiMzRDQ3NTciLz48L3N2Zz4=)}.ce-image-previewer .ce-image-menu i.image-download{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTQuNSAxNXYzLjVoMTVWMTVIMjF2NUgzdi01aDEuNXptOC4yMzItMTEuMjI2djkuMTk2bDQuMDUtNC4wNSAxLjA2IDEuMDYtNS44MzQgNS44MzQtNS44MzMtNS44MzMgMS4wNi0xLjA2IDMuOTk4IDMuOTk2VjMuNzc0aDEuNXoiIGZpbGw9IiMzRDQ3NTciLz48L3N2Zz4=)}.ce-contextmenu-container{z-index:9;position:fixed;display:none;padding:4px;overflow-x:hidden;overflow-y:auto;background:#fff;box-shadow:0 2px 12px #38383833;border:1px solid #e2e6ed;border-radius:2px}.ce-contextmenu-content{display:flex;flex-direction:column}.ce-contextmenu-content .ce-contextmenu-sub-item:after{position:absolute;content:"";width:16px;height:16px;right:12px;background:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJNMCAwaDE2djE2SDB6Ii8+PGcgZmlsbD0iIzc2N0M4NSI+PHBhdGggZD0iTTcgMTIuMjQzbC0uNzA3LS43MDcgNC4yNDMtNC4yNDMuNzA3LjcwN3oiLz48cGF0aCBkPSJNNi4yOTMgNC40NjRMNyAzLjc1NyAxMS4yNDMgOGwtLjcwNy43MDd6Ii8+PC9nPjwvZz48L3N2Zz4=)}.ce-contextmenu-content .ce-contextmenu-item{min-width:140px;padding:0 32px 0 16px;height:30px;display:flex;align-items:center;white-space:nowrap;box-sizing:border-box;cursor:pointer}.ce-contextmenu-content .ce-contextmenu-item.hover{background:rgba(25,55,88,.04)}.ce-contextmenu-content .ce-contextmenu-item span{max-width:300px;font-size:12px;color:#3d4757;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.ce-contextmenu-content .ce-contextmenu-item span.ce-shortcut{color:#767c85;height:30px;flex:1;text-align:right;line-height:30px;margin-left:20px}.ce-contextmenu-content .ce-contextmenu-item i{width:16px;height:16px;vertical-align:middle;display:inline-block;background-repeat:no-repeat;background-size:100% 100%;flex-shrink:0;margin-right:8px}.ce-contextmenu-divider{background-color:#e2e6ed;margin:4px 16px;height:1px}.ce-contextmenu-print{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBmaWxsPSIjM0Q0NzU3IiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxwYXRoIGQ9Ik0xMiA0aC0xVjJINXYySDRWMmExIDEgMCAwMTEtMWg2YTEgMSAwIDAxMSAxdjJ6bTAgNXY0YTEgMSAwIDAxLTEgMUg1YTEgMSAwIDAxLTEtMVY5aDF2NGg2VjloMXoiLz48cGF0aCBkPSJNMTIgMTJ2LTFoMlY1SDJ2NmgydjFIMmExIDEgMCAwMS0xLTFWNWExIDEgMCAwMTEtMWgxMmExIDEgMCAwMTEgMXY2YTEgMSAwIDAxLTEgMWgtMnoiLz48cGF0aCBkPSJNMyA4aDEwdjFIM3ptOC0yaDJ2MWgtMnoiLz48L2c+PC9zdmc+)}.ce-contextmenu-image{background-image:url(data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSLlm77lsYJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4PSIwIiB5PSIwIiB2aWV3Qm94PSIwIDAgMTYgMTYiIHhtbDpzcGFjZT0icHJlc2VydmUiPjxzdHlsZT4uc3Qwe2ZpbGw6IzNkNDc1N308L3N0eWxlPjxnIGlkPSJfeDMwXzAt5YWs5YWxX3gyRl8wMuW3peWFt+agj194MkZf5o+S5YWl5Zu+54mHLTE2cHgtIj48ZyBpZD0iR3JvdXAtMTkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEgMSkiPjxwYXRoIGlkPSJDb21iaW5lZC1TaGFwZSIgY2xhc3M9InN0MCIgZD0iTTEgMGgxMmMuNiAwIDEgLjQgMSAxdjExYzAgLjYtLjQgMS0xIDFIMWMtLjYgMC0xLS40LTEtMVYxYzAtLjYuNC0xIDEtMXptMCAxdjExaDEyVjFIMXoiLz48Y2lyY2xlIGlkPSLmpK3lnIblvaIiIGNsYXNzPSJzdDAiIGN4PSIxMCIgY3k9IjQiIHI9IjEiLz48cGF0aCBpZD0iUGF0aCIgY2xhc3M9InN0MCIgZD0iTTguNSAxMS4ybC00LTQuMUwxIDEwLjdWOS4yYzEuNy0xLjYgMi43LTIuNSAzLTIuOC40LS41LjctLjQgMSAwTDguNSAxMCAxMSA3LjNjLjQtLjUuNi0uNSAxLS4xbDIgMi44djEuNWwtMi41LTMuNC0zIDMuMXoiLz48L2c+PC9nPjwvc3ZnPg==)}.ce-contextmenu-image-change{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyIDQpIiBmaWxsPSIjM0Q0NzU3Ij48Y2lyY2xlIGZpbGwtcnVsZT0ibm9uemVybyIgY3g9IjMiIGN5PSIxIiByPSIxIi8+PHBhdGggZD0iTTcuNDczIDguMjIzTDMuNDcgNC4xMDcgMCA3LjY2N3YtMS41QzEuNzE1IDQuNiAyLjcwNyAzLjY2NCAyLjk3NSAzLjM1OGMuNDAyLS40NTcuNjUxLS4zOSAxLjA0MiAwTDcuNDczIDcgOS45NiA0LjM0OWMuNDE0LS40NjIuNjItLjQ2MiAxLjAxMS0uMDcxTDEzIDcuMDZ2MS41bC0yLjUxLTMuNDEtMy4wMTcgMy4wNzJ6Ii8+PC9nPjxwYXRoIGQ9Ik02IDEuNUgxLjV2MTJoMTN2LTRWMTNhLjUuNSAwIDAxLS41LjVIMmEuNS41IDAgMDEtLjUtLjVWMmEuNS41IDAgMDEuNS0uNWg0em04LjUgOFY2bC0uNS41aDFsLS41LS41djMuNXpNNiAxLjVoNEw5LjUgMXYxbC41LS41SDZ6IiBzdHJva2U9IiMzRDQ3NTciLz48cGF0aCBkPSJNMTMuMDg1IDEuMzE2bC0zLjgxNCA0YTEgMSAwIDAwMS40NTggMS4zNjhsMy44MTUtNGExIDEgMCAxMC0xLjQ1OS0xLjM2OHoiIGZpbGw9IiMzRDQ3NTciIGZpbGwtcnVsZT0ibm9uemVybyIvPjwvZz48L3N2Zz4=)}.ce-contextmenu-insert-row-col{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBzdHJva2U9IiMzRDQ3NTciIGQ9Ik04LjUgNS41aDZ2NGgtNnoiLz48cGF0aCBmaWxsPSIjM0Q0NzU3IiBkPSJNNCA3djFoMlY3em0tMyAuNUw0IDV2NXpNMSAxaDEydjFIMXptMCAxMmgxMnYxSDF6Ii8+PC9nPjwvc3ZnPg==)}.ce-contextmenu-insert-top-row{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBmaWxsPSIjM0Q0NzU3IiBkPSJNOCA1SDd2M2gxem0tLjUtM0wxMCA1SDV6Ii8+PHJlY3Qgc3Ryb2tlPSIjM0Q0NzU3IiB4PSIxLjUiIHk9IjEwLjUiIHdpZHRoPSIxMiIgaGVpZ2h0PSIzIiByeD0iMSIvPjwvZz48L3N2Zz4=)}.ce-contextmenu-insert-bottom-row{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBmaWxsPSIjM0Q0NzU3IiBkPSJNNyAxMWgxVjhIN3ptLjUgM0w1IDExaDV6Ii8+PHJlY3Qgc3Ryb2tlPSIjM0Q0NzU3IiB4PSIxLjUiIHk9IjIuNSIgd2lkdGg9IjEyIiBoZWlnaHQ9IjMiIHJ4PSIxIi8+PC9nPjwvc3ZnPg==)}.ce-contextmenu-insert-left-col{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBmaWxsPSIjM0Q0NzU3IiBkPSJNMTEgN3YxaDNWN3ptLTMgLjVMMTEgNXY1eiIvPjxyZWN0IHN0cm9rZT0iIzNENDc1NyIgdHJhbnNmb3JtPSJyb3RhdGUoOTAgNCA3LjUpIiB4PSItMiIgeT0iNiIgd2lkdGg9IjEyIiBoZWlnaHQ9IjMiIHJ4PSIxIi8+PC9nPjwvc3ZnPg==)}.ce-contextmenu-insert-right-col{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBmaWxsPSIjM0Q0NzU3IiBkPSJNNSA4VjdIMnYxem0zLS41TDUgMTBWNXoiLz48cmVjdCBzdHJva2U9IiMzRDQ3NTciIHRyYW5zZm9ybT0icm90YXRlKDkwIDEyIDcuNSkiIHg9IjYiIHk9IjYiIHdpZHRoPSIxMiIgaGVpZ2h0PSIzIiByeD0iMSIvPjwvZz48L3N2Zz4=)}.ce-contextmenu-delete-row-col{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBzdHJva2U9IiM5MjlBQTgiIGQ9Ik04LjUgNi41aDZ2MmgtNnoiLz48cGF0aCBmaWxsPSIjM0Q0NzU3IiBkPSJNMiAxMmgxMXYxSDJ6TTIgMmgxMXYxSDJ6bS42MyAzTDcgOS4zNWwtLjYzNS42NUwyIDUuNjN6Ii8+PHBhdGggZmlsbD0iIzNENDc1NyIgZD0iTTIgOS4zNjNMNi4zNTUgNSA3IDUuNzA3IDIuNjk1IDEweiIvPjwvZz48L3N2Zz4=)}.ce-contextmenu-delete-row{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBzdHJva2U9IiM5MjlBQTgiIGQ9Ik04LjUgNS41aDZ2NGgtNnoiLz48cGF0aCBmaWxsPSIjM0Q0NzU3IiBkPSJNMSAxM2gxMnYxSDF6TTEgMWgxMnYxSDF6bTAgNGgxdjFIMXptMSAxaDF2MUgyem0xIDFoMXYxSDN6bTEtMWgxdjFINHptMS0xaDF2MUg1ek00IDhoMXYxSDR6TTIgOGgxdjFIMnptMyAxaDF2MUg1ek0xIDloMXYxSDF6Ii8+PC9nPjwvc3ZnPg==)}.ce-contextmenu-delete-col{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBzdHJva2U9IiM5MjlBQTgiIGQ9Ik01LjUgNy41di02aDR2NnoiLz48cGF0aCBmaWxsPSIjM0Q0NzU3IiBkPSJNMTMgMTVWM2gxdjEyek0xIDE1VjNoMXYxMnptNCAwdi0xaDF2MXptMS0xdi0xaDF2MXptMS0xdi0xaDF2MXptLTEtMXYtMWgxdjF6bS0xLTF2LTFoMXYxem0zIDF2LTFoMXYxem0wIDJ2LTFoMXYxem0xLTN2LTFoMXYxem0wIDR2LTFoMXYxeiIvPjwvZz48L3N2Zz4=)}.ce-contextmenu-delete-table{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0iIzNENDc1NyIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJNMTQgMTNoLTF2LTNIMnYzSDF2LTNhMSAxIDAgMDExLTFoMTFhMSAxIDAgMDExIDF2M3oiIGZpbGwtcnVsZT0ibm9uemVybyIvPjxwYXRoIGQ9Ik01LjYyNSAyTDEwIDYuMzc1IDkuMzc1IDcgNSAyLjYyNXoiLz48cGF0aCBkPSJNNSA2LjM3NUw5LjM3NSAybC42MjUuNjI1TDUuNjI1IDd6Ii8+PC9nPjwvc3ZnPg==)}.ce-contextmenu-merge-cell{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0iIzNENDc1NyIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJNNiAxdjFIMnYxMWg0djFIMmExIDEgMCAwMS0xLTFWMmExIDEgMCAwMTEtMWg0em0zIDBoNGExIDEgMCAwMTEgMXYxMWExIDEgMCAwMS0xIDFIOXYtMWg0VjJIOVYxeiIvPjxwYXRoIGZpbGwtcnVsZT0ibm9uemVybyIgZD0iTTYgMWgxdjRINnptMiAwaDF2NEg4eiIvPjxwYXRoIGQ9Ik04IDcuNUwxMCA2djN6bS0xIDBMNSA2djN6Ii8+PHBhdGggZD0iTTkgN2gzdjFIOXpNMyA3aDN2MUgzeiIvPjxwYXRoIGZpbGwtcnVsZT0ibm9uemVybyIgZD0iTTggMTBoMXY0SDh6bS0yIDBoMXY0SDZ6Ii8+PC9nPjwvc3ZnPg==)}.ce-contextmenu-merge-cancel-cell{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0iIzNENDc1NyIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJNNiAxdjFIMnYxMWg0djFIMmExIDEgMCAwMS0xLTFWMmExIDEgMCAwMTEtMWg0em0zIDBoNGExIDEgMCAwMTEgMXYxMWExIDEgMCAwMS0xIDFIOXYtMWg0VjJIOVYxeiIvPjxwYXRoIGZpbGwtcnVsZT0ibm9uemVybyIgZD0iTTYgMWgxdjRINnptMiAwaDF2NEg4eiIvPjxwYXRoIGQ9Ik0zIDcuNUw1IDZ2M3ptOSAwTDEwIDZ2M3oiLz48cGF0aCBkPSJNNCA3aDN2MUg0em00IDBoM3YxSDh6Ii8+PHBhdGggZmlsbC1ydWxlPSJub256ZXJvIiBkPSJNOCAxMGgxdjRIOHptLTIgMGgxdjRINnoiLz48L2c+PC9zdmc+)}.ce-contextmenu-vertical-align{background-image:url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjE2IiB2aWV3Qm94PSIwIDAgMTYgMTYiIHdpZHRoPSIxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMiAxM2gxMnYxSDJ6bTAtM2g4djFIMnptMC0zaDEydjFIMnptMC02aDEydjFIMnptMCAzaDh2MUgyeiIgZmlsbD0iIzNkNDc1NyIgZmlsbC1ydWxlPSJldmVub2RkIi8+PC9zdmc+)}.ce-contextmenu-vertical-align-top{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTggOEg3djZoMXptLS41LTNMMTAgOEg1ek0yIDNoMTF2MUgyeiIgZmlsbD0iIzNENDc1NyIgZmlsbC1ydWxlPSJldmVub2RkIi8+PC9zdmc+)}.ce-contextmenu-vertical-align-middle{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNOCAxMkg3djNoMXptLS41LTNsMi41IDNINXpNNyAzaDFWMEg3em0uNSAzTDUgM2g1ek0yIDdoMTF2MUgyeiIgZmlsbD0iIzNENDc1NyIgZmlsbC1ydWxlPSJldmVub2RkIi8+PC9zdmc+)}.ce-contextmenu-vertical-align-bottom{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTcgOWgxVjNIN3ptLjUgM0w1IDloNXpNMiAxM2gxMXYxSDJ6IiBmaWxsPSIjM0Q0NzU3IiBmaWxsLXJ1bGU9ImV2ZW5vZGQiLz48L3N2Zz4=)}.ce-contextmenu-border-all{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTIuNSAzYS41LjUgMCAwMS41LS41aDExYS41LjUgMCAwMS41LjV2MTFhLjUuNSAwIDAxLS41LjVIM2EuNS41IDAgMDEtLjUtLjVWM3oiIHN0cm9rZT0iIzNENDc1NyIvPjxwYXRoIGZpbGw9IiMzRDQ3NTciIGQ9Ik0zIDhoMTF2MUgzeiIvPjxwYXRoIGZpbGw9IiMzRDQ3NTciIGQ9Ik05IDN2MTFIOFYzeiIvPjwvc3ZnPg==)}.ce-contextmenu-border-empty{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMyAzaC0xVjJoMWExIDEgMCAwMTEgMXYxaC0xVjN6bS0zLTF2MUg4LjV2MmgtMVYzSDZWMmg0ek00IDJ2MUgzdjFIMlYzYTEgMSAwIDAxMS0xaDF6TTIgNmgxdjEuNWgydjFIM1YxMEgyVjZ6bTAgNmgxdjFoMXYxSDNhMSAxIDAgMDEtMS0xdi0xem00IDJ2LTFoMS41di0yaDF2MkgxMHYxSDZ6bTYgMHYtMWgxdi0xaDF2MWExIDEgMCAwMS0xIDFoLTF6bTItNGgtMVY4LjVoLTJ2LTFoMlY2aDF2NHpNOC41IDcuNXYtMWgtMXYxaC0xdjFoMXYxaDF2LTFoMXYtMWgtMXoiIGZpbGw9IiNBQUFDQjAiLz48L3N2Zz4=)}.ce-contextmenu-border-external{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTIuNSAzYS41LjUgMCAwMS41LS41aDExYS41LjUgMCAwMS41LjV2MTFhLjUuNSAwIDAxLS41LjVIM2EuNS41IDAgMDEtLjUtLjVWM3oiIHN0cm9rZT0iIzNENDc1NyIvPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNOSA1VjNIOHYyaDF6bTAgOXYtMkg4djJoMXpNNSA4SDN2MWgyVjh6bTkgMGgtMnYxaDJWOHpNOSA3djFoMXYxSDl2MUg4VjlIN1Y4aDFWN2gxeiIgZmlsbD0iI0FBQUNCMCIvPjwvc3ZnPg==)}.ce-hyperlink-popup{background:#fff;box-shadow:0 2px 12px #626b8433;border-radius:2px;color:#3d4757;padding:12px 16px;position:absolute;z-index:1;text-align:center;display:none}.ce-hyperlink-popup a{min-width:100px;max-width:300px;font-size:12px;display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;text-decoration:none;border-bottom-width:1px;border-bottom-style:solid;color:#00f}.ce-header-indicator>div{padding:3px 6px;color:#000;font-size:12px;background:rgb(218 231 252);position:absolute;transform-origin:0 0}.ce-header-indicator-border__top,.ce-header-indicator-border__bottom,.ce-header-indicator-border__left,.ce-header-indicator-border__right{display:block;position:absolute}.ce-header-indicator-border__top{border-top:2px dashed rgb(238,238,238)}.ce-header-indicator-border__bottom{border-top:2px dashed rgb(238,238,238);width:100%}.ce-header-indicator-border__left{border-left:2px dashed rgb(238,238,238)}.ce-header-indicator-border__right{border-right:2px dashed rgb(238,238,238)}.ce-inputarea{width:1px;height:12px;min-width:0;min-height:0;margin:0;padding:0;left:0;right:0;letter-spacing:0;font-size:12px;position:absolute;z-index:-1;outline:none;resize:none;border:none;overflow:hidden;color:transparent;user-select:none;background-color:transparent}.ce-cursor{width:1px;height:20px;left:0;right:0;position:absolute;outline:none;background-color:#000;pointer-events:none}.ce-cursor.ce-cursor--animation{animation-duration:1s;animation-iteration-count:infinite;animation-name:cursorAnimation}@keyframes cursorAnimation{0%{opacity:1}13%{opacity:0}50%{opacity:0}63%{opacity:1}to{opacity:1}}')),document.head.appendChild(e)}}catch(i){console.error("vite-plugin-css-injected-by-js",i)}})();})();
2
2
  var __defProp = Object.defineProperty;
3
3
  var __defProps = Object.defineProperties;
4
4
  var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
@@ -23,7 +23,7 @@ var __publicField = (obj, key, value) => {
23
23
  return value;
24
24
  };
25
25
  var index = "";
26
- const version = "0.9.24";
26
+ const version = "0.9.26";
27
27
  const ZERO = "\u200B";
28
28
  const WRAP = "\n";
29
29
  var RowFlex;
@@ -201,6 +201,7 @@ const EDITOR_ELEMENT_ZIP_ATTR = [
201
201
  "rowMargin",
202
202
  "dashArray",
203
203
  "trList",
204
+ "borderType",
204
205
  "width",
205
206
  "height",
206
207
  "url",
@@ -4319,9 +4320,7 @@ function mousedown(evt, host) {
4319
4320
  const tableTool = draw.getTableTool();
4320
4321
  tableTool.dispose();
4321
4322
  if (isTable && !isReadonly) {
4322
- const originalElementList = draw.getOriginalElementList();
4323
- const originalPositionList = position.getOriginalPositionList();
4324
- tableTool.render(originalElementList[index2], originalPositionList[index2]);
4323
+ tableTool.render();
4325
4324
  }
4326
4325
  const hyperlinkParticle = draw.getHyperlinkParticle();
4327
4326
  hyperlinkParticle.clearHyperlinkPopup();
@@ -4776,6 +4775,10 @@ function keydown(evt, host) {
4776
4775
  evt.preventDefault();
4777
4776
  } else if (evt.key === KeyMap.ESC) {
4778
4777
  host.clearPainterStyle();
4778
+ const zoneManager = draw.getZone();
4779
+ if (zoneManager.isHeaderActive()) {
4780
+ zoneManager.setZone(EditorZone.MAIN);
4781
+ }
4779
4782
  evt.preventDefault();
4780
4783
  } else if (evt.key === KeyMap.TAB) {
4781
4784
  draw.insertElementList([{
@@ -5651,13 +5654,14 @@ class Position {
5651
5654
  let isLastArea = false;
5652
5655
  let curPositionIndex = -1;
5653
5656
  if (isTable) {
5657
+ const { scale } = this.options;
5654
5658
  const { td, tablePosition } = payload;
5655
5659
  if (td && tablePosition) {
5656
5660
  const { leftTop } = tablePosition.coordinate;
5657
- const tdX = td.x + leftTop[0];
5658
- const tdY = td.y + leftTop[1];
5659
- const tdWidth = td.width;
5660
- const tdHeight = td.height;
5661
+ const tdX = td.x * scale + leftTop[0];
5662
+ const tdY = td.y * scale + leftTop[1];
5663
+ const tdWidth = td.width * scale;
5664
+ const tdHeight = td.height * scale;
5661
5665
  if (!(tdX < x && x < tdX + tdWidth && tdY < y && y < tdY + tdHeight)) {
5662
5666
  return {
5663
5667
  index: curPositionIndex
@@ -6610,14 +6614,19 @@ class TableParticle {
6610
6614
  this.range = draw.getRange();
6611
6615
  this.options = draw.getOptions();
6612
6616
  }
6613
- _drawBorder(ctx, startX, startY, width, height) {
6617
+ _drawBorder(payload) {
6618
+ const { ctx, startX, startY, width, height, isDrawFullBorder } = payload;
6614
6619
  ctx.beginPath();
6615
6620
  const x = Math.round(startX);
6616
6621
  const y = Math.round(startY);
6617
6622
  ctx.translate(0.5, 0.5);
6618
- ctx.moveTo(x, y + height);
6619
- ctx.lineTo(x, y);
6620
- ctx.lineTo(x + width, y);
6623
+ if (isDrawFullBorder) {
6624
+ ctx.rect(x, y, width, height);
6625
+ } else {
6626
+ ctx.moveTo(x, y + height);
6627
+ ctx.lineTo(x, y);
6628
+ ctx.lineTo(x + width, y);
6629
+ }
6621
6630
  ctx.stroke();
6622
6631
  ctx.translate(-0.5, -0.5);
6623
6632
  }
@@ -6739,29 +6748,39 @@ class TableParticle {
6739
6748
  ctx.restore();
6740
6749
  }
6741
6750
  render(ctx, element, startX, startY) {
6742
- const { colgroup, trList } = element;
6743
- if (!colgroup || !trList)
6751
+ const { colgroup, trList, borderType } = element;
6752
+ if (!colgroup || !trList || borderType === TableBorder.EMPTY)
6744
6753
  return;
6745
6754
  const { scale } = this.options;
6746
6755
  const tableWidth = element.width * scale;
6747
6756
  const tableHeight = element.height * scale;
6757
+ const isExternalBorderType = borderType === TableBorder.EXTERNAL;
6748
6758
  ctx.save();
6749
- this._drawBorder(ctx, startX, startY, tableWidth, tableHeight);
6750
- for (let t = 0; t < trList.length; t++) {
6751
- const tr = trList[t];
6752
- for (let d = 0; d < tr.tdList.length; d++) {
6753
- const td = tr.tdList[d];
6754
- const width = td.width * scale;
6755
- const height = td.height * scale;
6756
- const x = Math.round(td.x * scale + startX + width);
6757
- const y = Math.round(td.y * scale + startY);
6758
- ctx.translate(0.5, 0.5);
6759
- ctx.beginPath();
6760
- ctx.moveTo(x, y);
6761
- ctx.lineTo(x, y + height);
6762
- ctx.lineTo(x - width, y + height);
6763
- ctx.stroke();
6764
- ctx.translate(-0.5, -0.5);
6759
+ this._drawBorder({
6760
+ ctx,
6761
+ startX,
6762
+ startY,
6763
+ width: tableWidth,
6764
+ height: tableHeight,
6765
+ isDrawFullBorder: isExternalBorderType
6766
+ });
6767
+ if (!isExternalBorderType) {
6768
+ for (let t = 0; t < trList.length; t++) {
6769
+ const tr = trList[t];
6770
+ for (let d = 0; d < tr.tdList.length; d++) {
6771
+ const td = tr.tdList[d];
6772
+ const width = td.width * scale;
6773
+ const height = td.height * scale;
6774
+ const x = Math.round(td.x * scale + startX + width);
6775
+ const y = Math.round(td.y * scale + startY);
6776
+ ctx.translate(0.5, 0.5);
6777
+ ctx.beginPath();
6778
+ ctx.moveTo(x, y);
6779
+ ctx.lineTo(x, y + height);
6780
+ ctx.lineTo(x - width, y + height);
6781
+ ctx.stroke();
6782
+ ctx.translate(-0.5, -0.5);
6783
+ }
6765
6784
  }
6766
6785
  }
6767
6786
  ctx.restore();
@@ -6774,8 +6793,9 @@ var TableOrder;
6774
6793
  })(TableOrder || (TableOrder = {}));
6775
6794
  class TableTool {
6776
6795
  constructor(draw) {
6777
- __publicField(this, "translate", 18);
6778
- __publicField(this, "minTdWidth", 20);
6796
+ __publicField(this, "MIN_TD_WIDTH", 20);
6797
+ __publicField(this, "ROW_COL_OFFSET", 18);
6798
+ __publicField(this, "BORDER_VALUE", 4);
6779
6799
  __publicField(this, "draw");
6780
6800
  __publicField(this, "canvas");
6781
6801
  __publicField(this, "options");
@@ -6783,6 +6803,7 @@ class TableTool {
6783
6803
  __publicField(this, "container");
6784
6804
  __publicField(this, "toolRowContainer");
6785
6805
  __publicField(this, "toolColContainer");
6806
+ __publicField(this, "toolBorderContainer");
6786
6807
  __publicField(this, "anchorLine");
6787
6808
  __publicField(this, "mousedownX");
6788
6809
  __publicField(this, "mousedownY");
@@ -6793,34 +6814,46 @@ class TableTool {
6793
6814
  this.container = draw.getContainer();
6794
6815
  this.toolRowContainer = null;
6795
6816
  this.toolColContainer = null;
6817
+ this.toolBorderContainer = null;
6796
6818
  this.anchorLine = null;
6797
6819
  this.mousedownX = 0;
6798
6820
  this.mousedownY = 0;
6799
6821
  }
6800
6822
  dispose() {
6801
- var _a, _b;
6823
+ var _a, _b, _c;
6802
6824
  (_a = this.toolRowContainer) == null ? void 0 : _a.remove();
6803
6825
  (_b = this.toolColContainer) == null ? void 0 : _b.remove();
6826
+ (_c = this.toolBorderContainer) == null ? void 0 : _c.remove();
6827
+ this.toolRowContainer = null;
6828
+ this.toolColContainer = null;
6829
+ this.toolBorderContainer = null;
6804
6830
  }
6805
- render(element, position) {
6831
+ render() {
6832
+ const { isTable, index: index2, trIndex, tdIndex } = this.position.getPositionContext();
6833
+ if (!isTable)
6834
+ return;
6806
6835
  this.dispose();
6807
- const { trIndex, tdIndex } = this.position.getPositionContext();
6808
6836
  const { scale } = this.options;
6809
- const height = this.draw.getHeight();
6810
- const pageGap = this.draw.getPageGap();
6837
+ const elementList = this.draw.getOriginalElementList();
6838
+ const positionList = this.position.getOriginalPositionList();
6839
+ const element = elementList[index2];
6840
+ const position = positionList[index2];
6811
6841
  const { colgroup, trList } = element;
6812
6842
  const { coordinate: { leftTop } } = position;
6843
+ const height = this.draw.getHeight();
6844
+ const pageGap = this.draw.getPageGap();
6813
6845
  const prePageHeight = this.draw.getPageNo() * (height + pageGap);
6846
+ const tableX = leftTop[0];
6847
+ const tableY = leftTop[1] + prePageHeight;
6814
6848
  const td = element.trList[trIndex].tdList[tdIndex];
6815
6849
  const rowIndex = td.rowIndex;
6816
6850
  const colIndex = td.colIndex;
6817
- const rowList = trList.map((tr) => tr.height);
6818
- const colList = colgroup.map((col) => col.width);
6851
+ const rowHeightList = trList.map((tr) => tr.height);
6819
6852
  const rowContainer = document.createElement("div");
6820
6853
  rowContainer.classList.add(`${EDITOR_PREFIX}-table-tool__row`);
6821
- rowContainer.style.transform = `translateX(-${this.translate * scale}px)`;
6822
- for (let r = 0; r < rowList.length; r++) {
6823
- const rowHeight = rowList[r] * scale;
6854
+ rowContainer.style.transform = `translateX(-${this.ROW_COL_OFFSET * scale}px)`;
6855
+ for (let r = 0; r < rowHeightList.length; r++) {
6856
+ const rowHeight = rowHeightList[r] * scale;
6824
6857
  const rowItem = document.createElement("div");
6825
6858
  rowItem.classList.add(`${EDITOR_PREFIX}-table-tool__row__item`);
6826
6859
  if (r === rowIndex) {
@@ -6832,7 +6865,6 @@ class TableTool {
6832
6865
  this._mousedown({
6833
6866
  evt,
6834
6867
  element,
6835
- position,
6836
6868
  index: r,
6837
6869
  order: TableOrder.ROW
6838
6870
  });
@@ -6841,15 +6873,16 @@ class TableTool {
6841
6873
  rowItem.style.height = `${rowHeight}px`;
6842
6874
  rowContainer.append(rowItem);
6843
6875
  }
6844
- rowContainer.style.left = `${leftTop[0]}px`;
6845
- rowContainer.style.top = `${leftTop[1] + prePageHeight}px`;
6876
+ rowContainer.style.left = `${tableX}px`;
6877
+ rowContainer.style.top = `${tableY}px`;
6846
6878
  this.container.append(rowContainer);
6847
6879
  this.toolRowContainer = rowContainer;
6880
+ const colWidthList = colgroup.map((col) => col.width);
6848
6881
  const colContainer = document.createElement("div");
6849
6882
  colContainer.classList.add(`${EDITOR_PREFIX}-table-tool__col`);
6850
- colContainer.style.transform = `translateY(-${this.translate * scale}px)`;
6851
- for (let c = 0; c < colList.length; c++) {
6852
- const colHeight = colList[c] * scale;
6883
+ colContainer.style.transform = `translateY(-${this.ROW_COL_OFFSET * scale}px)`;
6884
+ for (let c = 0; c < colWidthList.length; c++) {
6885
+ const colWidth = colWidthList[c] * scale;
6853
6886
  const colItem = document.createElement("div");
6854
6887
  colItem.classList.add(`${EDITOR_PREFIX}-table-tool__col__item`);
6855
6888
  if (c === colIndex) {
@@ -6861,22 +6894,67 @@ class TableTool {
6861
6894
  this._mousedown({
6862
6895
  evt,
6863
6896
  element,
6864
- position,
6865
6897
  index: c,
6866
6898
  order: TableOrder.COL
6867
6899
  });
6868
6900
  };
6869
6901
  colItem.append(colItemAnchor);
6870
- colItem.style.width = `${colHeight}px`;
6902
+ colItem.style.width = `${colWidth}px`;
6871
6903
  colContainer.append(colItem);
6872
6904
  }
6873
- colContainer.style.left = `${leftTop[0]}px`;
6874
- colContainer.style.top = `${leftTop[1] + prePageHeight}px`;
6905
+ colContainer.style.left = `${tableX}px`;
6906
+ colContainer.style.top = `${tableY}px`;
6875
6907
  this.container.append(colContainer);
6876
6908
  this.toolColContainer = colContainer;
6909
+ const tableHeight = element.height * scale;
6910
+ const tableWidth = element.width * scale;
6911
+ const borderContainer = document.createElement("div");
6912
+ borderContainer.classList.add(`${EDITOR_PREFIX}-table-tool__border`);
6913
+ borderContainer.style.height = `${tableHeight}px`;
6914
+ borderContainer.style.width = `${tableWidth}px`;
6915
+ borderContainer.style.left = `${tableX}px`;
6916
+ borderContainer.style.top = `${tableY}px`;
6917
+ for (let r = 0; r < trList.length; r++) {
6918
+ const tr = trList[r];
6919
+ for (let d = 0; d < tr.tdList.length; d++) {
6920
+ const td2 = tr.tdList[d];
6921
+ const rowBorder = document.createElement("div");
6922
+ rowBorder.classList.add(`${EDITOR_PREFIX}-table-tool__border__row`);
6923
+ rowBorder.style.width = `${td2.width * scale}px`;
6924
+ rowBorder.style.height = `${this.BORDER_VALUE}px`;
6925
+ rowBorder.style.top = `${(td2.y + td2.height) * scale - this.BORDER_VALUE / 2}px`;
6926
+ rowBorder.style.left = `${td2.x * scale}px`;
6927
+ rowBorder.onmousedown = (evt) => {
6928
+ this._mousedown({
6929
+ evt,
6930
+ element,
6931
+ index: td2.rowIndex,
6932
+ order: TableOrder.ROW
6933
+ });
6934
+ };
6935
+ borderContainer.appendChild(rowBorder);
6936
+ const colBorder = document.createElement("div");
6937
+ colBorder.classList.add(`${EDITOR_PREFIX}-table-tool__border__col`);
6938
+ colBorder.style.width = `${this.BORDER_VALUE}px`;
6939
+ colBorder.style.height = `${td2.height * scale}px`;
6940
+ colBorder.style.top = `${td2.y * scale}px`;
6941
+ colBorder.style.left = `${(td2.x + td2.width) * scale - this.BORDER_VALUE / 2}px`;
6942
+ colBorder.onmousedown = (evt) => {
6943
+ this._mousedown({
6944
+ evt,
6945
+ element,
6946
+ index: td2.colIndex,
6947
+ order: TableOrder.COL
6948
+ });
6949
+ };
6950
+ borderContainer.appendChild(colBorder);
6951
+ }
6952
+ }
6953
+ this.container.append(borderContainer);
6954
+ this.toolBorderContainer = borderContainer;
6877
6955
  }
6878
6956
  _mousedown(payload) {
6879
- const { evt, index: index2, order, element, position } = payload;
6957
+ const { evt, index: index2, order, element } = payload;
6880
6958
  this.canvas = this.draw.getPage();
6881
6959
  const { scale } = this.options;
6882
6960
  const width = this.draw.getWidth();
@@ -6920,6 +6998,7 @@ class TableTool {
6920
6998
  };
6921
6999
  document.addEventListener("mousemove", mousemoveFn);
6922
7000
  document.addEventListener("mouseup", () => {
7001
+ var _a;
6923
7002
  let isChangeSize = false;
6924
7003
  if (order === TableOrder.ROW) {
6925
7004
  element.trList[index2].height += dy;
@@ -6932,8 +7011,9 @@ class TableTool {
6932
7011
  const innerWidth = this.draw.getInnerWidth();
6933
7012
  const curColWidth = colgroup[index2].width;
6934
7013
  const moveColWidth = curColWidth + dx;
6935
- if (moveColWidth < this.minTdWidth) {
6936
- dx = this.minTdWidth - curColWidth;
7014
+ const nextColWidth = ((_a = colgroup[index2 + 1]) == null ? void 0 : _a.width) || 0;
7015
+ if (moveColWidth < this.MIN_TD_WIDTH || moveColWidth > curColWidth + nextColWidth) {
7016
+ dx = this.MIN_TD_WIDTH - curColWidth;
6937
7017
  }
6938
7018
  let moveTableWidth = 0;
6939
7019
  for (let c = 0; c < colgroup.length; c++) {
@@ -6963,7 +7043,6 @@ class TableTool {
6963
7043
  }
6964
7044
  if (isChangeSize) {
6965
7045
  this.draw.render({ isSetCursor: false });
6966
- this.render(element, position);
6967
7046
  }
6968
7047
  anchorLine.remove();
6969
7048
  document.removeEventListener("mousemove", mousemoveFn);
@@ -8257,7 +8336,11 @@ const contextmenu$1 = {
8257
8336
  verticalAlign: "\u5782\u76F4\u5BF9\u9F50",
8258
8337
  verticalAlignTop: "\u9876\u7AEF\u5BF9\u9F50",
8259
8338
  verticalAlignMiddle: "\u5782\u76F4\u5C45\u4E2D",
8260
- verticalAlignBottom: "\u5E95\u7AEF\u5BF9\u9F50"
8339
+ verticalAlignBottom: "\u5E95\u7AEF\u5BF9\u9F50",
8340
+ border: "\u8868\u683C\u8FB9\u6846",
8341
+ borderAll: "\u6240\u6709\u6846\u7EBF",
8342
+ borderEmpty: "\u65E0\u6846\u7EBF",
8343
+ borderExternal: "\u5916\u4FA7\u6846\u7EBF"
8261
8344
  }
8262
8345
  };
8263
8346
  const datePicker$1 = {
@@ -8280,9 +8363,14 @@ const datePicker$1 = {
8280
8363
  minute: "\u5206",
8281
8364
  second: "\u79D2"
8282
8365
  };
8366
+ const frame$1 = {
8367
+ header: "\u9875\u7709",
8368
+ footer: "\u9875\u811A"
8369
+ };
8283
8370
  var zhCN = {
8284
8371
  contextmenu: contextmenu$1,
8285
- datePicker: datePicker$1
8372
+ datePicker: datePicker$1,
8373
+ frame: frame$1
8286
8374
  };
8287
8375
  class DatePicker {
8288
8376
  constructor(options = {}) {
@@ -9011,7 +9099,11 @@ const contextmenu = {
9011
9099
  verticalAlign: "Vertical align",
9012
9100
  verticalAlignTop: "Top",
9013
9101
  verticalAlignMiddle: "Middle",
9014
- verticalAlignBottom: "Bottom"
9102
+ verticalAlignBottom: "Bottom",
9103
+ border: "Table border",
9104
+ borderAll: "All",
9105
+ borderEmpty: "Empty",
9106
+ borderExternal: "External"
9015
9107
  }
9016
9108
  };
9017
9109
  const datePicker = {
@@ -9034,9 +9126,14 @@ const datePicker = {
9034
9126
  minute: "Minute",
9035
9127
  second: "Second"
9036
9128
  };
9129
+ const frame = {
9130
+ header: "Header",
9131
+ footer: "Footer"
9132
+ };
9037
9133
  var en = {
9038
9134
  contextmenu,
9039
- datePicker
9135
+ datePicker,
9136
+ frame
9040
9137
  };
9041
9138
  class I18n {
9042
9139
  constructor() {
@@ -9089,11 +9186,16 @@ class ImageObserver {
9089
9186
  }
9090
9187
  class Zone {
9091
9188
  constructor(draw) {
9189
+ __publicField(this, "INDICATOR_TITLE_TRANSLATE", [20, 5]);
9092
9190
  __publicField(this, "draw");
9191
+ __publicField(this, "options");
9192
+ __publicField(this, "i18n");
9093
9193
  __publicField(this, "container");
9094
9194
  __publicField(this, "currentZone");
9095
9195
  __publicField(this, "headerIndicatorContainer");
9096
9196
  this.draw = draw;
9197
+ this.i18n = draw.getI18n();
9198
+ this.options = draw.getOptions();
9097
9199
  this.container = draw.getContainer();
9098
9200
  this.currentZone = EditorZone.MAIN;
9099
9201
  this.headerIndicatorContainer = null;
@@ -9118,29 +9220,62 @@ class Zone {
9118
9220
  isCompute: false
9119
9221
  });
9120
9222
  if (this.isHeaderActive()) {
9121
- this._drawHeaderZoneIndicator();
9223
+ this.drawHeaderZoneIndicator();
9122
9224
  } else {
9123
9225
  this._clearHeaderZoneIndicator();
9124
9226
  }
9125
9227
  }
9126
- _drawHeaderZoneIndicator() {
9228
+ drawHeaderZoneIndicator() {
9229
+ this._clearHeaderZoneIndicator();
9230
+ const { scale } = this.options;
9231
+ const [offsetX, offsetY] = this.INDICATOR_TITLE_TRANSLATE;
9127
9232
  this.headerIndicatorContainer = document.createElement("div");
9128
9233
  this.headerIndicatorContainer.classList.add(`${EDITOR_PREFIX}-header-indicator`);
9129
9234
  const pageList = this.draw.getPageList();
9235
+ const margins = this.draw.getMargins();
9236
+ const innerWidth = this.draw.getInnerWidth();
9130
9237
  const pageHeight = this.draw.getHeight();
9131
9238
  const pageGap = this.draw.getPageGap();
9132
9239
  const preY = pageHeight + pageGap;
9240
+ const header = this.draw.getHeader();
9241
+ const headerHeight = header.getHeight();
9242
+ const headerTop = header.getHeaderTop();
9133
9243
  for (let p = 0; p < pageList.length; p++) {
9134
- const indicator = document.createElement("div");
9135
- indicator.innerText = `\u7F16\u8F91\u9875\u7709`;
9136
- indicator.style.top = `${preY * p}px`;
9137
- this.headerIndicatorContainer.append(indicator);
9244
+ const startY = preY * p + headerTop;
9245
+ const indicatorTitle = document.createElement("div");
9246
+ indicatorTitle.innerText = this.i18n.t("frame.header");
9247
+ indicatorTitle.style.top = `${startY + headerHeight}px`;
9248
+ indicatorTitle.style.transform = `translate(${offsetX * scale}px, ${offsetY * scale}px) scale(${scale})`;
9249
+ this.headerIndicatorContainer.append(indicatorTitle);
9250
+ const lineTop = document.createElement("span");
9251
+ lineTop.classList.add(`${EDITOR_PREFIX}-header-indicator-border__top`);
9252
+ lineTop.style.top = `${startY}px`;
9253
+ lineTop.style.width = `${innerWidth}px`;
9254
+ lineTop.style.marginLeft = `${margins[3]}px`;
9255
+ this.headerIndicatorContainer.append(lineTop);
9256
+ const lineLeft = document.createElement("span");
9257
+ lineLeft.classList.add(`${EDITOR_PREFIX}-header-indicator-border__left`);
9258
+ lineLeft.style.top = `${startY}px`;
9259
+ lineLeft.style.height = `${headerHeight}px`;
9260
+ lineLeft.style.left = `${margins[3]}px`;
9261
+ this.headerIndicatorContainer.append(lineLeft);
9262
+ const lineBottom = document.createElement("span");
9263
+ lineBottom.classList.add(`${EDITOR_PREFIX}-header-indicator-border__bottom`);
9264
+ lineBottom.style.top = `${startY + headerHeight}px`;
9265
+ this.headerIndicatorContainer.append(lineBottom);
9266
+ const lineRight = document.createElement("span");
9267
+ lineRight.classList.add(`${EDITOR_PREFIX}-header-indicator-border__right`);
9268
+ lineRight.style.top = `${startY}px`;
9269
+ lineRight.style.height = `${headerHeight}px`;
9270
+ lineRight.style.left = `${margins[3] + innerWidth}px`;
9271
+ this.headerIndicatorContainer.append(lineRight);
9138
9272
  }
9139
9273
  this.container.append(this.headerIndicatorContainer);
9140
9274
  }
9141
9275
  _clearHeaderZoneIndicator() {
9142
9276
  var _a;
9143
9277
  (_a = this.headerIndicatorContainer) == null ? void 0 : _a.remove();
9278
+ this.headerIndicatorContainer = null;
9144
9279
  }
9145
9280
  }
9146
9281
  class Draw {
@@ -9320,9 +9455,6 @@ class Draw {
9320
9455
  const { pageNumber: { bottom }, scale } = this.options;
9321
9456
  return bottom * scale;
9322
9457
  }
9323
- getHeaderTop() {
9324
- return this.options.headerTop * this.options.scale;
9325
- }
9326
9458
  getMarginIndicatorSize() {
9327
9459
  return this.options.marginIndicatorSize * this.options.scale;
9328
9460
  }
@@ -10215,9 +10347,9 @@ class Draw {
10215
10347
  } else {
10216
10348
  this._immediateRender();
10217
10349
  }
10350
+ const positionContext = this.position.getPositionContext();
10218
10351
  if (isSetCursor) {
10219
10352
  const positionList = this.position.getPositionList();
10220
- const positionContext = this.position.getPositionContext();
10221
10353
  if (positionContext.isTable) {
10222
10354
  const { index: index2, trIndex, tdIndex } = positionContext;
10223
10355
  const elementList = this.getOriginalElementList();
@@ -10238,7 +10370,7 @@ class Draw {
10238
10370
  const oldHeaderElementList = deepClone(this.header.getElementList());
10239
10371
  const { startIndex, endIndex } = this.range.getRange();
10240
10372
  const pageNo = this.pageNo;
10241
- const oldPositionContext = deepClone(this.position.getPositionContext());
10373
+ const oldPositionContext = deepClone(positionContext);
10242
10374
  const zone = this.zone.getZone();
10243
10375
  this.historyManager.execute(function() {
10244
10376
  self.zone.setZone(zone);
@@ -10251,6 +10383,12 @@ class Draw {
10251
10383
  });
10252
10384
  }
10253
10385
  nextTick(() => {
10386
+ if (isCompute && !this.isReadonly() && positionContext.isTable) {
10387
+ this.tableTool.render();
10388
+ }
10389
+ if (isCompute && this.zone.isHeaderActive()) {
10390
+ this.zone.drawHeaderZoneIndicator();
10391
+ }
10254
10392
  if (this.listener.pageSizeChange) {
10255
10393
  this.listener.pageSizeChange(this.pageRowList.length);
10256
10394
  }
@@ -10308,6 +10446,7 @@ const _Command = class {
10308
10446
  _Command.mergeTableCell = adapt.mergeTableCell.bind(adapt);
10309
10447
  _Command.cancelMergeTableCell = adapt.cancelMergeTableCell.bind(adapt);
10310
10448
  _Command.tableTdVerticalAlign = adapt.tableTdVerticalAlign.bind(adapt);
10449
+ _Command.tableBorderType = adapt.tableBorderType.bind(adapt);
10311
10450
  _Command.image = adapt.image.bind(adapt);
10312
10451
  _Command.hyperlink = adapt.hyperlink.bind(adapt);
10313
10452
  _Command.deleteHyperlink = adapt.deleteHyperlink.bind(adapt);
@@ -10462,6 +10601,9 @@ const _Command = class {
10462
10601
  executeTableTdVerticalAlign(payload) {
10463
10602
  return _Command.tableTdVerticalAlign(payload);
10464
10603
  }
10604
+ executeTableBorderType(payload) {
10605
+ return _Command.tableBorderType(payload);
10606
+ }
10465
10607
  executeHyperlink(payload) {
10466
10608
  return _Command.hyperlink(payload);
10467
10609
  }
@@ -10603,6 +10745,7 @@ __publicField(Command, "deleteTable");
10603
10745
  __publicField(Command, "mergeTableCell");
10604
10746
  __publicField(Command, "cancelMergeTableCell");
10605
10747
  __publicField(Command, "tableTdVerticalAlign");
10748
+ __publicField(Command, "tableBorderType");
10606
10749
  __publicField(Command, "image");
10607
10750
  __publicField(Command, "hyperlink");
10608
10751
  __publicField(Command, "deleteHyperlink");
@@ -10643,6 +10786,12 @@ const defaultWatermarkOption = {
10643
10786
  size: 200,
10644
10787
  font: "Yahei"
10645
10788
  };
10789
+ var TableBorder;
10790
+ (function(TableBorder2) {
10791
+ TableBorder2["ALL"] = "all";
10792
+ TableBorder2["EMPTY"] = "empty";
10793
+ TableBorder2["EXTERNAL"] = "external";
10794
+ })(TableBorder || (TableBorder = {}));
10646
10795
  var VerticalAlign;
10647
10796
  (function(VerticalAlign2) {
10648
10797
  VerticalAlign2["TOP"] = "top";
@@ -11201,8 +11350,7 @@ class CommandAdapt {
11201
11350
  });
11202
11351
  this.range.setRange(0, 0);
11203
11352
  this.draw.render({ curIndex: 0 });
11204
- const position = this.position.getOriginalPositionList();
11205
- this.tableTool.render(element, position[index2]);
11353
+ this.tableTool.render();
11206
11354
  }
11207
11355
  insertTableBottomRow() {
11208
11356
  const isReadonly = this.draw.isReadonly();
@@ -11263,8 +11411,7 @@ class CommandAdapt {
11263
11411
  });
11264
11412
  this.range.setRange(0, 0);
11265
11413
  this.draw.render({ curIndex: 0 });
11266
- const position = this.position.getOriginalPositionList();
11267
- this.tableTool.render(element, position[index2]);
11414
+ this.tableTool.render();
11268
11415
  }
11269
11416
  insertTableLeftCol() {
11270
11417
  const isReadonly = this.draw.isReadonly();
@@ -11318,8 +11465,7 @@ class CommandAdapt {
11318
11465
  });
11319
11466
  this.range.setRange(0, 0);
11320
11467
  this.draw.render({ curIndex: 0 });
11321
- const position = this.position.getOriginalPositionList();
11322
- this.tableTool.render(element, position[index2]);
11468
+ this.tableTool.render();
11323
11469
  }
11324
11470
  insertTableRightCol() {
11325
11471
  const isReadonly = this.draw.isReadonly();
@@ -11373,8 +11519,7 @@ class CommandAdapt {
11373
11519
  });
11374
11520
  this.range.setRange(0, 0);
11375
11521
  this.draw.render({ curIndex: 0 });
11376
- const position = this.position.getOriginalPositionList();
11377
- this.tableTool.render(element, position[index2]);
11522
+ this.tableTool.render();
11378
11523
  }
11379
11524
  deleteTableRow() {
11380
11525
  const isReadonly = this.draw.isReadonly();
@@ -11593,8 +11738,7 @@ class CommandAdapt {
11593
11738
  const curIndex = startTd.value.length - 1;
11594
11739
  this.range.setRange(curIndex, curIndex);
11595
11740
  this.draw.render();
11596
- const position = this.position.getOriginalPositionList();
11597
- this.tableTool.render(element, position[index2]);
11741
+ this.tableTool.render();
11598
11742
  }
11599
11743
  cancelMergeTableCell() {
11600
11744
  const isReadonly = this.draw.isReadonly();
@@ -11654,8 +11798,7 @@ class CommandAdapt {
11654
11798
  const curIndex = curTd.value.length - 1;
11655
11799
  this.range.setRange(curIndex, curIndex);
11656
11800
  this.draw.render();
11657
- const position = this.position.getOriginalPositionList();
11658
- this.tableTool.render(element, position[index2]);
11801
+ this.tableTool.render();
11659
11802
  }
11660
11803
  tableTdVerticalAlign(payload) {
11661
11804
  var _a, _b, _c;
@@ -11678,6 +11821,25 @@ class CommandAdapt {
11678
11821
  curIndex: endIndex
11679
11822
  });
11680
11823
  }
11824
+ tableBorderType(payload) {
11825
+ const isReadonly = this.draw.isReadonly();
11826
+ if (isReadonly)
11827
+ return;
11828
+ const positionContext = this.position.getPositionContext();
11829
+ if (!positionContext.isTable)
11830
+ return;
11831
+ const { index: index2 } = positionContext;
11832
+ const originalElementList = this.draw.getOriginalElementList();
11833
+ const element = originalElementList[index2];
11834
+ if (!element.borderType && payload === TableBorder.ALL || element.borderType === payload) {
11835
+ return;
11836
+ }
11837
+ element.borderType = payload;
11838
+ const { endIndex } = this.range.getRange();
11839
+ this.draw.render({
11840
+ curIndex: endIndex
11841
+ });
11842
+ }
11681
11843
  hyperlink(payload) {
11682
11844
  const isReadonly = this.draw.isReadonly();
11683
11845
  if (isReadonly)
@@ -12346,6 +12508,39 @@ const tableMenus = [
12346
12508
  {
12347
12509
  isDivider: true
12348
12510
  },
12511
+ {
12512
+ i18nPath: "contextmenu.table.border",
12513
+ icon: "border-all",
12514
+ when: (payload) => {
12515
+ return !payload.isReadonly && payload.isInTable;
12516
+ },
12517
+ childMenus: [
12518
+ {
12519
+ i18nPath: "contextmenu.table.borderAll",
12520
+ icon: "border-all",
12521
+ when: () => true,
12522
+ callback: (command) => {
12523
+ command.executeTableBorderType(TableBorder.ALL);
12524
+ }
12525
+ },
12526
+ {
12527
+ i18nPath: "contextmenu.table.borderEmpty",
12528
+ icon: "border-empty",
12529
+ when: () => true,
12530
+ callback: (command) => {
12531
+ command.executeTableBorderType(TableBorder.EMPTY);
12532
+ }
12533
+ },
12534
+ {
12535
+ i18nPath: "contextmenu.table.borderExternal",
12536
+ icon: "border-external",
12537
+ when: () => true,
12538
+ callback: (command) => {
12539
+ command.executeTableBorderType(TableBorder.EXTERNAL);
12540
+ }
12541
+ }
12542
+ ]
12543
+ },
12349
12544
  {
12350
12545
  i18nPath: "contextmenu.table.verticalAlign",
12351
12546
  icon: "vertical-align",
@@ -12892,7 +13087,6 @@ class Editor {
12892
13087
  tdPadding: 5,
12893
13088
  defaultTdHeight: 40,
12894
13089
  defaultHyperlinkColor: "#0000FF",
12895
- headerTop: 50,
12896
13090
  paperDirection: PaperDirection.VERTICAL,
12897
13091
  inactiveAlpha: 0.6
12898
13092
  }, options), {
@@ -12937,5 +13131,5 @@ class Editor {
12937
13131
  };
12938
13132
  }
12939
13133
  }
12940
- export { BlockType, Command, ControlType, EDITOR_COMPONENT, Editor, EditorComponent, EditorMode, EditorZone, ElementType, ImageDisplay, KeyMap, PageMode, PaperDirection, RowFlex, VerticalAlign, Editor as default };
13134
+ export { BlockType, Command, ControlType, EDITOR_COMPONENT, Editor, EditorComponent, EditorMode, EditorZone, ElementType, ImageDisplay, KeyMap, PageMode, PaperDirection, RowFlex, TableBorder, VerticalAlign, Editor as default };
12941
13135
  //# sourceMappingURL=canvas-editor.es.js.map