@hufe921/canvas-editor 0.9.27 → 0.9.29
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +46 -0
- package/README.md +1 -1
- package/dist/canvas-editor.es.js +393 -123
- package/dist/canvas-editor.es.js.map +1 -1
- package/dist/canvas-editor.umd.js +15 -15
- package/dist/canvas-editor.umd.js.map +1 -1
- package/dist/src/editor/core/draw/Draw.d.ts +6 -0
- package/dist/src/editor/core/draw/frame/Footer.d.ts +26 -0
- package/dist/src/editor/core/draw/frame/Header.d.ts +2 -0
- package/dist/src/editor/core/draw/particle/TextParticle.d.ts +1 -0
- package/dist/src/editor/core/draw/particle/table/TableParticle.d.ts +2 -0
- package/dist/src/editor/core/zone/Zone.d.ts +5 -3
- package/dist/src/editor/dataset/constant/Common.d.ts +3 -0
- package/dist/src/editor/dataset/constant/Element.d.ts +1 -0
- package/dist/src/editor/dataset/constant/Footer.d.ts +2 -0
- package/dist/src/editor/dataset/constant/Header.d.ts +0 -2
- package/dist/src/editor/dataset/enum/{Header.d.ts → Common.d.ts} +1 -1
- package/dist/src/editor/index.d.ts +2 -1
- package/dist/src/editor/interface/Editor.d.ts +3 -1
- package/dist/src/editor/interface/Footer.d.ts +5 -0
- package/dist/src/editor/interface/Header.d.ts +2 -2
- package/dist/src/editor/interface/table/Td.d.ts +3 -0
- package/dist/src/editor/interface/table/Tr.d.ts +1 -0
- package/package.json +1 -1
package/dist/canvas-editor.es.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
(()=>{(function(){"use strict";try{if(typeof document!="undefined"){var e=document.createElement("style");e.appendChild(document.createTextNode('.ce-select-control-popup{max-width:160px;min-width:69px;max-height:225px;position:absolute;z-index:1;border:1px solid #e4e7ed;border-radius:4px;background-color:#fff;box-shadow:0 2px 12px #0000001a;box-sizing:border-box;margin:5px 0;overflow-y:auto}.ce-select-control-popup ul{list-style:none;padding:3px 0;margin:0;box-sizing:border-box}.ce-select-control-popup ul li{font-size:13px;padding:0 20px;position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#666;height:36px;line-height:36px;box-sizing:border-box;cursor:pointer}.ce-select-control-popup ul li:hover{background-color:#eef2fd}.ce-select-control-popup ul li.active{color:var(--COLOR-HOVER, #5175f4);font-weight:700}.ce-date-container{display:none;width:300px;overflow:hidden;left:0;right:0;position:absolute;z-index:1;color:#606266;background:#ffffff;border-radius:4px;padding:10px;user-select:none;border:1px solid #e4e7ed;box-shadow:0 2px 12px #0000001a}.ce-date-container.active{display:block}.ce-date-wrap{display:none}.ce-date-wrap.active{display:block}.ce-date-title{display:flex;justify-content:center;align-items:center;text-align:center;color:#606266;font-size:16px}.ce-date-title>span{display:inline-block}.ce-date-title>span:not(.ce-date-title__now){font-family:cursive;cursor:pointer}.ce-date-title>span:not(.ce-date-title__now):hover{color:#5175f4}.ce-date-title .ce-date-title__pre-year,.ce-date-title .ce-date-title__pre-month{width:15%}.ce-date-title .ce-date-title__now{width:40%}.ce-date-title .ce-date-title__next-year,.ce-date-title .ce-date-title__next-month{width:15%}.ce-date-week{width:100%;display:flex;justify-content:center;margin-top:15px;padding-bottom:5px;border-bottom:1px solid #e4e7ed}.ce-date-week>span{list-style:none;width:14.28571%;text-align:center;color:#606266;font-size:14px}.ce-date-day{width:100%;display:flex;flex-wrap:wrap;align-items:center;margin-top:5px}.ce-date-day>div{width:14.28571%;height:40px;text-align:center;color:#606266;font-size:14px;cursor:pointer;line-height:40px;border-radius:4px}.ce-date-day>div:hover{color:#5175f4;opacity:.8}.ce-date-day>div.active{color:#5175f4;font-weight:700}.ce-date-day>div.disable{color:#c0c4cc}.ce-date-day>div.select{color:#fff;background-color:#5175f4}.ce-time-wrap{display:none;padding:10px;height:286px}.ce-time-wrap ::-webkit-scrollbar{width:0}.ce-time-wrap.active{display:flex}.ce-time-wrap li{list-style:none}.ce-time-wrap>li{width:33.3%;height:100%;text-align:center}.ce-time-wrap>li>span{transform:translateY(-5px);display:inline-block}.ce-time-wrap>li>ol{height:calc(100% - 20px);overflow-y:auto;border:1px solid #e2e2e2;position:relative}.ce-time-wrap>li:first-child>ol{border-right:0}.ce-time-wrap>li:last-child>ol{border-left:0}.ce-time-wrap>li>ol>li{line-height:30px;cursor:pointer;transition:all .3s}.ce-time-wrap>li>ol>li:hover{background-color:#eaeaea}.ce-time-wrap>li>ol>li.active{color:#fff;background:#5175F4}.ce-date-menu{width:100%;height:28px;display:flex;justify-content:flex-end;align-items:center;padding-top:10px;position:relative;border-top:1px solid #e4e7ed}.ce-date-menu button{display:inline-block;line-height:1;white-space:nowrap;cursor:pointer;background:#fff;border:1px solid #dcdfe6;color:#606266;appearance:none;text-align:center;box-sizing:border-box;outline:none;transition:.1s;font-weight:500;user-select:none;padding:7px 15px;font-size:12px;border-radius:3px;margin:0 0 0 10px}.ce-date-menu button:hover{color:#5175f4;border-color:#5175f4}.ce-date-menu button.ce-date-menu__time{border:1px solid transparent;position:absolute;left:0;margin-left:0}.ce-date-menu button.ce-date-menu__time:hover{color:#5175f4}.ce-block-item{position:absolute;z-index:0;overflow:hidden;border-radius:8px;background-color:#fff;border:1px solid rgb(235 236 240)}.ce-table-tool__row{position:absolute;width:12px;border-radius:6.5px;overflow:hidden;background-color:#e2e6ed}.ce-table-tool__row .ce-table-tool__row__item{width:100%;position:relative}.ce-table-tool__row .ce-table-tool__row__item:after{content:"";position:absolute;bottom:0;left:2px;width:8px;height:1px;background-color:#c0c6cf}.ce-table-tool__row .ce-table-tool__row__item:last-child:after{display:none}.ce-table-tool__col{position:absolute;height:12px;border-radius:6.5px;overflow:hidden;background-color:#e2e6ed;display:flex}.ce-table-tool__col .ce-table-tool__col__item{height:100%;position:relative}.ce-table-tool__col .ce-table-tool__col__item:after{content:"";position:absolute;top:2px;left:-1px;width:1px;height:8px;z-index:1;background-color:#c0c6cf}.ce-table-tool__col .ce-table-tool__col__item:first-child:after{display:none}.ce-table-tool__row .ce-table-tool__row__item.active,.ce-table-tool__col .ce-table-tool__col__item.active{background-color:#c4d7fa}.ce-table-tool__col .ce-table-tool__anchor{right:-5px;width:10px;height:12px;z-index:9;position:absolute;cursor:col-resize}.ce-table-tool__row .ce-table-tool__anchor{bottom:-5px;left:0;width:12px;height:10px;z-index:9;position:absolute;cursor:row-resize}.ce-table-anchor__line{z-index:9;position:absolute;border:1px dotted #000000}.ce-table-tool__border{position:absolute;z-index:1;background:transparent;pointer-events:none}.ce-table-tool__border__row{position:absolute;cursor:row-resize;pointer-events:auto}.ce-table-tool__border__col{position:absolute;cursor:col-resize;pointer-events:auto}.ce-resizer-selection{position:absolute;border:1px solid}.ce-resizer-selection>div{position:absolute;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)}})();})();
|
|
1
|
+
(()=>{(function(){"use strict";try{if(typeof document!="undefined"){var e=document.createElement("style");e.appendChild(document.createTextNode('.ce-select-control-popup{max-width:160px;min-width:69px;max-height:225px;position:absolute;z-index:1;border:1px solid #e4e7ed;border-radius:4px;background-color:#fff;box-shadow:0 2px 12px #0000001a;box-sizing:border-box;margin:5px 0;overflow-y:auto}.ce-select-control-popup ul{list-style:none;padding:3px 0;margin:0;box-sizing:border-box}.ce-select-control-popup ul li{font-size:13px;padding:0 20px;position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#666;height:36px;line-height:36px;box-sizing:border-box;cursor:pointer}.ce-select-control-popup ul li:hover{background-color:#eef2fd}.ce-select-control-popup ul li.active{color:var(--COLOR-HOVER, #5175f4);font-weight:700}.ce-date-container{display:none;width:300px;overflow:hidden;left:0;right:0;position:absolute;z-index:1;color:#606266;background:#ffffff;border-radius:4px;padding:10px;user-select:none;border:1px solid #e4e7ed;box-shadow:0 2px 12px #0000001a}.ce-date-container.active{display:block}.ce-date-wrap{display:none}.ce-date-wrap.active{display:block}.ce-date-title{display:flex;justify-content:center;align-items:center;text-align:center;color:#606266;font-size:16px}.ce-date-title>span{display:inline-block}.ce-date-title>span:not(.ce-date-title__now){font-family:cursive;cursor:pointer}.ce-date-title>span:not(.ce-date-title__now):hover{color:#5175f4}.ce-date-title .ce-date-title__pre-year,.ce-date-title .ce-date-title__pre-month{width:15%}.ce-date-title .ce-date-title__now{width:40%}.ce-date-title .ce-date-title__next-year,.ce-date-title .ce-date-title__next-month{width:15%}.ce-date-week{width:100%;display:flex;justify-content:center;margin-top:15px;padding-bottom:5px;border-bottom:1px solid #e4e7ed}.ce-date-week>span{list-style:none;width:14.28571%;text-align:center;color:#606266;font-size:14px}.ce-date-day{width:100%;display:flex;flex-wrap:wrap;align-items:center;margin-top:5px}.ce-date-day>div{width:14.28571%;height:40px;text-align:center;color:#606266;font-size:14px;cursor:pointer;line-height:40px;border-radius:4px}.ce-date-day>div:hover{color:#5175f4;opacity:.8}.ce-date-day>div.active{color:#5175f4;font-weight:700}.ce-date-day>div.disable{color:#c0c4cc}.ce-date-day>div.select{color:#fff;background-color:#5175f4}.ce-time-wrap{display:none;padding:10px;height:286px}.ce-time-wrap ::-webkit-scrollbar{width:0}.ce-time-wrap.active{display:flex}.ce-time-wrap li{list-style:none}.ce-time-wrap>li{width:33.3%;height:100%;text-align:center}.ce-time-wrap>li>span{transform:translateY(-5px);display:inline-block}.ce-time-wrap>li>ol{height:calc(100% - 20px);overflow-y:auto;border:1px solid #e2e2e2;position:relative}.ce-time-wrap>li:first-child>ol{border-right:0}.ce-time-wrap>li:last-child>ol{border-left:0}.ce-time-wrap>li>ol>li{line-height:30px;cursor:pointer;transition:all .3s}.ce-time-wrap>li>ol>li:hover{background-color:#eaeaea}.ce-time-wrap>li>ol>li.active{color:#fff;background:#5175F4}.ce-date-menu{width:100%;height:28px;display:flex;justify-content:flex-end;align-items:center;padding-top:10px;position:relative;border-top:1px solid #e4e7ed}.ce-date-menu button{display:inline-block;line-height:1;white-space:nowrap;cursor:pointer;background:#fff;border:1px solid #dcdfe6;color:#606266;appearance:none;text-align:center;box-sizing:border-box;outline:none;transition:.1s;font-weight:500;user-select:none;padding:7px 15px;font-size:12px;border-radius:3px;margin:0 0 0 10px}.ce-date-menu button:hover{color:#5175f4;border-color:#5175f4}.ce-date-menu button.ce-date-menu__time{border:1px solid transparent;position:absolute;left:0;margin-left:0}.ce-date-menu button.ce-date-menu__time:hover{color:#5175f4}.ce-block-item{position:absolute;z-index:0;overflow:hidden;border-radius:8px;background-color:#fff;border:1px solid rgb(235 236 240)}.ce-table-tool__row{position:absolute;width:12px;border-radius:6.5px;overflow:hidden;background-color:#e2e6ed}.ce-table-tool__row .ce-table-tool__row__item{width:100%;position:relative}.ce-table-tool__row .ce-table-tool__row__item:after{content:"";position:absolute;bottom:0;left:2px;width:8px;height:1px;background-color:#c0c6cf}.ce-table-tool__row .ce-table-tool__row__item:last-child:after{display:none}.ce-table-tool__col{position:absolute;height:12px;border-radius:6.5px;overflow:hidden;background-color:#e2e6ed;display:flex}.ce-table-tool__col .ce-table-tool__col__item{height:100%;position:relative}.ce-table-tool__col .ce-table-tool__col__item:after{content:"";position:absolute;top:2px;left:-1px;width:1px;height:8px;z-index:1;background-color:#c0c6cf}.ce-table-tool__col .ce-table-tool__col__item:first-child:after{display:none}.ce-table-tool__row .ce-table-tool__row__item.active,.ce-table-tool__col .ce-table-tool__col__item.active{background-color:#c4d7fa}.ce-table-tool__col .ce-table-tool__anchor{right:-5px;width:10px;height:12px;z-index:9;position:absolute;cursor:col-resize}.ce-table-tool__row .ce-table-tool__anchor{bottom:-5px;left:0;width:12px;height:10px;z-index:9;position:absolute;cursor:row-resize}.ce-table-anchor__line{z-index:9;position:absolute;border:1px dotted #000000}.ce-table-tool__border{position:absolute;z-index:1;background:transparent;pointer-events:none}.ce-table-tool__border__row{position:absolute;cursor:row-resize;pointer-events:auto}.ce-table-tool__border__col{position:absolute;cursor:col-resize;pointer-events:auto}.ce-resizer-selection{position:absolute;border:1px solid}.ce-resizer-selection>div{position:absolute;z-index:9;width:10px;height:10px;box-shadow:0 1px 4px #0000004d;border-radius:5px;border:2px solid #ffffff;box-sizing:border-box}.ce-resizer-selection .handle-0{cursor:nw-resize}.ce-resizer-selection .handle-1{cursor:n-resize}.ce-resizer-selection .handle-2{cursor:ne-resize}.ce-resizer-selection .handle-3{cursor:e-resize}.ce-resizer-selection .handle-4{cursor:se-resize}.ce-resizer-selection .handle-5{cursor:s-resize}.ce-resizer-selection .handle-6{cursor:sw-resize}.ce-resizer-selection .handle-7{cursor:w-resize}.ce-resizer-image{position:absolute;opacity:.5}.ce-image-previewer{position:fixed;left:0;top:0;z-index:1000;width:100%;height:100%;overflow:hidden;background:#f2f4f7;display:flex;align-items:center;justify-content:center;animation:previewerAnimation .3s}@keyframes previewerAnimation{0%{opacity:.1}to{opacity:1}}.ce-image-previewer .image-close{width:24px;height:24px;display:inline-block;position:absolute;right:50px;top:30px;z-index:99;cursor:pointer;background:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTIzLjk3IDdsMS40MTUgMS40MTQtNy43NzkgNy43NzggNy43NzkgNy43NzktMS40MTQgMS40MTQtNy43NzktNy43NzktNy43NzggNy43NzlMNyAyMy45N2w3Ljc3OC03Ljc3OUw3IDguNDE0IDguNDE0IDdsNy43NzggNy43NzhMMjMuOTcxIDd6IiBmaWxsPSIjM0Q0NzU3IiBmaWxsLXJ1bGU9ImV2ZW5vZGQiLz48L3N2Zz4=) no-repeat;background-size:100% 100%;transition:all .3s;border-radius:50%}.ce-image-previewer .image-close:hover{background-color:#e2e6ed}.ce-image-previewer .ce-image-container{position:relative}.ce-image-previewer .ce-image-container img{cursor:move;position:relative}.ce-image-previewer .ce-image-menu{height:50px;position:absolute;bottom:50px;z-index:99;display:flex;align-items:center;justify-content:center}.ce-image-previewer .ce-image-menu i{width:32px;height:32px;margin:0 8px;cursor:pointer;display:inline-block;background-repeat:no-repeat;background-size:100% 100%;transition:all .3s;border-radius:50%}.ce-image-previewer .ce-image-menu i:hover{background-color:#e2e6ed}.ce-image-previewer .ce-image-menu i.zoom-in{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTE0IDE0di00aDJ2NGg0djJoLTR2NGgtMnYtNGgtNHYtMmg0em04Ljc0OSAxMC4xNjNBMTEuOTUyIDExLjk1MiAwIDAxMTUgMjdDOC4zNzMgMjcgMyAyMS42MjcgMyAxNVM4LjM3MyAzIDE1IDNzMTIgNS4zNzMgMTIgMTJjMCAyLjk1NC0xLjA2NyA1LjY1OC0yLjgzNyA3Ljc0OWw0LjkwOCA0LjkwOC0xLjQxNCAxLjQxNC00LjkwOC00LjkwOHpNMTUgMjVjNS41MjMgMCAxMC00LjQ3NyAxMC0xMFMyMC41MjMgNSAxNSA1IDUgOS40NzcgNSAxNXM0LjQ3NyAxMCAxMCAxMHoiIGZpbGw9IiMzRDQ3NTciLz48L3N2Zz4=)}.ce-image-previewer .ce-image-menu i.zoom-out{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTIyLjc0OSAyNC4xNjNBMTEuOTUyIDExLjk1MiAwIDAxMTUgMjdDOC4zNzMgMjcgMyAyMS42MjcgMyAxNVM4LjM3MyAzIDE1IDNzMTIgNS4zNzMgMTIgMTJjMCAyLjk1NC0xLjA2NyA1LjY1OC0yLjgzNyA3Ljc0OWw0LjkwOCA0LjkwOC0xLjQxNCAxLjQxNC00LjkwOC00LjkwOHpNMTUgMjVjNS41MjMgMCAxMC00LjQ3NyAxMC0xMFMyMC41MjMgNSAxNSA1IDUgOS40NzcgNSAxNXM0LjQ3NyAxMCAxMCAxMHptLTUtMTFoMTB2MkgxMHYtMnoiIGZpbGw9IiMzRDQ3NTciLz48L3N2Zz4=)}.ce-image-previewer .ce-image-menu i.rotate{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0iIzNENDc1NyIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJNMTYgNGM2LjYyNyAwIDEyIDUuMzczIDEyIDEyYTExLjk3IDExLjk3IDAgMDEtNCA4Ljk0NFYyM2gtLjg2QTkuOTY4IDkuOTY4IDAgMDAyNiAxNmMwLTUuNTIzLTQuNDc3LTEwLTEwLTEwUzYgMTAuNDc3IDYgMTZjMCA1LjE4NSAzLjk0NyA5LjQ0OSA5IDkuOTV2Mi4wMDlDOC44NCAyNy40NTEgNCAyMi4yOTEgNCAxNiA0IDkuMzczIDkuMzczIDQgMTYgNHoiIGZpbGwtcnVsZT0ibm9uemVybyIvPjxwYXRoIGQ9Ik0xOS44NzkgMjcuMzI4bDEuNzY3LTYuNzE3IDQuOTUgNC45NXoiLz48L2c+PC9zdmc+)}.ce-image-previewer .ce-image-menu i.original-size{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTQgNGgyNHYyNEg0VjR6bTIgMnYyMGgyMFY2SDZ6bTQgNWgydjEwaC0yVjExem01IDJoMnYyaC0ydi0yem0wIDRoMnYyaC0ydi0yem01LTZoMnYxMGgtMlYxMXoiIGZpbGw9IiMzRDQ3NTciLz48L3N2Zz4=)}.ce-image-previewer .ce-image-menu i.image-download{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTQuNSAxNXYzLjVoMTVWMTVIMjF2NUgzdi01aDEuNXptOC4yMzItMTEuMjI2djkuMTk2bDQuMDUtNC4wNSAxLjA2IDEuMDYtNS44MzQgNS44MzQtNS44MzMtNS44MzMgMS4wNi0xLjA2IDMuOTk4IDMuOTk2VjMuNzc0aDEuNXoiIGZpbGw9IiMzRDQ3NTciLz48L3N2Zz4=)}.ce-contextmenu-container{z-index:9;position:fixed;display:none;padding:4px;overflow-x:hidden;overflow-y:auto;background:#fff;box-shadow:0 2px 12px #38383833;border:1px solid #e2e6ed;border-radius:2px}.ce-contextmenu-content{display:flex;flex-direction:column}.ce-contextmenu-content .ce-contextmenu-sub-item:after{position:absolute;content:"";width:16px;height:16px;right:12px;background:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJNMCAwaDE2djE2SDB6Ii8+PGcgZmlsbD0iIzc2N0M4NSI+PHBhdGggZD0iTTcgMTIuMjQzbC0uNzA3LS43MDcgNC4yNDMtNC4yNDMuNzA3LjcwN3oiLz48cGF0aCBkPSJNNi4yOTMgNC40NjRMNyAzLjc1NyAxMS4yNDMgOGwtLjcwNy43MDd6Ii8+PC9nPjwvZz48L3N2Zz4=)}.ce-contextmenu-content .ce-contextmenu-item{min-width:140px;padding:0 32px 0 16px;height:30px;display:flex;align-items:center;white-space:nowrap;box-sizing:border-box;cursor:pointer}.ce-contextmenu-content .ce-contextmenu-item.hover{background:rgba(25,55,88,.04)}.ce-contextmenu-content .ce-contextmenu-item span{max-width:300px;font-size:12px;color:#3d4757;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.ce-contextmenu-content .ce-contextmenu-item span.ce-shortcut{color:#767c85;height:30px;flex:1;text-align:right;line-height:30px;margin-left:20px}.ce-contextmenu-content .ce-contextmenu-item i{width:16px;height:16px;vertical-align:middle;display:inline-block;background-repeat:no-repeat;background-size:100% 100%;flex-shrink:0;margin-right:8px}.ce-contextmenu-divider{background-color:#e2e6ed;margin:4px 16px;height:1px}.ce-contextmenu-print{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBmaWxsPSIjM0Q0NzU3IiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxwYXRoIGQ9Ik0xMiA0aC0xVjJINXYySDRWMmExIDEgMCAwMTEtMWg2YTEgMSAwIDAxMSAxdjJ6bTAgNXY0YTEgMSAwIDAxLTEgMUg1YTEgMSAwIDAxLTEtMVY5aDF2NGg2VjloMXoiLz48cGF0aCBkPSJNMTIgMTJ2LTFoMlY1SDJ2NmgydjFIMmExIDEgMCAwMS0xLTFWNWExIDEgMCAwMTEtMWgxMmExIDEgMCAwMTEgMXY2YTEgMSAwIDAxLTEgMWgtMnoiLz48cGF0aCBkPSJNMyA4aDEwdjFIM3ptOC0yaDJ2MWgtMnoiLz48L2c+PC9zdmc+)}.ce-contextmenu-image{background-image:url(data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSLlm77lsYJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4PSIwIiB5PSIwIiB2aWV3Qm94PSIwIDAgMTYgMTYiIHhtbDpzcGFjZT0icHJlc2VydmUiPjxzdHlsZT4uc3Qwe2ZpbGw6IzNkNDc1N308L3N0eWxlPjxnIGlkPSJfeDMwXzAt5YWs5YWxX3gyRl8wMuW3peWFt+agj194MkZf5o+S5YWl5Zu+54mHLTE2cHgtIj48ZyBpZD0iR3JvdXAtMTkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEgMSkiPjxwYXRoIGlkPSJDb21iaW5lZC1TaGFwZSIgY2xhc3M9InN0MCIgZD0iTTEgMGgxMmMuNiAwIDEgLjQgMSAxdjExYzAgLjYtLjQgMS0xIDFIMWMtLjYgMC0xLS40LTEtMVYxYzAtLjYuNC0xIDEtMXptMCAxdjExaDEyVjFIMXoiLz48Y2lyY2xlIGlkPSLmpK3lnIblvaIiIGNsYXNzPSJzdDAiIGN4PSIxMCIgY3k9IjQiIHI9IjEiLz48cGF0aCBpZD0iUGF0aCIgY2xhc3M9InN0MCIgZD0iTTguNSAxMS4ybC00LTQuMUwxIDEwLjdWOS4yYzEuNy0xLjYgMi43LTIuNSAzLTIuOC40LS41LjctLjQgMSAwTDguNSAxMCAxMSA3LjNjLjQtLjUuNi0uNSAxLS4xbDIgMi44djEuNWwtMi41LTMuNC0zIDMuMXoiLz48L2c+PC9nPjwvc3ZnPg==)}.ce-contextmenu-image-change{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyIDQpIiBmaWxsPSIjM0Q0NzU3Ij48Y2lyY2xlIGZpbGwtcnVsZT0ibm9uemVybyIgY3g9IjMiIGN5PSIxIiByPSIxIi8+PHBhdGggZD0iTTcuNDczIDguMjIzTDMuNDcgNC4xMDcgMCA3LjY2N3YtMS41QzEuNzE1IDQuNiAyLjcwNyAzLjY2NCAyLjk3NSAzLjM1OGMuNDAyLS40NTcuNjUxLS4zOSAxLjA0MiAwTDcuNDczIDcgOS45NiA0LjM0OWMuNDE0LS40NjIuNjItLjQ2MiAxLjAxMS0uMDcxTDEzIDcuMDZ2MS41bC0yLjUxLTMuNDEtMy4wMTcgMy4wNzJ6Ii8+PC9nPjxwYXRoIGQ9Ik02IDEuNUgxLjV2MTJoMTN2LTRWMTNhLjUuNSAwIDAxLS41LjVIMmEuNS41IDAgMDEtLjUtLjVWMmEuNS41IDAgMDEuNS0uNWg0em04LjUgOFY2bC0uNS41aDFsLS41LS41djMuNXpNNiAxLjVoNEw5LjUgMXYxbC41LS41SDZ6IiBzdHJva2U9IiMzRDQ3NTciLz48cGF0aCBkPSJNMTMuMDg1IDEuMzE2bC0zLjgxNCA0YTEgMSAwIDAwMS40NTggMS4zNjhsMy44MTUtNGExIDEgMCAxMC0xLjQ1OS0xLjM2OHoiIGZpbGw9IiMzRDQ3NTciIGZpbGwtcnVsZT0ibm9uemVybyIvPjwvZz48L3N2Zz4=)}.ce-contextmenu-insert-row-col{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBzdHJva2U9IiMzRDQ3NTciIGQ9Ik04LjUgNS41aDZ2NGgtNnoiLz48cGF0aCBmaWxsPSIjM0Q0NzU3IiBkPSJNNCA3djFoMlY3em0tMyAuNUw0IDV2NXpNMSAxaDEydjFIMXptMCAxMmgxMnYxSDF6Ii8+PC9nPjwvc3ZnPg==)}.ce-contextmenu-insert-top-row{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBmaWxsPSIjM0Q0NzU3IiBkPSJNOCA1SDd2M2gxem0tLjUtM0wxMCA1SDV6Ii8+PHJlY3Qgc3Ryb2tlPSIjM0Q0NzU3IiB4PSIxLjUiIHk9IjEwLjUiIHdpZHRoPSIxMiIgaGVpZ2h0PSIzIiByeD0iMSIvPjwvZz48L3N2Zz4=)}.ce-contextmenu-insert-bottom-row{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBmaWxsPSIjM0Q0NzU3IiBkPSJNNyAxMWgxVjhIN3ptLjUgM0w1IDExaDV6Ii8+PHJlY3Qgc3Ryb2tlPSIjM0Q0NzU3IiB4PSIxLjUiIHk9IjIuNSIgd2lkdGg9IjEyIiBoZWlnaHQ9IjMiIHJ4PSIxIi8+PC9nPjwvc3ZnPg==)}.ce-contextmenu-insert-left-col{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBmaWxsPSIjM0Q0NzU3IiBkPSJNMTEgN3YxaDNWN3ptLTMgLjVMMTEgNXY1eiIvPjxyZWN0IHN0cm9rZT0iIzNENDc1NyIgdHJhbnNmb3JtPSJyb3RhdGUoOTAgNCA3LjUpIiB4PSItMiIgeT0iNiIgd2lkdGg9IjEyIiBoZWlnaHQ9IjMiIHJ4PSIxIi8+PC9nPjwvc3ZnPg==)}.ce-contextmenu-insert-right-col{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBmaWxsPSIjM0Q0NzU3IiBkPSJNNSA4VjdIMnYxem0zLS41TDUgMTBWNXoiLz48cmVjdCBzdHJva2U9IiMzRDQ3NTciIHRyYW5zZm9ybT0icm90YXRlKDkwIDEyIDcuNSkiIHg9IjYiIHk9IjYiIHdpZHRoPSIxMiIgaGVpZ2h0PSIzIiByeD0iMSIvPjwvZz48L3N2Zz4=)}.ce-contextmenu-delete-row-col{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBzdHJva2U9IiM5MjlBQTgiIGQ9Ik04LjUgNi41aDZ2MmgtNnoiLz48cGF0aCBmaWxsPSIjM0Q0NzU3IiBkPSJNMiAxMmgxMXYxSDJ6TTIgMmgxMXYxSDJ6bS42MyAzTDcgOS4zNWwtLjYzNS42NUwyIDUuNjN6Ii8+PHBhdGggZmlsbD0iIzNENDc1NyIgZD0iTTIgOS4zNjNMNi4zNTUgNSA3IDUuNzA3IDIuNjk1IDEweiIvPjwvZz48L3N2Zz4=)}.ce-contextmenu-delete-row{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBzdHJva2U9IiM5MjlBQTgiIGQ9Ik04LjUgNS41aDZ2NGgtNnoiLz48cGF0aCBmaWxsPSIjM0Q0NzU3IiBkPSJNMSAxM2gxMnYxSDF6TTEgMWgxMnYxSDF6bTAgNGgxdjFIMXptMSAxaDF2MUgyem0xIDFoMXYxSDN6bTEtMWgxdjFINHptMS0xaDF2MUg1ek00IDhoMXYxSDR6TTIgOGgxdjFIMnptMyAxaDF2MUg1ek0xIDloMXYxSDF6Ii8+PC9nPjwvc3ZnPg==)}.ce-contextmenu-delete-col{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBzdHJva2U9IiM5MjlBQTgiIGQ9Ik01LjUgNy41di02aDR2NnoiLz48cGF0aCBmaWxsPSIjM0Q0NzU3IiBkPSJNMTMgMTVWM2gxdjEyek0xIDE1VjNoMXYxMnptNCAwdi0xaDF2MXptMS0xdi0xaDF2MXptMS0xdi0xaDF2MXptLTEtMXYtMWgxdjF6bS0xLTF2LTFoMXYxem0zIDF2LTFoMXYxem0wIDJ2LTFoMXYxem0xLTN2LTFoMXYxem0wIDR2LTFoMXYxeiIvPjwvZz48L3N2Zz4=)}.ce-contextmenu-delete-table{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0iIzNENDc1NyIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJNMTQgMTNoLTF2LTNIMnYzSDF2LTNhMSAxIDAgMDExLTFoMTFhMSAxIDAgMDExIDF2M3oiIGZpbGwtcnVsZT0ibm9uemVybyIvPjxwYXRoIGQ9Ik01LjYyNSAyTDEwIDYuMzc1IDkuMzc1IDcgNSAyLjYyNXoiLz48cGF0aCBkPSJNNSA2LjM3NUw5LjM3NSAybC42MjUuNjI1TDUuNjI1IDd6Ii8+PC9nPjwvc3ZnPg==)}.ce-contextmenu-merge-cell{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0iIzNENDc1NyIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJNNiAxdjFIMnYxMWg0djFIMmExIDEgMCAwMS0xLTFWMmExIDEgMCAwMTEtMWg0em0zIDBoNGExIDEgMCAwMTEgMXYxMWExIDEgMCAwMS0xIDFIOXYtMWg0VjJIOVYxeiIvPjxwYXRoIGZpbGwtcnVsZT0ibm9uemVybyIgZD0iTTYgMWgxdjRINnptMiAwaDF2NEg4eiIvPjxwYXRoIGQ9Ik04IDcuNUwxMCA2djN6bS0xIDBMNSA2djN6Ii8+PHBhdGggZD0iTTkgN2gzdjFIOXpNMyA3aDN2MUgzeiIvPjxwYXRoIGZpbGwtcnVsZT0ibm9uemVybyIgZD0iTTggMTBoMXY0SDh6bS0yIDBoMXY0SDZ6Ii8+PC9nPjwvc3ZnPg==)}.ce-contextmenu-merge-cancel-cell{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0iIzNENDc1NyIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJNNiAxdjFIMnYxMWg0djFIMmExIDEgMCAwMS0xLTFWMmExIDEgMCAwMTEtMWg0em0zIDBoNGExIDEgMCAwMTEgMXYxMWExIDEgMCAwMS0xIDFIOXYtMWg0VjJIOVYxeiIvPjxwYXRoIGZpbGwtcnVsZT0ibm9uemVybyIgZD0iTTYgMWgxdjRINnptMiAwaDF2NEg4eiIvPjxwYXRoIGQ9Ik0zIDcuNUw1IDZ2M3ptOSAwTDEwIDZ2M3oiLz48cGF0aCBkPSJNNCA3aDN2MUg0em00IDBoM3YxSDh6Ii8+PHBhdGggZmlsbC1ydWxlPSJub256ZXJvIiBkPSJNOCAxMGgxdjRIOHptLTIgMGgxdjRINnoiLz48L2c+PC9zdmc+)}.ce-contextmenu-vertical-align{background-image:url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjE2IiB2aWV3Qm94PSIwIDAgMTYgMTYiIHdpZHRoPSIxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMiAxM2gxMnYxSDJ6bTAtM2g4djFIMnptMC0zaDEydjFIMnptMC02aDEydjFIMnptMCAzaDh2MUgyeiIgZmlsbD0iIzNkNDc1NyIgZmlsbC1ydWxlPSJldmVub2RkIi8+PC9zdmc+)}.ce-contextmenu-vertical-align-top{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTggOEg3djZoMXptLS41LTNMMTAgOEg1ek0yIDNoMTF2MUgyeiIgZmlsbD0iIzNENDc1NyIgZmlsbC1ydWxlPSJldmVub2RkIi8+PC9zdmc+)}.ce-contextmenu-vertical-align-middle{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNOCAxMkg3djNoMXptLS41LTNsMi41IDNINXpNNyAzaDFWMEg3em0uNSAzTDUgM2g1ek0yIDdoMTF2MUgyeiIgZmlsbD0iIzNENDc1NyIgZmlsbC1ydWxlPSJldmVub2RkIi8+PC9zdmc+)}.ce-contextmenu-vertical-align-bottom{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTcgOWgxVjNIN3ptLjUgM0w1IDloNXpNMiAxM2gxMXYxSDJ6IiBmaWxsPSIjM0Q0NzU3IiBmaWxsLXJ1bGU9ImV2ZW5vZGQiLz48L3N2Zz4=)}.ce-contextmenu-border-all{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTIuNSAzYS41LjUgMCAwMS41LS41aDExYS41LjUgMCAwMS41LjV2MTFhLjUuNSAwIDAxLS41LjVIM2EuNS41IDAgMDEtLjUtLjVWM3oiIHN0cm9rZT0iIzNENDc1NyIvPjxwYXRoIGZpbGw9IiMzRDQ3NTciIGQ9Ik0zIDhoMTF2MUgzeiIvPjxwYXRoIGZpbGw9IiMzRDQ3NTciIGQ9Ik05IDN2MTFIOFYzeiIvPjwvc3ZnPg==)}.ce-contextmenu-border-empty{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMyAzaC0xVjJoMWExIDEgMCAwMTEgMXYxaC0xVjN6bS0zLTF2MUg4LjV2MmgtMVYzSDZWMmg0ek00IDJ2MUgzdjFIMlYzYTEgMSAwIDAxMS0xaDF6TTIgNmgxdjEuNWgydjFIM1YxMEgyVjZ6bTAgNmgxdjFoMXYxSDNhMSAxIDAgMDEtMS0xdi0xem00IDJ2LTFoMS41di0yaDF2MkgxMHYxSDZ6bTYgMHYtMWgxdi0xaDF2MWExIDEgMCAwMS0xIDFoLTF6bTItNGgtMVY4LjVoLTJ2LTFoMlY2aDF2NHpNOC41IDcuNXYtMWgtMXYxaC0xdjFoMXYxaDF2LTFoMXYtMWgtMXoiIGZpbGw9IiNBQUFDQjAiLz48L3N2Zz4=)}.ce-contextmenu-border-external{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTIuNSAzYS41LjUgMCAwMS41LS41aDExYS41LjUgMCAwMS41LjV2MTFhLjUuNSAwIDAxLS41LjVIM2EuNS41IDAgMDEtLjUtLjVWM3oiIHN0cm9rZT0iIzNENDc1NyIvPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNOSA1VjNIOHYyaDF6bTAgOXYtMkg4djJoMXpNNSA4SDN2MWgyVjh6bTkgMGgtMnYxaDJWOHpNOSA3djFoMXYxSDl2MUg4VjlIN1Y4aDFWN2gxeiIgZmlsbD0iI0FBQUNCMCIvPjwvc3ZnPg==)}.ce-hyperlink-popup{background:#fff;box-shadow:0 2px 12px #626b8433;border-radius:2px;color:#3d4757;padding:12px 16px;position:absolute;z-index:1;text-align:center;display:none}.ce-hyperlink-popup a{min-width:100px;max-width:300px;font-size:12px;display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;text-decoration:none;border-bottom-width:1px;border-bottom-style:solid;color:#00f}.ce-zone-indicator>div{padding:3px 6px;color:#000;font-size:12px;background:rgb(218 231 252);position:absolute;transform-origin:0 0}.ce-zone-indicator-border__top,.ce-zone-indicator-border__bottom,.ce-zone-indicator-border__left,.ce-zone-indicator-border__right{display:block;position:absolute;z-index:0}.ce-zone-indicator-border__top{border-top:2px dashed rgb(238,238,238)}.ce-zone-indicator-border__bottom{border-top:2px dashed rgb(238,238,238);width:100%}.ce-zone-indicator-border__left{border-left:2px dashed rgb(238,238,238)}.ce-zone-indicator-border__right{border-right:2px dashed rgb(238,238,238)}.ce-inputarea{width: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,9 +23,21 @@ var __publicField = (obj, key, value) => {
|
|
|
23
23
|
return value;
|
|
24
24
|
};
|
|
25
25
|
var index = "";
|
|
26
|
-
const version = "0.9.
|
|
26
|
+
const version = "0.9.29";
|
|
27
|
+
var MaxHeightRatio;
|
|
28
|
+
(function(MaxHeightRatio2) {
|
|
29
|
+
MaxHeightRatio2["HALF"] = "half";
|
|
30
|
+
MaxHeightRatio2["ONE_THIRD"] = "one-third";
|
|
31
|
+
MaxHeightRatio2["QUARTER"] = "quarter";
|
|
32
|
+
})(MaxHeightRatio || (MaxHeightRatio = {}));
|
|
27
33
|
const ZERO = "\u200B";
|
|
28
34
|
const WRAP = "\n";
|
|
35
|
+
const PUNCTUATION_LIST = ["\xB7", "\u3001", ":", "\uFF1A", ",", "\uFF0C", ".", "\u3002", ";", "\uFF1B", "?", "\uFF1F", "!", "\uFF01"];
|
|
36
|
+
const maxHeightRadioMapping = {
|
|
37
|
+
[MaxHeightRatio.HALF]: 1 / 2,
|
|
38
|
+
[MaxHeightRatio.ONE_THIRD]: 1 / 3,
|
|
39
|
+
[MaxHeightRatio.QUARTER]: 1 / 4
|
|
40
|
+
};
|
|
29
41
|
var RowFlex;
|
|
30
42
|
(function(RowFlex2) {
|
|
31
43
|
RowFlex2["LEFT"] = "left";
|
|
@@ -220,6 +232,12 @@ const TEXTLIKE_ELEMENT_TYPE = [
|
|
|
220
232
|
ElementType.CONTROL,
|
|
221
233
|
ElementType.DATE
|
|
222
234
|
];
|
|
235
|
+
const INLINE_ELEMENT_TYPE = [
|
|
236
|
+
ElementType.BLOCK,
|
|
237
|
+
ElementType.PAGE_BREAK,
|
|
238
|
+
ElementType.SEPARATOR,
|
|
239
|
+
ElementType.TABLE
|
|
240
|
+
];
|
|
223
241
|
var ControlType;
|
|
224
242
|
(function(ControlType2) {
|
|
225
243
|
ControlType2["TEXT"] = "text";
|
|
@@ -261,6 +279,7 @@ class ImageParticle {
|
|
|
261
279
|
} else {
|
|
262
280
|
const imageLoadPromise = new Promise((resolve, reject) => {
|
|
263
281
|
const img = new Image();
|
|
282
|
+
img.setAttribute("crossOrigin", "Anonymous");
|
|
264
283
|
img.src = element.value;
|
|
265
284
|
img.onload = () => {
|
|
266
285
|
ctx.drawImage(img, x, y, width, height);
|
|
@@ -3270,6 +3289,9 @@ function formatElementList(elementList, options) {
|
|
|
3270
3289
|
const tr = el.trList[t];
|
|
3271
3290
|
const trId = getUUID();
|
|
3272
3291
|
tr.id = trId;
|
|
3292
|
+
if (!tr.minHeight || tr.minHeight < editorOptions.defaultTrMinHeight) {
|
|
3293
|
+
tr.minHeight = editorOptions.defaultTrMinHeight;
|
|
3294
|
+
}
|
|
3273
3295
|
for (let d = 0; d < tr.tdList.length; d++) {
|
|
3274
3296
|
const td = tr.tdList[d];
|
|
3275
3297
|
const tdId = getUUID();
|
|
@@ -4556,6 +4578,15 @@ function keydown(evt, host) {
|
|
|
4556
4578
|
evt.preventDefault();
|
|
4557
4579
|
return;
|
|
4558
4580
|
}
|
|
4581
|
+
const startElement = elementList[startIndex];
|
|
4582
|
+
if (isCollapsed && startElement.rowFlex && startElement.value === ZERO) {
|
|
4583
|
+
const rowList = draw.getRowList();
|
|
4584
|
+
const rowNo = positionList[startIndex].rowNo;
|
|
4585
|
+
const rowFlexElementList = rowList[rowNo].elementList;
|
|
4586
|
+
rowFlexElementList.forEach((element) => {
|
|
4587
|
+
delete element.rowFlex;
|
|
4588
|
+
});
|
|
4589
|
+
}
|
|
4559
4590
|
if (!isCollapsed) {
|
|
4560
4591
|
elementList.splice(startIndex + 1, endIndex - startIndex);
|
|
4561
4592
|
} else {
|
|
@@ -4776,7 +4807,7 @@ function keydown(evt, host) {
|
|
|
4776
4807
|
} else if (evt.key === KeyMap.ESC) {
|
|
4777
4808
|
host.clearPainterStyle();
|
|
4778
4809
|
const zoneManager = draw.getZone();
|
|
4779
|
-
if (zoneManager.
|
|
4810
|
+
if (!zoneManager.isMainActive()) {
|
|
4780
4811
|
zoneManager.setZone(EditorZone.MAIN);
|
|
4781
4812
|
}
|
|
4782
4813
|
evt.preventDefault();
|
|
@@ -4789,6 +4820,7 @@ function keydown(evt, host) {
|
|
|
4789
4820
|
}
|
|
4790
4821
|
}
|
|
4791
4822
|
function input(data2, host) {
|
|
4823
|
+
var _a;
|
|
4792
4824
|
const draw = host.getDraw();
|
|
4793
4825
|
const isReadonly = draw.isReadonly();
|
|
4794
4826
|
if (isReadonly)
|
|
@@ -4797,16 +4829,17 @@ function input(data2, host) {
|
|
|
4797
4829
|
const cursorPosition = position.getCursorPosition();
|
|
4798
4830
|
if (!data2 || !cursorPosition)
|
|
4799
4831
|
return;
|
|
4832
|
+
const isComposing = host.isComposing;
|
|
4833
|
+
if (isComposing && ((_a = host.compositionInfo) == null ? void 0 : _a.value) === data2)
|
|
4834
|
+
return;
|
|
4800
4835
|
const control = draw.getControl();
|
|
4801
4836
|
if (control.isPartRangeInControlOutside()) {
|
|
4802
4837
|
return;
|
|
4803
4838
|
}
|
|
4804
|
-
|
|
4839
|
+
removeComposingInput(host);
|
|
4805
4840
|
if (!isComposing) {
|
|
4806
4841
|
const cursor = draw.getCursor();
|
|
4807
4842
|
cursor.clearAgentDomValue();
|
|
4808
|
-
} else {
|
|
4809
|
-
removeComposingInput(host);
|
|
4810
4843
|
}
|
|
4811
4844
|
const activeControl = control.getActiveControl();
|
|
4812
4845
|
const { TEXT, HYPERLINK, SUBSCRIPT, SUPERSCRIPT, DATE } = ElementType;
|
|
@@ -4821,15 +4854,17 @@ function input(data2, host) {
|
|
|
4821
4854
|
restArg = { tdId, trId, tableId };
|
|
4822
4855
|
}
|
|
4823
4856
|
const elementList = draw.getElementList();
|
|
4824
|
-
const
|
|
4857
|
+
const endElement = elementList[endIndex];
|
|
4858
|
+
const endNextElement = elementList[endIndex + 1];
|
|
4859
|
+
const copyElement = endElement.value === ZERO && endNextElement ? endNextElement : endElement;
|
|
4825
4860
|
const inputData = splitText(text).map((value) => {
|
|
4826
4861
|
const newElement = __spreadValues({
|
|
4827
4862
|
value
|
|
4828
4863
|
}, restArg);
|
|
4829
4864
|
const nextElement = elementList[endIndex + 1];
|
|
4830
|
-
if (
|
|
4865
|
+
if (copyElement.type === TEXT || !copyElement.type && copyElement.value !== ZERO || copyElement.type === HYPERLINK && (nextElement == null ? void 0 : nextElement.type) === HYPERLINK || copyElement.type === DATE && (nextElement == null ? void 0 : nextElement.type) === DATE || copyElement.type === SUBSCRIPT && (nextElement == null ? void 0 : nextElement.type) === SUBSCRIPT || copyElement.type === SUPERSCRIPT && (nextElement == null ? void 0 : nextElement.type) === SUPERSCRIPT) {
|
|
4831
4866
|
EDITOR_ELEMENT_COPY_ATTR.forEach((attr) => {
|
|
4832
|
-
const value2 =
|
|
4867
|
+
const value2 = copyElement[attr];
|
|
4833
4868
|
if (value2 !== void 0) {
|
|
4834
4869
|
newElement[attr] = value2;
|
|
4835
4870
|
}
|
|
@@ -5042,21 +5077,23 @@ function compositionstart(host) {
|
|
|
5042
5077
|
}
|
|
5043
5078
|
function compositionend(host, evt) {
|
|
5044
5079
|
host.isComposing = false;
|
|
5045
|
-
removeComposingInput(host);
|
|
5046
5080
|
const draw = host.getDraw();
|
|
5047
|
-
const cursor = draw.getCursor();
|
|
5048
5081
|
if (!evt.data) {
|
|
5049
|
-
|
|
5050
|
-
|
|
5051
|
-
|
|
5052
|
-
|
|
5053
|
-
|
|
5054
|
-
|
|
5055
|
-
|
|
5056
|
-
|
|
5057
|
-
|
|
5058
|
-
|
|
5082
|
+
removeComposingInput(host);
|
|
5083
|
+
const rangeManager = draw.getRange();
|
|
5084
|
+
const { endIndex: curIndex } = rangeManager.getRange();
|
|
5085
|
+
draw.render({
|
|
5086
|
+
curIndex,
|
|
5087
|
+
isSubmitHistory: false
|
|
5088
|
+
});
|
|
5089
|
+
} else {
|
|
5090
|
+
setTimeout(() => {
|
|
5091
|
+
if (host.compositionInfo) {
|
|
5092
|
+
input(evt.data, host);
|
|
5093
|
+
}
|
|
5094
|
+
});
|
|
5059
5095
|
}
|
|
5096
|
+
const cursor = draw.getCursor();
|
|
5060
5097
|
cursor.clearAgentDomValue();
|
|
5061
5098
|
}
|
|
5062
5099
|
var composition = {
|
|
@@ -5444,8 +5481,15 @@ class Position {
|
|
|
5444
5481
|
}
|
|
5445
5482
|
getOriginalPositionList() {
|
|
5446
5483
|
const zoneManager = this.draw.getZone();
|
|
5447
|
-
|
|
5448
|
-
|
|
5484
|
+
if (zoneManager.isHeaderActive()) {
|
|
5485
|
+
const header = this.draw.getHeader();
|
|
5486
|
+
return header.getPositionList();
|
|
5487
|
+
}
|
|
5488
|
+
if (zoneManager.isFooterActive()) {
|
|
5489
|
+
const footer = this.draw.getFooter();
|
|
5490
|
+
return footer.getPositionList();
|
|
5491
|
+
}
|
|
5492
|
+
return this.positionList;
|
|
5449
5493
|
}
|
|
5450
5494
|
getOriginalMainPositionList() {
|
|
5451
5495
|
return this.positionList;
|
|
@@ -5510,7 +5554,7 @@ class Position {
|
|
|
5510
5554
|
});
|
|
5511
5555
|
if (td.verticalAlign === VerticalAlign.MIDDLE || td.verticalAlign == VerticalAlign.BOTTOM) {
|
|
5512
5556
|
const rowsHeight = rowList2.reduce((pre, cur) => pre + cur.height, 0);
|
|
5513
|
-
const blankHeight = td.height - tdGap - rowsHeight;
|
|
5557
|
+
const blankHeight = (td.height - tdGap) * scale - rowsHeight;
|
|
5514
5558
|
const offsetHeight = td.verticalAlign === VerticalAlign.MIDDLE ? blankHeight / 2 : blankHeight;
|
|
5515
5559
|
if (Math.floor(offsetHeight) > 0) {
|
|
5516
5560
|
td.positionList.forEach((tdPosition) => {
|
|
@@ -5582,7 +5626,8 @@ class Position {
|
|
|
5582
5626
|
}
|
|
5583
5627
|
const zoneManager = this.draw.getZone();
|
|
5584
5628
|
const curPageNo = this.draw.getPageNo();
|
|
5585
|
-
const
|
|
5629
|
+
const isMainActive = zoneManager.isMainActive();
|
|
5630
|
+
const positionNo = isMainActive ? curPageNo : 0;
|
|
5586
5631
|
for (let j = 0; j < positionList.length; j++) {
|
|
5587
5632
|
const { index: index2, pageNo, coordinate: { leftTop, rightTop, leftBottom } } = positionList[j];
|
|
5588
5633
|
if (positionNo !== pageNo)
|
|
@@ -5669,15 +5714,15 @@ class Position {
|
|
|
5669
5714
|
}
|
|
5670
5715
|
}
|
|
5671
5716
|
}
|
|
5672
|
-
const
|
|
5673
|
-
for (let j = 0; j <
|
|
5674
|
-
const { index: index2, pageNo, coordinate: { leftTop, leftBottom } } =
|
|
5717
|
+
const lastLetterList = positionList.filter((p) => p.isLastLetter && p.pageNo === positionNo);
|
|
5718
|
+
for (let j = 0; j < lastLetterList.length; j++) {
|
|
5719
|
+
const { index: index2, pageNo, coordinate: { leftTop, leftBottom } } = lastLetterList[j];
|
|
5675
5720
|
if (positionNo !== pageNo)
|
|
5676
5721
|
continue;
|
|
5677
5722
|
if (y > leftTop[1] && y <= leftBottom[1]) {
|
|
5678
5723
|
const isHead = x < this.options.margins[3];
|
|
5679
5724
|
if (isHead) {
|
|
5680
|
-
const headIndex = positionList.findIndex((p) => p.pageNo === positionNo && p.rowNo ===
|
|
5725
|
+
const headIndex = positionList.findIndex((p) => p.pageNo === positionNo && p.rowNo === lastLetterList[j].rowNo);
|
|
5681
5726
|
curPositionIndex = ~headIndex ? headIndex - 1 : index2;
|
|
5682
5727
|
} else {
|
|
5683
5728
|
curPositionIndex = index2;
|
|
@@ -5687,16 +5732,26 @@ class Position {
|
|
|
5687
5732
|
}
|
|
5688
5733
|
}
|
|
5689
5734
|
if (!isLastArea) {
|
|
5690
|
-
|
|
5691
|
-
|
|
5735
|
+
const header = this.draw.getHeader();
|
|
5736
|
+
const headerBottomY = header.getHeaderTop() + header.getHeight();
|
|
5737
|
+
const footer = this.draw.getFooter();
|
|
5738
|
+
const pageHeight = this.draw.getHeight();
|
|
5739
|
+
const footerTopY = pageHeight - (footer.getFooterBottom() + footer.getHeight());
|
|
5740
|
+
if (isMainActive) {
|
|
5741
|
+
if (y < headerBottomY) {
|
|
5692
5742
|
return {
|
|
5693
5743
|
index: -1,
|
|
5694
5744
|
zone: EditorZone.HEADER
|
|
5695
5745
|
};
|
|
5696
5746
|
}
|
|
5697
|
-
|
|
5698
|
-
|
|
5699
|
-
|
|
5747
|
+
if (y > footerTopY) {
|
|
5748
|
+
return {
|
|
5749
|
+
index: -1,
|
|
5750
|
+
zone: EditorZone.FOOTER
|
|
5751
|
+
};
|
|
5752
|
+
}
|
|
5753
|
+
} else {
|
|
5754
|
+
if (y <= footerTopY && y >= headerBottomY) {
|
|
5700
5755
|
return {
|
|
5701
5756
|
index: -1,
|
|
5702
5757
|
zone: EditorZone.MAIN
|
|
@@ -5704,7 +5759,7 @@ class Position {
|
|
|
5704
5759
|
}
|
|
5705
5760
|
}
|
|
5706
5761
|
return {
|
|
5707
|
-
index: ((_a =
|
|
5762
|
+
index: ((_a = lastLetterList[lastLetterList.length - 1]) == null ? void 0 : _a.index) || positionList.length - 1
|
|
5708
5763
|
};
|
|
5709
5764
|
}
|
|
5710
5765
|
return {
|
|
@@ -6397,6 +6452,11 @@ class TextParticle {
|
|
|
6397
6452
|
this.curStyle = "";
|
|
6398
6453
|
this.cacheMeasureText = new Map();
|
|
6399
6454
|
}
|
|
6455
|
+
measurePunctuationWidth(ctx, element) {
|
|
6456
|
+
if (!element || !PUNCTUATION_LIST.includes(element.value))
|
|
6457
|
+
return 0;
|
|
6458
|
+
return this.measureText(ctx, element).width;
|
|
6459
|
+
}
|
|
6400
6460
|
measureText(ctx, element) {
|
|
6401
6461
|
const id = `${element.value}${ctx.font}`;
|
|
6402
6462
|
const cacheTextMetrics = this.cacheMeasureText.get(id);
|
|
@@ -6461,7 +6521,7 @@ class PageNumber {
|
|
|
6461
6521
|
const margins = this.draw.getMargins();
|
|
6462
6522
|
const { width: textWidth } = ctx.measureText(text);
|
|
6463
6523
|
if (rowFlex === RowFlex.CENTER) {
|
|
6464
|
-
x = (width
|
|
6524
|
+
x = (width - textWidth) / 2;
|
|
6465
6525
|
} else if (rowFlex === RowFlex.RIGHT) {
|
|
6466
6526
|
x = width - textWidth - margins[1];
|
|
6467
6527
|
} else {
|
|
@@ -6614,6 +6674,22 @@ class TableParticle {
|
|
|
6614
6674
|
this.range = draw.getRange();
|
|
6615
6675
|
this.options = draw.getOptions();
|
|
6616
6676
|
}
|
|
6677
|
+
getTrListGroupByCol(payload) {
|
|
6678
|
+
const trList = deepClone(payload);
|
|
6679
|
+
for (let t = 0; t < payload.length; t++) {
|
|
6680
|
+
const tr = trList[t];
|
|
6681
|
+
for (let d = tr.tdList.length - 1; d >= 0; d--) {
|
|
6682
|
+
const td = tr.tdList[d];
|
|
6683
|
+
const { rowspan, rowIndex, colIndex } = td;
|
|
6684
|
+
const curRowIndex = rowIndex + rowspan - 1;
|
|
6685
|
+
if (curRowIndex !== d) {
|
|
6686
|
+
const changeTd = tr.tdList.splice(d, 1)[0];
|
|
6687
|
+
trList[curRowIndex].tdList.splice(colIndex, 0, changeTd);
|
|
6688
|
+
}
|
|
6689
|
+
}
|
|
6690
|
+
}
|
|
6691
|
+
return trList;
|
|
6692
|
+
}
|
|
6617
6693
|
_drawBorder(payload) {
|
|
6618
6694
|
const { ctx, startX, startY, width, height, isDrawFullBorder } = payload;
|
|
6619
6695
|
ctx.beginPath();
|
|
@@ -6928,7 +7004,7 @@ class TableTool {
|
|
|
6928
7004
|
this._mousedown({
|
|
6929
7005
|
evt,
|
|
6930
7006
|
element,
|
|
6931
|
-
index: td2.rowIndex,
|
|
7007
|
+
index: td2.rowIndex + td2.rowspan - 1,
|
|
6932
7008
|
order: TableOrder.ROW
|
|
6933
7009
|
});
|
|
6934
7010
|
};
|
|
@@ -6943,7 +7019,7 @@ class TableTool {
|
|
|
6943
7019
|
this._mousedown({
|
|
6944
7020
|
evt,
|
|
6945
7021
|
element,
|
|
6946
|
-
index: td2.colIndex,
|
|
7022
|
+
index: td2.colIndex + td2.colspan - 1,
|
|
6947
7023
|
order: TableOrder.COL
|
|
6948
7024
|
});
|
|
6949
7025
|
};
|
|
@@ -7001,8 +7077,14 @@ class TableTool {
|
|
|
7001
7077
|
var _a;
|
|
7002
7078
|
let isChangeSize = false;
|
|
7003
7079
|
if (order === TableOrder.ROW) {
|
|
7004
|
-
element.trList[index2]
|
|
7080
|
+
const tr = element.trList[index2];
|
|
7081
|
+
const { defaultTrMinHeight } = this.options;
|
|
7082
|
+
if (dy < 0 && tr.height + dy < defaultTrMinHeight) {
|
|
7083
|
+
dy = defaultTrMinHeight - tr.height;
|
|
7084
|
+
}
|
|
7005
7085
|
if (dy) {
|
|
7086
|
+
tr.height += dy;
|
|
7087
|
+
tr.minHeight = tr.height;
|
|
7006
7088
|
isChangeSize = true;
|
|
7007
7089
|
}
|
|
7008
7090
|
} else {
|
|
@@ -7010,11 +7092,14 @@ class TableTool {
|
|
|
7010
7092
|
if (colgroup && dx) {
|
|
7011
7093
|
const innerWidth = this.draw.getInnerWidth();
|
|
7012
7094
|
const curColWidth = colgroup[index2].width;
|
|
7013
|
-
|
|
7014
|
-
const nextColWidth = ((_a = colgroup[index2 + 1]) == null ? void 0 : _a.width) || 0;
|
|
7015
|
-
if (moveColWidth < this.MIN_TD_WIDTH || moveColWidth > curColWidth + nextColWidth) {
|
|
7095
|
+
if (dx < 0 && curColWidth + dx < this.MIN_TD_WIDTH) {
|
|
7016
7096
|
dx = this.MIN_TD_WIDTH - curColWidth;
|
|
7017
7097
|
}
|
|
7098
|
+
const nextColWidth = (_a = colgroup[index2 + 1]) == null ? void 0 : _a.width;
|
|
7099
|
+
if (dx > 0 && nextColWidth && nextColWidth - dx < this.MIN_TD_WIDTH) {
|
|
7100
|
+
dx = nextColWidth - this.MIN_TD_WIDTH;
|
|
7101
|
+
}
|
|
7102
|
+
const moveColWidth = curColWidth + dx;
|
|
7018
7103
|
let moveTableWidth = 0;
|
|
7019
7104
|
for (let c = 0; c < colgroup.length; c++) {
|
|
7020
7105
|
const group2 = colgroup[c];
|
|
@@ -7127,21 +7212,6 @@ class HyperlinkParticle {
|
|
|
7127
7212
|
ctx.restore();
|
|
7128
7213
|
}
|
|
7129
7214
|
}
|
|
7130
|
-
var HeaderMaxHeightRatio;
|
|
7131
|
-
(function(HeaderMaxHeightRatio2) {
|
|
7132
|
-
HeaderMaxHeightRatio2["HALF"] = "half";
|
|
7133
|
-
HeaderMaxHeightRatio2["ONE_THIRD"] = "one-third";
|
|
7134
|
-
HeaderMaxHeightRatio2["QUARTER"] = "quarter";
|
|
7135
|
-
})(HeaderMaxHeightRatio || (HeaderMaxHeightRatio = {}));
|
|
7136
|
-
const defaultHeaderOption = {
|
|
7137
|
-
top: 30,
|
|
7138
|
-
maxHeightRadio: HeaderMaxHeightRatio.HALF
|
|
7139
|
-
};
|
|
7140
|
-
const maxHeightRadioMapping = {
|
|
7141
|
-
[HeaderMaxHeightRatio.HALF]: 1 / 2,
|
|
7142
|
-
[HeaderMaxHeightRatio.ONE_THIRD]: 1 / 3,
|
|
7143
|
-
[HeaderMaxHeightRatio.QUARTER]: 1 / 4
|
|
7144
|
-
};
|
|
7145
7215
|
class Header {
|
|
7146
7216
|
constructor(draw) {
|
|
7147
7217
|
__publicField(this, "draw");
|
|
@@ -7157,6 +7227,9 @@ class Header {
|
|
|
7157
7227
|
this.rowList = [];
|
|
7158
7228
|
this.positionList = [];
|
|
7159
7229
|
}
|
|
7230
|
+
getRowList() {
|
|
7231
|
+
return this.rowList;
|
|
7232
|
+
}
|
|
7160
7233
|
setElementList(elementList) {
|
|
7161
7234
|
this.elementList = elementList;
|
|
7162
7235
|
}
|
|
@@ -9186,19 +9259,20 @@ class ImageObserver {
|
|
|
9186
9259
|
}
|
|
9187
9260
|
class Zone {
|
|
9188
9261
|
constructor(draw) {
|
|
9262
|
+
__publicField(this, "INDICATOR_PADDING", 2);
|
|
9189
9263
|
__publicField(this, "INDICATOR_TITLE_TRANSLATE", [20, 5]);
|
|
9190
9264
|
__publicField(this, "draw");
|
|
9191
9265
|
__publicField(this, "options");
|
|
9192
9266
|
__publicField(this, "i18n");
|
|
9193
9267
|
__publicField(this, "container");
|
|
9194
9268
|
__publicField(this, "currentZone");
|
|
9195
|
-
__publicField(this, "
|
|
9269
|
+
__publicField(this, "indicatorContainer");
|
|
9196
9270
|
this.draw = draw;
|
|
9197
9271
|
this.i18n = draw.getI18n();
|
|
9198
9272
|
this.options = draw.getOptions();
|
|
9199
9273
|
this.container = draw.getContainer();
|
|
9200
9274
|
this.currentZone = EditorZone.MAIN;
|
|
9201
|
-
this.
|
|
9275
|
+
this.indicatorContainer = null;
|
|
9202
9276
|
}
|
|
9203
9277
|
isHeaderActive() {
|
|
9204
9278
|
return this.getZone() === EditorZone.HEADER;
|
|
@@ -9206,6 +9280,9 @@ class Zone {
|
|
|
9206
9280
|
isMainActive() {
|
|
9207
9281
|
return this.getZone() === EditorZone.MAIN;
|
|
9208
9282
|
}
|
|
9283
|
+
isFooterActive() {
|
|
9284
|
+
return this.getZone() === EditorZone.FOOTER;
|
|
9285
|
+
}
|
|
9209
9286
|
getZone() {
|
|
9210
9287
|
return this.currentZone;
|
|
9211
9288
|
}
|
|
@@ -9219,63 +9296,174 @@ class Zone {
|
|
|
9219
9296
|
isSetCursor: false,
|
|
9220
9297
|
isCompute: false
|
|
9221
9298
|
});
|
|
9222
|
-
|
|
9223
|
-
this.drawHeaderZoneIndicator();
|
|
9224
|
-
} else {
|
|
9225
|
-
this._clearHeaderZoneIndicator();
|
|
9226
|
-
}
|
|
9299
|
+
this.drawZoneIndicator();
|
|
9227
9300
|
}
|
|
9228
|
-
|
|
9229
|
-
this.
|
|
9301
|
+
drawZoneIndicator() {
|
|
9302
|
+
this._clearZoneIndicator();
|
|
9303
|
+
if (!this.isHeaderActive() && !this.isFooterActive())
|
|
9304
|
+
return;
|
|
9230
9305
|
const { scale } = this.options;
|
|
9306
|
+
const isHeaderActive = this.isHeaderActive();
|
|
9231
9307
|
const [offsetX, offsetY] = this.INDICATOR_TITLE_TRANSLATE;
|
|
9232
|
-
this.headerIndicatorContainer = document.createElement("div");
|
|
9233
|
-
this.headerIndicatorContainer.classList.add(`${EDITOR_PREFIX}-header-indicator`);
|
|
9234
9308
|
const pageList = this.draw.getPageList();
|
|
9235
9309
|
const margins = this.draw.getMargins();
|
|
9236
9310
|
const innerWidth = this.draw.getInnerWidth();
|
|
9237
9311
|
const pageHeight = this.draw.getHeight();
|
|
9238
9312
|
const pageGap = this.draw.getPageGap();
|
|
9239
9313
|
const preY = pageHeight + pageGap;
|
|
9314
|
+
this.indicatorContainer = document.createElement("div");
|
|
9315
|
+
this.indicatorContainer.classList.add(`${EDITOR_PREFIX}-zone-indicator`);
|
|
9240
9316
|
const header = this.draw.getHeader();
|
|
9241
|
-
const
|
|
9242
|
-
const
|
|
9317
|
+
const footer = this.draw.getFooter();
|
|
9318
|
+
const indicatorHeight = isHeaderActive ? header.getHeight() : footer.getHeight();
|
|
9319
|
+
const indicatorTop = isHeaderActive ? header.getHeaderTop() : pageHeight - footer.getFooterBottom() - indicatorHeight;
|
|
9243
9320
|
for (let p = 0; p < pageList.length; p++) {
|
|
9244
|
-
const startY = preY * p +
|
|
9321
|
+
const startY = preY * p + indicatorTop;
|
|
9322
|
+
const indicatorLeftX = margins[3] - this.INDICATOR_PADDING;
|
|
9323
|
+
const indicatorRightX = margins[3] + innerWidth + this.INDICATOR_PADDING;
|
|
9324
|
+
const indicatorTopY = isHeaderActive ? startY - this.INDICATOR_PADDING : startY + indicatorHeight + this.INDICATOR_PADDING;
|
|
9325
|
+
const indicatorBottomY = isHeaderActive ? startY + indicatorHeight + this.INDICATOR_PADDING : startY - this.INDICATOR_PADDING;
|
|
9245
9326
|
const indicatorTitle = document.createElement("div");
|
|
9246
|
-
indicatorTitle.innerText = this.i18n.t("
|
|
9247
|
-
indicatorTitle.style.top = `${
|
|
9327
|
+
indicatorTitle.innerText = this.i18n.t(`frame.${isHeaderActive ? "header" : "footer"}`);
|
|
9328
|
+
indicatorTitle.style.top = `${indicatorBottomY}px`;
|
|
9248
9329
|
indicatorTitle.style.transform = `translate(${offsetX * scale}px, ${offsetY * scale}px) scale(${scale})`;
|
|
9249
|
-
this.
|
|
9330
|
+
this.indicatorContainer.append(indicatorTitle);
|
|
9250
9331
|
const lineTop = document.createElement("span");
|
|
9251
|
-
lineTop.classList.add(`${EDITOR_PREFIX}-
|
|
9252
|
-
lineTop.style.top = `${
|
|
9332
|
+
lineTop.classList.add(`${EDITOR_PREFIX}-zone-indicator-border__top`);
|
|
9333
|
+
lineTop.style.top = `${indicatorTopY}px`;
|
|
9253
9334
|
lineTop.style.width = `${innerWidth}px`;
|
|
9254
9335
|
lineTop.style.marginLeft = `${margins[3]}px`;
|
|
9255
|
-
this.
|
|
9336
|
+
this.indicatorContainer.append(lineTop);
|
|
9256
9337
|
const lineLeft = document.createElement("span");
|
|
9257
|
-
lineLeft.classList.add(`${EDITOR_PREFIX}-
|
|
9338
|
+
lineLeft.classList.add(`${EDITOR_PREFIX}-zone-indicator-border__left`);
|
|
9258
9339
|
lineLeft.style.top = `${startY}px`;
|
|
9259
|
-
lineLeft.style.height = `${
|
|
9260
|
-
lineLeft.style.left = `${
|
|
9261
|
-
this.
|
|
9340
|
+
lineLeft.style.height = `${indicatorHeight}px`;
|
|
9341
|
+
lineLeft.style.left = `${indicatorLeftX}px`;
|
|
9342
|
+
this.indicatorContainer.append(lineLeft);
|
|
9262
9343
|
const lineBottom = document.createElement("span");
|
|
9263
|
-
lineBottom.classList.add(`${EDITOR_PREFIX}-
|
|
9264
|
-
lineBottom.style.top = `${
|
|
9265
|
-
this.
|
|
9344
|
+
lineBottom.classList.add(`${EDITOR_PREFIX}-zone-indicator-border__bottom`);
|
|
9345
|
+
lineBottom.style.top = `${indicatorBottomY}px`;
|
|
9346
|
+
this.indicatorContainer.append(lineBottom);
|
|
9266
9347
|
const lineRight = document.createElement("span");
|
|
9267
|
-
lineRight.classList.add(`${EDITOR_PREFIX}-
|
|
9348
|
+
lineRight.classList.add(`${EDITOR_PREFIX}-zone-indicator-border__right`);
|
|
9268
9349
|
lineRight.style.top = `${startY}px`;
|
|
9269
|
-
lineRight.style.height = `${
|
|
9270
|
-
lineRight.style.left = `${
|
|
9271
|
-
this.
|
|
9350
|
+
lineRight.style.height = `${indicatorHeight}px`;
|
|
9351
|
+
lineRight.style.left = `${indicatorRightX}px`;
|
|
9352
|
+
this.indicatorContainer.append(lineRight);
|
|
9272
9353
|
}
|
|
9273
|
-
this.container.append(this.
|
|
9354
|
+
this.container.append(this.indicatorContainer);
|
|
9274
9355
|
}
|
|
9275
|
-
|
|
9356
|
+
_clearZoneIndicator() {
|
|
9276
9357
|
var _a;
|
|
9277
|
-
(_a = this.
|
|
9278
|
-
this.
|
|
9358
|
+
(_a = this.indicatorContainer) == null ? void 0 : _a.remove();
|
|
9359
|
+
this.indicatorContainer = null;
|
|
9360
|
+
}
|
|
9361
|
+
}
|
|
9362
|
+
class Footer {
|
|
9363
|
+
constructor(draw) {
|
|
9364
|
+
__publicField(this, "draw");
|
|
9365
|
+
__publicField(this, "position");
|
|
9366
|
+
__publicField(this, "options");
|
|
9367
|
+
__publicField(this, "elementList");
|
|
9368
|
+
__publicField(this, "rowList");
|
|
9369
|
+
__publicField(this, "positionList");
|
|
9370
|
+
this.draw = draw;
|
|
9371
|
+
this.position = draw.getPosition();
|
|
9372
|
+
this.options = draw.getOptions();
|
|
9373
|
+
this.elementList = draw.getFooterElementList();
|
|
9374
|
+
this.rowList = [];
|
|
9375
|
+
this.positionList = [];
|
|
9376
|
+
}
|
|
9377
|
+
getRowList() {
|
|
9378
|
+
return this.rowList;
|
|
9379
|
+
}
|
|
9380
|
+
setElementList(elementList) {
|
|
9381
|
+
this.elementList = elementList;
|
|
9382
|
+
}
|
|
9383
|
+
getElementList() {
|
|
9384
|
+
return this.elementList;
|
|
9385
|
+
}
|
|
9386
|
+
getPositionList() {
|
|
9387
|
+
return this.positionList;
|
|
9388
|
+
}
|
|
9389
|
+
compute() {
|
|
9390
|
+
this._recovery();
|
|
9391
|
+
this._computeRowList();
|
|
9392
|
+
this._computePositionList();
|
|
9393
|
+
}
|
|
9394
|
+
_recovery() {
|
|
9395
|
+
this.rowList = [];
|
|
9396
|
+
this.positionList = [];
|
|
9397
|
+
}
|
|
9398
|
+
_computeRowList() {
|
|
9399
|
+
const innerWidth = this.draw.getInnerWidth();
|
|
9400
|
+
this.rowList = this.draw.computeRowList(innerWidth, this.elementList);
|
|
9401
|
+
}
|
|
9402
|
+
_computePositionList() {
|
|
9403
|
+
const footerBottom = this.getFooterBottom();
|
|
9404
|
+
const innerWidth = this.draw.getInnerWidth();
|
|
9405
|
+
const margins = this.draw.getMargins();
|
|
9406
|
+
const startX = margins[3];
|
|
9407
|
+
const pageHeight = this.draw.getHeight();
|
|
9408
|
+
const footerHeight = this.getHeight();
|
|
9409
|
+
const startY = pageHeight - footerBottom - footerHeight;
|
|
9410
|
+
this.position.computePageRowPosition({
|
|
9411
|
+
positionList: this.positionList,
|
|
9412
|
+
rowList: this.rowList,
|
|
9413
|
+
pageNo: 0,
|
|
9414
|
+
startIndex: 0,
|
|
9415
|
+
startX,
|
|
9416
|
+
startY,
|
|
9417
|
+
innerWidth
|
|
9418
|
+
});
|
|
9419
|
+
}
|
|
9420
|
+
getFooterBottom() {
|
|
9421
|
+
const { footer: { bottom }, scale } = this.options;
|
|
9422
|
+
return Math.floor(bottom * scale);
|
|
9423
|
+
}
|
|
9424
|
+
getMaxHeight() {
|
|
9425
|
+
const { footer: { maxHeightRadio } } = this.options;
|
|
9426
|
+
const height = this.draw.getHeight();
|
|
9427
|
+
return Math.floor(height * maxHeightRadioMapping[maxHeightRadio]);
|
|
9428
|
+
}
|
|
9429
|
+
getHeight() {
|
|
9430
|
+
const maxHeight = this.getMaxHeight();
|
|
9431
|
+
const rowHeight = this.getRowHeight();
|
|
9432
|
+
return rowHeight > maxHeight ? maxHeight : rowHeight;
|
|
9433
|
+
}
|
|
9434
|
+
getRowHeight() {
|
|
9435
|
+
return this.rowList.reduce((pre, cur) => pre + cur.height, 0);
|
|
9436
|
+
}
|
|
9437
|
+
getExtraHeight() {
|
|
9438
|
+
const margins = this.draw.getMargins();
|
|
9439
|
+
const footerHeight = this.getHeight();
|
|
9440
|
+
const footerBottom = this.getFooterBottom();
|
|
9441
|
+
const extraHeight = footerBottom + footerHeight - margins[2];
|
|
9442
|
+
return extraHeight <= 0 ? 0 : extraHeight;
|
|
9443
|
+
}
|
|
9444
|
+
render(ctx, pageNo) {
|
|
9445
|
+
ctx.globalAlpha = 1;
|
|
9446
|
+
const innerWidth = this.draw.getInnerWidth();
|
|
9447
|
+
const maxHeight = this.getMaxHeight();
|
|
9448
|
+
const rowList = [];
|
|
9449
|
+
let curRowHeight = 0;
|
|
9450
|
+
for (let r = 0; r < this.rowList.length; r++) {
|
|
9451
|
+
const row = this.rowList[r];
|
|
9452
|
+
if (curRowHeight + row.height > maxHeight) {
|
|
9453
|
+
break;
|
|
9454
|
+
}
|
|
9455
|
+
rowList.push(row);
|
|
9456
|
+
curRowHeight += row.height;
|
|
9457
|
+
}
|
|
9458
|
+
this.draw.drawRow(ctx, {
|
|
9459
|
+
elementList: this.elementList,
|
|
9460
|
+
positionList: this.positionList,
|
|
9461
|
+
rowList,
|
|
9462
|
+
pageNo,
|
|
9463
|
+
startIndex: 0,
|
|
9464
|
+
innerWidth,
|
|
9465
|
+
zone: EditorZone.FOOTER
|
|
9466
|
+
});
|
|
9279
9467
|
}
|
|
9280
9468
|
}
|
|
9281
9469
|
class Draw {
|
|
@@ -9314,6 +9502,7 @@ class Draw {
|
|
|
9314
9502
|
__publicField(this, "pageNumber");
|
|
9315
9503
|
__publicField(this, "waterMark");
|
|
9316
9504
|
__publicField(this, "header");
|
|
9505
|
+
__publicField(this, "footer");
|
|
9317
9506
|
__publicField(this, "hyperlinkParticle");
|
|
9318
9507
|
__publicField(this, "dateParticle");
|
|
9319
9508
|
__publicField(this, "separatorParticle");
|
|
@@ -9367,6 +9556,7 @@ class Draw {
|
|
|
9367
9556
|
this.pageNumber = new PageNumber(this);
|
|
9368
9557
|
this.waterMark = new Watermark(this);
|
|
9369
9558
|
this.header = new Header(this);
|
|
9559
|
+
this.footer = new Footer(this);
|
|
9370
9560
|
this.hyperlinkParticle = new HyperlinkParticle(this);
|
|
9371
9561
|
this.dateParticle = new DateParticle(this);
|
|
9372
9562
|
this.separatorParticle = new SeparatorParticle();
|
|
@@ -9419,9 +9609,13 @@ class Draw {
|
|
|
9419
9609
|
}
|
|
9420
9610
|
getMainHeight() {
|
|
9421
9611
|
const pageHeight = this.getHeight();
|
|
9612
|
+
return pageHeight - this.getMainOuterHeight();
|
|
9613
|
+
}
|
|
9614
|
+
getMainOuterHeight() {
|
|
9422
9615
|
const margins = this.getMargins();
|
|
9423
|
-
const
|
|
9424
|
-
|
|
9616
|
+
const headerExtraHeight = this.header.getExtraHeight();
|
|
9617
|
+
const footerExtraHeight = this.footer.getExtraHeight();
|
|
9618
|
+
return margins[0] + margins[2] + headerExtraHeight + footerExtraHeight;
|
|
9425
9619
|
}
|
|
9426
9620
|
getCanvasWidth(pageNo = -1) {
|
|
9427
9621
|
const page = this.getPage(pageNo);
|
|
@@ -9500,9 +9694,25 @@ class Draw {
|
|
|
9500
9694
|
getPageList() {
|
|
9501
9695
|
return this.pageList;
|
|
9502
9696
|
}
|
|
9503
|
-
|
|
9697
|
+
getTableRowList(sourceElementList) {
|
|
9698
|
+
const positionContext = this.position.getPositionContext();
|
|
9699
|
+
const { index: index2, trIndex, tdIndex } = positionContext;
|
|
9700
|
+
return sourceElementList[index2].trList[trIndex].tdList[tdIndex].rowList;
|
|
9701
|
+
}
|
|
9702
|
+
getOriginalRowList() {
|
|
9703
|
+
const zoneManager = this.getZone();
|
|
9704
|
+
if (zoneManager.isHeaderActive()) {
|
|
9705
|
+
return this.header.getRowList();
|
|
9706
|
+
}
|
|
9707
|
+
if (zoneManager.isFooterActive()) {
|
|
9708
|
+
return this.footer.getRowList();
|
|
9709
|
+
}
|
|
9504
9710
|
return this.rowList;
|
|
9505
9711
|
}
|
|
9712
|
+
getRowList() {
|
|
9713
|
+
const positionContext = this.position.getPositionContext();
|
|
9714
|
+
return positionContext.isTable ? this.getTableRowList(this.getOriginalElementList()) : this.getOriginalRowList();
|
|
9715
|
+
}
|
|
9506
9716
|
getPageRowList() {
|
|
9507
9717
|
return this.pageRowList;
|
|
9508
9718
|
}
|
|
@@ -9546,7 +9756,13 @@ class Draw {
|
|
|
9546
9756
|
}
|
|
9547
9757
|
getOriginalElementList() {
|
|
9548
9758
|
const zoneManager = this.getZone();
|
|
9549
|
-
|
|
9759
|
+
if (zoneManager.isHeaderActive()) {
|
|
9760
|
+
return this.header.getElementList();
|
|
9761
|
+
}
|
|
9762
|
+
if (zoneManager.isFooterActive()) {
|
|
9763
|
+
return this.footer.getElementList();
|
|
9764
|
+
}
|
|
9765
|
+
return this.elementList;
|
|
9550
9766
|
}
|
|
9551
9767
|
getOriginalMainElementList() {
|
|
9552
9768
|
return this.elementList;
|
|
@@ -9618,6 +9834,9 @@ class Draw {
|
|
|
9618
9834
|
getHeader() {
|
|
9619
9835
|
return this.header;
|
|
9620
9836
|
}
|
|
9837
|
+
getFooter() {
|
|
9838
|
+
return this.footer;
|
|
9839
|
+
}
|
|
9621
9840
|
getHyperlinkParticle() {
|
|
9622
9841
|
return this.hyperlinkParticle;
|
|
9623
9842
|
}
|
|
@@ -9775,7 +9994,8 @@ class Draw {
|
|
|
9775
9994
|
const { width, height, margins, watermark } = this.options;
|
|
9776
9995
|
const data2 = {
|
|
9777
9996
|
header: zipElementList(this.headerElementList),
|
|
9778
|
-
main: zipElementList(this.elementList)
|
|
9997
|
+
main: zipElementList(this.elementList),
|
|
9998
|
+
footer: zipElementList(this.footerElementList)
|
|
9779
9999
|
};
|
|
9780
10000
|
return {
|
|
9781
10001
|
version,
|
|
@@ -9865,9 +10085,9 @@ class Draw {
|
|
|
9865
10085
|
if (element.type === ElementType.IMAGE || element.type === ElementType.LATEX) {
|
|
9866
10086
|
const elementWidth = element.width * scale;
|
|
9867
10087
|
const elementHeight = element.height * scale;
|
|
9868
|
-
const
|
|
9869
|
-
if (
|
|
9870
|
-
const surplusWidth = innerWidth -
|
|
10088
|
+
const curRowWidth2 = element.imgDisplay === ImageDisplay.INLINE ? 0 : curRow.width;
|
|
10089
|
+
if (curRowWidth2 + elementWidth > innerWidth) {
|
|
10090
|
+
const surplusWidth = innerWidth - curRowWidth2;
|
|
9871
10091
|
element.width = surplusWidth;
|
|
9872
10092
|
element.height = elementHeight * surplusWidth / elementWidth;
|
|
9873
10093
|
metrics.width = element.width;
|
|
@@ -9899,6 +10119,40 @@ class Draw {
|
|
|
9899
10119
|
changeTd.height += extraHeight;
|
|
9900
10120
|
});
|
|
9901
10121
|
}
|
|
10122
|
+
let curTdMinHeight = 0;
|
|
10123
|
+
let curTdRealHeight = 0;
|
|
10124
|
+
let i2 = 0;
|
|
10125
|
+
while (i2 < td.rowspan) {
|
|
10126
|
+
const curTr = trList[i2 + t];
|
|
10127
|
+
curTdMinHeight += curTr.minHeight;
|
|
10128
|
+
curTdRealHeight += curTr.height;
|
|
10129
|
+
i2++;
|
|
10130
|
+
}
|
|
10131
|
+
td.realMinHeight = curTdMinHeight;
|
|
10132
|
+
td.realHeight = curTdRealHeight;
|
|
10133
|
+
td.mainHeight = curTdHeight;
|
|
10134
|
+
}
|
|
10135
|
+
}
|
|
10136
|
+
const reduceTrList = this.tableParticle.getTrListGroupByCol(trList);
|
|
10137
|
+
for (let t = 0; t < reduceTrList.length; t++) {
|
|
10138
|
+
const tr = reduceTrList[t];
|
|
10139
|
+
let reduceHeight = -1;
|
|
10140
|
+
for (let d = 0; d < tr.tdList.length; d++) {
|
|
10141
|
+
const td = tr.tdList[d];
|
|
10142
|
+
const curTdRealHeight = td.realHeight;
|
|
10143
|
+
const curTdHeight = td.mainHeight;
|
|
10144
|
+
const curTdMinHeight = td.realMinHeight;
|
|
10145
|
+
const curReduceHeight = curTdHeight < curTdMinHeight ? curTdRealHeight - curTdMinHeight : curTdRealHeight - curTdHeight;
|
|
10146
|
+
if (!~reduceHeight || curReduceHeight < reduceHeight) {
|
|
10147
|
+
reduceHeight = curReduceHeight;
|
|
10148
|
+
}
|
|
10149
|
+
}
|
|
10150
|
+
if (reduceHeight > 0) {
|
|
10151
|
+
const changeTr = trList[t];
|
|
10152
|
+
changeTr.height -= reduceHeight;
|
|
10153
|
+
changeTr.tdList.forEach((changeTd) => {
|
|
10154
|
+
changeTd.height -= reduceHeight;
|
|
10155
|
+
});
|
|
9902
10156
|
}
|
|
9903
10157
|
}
|
|
9904
10158
|
this.tableParticle.computeRowColInfo(element);
|
|
@@ -9912,10 +10166,8 @@ class Draw {
|
|
|
9912
10166
|
metrics.height = elementHeight;
|
|
9913
10167
|
metrics.boundingBoxDescent = elementHeight;
|
|
9914
10168
|
metrics.boundingBoxAscent = 0;
|
|
9915
|
-
const margins = this.getMargins();
|
|
9916
10169
|
const height2 = this.getHeight();
|
|
9917
|
-
const
|
|
9918
|
-
const marginHeight = margins[0] + margins[2] + headerExtraHeight;
|
|
10170
|
+
const marginHeight = this.getMainOuterHeight();
|
|
9919
10171
|
let curPagePreHeight = marginHeight;
|
|
9920
10172
|
for (let r = 0; r < rowList.length; r++) {
|
|
9921
10173
|
const row = rowList[r];
|
|
@@ -10025,8 +10277,13 @@ class Draw {
|
|
|
10025
10277
|
style: this._getFont(element, scale)
|
|
10026
10278
|
});
|
|
10027
10279
|
const preElement = elementList[i - 1];
|
|
10028
|
-
|
|
10029
|
-
|
|
10280
|
+
const nextElement = elementList[i + 1];
|
|
10281
|
+
const curRowWidth = curRow.width + metrics.width + this.textParticle.measurePunctuationWidth(ctx, nextElement);
|
|
10282
|
+
if (element.type === ElementType.TABLE || (preElement == null ? void 0 : preElement.type) === ElementType.TABLE || (preElement == null ? void 0 : preElement.type) === ElementType.BLOCK || element.type === ElementType.BLOCK || (preElement == null ? void 0 : preElement.imgDisplay) === ImageDisplay.INLINE || element.imgDisplay === ImageDisplay.INLINE || curRowWidth > innerWidth || i !== 0 && element.value === ZERO) {
|
|
10283
|
+
if (curRow.startIndex === 0 && curRow.elementList.length === 1 && INLINE_ELEMENT_TYPE.includes(element.type)) {
|
|
10284
|
+
curRow.height = defaultBasicRowMarginHeight;
|
|
10285
|
+
}
|
|
10286
|
+
if ((preElement == null ? void 0 : preElement.rowFlex) === RowFlex.ALIGNMENT && curRowWidth > innerWidth) {
|
|
10030
10287
|
const gap = (innerWidth - curRow.width) / curRow.elementList.length;
|
|
10031
10288
|
for (let e = 0; e < curRow.elementList.length; e++) {
|
|
10032
10289
|
const el = curRow.elementList[e];
|
|
@@ -10063,9 +10320,7 @@ class Draw {
|
|
|
10063
10320
|
const pageRowList = [[]];
|
|
10064
10321
|
const { pageMode } = this.options;
|
|
10065
10322
|
const height = this.getHeight();
|
|
10066
|
-
const
|
|
10067
|
-
const headerExtraHeight = this.header.getExtraHeight();
|
|
10068
|
-
const marginHeight = margins[0] + margins[2] + headerExtraHeight;
|
|
10323
|
+
const marginHeight = this.getMainOuterHeight();
|
|
10069
10324
|
let pageHeight = marginHeight;
|
|
10070
10325
|
let pageNo = 0;
|
|
10071
10326
|
if (pageMode === PageMode.CONTINUITY) {
|
|
@@ -10254,7 +10509,7 @@ class Draw {
|
|
|
10254
10509
|
const { inactiveAlpha, pageMode } = this.options;
|
|
10255
10510
|
const innerWidth = this.getInnerWidth();
|
|
10256
10511
|
const ctx = this.ctxList[pageNo];
|
|
10257
|
-
ctx.globalAlpha = this.zone.
|
|
10512
|
+
ctx.globalAlpha = !this.zone.isMainActive() ? inactiveAlpha : 1;
|
|
10258
10513
|
this._clearPage(pageNo);
|
|
10259
10514
|
this.background.render(ctx);
|
|
10260
10515
|
this.margin.render(ctx, pageNo);
|
|
@@ -10270,6 +10525,7 @@ class Draw {
|
|
|
10270
10525
|
});
|
|
10271
10526
|
this.header.render(ctx, pageNo);
|
|
10272
10527
|
this.pageNumber.render(ctx, pageNo);
|
|
10528
|
+
this.footer.render(ctx, pageNo);
|
|
10273
10529
|
if (this.search.getSearchKeyword()) {
|
|
10274
10530
|
this.search.render(ctx, pageNo);
|
|
10275
10531
|
}
|
|
@@ -10286,7 +10542,6 @@ class Draw {
|
|
|
10286
10542
|
entries.forEach((entry) => {
|
|
10287
10543
|
if (entry.isIntersecting) {
|
|
10288
10544
|
const index2 = Number(entry.target.dataset.index);
|
|
10289
|
-
this.header.render(this.ctxList[index2], index2);
|
|
10290
10545
|
this._drawPage({
|
|
10291
10546
|
elementList,
|
|
10292
10547
|
positionList,
|
|
@@ -10320,6 +10575,7 @@ class Draw {
|
|
|
10320
10575
|
const innerWidth = this.getInnerWidth();
|
|
10321
10576
|
if (isCompute) {
|
|
10322
10577
|
this.header.compute();
|
|
10578
|
+
this.footer.compute();
|
|
10323
10579
|
this.rowList = this.computeRowList(innerWidth, this.elementList);
|
|
10324
10580
|
this.pageRowList = this._computePageList();
|
|
10325
10581
|
this.position.computePositionList();
|
|
@@ -10368,6 +10624,7 @@ class Draw {
|
|
|
10368
10624
|
const self = this;
|
|
10369
10625
|
const oldElementList = deepClone(this.elementList);
|
|
10370
10626
|
const oldHeaderElementList = deepClone(this.header.getElementList());
|
|
10627
|
+
const oldFooterElementList = deepClone(this.footer.getElementList());
|
|
10371
10628
|
const { startIndex, endIndex } = this.range.getRange();
|
|
10372
10629
|
const pageNo = this.pageNo;
|
|
10373
10630
|
const oldPositionContext = deepClone(positionContext);
|
|
@@ -10375,8 +10632,9 @@ class Draw {
|
|
|
10375
10632
|
this.historyManager.execute(function() {
|
|
10376
10633
|
self.zone.setZone(zone);
|
|
10377
10634
|
self.setPageNo(pageNo);
|
|
10378
|
-
self.position.setPositionContext(oldPositionContext);
|
|
10379
|
-
self.header.setElementList(oldHeaderElementList);
|
|
10635
|
+
self.position.setPositionContext(deepClone(oldPositionContext));
|
|
10636
|
+
self.header.setElementList(deepClone(oldHeaderElementList));
|
|
10637
|
+
self.footer.setElementList(deepClone(oldFooterElementList));
|
|
10380
10638
|
self.elementList = deepClone(oldElementList);
|
|
10381
10639
|
self.range.setRange(startIndex, endIndex);
|
|
10382
10640
|
self.render({ curIndex, isSubmitHistory: false });
|
|
@@ -10386,8 +10644,8 @@ class Draw {
|
|
|
10386
10644
|
if (isCompute && !this.isReadonly() && positionContext.isTable) {
|
|
10387
10645
|
this.tableTool.render();
|
|
10388
10646
|
}
|
|
10389
|
-
if (isCompute && this.zone.
|
|
10390
|
-
this.zone.
|
|
10647
|
+
if (isCompute && !this.zone.isMainActive()) {
|
|
10648
|
+
this.zone.drawZoneIndicator();
|
|
10391
10649
|
}
|
|
10392
10650
|
if (this.listener.pageSizeChange) {
|
|
10393
10651
|
this.listener.pageSizeChange(this.pageRowList.length);
|
|
@@ -11276,7 +11534,7 @@ class CommandAdapt {
|
|
|
11276
11534
|
}
|
|
11277
11535
|
const element = {
|
|
11278
11536
|
type: ElementType.TABLE,
|
|
11279
|
-
value:
|
|
11537
|
+
value: "",
|
|
11280
11538
|
colgroup,
|
|
11281
11539
|
trList
|
|
11282
11540
|
};
|
|
@@ -12892,6 +13150,10 @@ class ContextMenu {
|
|
|
12892
13150
|
this.contextMenuRelationShip.clear();
|
|
12893
13151
|
}
|
|
12894
13152
|
}
|
|
13153
|
+
const defaultHeaderOption = {
|
|
13154
|
+
top: 30,
|
|
13155
|
+
maxHeightRadio: MaxHeightRatio.HALF
|
|
13156
|
+
};
|
|
12895
13157
|
const richtextKeys = [
|
|
12896
13158
|
{
|
|
12897
13159
|
key: KeyMap.X_UPPERCASE,
|
|
@@ -13043,6 +13305,10 @@ const defaultPageNumberOption = {
|
|
|
13043
13305
|
color: "#000000",
|
|
13044
13306
|
rowFlex: RowFlex.CENTER
|
|
13045
13307
|
};
|
|
13308
|
+
const defaultFooterOption = {
|
|
13309
|
+
bottom: 30,
|
|
13310
|
+
maxHeightRadio: MaxHeightRatio.HALF
|
|
13311
|
+
};
|
|
13046
13312
|
class Editor {
|
|
13047
13313
|
constructor(container, data2, options = {}) {
|
|
13048
13314
|
__publicField(this, "command");
|
|
@@ -13050,6 +13316,7 @@ class Editor {
|
|
|
13050
13316
|
__publicField(this, "register");
|
|
13051
13317
|
__publicField(this, "destroy");
|
|
13052
13318
|
const headerOptions = __spreadValues(__spreadValues({}, defaultHeaderOption), options.header);
|
|
13319
|
+
const footerOptions = __spreadValues(__spreadValues({}, defaultFooterOption), options.footer);
|
|
13053
13320
|
const pageNumberOptions = __spreadValues(__spreadValues({}, defaultPageNumberOption), options.pageNumber);
|
|
13054
13321
|
const waterMarkOptions = __spreadValues(__spreadValues({}, defaultWatermarkOption), options.watermark);
|
|
13055
13322
|
const controlOptions = __spreadValues(__spreadValues({}, defaultControlOption), options.control);
|
|
@@ -13085,12 +13352,13 @@ class Editor {
|
|
|
13085
13352
|
margins: [100, 120, 100, 120],
|
|
13086
13353
|
pageMode: PageMode.PAGING,
|
|
13087
13354
|
tdPadding: 5,
|
|
13088
|
-
|
|
13355
|
+
defaultTrMinHeight: 40,
|
|
13089
13356
|
defaultHyperlinkColor: "#0000FF",
|
|
13090
13357
|
paperDirection: PaperDirection.VERTICAL,
|
|
13091
13358
|
inactiveAlpha: 0.6
|
|
13092
13359
|
}, options), {
|
|
13093
13360
|
header: headerOptions,
|
|
13361
|
+
footer: footerOptions,
|
|
13094
13362
|
pageNumber: pageNumberOptions,
|
|
13095
13363
|
watermark: waterMarkOptions,
|
|
13096
13364
|
control: controlOptions,
|
|
@@ -13099,22 +13367,24 @@ class Editor {
|
|
|
13099
13367
|
});
|
|
13100
13368
|
let headerElementList = [];
|
|
13101
13369
|
let mainElementList = [];
|
|
13370
|
+
let footerElementList = [];
|
|
13102
13371
|
if (Array.isArray(data2)) {
|
|
13103
13372
|
mainElementList = data2;
|
|
13104
13373
|
} else {
|
|
13105
13374
|
headerElementList = data2.header || [];
|
|
13106
13375
|
mainElementList = data2.main;
|
|
13376
|
+
footerElementList = data2.footer || [];
|
|
13107
13377
|
}
|
|
13108
|
-
|
|
13109
|
-
|
|
13110
|
-
|
|
13111
|
-
|
|
13112
|
-
editorOptions
|
|
13378
|
+
[headerElementList, mainElementList, footerElementList].forEach((elementList) => {
|
|
13379
|
+
formatElementList(elementList, {
|
|
13380
|
+
editorOptions
|
|
13381
|
+
});
|
|
13113
13382
|
});
|
|
13114
13383
|
this.listener = new Listener();
|
|
13115
13384
|
const draw = new Draw(container, editorOptions, {
|
|
13116
13385
|
header: headerElementList,
|
|
13117
|
-
main: mainElementList
|
|
13386
|
+
main: mainElementList,
|
|
13387
|
+
footer: footerElementList
|
|
13118
13388
|
}, this.listener);
|
|
13119
13389
|
this.command = new Command(new CommandAdapt(draw));
|
|
13120
13390
|
const contextMenu = new ContextMenu(draw, this.command);
|
|
@@ -13131,5 +13401,5 @@ class Editor {
|
|
|
13131
13401
|
};
|
|
13132
13402
|
}
|
|
13133
13403
|
}
|
|
13134
|
-
export { BlockType, Command, ControlType, EDITOR_COMPONENT, Editor, EditorComponent, EditorMode, EditorZone, ElementType, ImageDisplay, KeyMap, PageMode, PaperDirection, RowFlex, TableBorder, VerticalAlign, Editor as default };
|
|
13404
|
+
export { BlockType, Command, ControlType, EDITOR_COMPONENT, Editor, EditorComponent, EditorMode, EditorZone, ElementType, ImageDisplay, KeyMap, MaxHeightRatio, PageMode, PaperDirection, RowFlex, TableBorder, VerticalAlign, Editor as default };
|
|
13135
13405
|
//# sourceMappingURL=canvas-editor.es.js.map
|