@hufe921/canvas-editor 1.0.3 → 1.0.4

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 CHANGED
@@ -1,3 +1,23 @@
1
+ ## [1.0.4](https://github.com/Hufe921/canvas-editor/compare/v1.0.3...v1.0.4) (2026-09-27)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * resolve date picker, image caption and empty table row bugs ([b4bea50](https://github.com/Hufe921/canvas-editor/commit/b4bea50454d364d8d48f0c79e060462b81753679))
7
+ * resolve misc editor bugs in controls, table tools and range handling ([0111a98](https://github.com/Hufe921/canvas-editor/commit/0111a98f9a1997bcb9ae51ef5f20ad08b293801e))
8
+
9
+
10
+ ### Chores
11
+
12
+ * update mock.ts ([f5d6837](https://github.com/Hufe921/canvas-editor/commit/f5d6837be53b70c04549557d371c6fb10fe76cab))
13
+
14
+
15
+ ### Documentation
16
+
17
+ * update plugin markdown ([bd59011](https://github.com/Hufe921/canvas-editor/commit/bd590116f2aea6db0fd5300e6d09b103e7f77e1e))
18
+
19
+
20
+
1
21
  ## [1.0.3](https://github.com/Hufe921/canvas-editor/compare/v1.0.2...v1.0.3) (2026-09-11)
2
22
 
3
23
 
package/README.md CHANGED
@@ -58,7 +58,7 @@ Unlike traditional `contenteditable`-based editors, Canvas Editor takes full con
58
58
  - **Document Structure** — Catalog (TOC) generation, comments, group annotations
59
59
  - **Print & Export** — Print-ready output via canvas-to-image / PDF rendering
60
60
  - **Interaction** — Custom context menus, customizable shortcut keys, drag-and-drop for text, elements, and controls
61
- - **Extensibility** — Plugin system for adding custom functionality
61
+ - **Extensibility** — Plugin system (`instance.use`); official plugins cover Word/Excel import-export, formulas, code blocks, comments, spell checking, and more
62
62
  - **Performance** — Web Workers for word counting, catalog generation, and async value retrieval
63
63
 
64
64
  ## Why Canvas Editor?
@@ -108,13 +108,13 @@ For complete API documentation, see the [official docs](https://hufe.club/canvas
108
108
 
109
109
  ## Ecosystem
110
110
 
111
- | Project | Description |
112
- | -------------------------------------------------------------------------- | --------------------------------------- |
113
- | [canvas-editor-plugin](https://github.com/Hufe921/canvas-editor-plugin) | Official plugin collection |
114
- | [feature/svg](https://github.com/Hufe921/canvas-editor/tree/feature/svg) | SVG render layer (in development) |
115
- | [feature/pdf](https://github.com/Hufe921/canvas-editor/tree/feature/pdf) | PDF export feature |
116
- | [feature/ai](https://github.com/Hufe921/canvas-editor/tree/feature/ai) | AI-powered text processing demo |
117
- | [feature/CRDT](https://github.com/Hufe921/canvas-editor/tree/feature/CRDT) | CRDT-based collaboration (experimental) |
111
+ | Project | Description |
112
+ | -------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- |
113
+ | [canvas-editor-plugin](https://github.com/Hufe921/canvas-editor-plugin) | Official plugins: Word/Excel import-export, formula, comment, spellcheck & 20+ more |
114
+ | [feature/svg](https://github.com/Hufe921/canvas-editor/tree/feature/svg) | SVG render layer (in development) |
115
+ | [feature/pdf](https://github.com/Hufe921/canvas-editor/tree/feature/pdf) | PDF export feature |
116
+ | [feature/ai](https://github.com/Hufe921/canvas-editor/tree/feature/ai) | AI-powered text processing demo |
117
+ | [feature/CRDT](https://github.com/Hufe921/canvas-editor/tree/feature/CRDT) | CRDT-based collaboration (experimental) |
118
118
 
119
119
  ## Development
120
120
 
@@ -1,6 +1,6 @@
1
1
  (function(){try{if(typeof document<`u`){var e=document.createElement(`style`);e.setAttribute(`id`,`canvas-editor-style`),e.appendChild(document.createTextNode(`.ce-select-control-popup{z-index:1;box-sizing:border-box;background-color:#fff;border:1px solid #e4e7ed;border-radius:4px;min-width:69px;max-width:160px;max-height:225px;margin:5px 0;position:absolute;overflow-y:auto;box-shadow:0 2px 12px #0000001a}.ce-select-control-popup ul{box-sizing:border-box;margin:0;padding:3px 0;list-style:none}.ce-select-control-popup ul li{white-space:nowrap;text-overflow:ellipsis;color:#666;box-sizing:border-box;cursor:pointer;height:36px;padding:0 20px;font-size:13px;line-height:36px;position:relative;overflow:hidden}.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-calculator{z-index:1;box-sizing:border-box;background-color:#fff;border:1px solid #e4e7ed;border-radius:4px;width:200px;margin:5px 0;padding:8px;position:absolute;box-shadow:0 2px 12px #0000001a}.ce-calculator-display{text-align:right;box-sizing:border-box;text-overflow:ellipsis;background-color:#f5f7fa;border:1px solid #e4e7ed;border-radius:4px;width:100%;height:40px;margin-bottom:8px;padding:0 10px;font-size:16px;line-height:40px;overflow:hidden}.ce-calculator-buttons{grid-template-columns:repeat(4,1fr);gap:4px;display:grid}.ce-calculator-button{cursor:pointer;box-sizing:border-box;background-color:#fff;border:1px solid #e4e7ed;border-radius:4px;width:100%;height:36px;font-size:14px;transition:all .2s}.ce-calculator-button:hover{background-color:#eef2fd;border-color:#c6d1ff}.ce-calculator-button:active{background-color:#e1e8ff}.ce-calculator-button.operator{background-color:#f5f7fa}.ce-calculator-button.operator:hover{background-color:#eef2fd}.ce-calculator-button.equal{background-color:var(--COLOR-HOVER,#5175f4);color:#fff;border-color:var(--COLOR-HOVER,#5175f4)}.ce-calculator-button.equal:hover{background-color:var(--COLOR-HOVER,#6a84ff);border-color:var(--COLOR-HOVER,#6a84ff)}.ce-calculator-button.utility{background-color:#f0f2f5}.ce-calculator-button.utility:hover{background-color:#e6e8eb}.ce-date-container{z-index:1;color:#606266;-webkit-user-select:none;user-select:none;background:#fff;border:1px solid #e4e7ed;border-radius:4px;width:300px;padding:10px;display:none;position:absolute;left:0;right:0;overflow:hidden;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-wrap.year-mode .ce-date-week,.ce-date-wrap.year-mode .ce-date-day,.ce-date-wrap.month-mode .ce-date-week,.ce-date-wrap.month-mode .ce-date-day{display:none}.ce-date-title{text-align:center;color:#606266;justify-content:center;align-items:center;font-size:16px;display:flex}.ce-date-title>span{display:inline-block}.ce-date-title>span:not(.ce-date-title__now){cursor:pointer;font-family:cursive}.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__year-label,.ce-date-title .ce-date-title__month-label{cursor:pointer;white-space:nowrap}.ce-date-title .ce-date-title__year-label:hover,.ce-date-title .ce-date-title__month-label:hover{color:#5175f4}.ce-date-title .ce-date-title__next-year,.ce-date-title .ce-date-title__next-month{width:15%}.ce-date-week{border-bottom:1px solid #e4e7ed;justify-content:center;width:100%;margin-top:15px;padding-bottom:5px;display:flex}.ce-date-week>span{text-align:center;color:#606266;width:14.2857%;font-size:14px;list-style:none}.ce-date-day{flex-wrap:wrap;align-items:center;width:100%;margin-top:5px;display:flex}.ce-date-day>div{text-align:center;color:#606266;cursor:pointer;border-radius:4px;width:14.2857%;height:40px;font-size:14px;line-height:40px}.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-year-wrap{flex-wrap:wrap;align-items:center;width:100%;min-height:280px;margin-top:15px;display:none}.ce-year-wrap.active{display:flex}.ce-year-wrap>div{text-align:center;color:#606266;cursor:pointer;border-radius:4px;width:33.3333%;height:60px;font-size:14px;line-height:60px}.ce-year-wrap>div:hover{color:#5175f4;opacity:.8}.ce-year-wrap>div.active{color:#5175f4;font-weight:700}.ce-year-wrap>div.select{color:#fff;background-color:#5175f4}.ce-month-wrap{flex-wrap:wrap;align-items:center;width:100%;min-height:280px;margin-top:15px;display:none}.ce-month-wrap.active{display:flex}.ce-month-wrap>div{text-align:center;color:#606266;cursor:pointer;border-radius:4px;width:33.3333%;height:60px;font-size:14px;line-height:60px}.ce-month-wrap>div:hover{color:#5175f4;opacity:.8}.ce-month-wrap>div.active{color:#5175f4;font-weight:700}.ce-month-wrap>div.select{color:#fff;background-color:#5175f4}.ce-time-wrap{height:286px;padding:10px;display:none}.ce-time-wrap ::-webkit-scrollbar{width:0}.ce-time-wrap.active{display:flex}.ce-time-wrap li{list-style:none}.ce-time-wrap>li{text-align:center;width:33.3%;height:100%}.ce-time-wrap>li>span{display:inline-block;transform:translateY(-5px)}.ce-time-wrap>li>ol{border:1px solid #e2e2e2;height:calc(100% - 20px);position:relative;overflow-y:auto}.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{cursor:pointer;line-height:30px;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{border-top:1px solid #e4e7ed;justify-content:flex-end;align-items:center;width:100%;height:28px;padding-top:10px;display:flex;position:relative}.ce-date-menu button{white-space:nowrap;cursor:pointer;color:#606266;appearance:none;text-align:center;box-sizing:border-box;-webkit-user-select:none;user-select:none;background:#fff;border:1px solid #dcdfe6;border-radius:3px;outline:none;margin:0 0 0 10px;padding:7px 15px;font-size:12px;font-weight:500;line-height:1;transition:all .1s;display:inline-block}.ce-date-menu button:hover{color:#5175f4;border-color:#5175f4}.ce-date-menu button.ce-date-menu__time{border:1px solid #0000;margin-left:0;position:absolute;left:0}.ce-date-menu button.ce-date-menu__time:hover{color:#5175f4}.ce-block-item{z-index:0;background-color:#fff;border:1px solid #ebecf0;position:absolute}.ce-block-item .ce-resizer-selection{width:100%;height:100%}.ce-block-item .ce-resizer-mask{z-index:1;background-color:#0000;position:absolute;inset:0}.ce-table-tool__row{background-color:#e2e6ed;border-radius:6.5px;width:12px;position:absolute;overflow:hidden}.ce-table-tool__row .ce-table-tool__row__item{cursor:pointer;width:100%;transition:all .3s;position:relative}.ce-table-tool__row .ce-table-tool__row__item:after{content:"";background-color:#c0c6cf;width:8px;height:1px;position:absolute;bottom:0;left:2px}.ce-table-tool__row .ce-table-tool__row__item:hover{background-color:#dadce0}.ce-table-tool__row .ce-table-tool__row__item:last-child:after{display:none}.ce-table-tool__quick__add{cursor:pointer;background-color:#e2e6ed;border-radius:50%;width:16px;height:16px;position:absolute}.ce-table-tool__quick__add:after{content:"+";color:#fff;position:absolute;top:50%;left:50%;transform:translate(-50%,-55%)}.ce-table-tool__select{cursor:pointer;border-radius:3px;width:16px;height:18px;position:absolute}.ce-table-tool__select:hover{background-color:#e2e6ed}.ce-table-tool__select:after{content:":::";color:#aaaaab;position:absolute;top:50%;left:50%;transform:translate(-75%,-50%)rotate(-90deg)}.ce-table-tool__col{background-color:#e2e6ed;border-radius:6.5px;height:12px;display:flex;position:absolute;overflow:hidden}.ce-table-tool__col .ce-table-tool__col__item{cursor:pointer;height:100%;transition:all .3s;position:relative}.ce-table-tool__col .ce-table-tool__col__item:after{content:"";z-index:1;background-color:#c0c6cf;width:1px;height:8px;position:absolute;top:2px;left:-1px}.ce-table-tool__col .ce-table-tool__col__item:hover{background-color:#dadce0}.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{z-index:9;cursor:col-resize;width:10px;height:12px;position:absolute;right:-5px}.ce-table-tool__row .ce-table-tool__anchor{z-index:9;cursor:row-resize;width:12px;height:10px;position:absolute;bottom:-5px;left:0}.ce-table-anchor__line{z-index:9;border:1px dotted #000;position:absolute}.ce-table-tool__border{z-index:1;pointer-events:none;background:0 0;position:absolute}.ce-table-tool__border__row{cursor:row-resize;pointer-events:auto;position:absolute}.ce-table-tool__border__col{cursor:col-resize;pointer-events:auto;position:absolute}.ce-resizer-selection{pointer-events:none;border:1px solid;position:absolute}.ce-resizer-selection .resizer-handle{z-index:9;box-sizing:border-box;pointer-events:initial;border:2px solid #fff;border-radius:5px;width:10px;height:10px;position:absolute;box-shadow:0 1px 4px #0000004d}.ce-resizer-selection .handle-0{cursor:nw-resize}.ce-resizer-selection .handle-1{cursor:n-resize}.ce-resizer-selection .handle-2{cursor:ne-resize}.ce-resizer-selection .handle-3{cursor:e-resize}.ce-resizer-selection .handle-4{cursor:se-resize}.ce-resizer-selection .handle-5{cursor:s-resize}.ce-resizer-selection .handle-6{cursor:sw-resize}.ce-resizer-selection .handle-7{cursor:w-resize}.ce-resizer-size-view{white-space:nowrap;z-index:9;opacity:.9;background-color:#000;border-radius:4px;align-items:center;height:20px;padding:0 5px;display:flex;position:absolute;top:-30px;left:0}.ce-resizer-size-view span{color:#fff;font-size:12px}.ce-resizer-image{opacity:.5;position:absolute}.ce-image-previewer{z-index:1000;background:#f2f4f7;justify-content:center;align-items:center;width:100%;height:100%;animation:.3s previewerAnimation;display:flex;position:fixed;top:0;left:0;overflow:hidden}@keyframes previewerAnimation{0%{opacity:.1}to{opacity:1}}.ce-image-previewer .image-close{z-index:99;cursor:pointer;background:url("data:image/svg+xml,%3csvg%20width='32'%20height='32'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M23.97%207l1.415%201.414-7.779%207.778%207.779%207.779-1.414%201.414-7.779-7.779-7.778%207.779L7%2023.97l7.778-7.779L7%208.414%208.414%207l7.778%207.778L23.971%207z'%20fill='%233D4757'%20fill-rule='evenodd'/%3e%3c/svg%3e") 0 0/100% 100% no-repeat;border-radius:50%;width:24px;height:24px;transition:all .3s;display:inline-block;position:absolute;top:30px;right:50px}.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{z-index:99;justify-content:center;align-items:center;height:50px;display:flex;position:absolute;bottom:50px}.ce-image-previewer .ce-image-menu i{cursor:pointer;background-repeat:no-repeat;background-size:100% 100%;border-radius:50%;width:32px;height:32px;margin:0 8px;transition:all .3s;display:inline-block}.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,%3csvg%20width='32'%20height='32'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M14%2014v-4h2v4h4v2h-4v4h-2v-4h-4v-2h4zm8.749%2010.163A11.952%2011.952%200%200115%2027C8.373%2027%203%2021.627%203%2015S8.373%203%2015%203s12%205.373%2012%2012c0%202.954-1.067%205.658-2.837%207.749l4.908%204.908-1.414%201.414-4.908-4.908zM15%2025c5.523%200%2010-4.477%2010-10S20.523%205%2015%205%205%209.477%205%2015s4.477%2010%2010%2010z'%20fill='%233D4757'/%3e%3c/svg%3e")}.ce-image-previewer .ce-image-menu i.zoom-out{background-image:url("data:image/svg+xml,%3csvg%20width='32'%20height='32'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M22.749%2024.163A11.952%2011.952%200%200115%2027C8.373%2027%203%2021.627%203%2015S8.373%203%2015%203s12%205.373%2012%2012c0%202.954-1.067%205.658-2.837%207.749l4.908%204.908-1.414%201.414-4.908-4.908zM15%2025c5.523%200%2010-4.477%2010-10S20.523%205%2015%205%205%209.477%205%2015s4.477%2010%2010%2010zm-5-11h10v2H10v-2z'%20fill='%233D4757'/%3e%3c/svg%3e")}.ce-image-previewer .ce-image-menu i.rotate{background-image:url("data:image/svg+xml,%3csvg%20width='32'%20height='32'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20fill='%233D4757'%20fill-rule='evenodd'%3e%3cpath%20d='M16%204c6.627%200%2012%205.373%2012%2012a11.97%2011.97%200%2001-4%208.944V23h-.86A9.968%209.968%200%200026%2016c0-5.523-4.477-10-10-10S6%2010.477%206%2016c0%205.185%203.947%209.449%209%209.95v2.009C8.84%2027.451%204%2022.291%204%2016%204%209.373%209.373%204%2016%204z'%20fill-rule='nonzero'/%3e%3cpath%20d='M19.879%2027.328l1.767-6.717%204.95%204.95z'/%3e%3c/g%3e%3c/svg%3e")}.ce-image-previewer .ce-image-menu i.original-size{background-image:url("data:image/svg+xml,%3csvg%20width='32'%20height='32'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M4%204h24v24H4V4zm2%202v20h20V6H6zm4%205h2v10h-2V11zm5%202h2v2h-2v-2zm0%204h2v2h-2v-2zm5-6h2v10h-2V11z'%20fill='%233D4757'/%3e%3c/svg%3e")}.ce-image-previewer .ce-image-menu i.image-download{background-image:url("data:image/svg+xml,%3csvg%20width='24'%20height='24'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M4.5%2015v3.5h15V15H21v5H3v-5h1.5zm8.232-11.226v9.196l4.05-4.05%201.06%201.06-5.834%205.834-5.833-5.833%201.06-1.06%203.998%203.996V3.774h1.5z'%20fill='%233D4757'/%3e%3c/svg%3e")}.ce-image-previewer .ce-image-menu .image-navigate{justify-content:center;align-items:center;display:flex}.ce-image-previewer .ce-image-menu i.image-pre{background-image:url("data:image/svg+xml,%3csvg%20width='20'%20height='20'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M12.5%204.063L6.875%2010l5.625%205.938'%20stroke='%233D4757'%20stroke-width='1.5'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3c/svg%3e")}.ce-image-previewer .ce-image-menu i.image-next{background-image:url("data:image/svg+xml,%3csvg%20width='20'%20height='20'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M7.5%204.063L13.125%2010%207.5%2015.938'%20stroke='%233D4757'%20stroke-width='1.5'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3c/svg%3e")}.ce-image-previewer .ce-image-menu .image-count{color:#000;font-size:20px}.ce-image-previewer .ce-image-menu i.disabled{cursor:not-allowed;opacity:.5}.ce-contextmenu-container{z-index:9;background:#fff;border:1px solid #e2e6ed;border-radius:2px;padding:4px;display:none;position:fixed;overflow:hidden auto;box-shadow:0 2px 12px #38383833}.ce-contextmenu-content{flex-direction:column;display:flex}.ce-contextmenu-content .ce-contextmenu-sub-item:after{content:"";background:url("data:image/svg+xml,%3csvg%20width='16'%20height='16'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20fill='none'%20fill-rule='evenodd'%3e%3cpath%20d='M0%200h16v16H0z'/%3e%3cg%20fill='%23767C85'%3e%3cpath%20d='M7%2012.243l-.707-.707%204.243-4.243.707.707z'/%3e%3cpath%20d='M6.293%204.464L7%203.757%2011.243%208l-.707.707z'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e");width:16px;height:16px;position:absolute;right:12px}.ce-contextmenu-content .ce-contextmenu-item{white-space:nowrap;box-sizing:border-box;cursor:pointer;align-items:center;min-width:140px;height:30px;padding:0 32px 0 16px;display:flex}.ce-contextmenu-content .ce-contextmenu-item.hover{background:#1937580a}.ce-contextmenu-content .ce-contextmenu-item span{color:#3d4757;white-space:nowrap;text-overflow:ellipsis;max-width:300px;font-size:12px;overflow:hidden}.ce-contextmenu-content .ce-contextmenu-item span.ce-shortcut{color:#767c85;text-align:right;flex:1;height:30px;margin-left:20px;line-height:30px}.ce-contextmenu-content .ce-contextmenu-item i{vertical-align:middle;background-repeat:no-repeat;background-size:100% 100%;flex-shrink:0;width:16px;height:16px;margin-right:8px;display:inline-block}.ce-contextmenu-divider{background-color:#e2e6ed;height:1px;margin:4px 16px}.ce-contextmenu-print{background-image:url("data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20fill='%233D4757'%20fill-rule='evenodd'%3e%3cpath%20d='M12%204h-1V2H5v2H4V2a1%201%200%20011-1h6a1%201%200%20011%201v2zm0%205v4a1%201%200%2001-1%201H5a1%201%200%2001-1-1V9h1v4h6V9h1z'/%3e%3cpath%20d='M12%2012v-1h2V5H2v6h2v1H2a1%201%200%2001-1-1V5a1%201%200%20011-1h12a1%201%200%20011%201v6a1%201%200%2001-1%201h-2z'/%3e%3cpath%20d='M3%208h10v1H3zm8-2h2v1h-2z'/%3e%3c/g%3e%3c/svg%3e")}.ce-contextmenu-image{background-image:url("data:image/svg+xml,%3csvg%20version='1.1'%20id='图层_1'%20xmlns='http://www.w3.org/2000/svg'%20x='0'%20y='0'%20viewBox='0%200%2016%2016'%20xml:space='preserve'%3e%3cstyle%3e.st0{fill:%233d4757}%3c/style%3e%3cg%20id='_x30_0-公共_x2F_02工具栏_x2F_插入图片-16px-'%3e%3cg%20id='Group-19'%20transform='translate(1%201)'%3e%3cpath%20id='Combined-Shape'%20class='st0'%20d='M1%200h12c.6%200%201%20.4%201%201v11c0%20.6-.4%201-1%201H1c-.6%200-1-.4-1-1V1c0-.6.4-1%201-1zm0%201v11h12V1H1z'/%3e%3ccircle%20id='椭圆形'%20class='st0'%20cx='10'%20cy='4'%20r='1'/%3e%3cpath%20id='Path'%20class='st0'%20d='M8.5%2011.2l-4-4.1L1%2010.7V9.2c1.7-1.6%202.7-2.5%203-2.8.4-.5.7-.4%201%200L8.5%2010%2011%207.3c.4-.5.6-.5%201-.1l2%202.8v1.5l-2.5-3.4-3%203.1z'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e")}.ce-contextmenu-image-change{background-image:url("data:image/svg+xml,%3csvg%20width='16'%20height='16'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20fill='none'%20fill-rule='evenodd'%3e%3cg%20transform='translate(2%204)'%20fill='%233D4757'%3e%3ccircle%20fill-rule='nonzero'%20cx='3'%20cy='1'%20r='1'/%3e%3cpath%20d='M7.473%208.223L3.47%204.107%200%207.667v-1.5C1.715%204.6%202.707%203.664%202.975%203.358c.402-.457.651-.39%201.042%200L7.473%207%209.96%204.349c.414-.462.62-.462%201.011-.071L13%207.06v1.5l-2.51-3.41-3.017%203.072z'/%3e%3c/g%3e%3cpath%20d='M6%201.5H1.5v12h13v-4V13a.5.5%200%2001-.5.5H2a.5.5%200%2001-.5-.5V2a.5.5%200%2001.5-.5h4zm8.5%208V6l-.5.5h1l-.5-.5v3.5zM6%201.5h4L9.5%201v1l.5-.5H6z'%20stroke='%233D4757'/%3e%3cpath%20d='M13.085%201.316l-3.814%204a1%201%200%20001.458%201.368l3.815-4a1%201%200%2010-1.459-1.368z'%20fill='%233D4757'%20fill-rule='nonzero'/%3e%3c/g%3e%3c/svg%3e")}.ce-contextmenu-insert-row-col{background-image:url("data:image/svg+xml,%3csvg%20width='16'%20height='16'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20fill='none'%20fill-rule='evenodd'%3e%3cpath%20stroke='%233D4757'%20d='M8.5%205.5h6v4h-6z'/%3e%3cpath%20fill='%233D4757'%20d='M4%207v1h2V7zm-3%20.5L4%205v5zM1%201h12v1H1zm0%2012h12v1H1z'/%3e%3c/g%3e%3c/svg%3e")}.ce-contextmenu-insert-top-row{background-image:url("data:image/svg+xml,%3csvg%20width='16'%20height='16'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20fill='none'%20fill-rule='evenodd'%3e%3cpath%20fill='%233D4757'%20d='M8%205H7v3h1zm-.5-3L10%205H5z'/%3e%3crect%20stroke='%233D4757'%20x='1.5'%20y='10.5'%20width='12'%20height='3'%20rx='1'/%3e%3c/g%3e%3c/svg%3e")}.ce-contextmenu-insert-bottom-row{background-image:url("data:image/svg+xml,%3csvg%20width='16'%20height='16'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20fill='none'%20fill-rule='evenodd'%3e%3cpath%20fill='%233D4757'%20d='M7%2011h1V8H7zm.5%203L5%2011h5z'/%3e%3crect%20stroke='%233D4757'%20x='1.5'%20y='2.5'%20width='12'%20height='3'%20rx='1'/%3e%3c/g%3e%3c/svg%3e")}.ce-contextmenu-insert-left-col{background-image:url("data:image/svg+xml,%3csvg%20width='16'%20height='16'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20fill='none'%20fill-rule='evenodd'%3e%3cpath%20fill='%233D4757'%20d='M11%207v1h3V7zm-3%20.5L11%205v5z'/%3e%3crect%20stroke='%233D4757'%20transform='rotate(90%204%207.5)'%20x='-2'%20y='6'%20width='12'%20height='3'%20rx='1'/%3e%3c/g%3e%3c/svg%3e")}.ce-contextmenu-insert-right-col{background-image:url("data:image/svg+xml,%3csvg%20width='16'%20height='16'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20fill='none'%20fill-rule='evenodd'%3e%3cpath%20fill='%233D4757'%20d='M5%208V7H2v1zm3-.5L5%2010V5z'/%3e%3crect%20stroke='%233D4757'%20transform='rotate(90%2012%207.5)'%20x='6'%20y='6'%20width='12'%20height='3'%20rx='1'/%3e%3c/g%3e%3c/svg%3e")}.ce-contextmenu-delete-row-col{background-image:url("data:image/svg+xml,%3csvg%20width='16'%20height='16'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20fill='none'%20fill-rule='evenodd'%3e%3cpath%20stroke='%23929AA8'%20d='M8.5%206.5h6v2h-6z'/%3e%3cpath%20fill='%233D4757'%20d='M2%2012h11v1H2zM2%202h11v1H2zm.63%203L7%209.35l-.635.65L2%205.63z'/%3e%3cpath%20fill='%233D4757'%20d='M2%209.363L6.355%205%207%205.707%202.695%2010z'/%3e%3c/g%3e%3c/svg%3e")}.ce-contextmenu-delete-row{background-image:url("data:image/svg+xml,%3csvg%20width='16'%20height='16'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20fill='none'%20fill-rule='evenodd'%3e%3cpath%20stroke='%23929AA8'%20d='M8.5%205.5h6v4h-6z'/%3e%3cpath%20fill='%233D4757'%20d='M1%2013h12v1H1zM1%201h12v1H1zm0%204h1v1H1zm1%201h1v1H2zm1%201h1v1H3zm1-1h1v1H4zm1-1h1v1H5zM4%208h1v1H4zM2%208h1v1H2zm3%201h1v1H5zM1%209h1v1H1z'/%3e%3c/g%3e%3c/svg%3e")}.ce-contextmenu-delete-col{background-image:url("data:image/svg+xml,%3csvg%20width='16'%20height='16'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20fill='none'%20fill-rule='evenodd'%3e%3cpath%20stroke='%23929AA8'%20d='M5.5%207.5v-6h4v6z'/%3e%3cpath%20fill='%233D4757'%20d='M13%2015V3h1v12zM1%2015V3h1v12zm4%200v-1h1v1zm1-1v-1h1v1zm1-1v-1h1v1zm-1-1v-1h1v1zm-1-1v-1h1v1zm3%201v-1h1v1zm0%202v-1h1v1zm1-3v-1h1v1zm0%204v-1h1v1z'/%3e%3c/g%3e%3c/svg%3e")}.ce-contextmenu-delete-table{background-image:url("data:image/svg+xml,%3csvg%20width='16'%20height='16'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20fill='%233D4757'%20fill-rule='evenodd'%3e%3cpath%20d='M14%2013h-1v-3H2v3H1v-3a1%201%200%20011-1h11a1%201%200%20011%201v3z'%20fill-rule='nonzero'/%3e%3cpath%20d='M5.625%202L10%206.375%209.375%207%205%202.625z'/%3e%3cpath%20d='M5%206.375L9.375%202l.625.625L5.625%207z'/%3e%3c/g%3e%3c/svg%3e")}.ce-contextmenu-merge-cell{background-image:url("data:image/svg+xml,%3csvg%20width='16'%20height='16'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20fill='%233D4757'%20fill-rule='evenodd'%3e%3cpath%20d='M6%201v1H2v11h4v1H2a1%201%200%2001-1-1V2a1%201%200%20011-1h4zm3%200h4a1%201%200%20011%201v11a1%201%200%2001-1%201H9v-1h4V2H9V1z'/%3e%3cpath%20fill-rule='nonzero'%20d='M6%201h1v4H6zm2%200h1v4H8z'/%3e%3cpath%20d='M8%207.5L10%206v3zm-1%200L5%206v3z'/%3e%3cpath%20d='M9%207h3v1H9zM3%207h3v1H3z'/%3e%3cpath%20fill-rule='nonzero'%20d='M8%2010h1v4H8zm-2%200h1v4H6z'/%3e%3c/g%3e%3c/svg%3e")}.ce-contextmenu-merge-cancel-cell{background-image:url("data:image/svg+xml,%3csvg%20width='16'%20height='16'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20fill='%233D4757'%20fill-rule='evenodd'%3e%3cpath%20d='M6%201v1H2v11h4v1H2a1%201%200%2001-1-1V2a1%201%200%20011-1h4zm3%200h4a1%201%200%20011%201v11a1%201%200%2001-1%201H9v-1h4V2H9V1z'/%3e%3cpath%20fill-rule='nonzero'%20d='M6%201h1v4H6zm2%200h1v4H8z'/%3e%3cpath%20d='M3%207.5L5%206v3zm9%200L10%206v3z'/%3e%3cpath%20d='M4%207h3v1H4zm4%200h3v1H8z'/%3e%3cpath%20fill-rule='nonzero'%20d='M8%2010h1v4H8zm-2%200h1v4H6z'/%3e%3c/g%3e%3c/svg%3e")}.ce-contextmenu-table-auto-fit-content{background-image:url("data:image/svg+xml,%3csvg%20width='16'%20height='16'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20fill='%233D4757'%20fill-rule='evenodd'%3e%3cpath%20d='M2%202h12a1%201%200%20011%201v10a1%201%200%2001-1%201H2a1%201%200%2001-1-1V3a1%201%200%20011-1zm0%201v10h12V3H2z'/%3e%3cpath%20d='M5%206.5L3%208l2%201.5v-3zm6%200L13%208l-2%201.5v-3z'/%3e%3cpath%20d='M5%207.5h6v1H5z'/%3e%3c/g%3e%3c/svg%3e")}.ce-contextmenu-table-auto-fit-page{background-image:url("data:image/svg+xml,%3csvg%20width='16'%20height='16'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20fill='%233D4757'%20fill-rule='evenodd'%3e%3cpath%20d='M3%201h10a1%201%200%20011%201v12a1%201%200%2001-1%201H3a1%201%200%2001-1-1V2a1%201%200%20011-1zm0%201v12h10V2H3z'/%3e%3cpath%20d='M6%205.5L4%207l2%201.5v-3zm4%200L12%207l-2%201.5v-3z'/%3e%3cpath%20d='M6%206.5h4v1H6z'/%3e%3cpath%20d='M4%209h8v1H4zm0%202h8v1H4z'/%3e%3c/g%3e%3c/svg%3e")}.ce-contextmenu-vertical-align{background-image:url("data:image/svg+xml,%3csvg%20height='16'%20viewBox='0%200%2016%2016'%20width='16'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M2%2013h12v1H2zm0-3h8v1H2zm0-3h12v1H2zm0-6h12v1H2zm0%203h8v1H2z'%20fill='%233d4757'%20fill-rule='evenodd'/%3e%3c/svg%3e")}.ce-contextmenu-vertical-align-top{background-image:url("data:image/svg+xml,%3csvg%20width='16'%20height='16'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M8%208H7v6h1zm-.5-3L10%208H5zM2%203h11v1H2z'%20fill='%233D4757'%20fill-rule='evenodd'/%3e%3c/svg%3e")}.ce-contextmenu-vertical-align-middle{background-image:url("data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M8%2012H7v3h1zm-.5-3l2.5%203H5zM7%203h1V0H7zm.5%203L5%203h5zM2%207h11v1H2z'%20fill='%233D4757'%20fill-rule='evenodd'/%3e%3c/svg%3e")}.ce-contextmenu-vertical-align-bottom{background-image:url("data:image/svg+xml,%3csvg%20width='16'%20height='16'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M7%209h1V3H7zm.5%203L5%209h5zM2%2013h11v1H2z'%20fill='%233D4757'%20fill-rule='evenodd'/%3e%3c/svg%3e")}.ce-contextmenu-border-all{background-image:url("data:image/svg+xml,%3csvg%20width='16'%20height='16'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M2.5%203a.5.5%200%2001.5-.5h11a.5.5%200%2001.5.5v11a.5.5%200%2001-.5.5H3a.5.5%200%2001-.5-.5V3z'%20stroke='%233D4757'/%3e%3cpath%20fill='%233D4757'%20d='M3%208h11v1H3z'/%3e%3cpath%20fill='%233D4757'%20d='M9%203v11H8V3z'/%3e%3c/svg%3e")}.ce-contextmenu-border-empty{background-image:url("data:image/svg+xml,%3csvg%20width='16'%20height='16'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M13%203h-1V2h1a1%201%200%20011%201v1h-1V3zm-3-1v1H8.5v2h-1V3H6V2h4zM4%202v1H3v1H2V3a1%201%200%20011-1h1zM2%206h1v1.5h2v1H3V10H2V6zm0%206h1v1h1v1H3a1%201%200%2001-1-1v-1zm4%202v-1h1.5v-2h1v2H10v1H6zm6%200v-1h1v-1h1v1a1%201%200%2001-1%201h-1zm2-4h-1V8.5h-2v-1h2V6h1v4zM8.5%207.5v-1h-1v1h-1v1h1v1h1v-1h1v-1h-1z'%20fill='%23AAACB0'/%3e%3c/svg%3e")}.ce-contextmenu-border-dash{background-image:url("data:image/svg+xml,%3csvg%20width='16'%20height='16'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M13%203h-1V2h1a1%201%200%20011%201v1h-1V3zm-3-1v1H8.5v2h-1V3H6V2h4zM4%202v1H3v1H2V3a1%201%200%20011-1h1zM2%206h1v1.5h2v1H3V10H2V6zm0%206h1v1h1v1H3a1%201%200%2001-1-1v-1zm4%202v-1h1.5v-2h1v2H10v1H6zm6%200v-1h1v-1h1v1a1%201%200%2001-1%201h-1zm2-4h-1V8.5h-2v-1h2V6h1v4zM8.5%207.5v-1h-1v1h-1v1h1v1h1v-1h1v-1h-1z'%20fill='%23000000'/%3e%3c/svg%3e")}.ce-contextmenu-border-external{background-image:url("data:image/svg+xml,%3csvg%20width='16'%20height='16'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M2.5%203a.5.5%200%2001.5-.5h11a.5.5%200%2001.5.5v11a.5.5%200%2001-.5.5H3a.5.5%200%2001-.5-.5V3z'%20stroke='%233D4757'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M9%205V3H8v2h1zm0%209v-2H8v2h1zM5%208H3v1h2V8zm9%200h-2v1h2V8zM9%207v1h1v1H9v1H8V9H7V8h1V7h1z'%20fill='%23AAACB0'/%3e%3c/svg%3e")}.ce-contextmenu-border-internal{background-image:url("data:image/svg+xml,%3csvg%20width='16'%20height='16'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M2.5%203a.5.5%200%2001.5-.5h11a.5.5%200%2001.5.5v11a.5.5%200%2001-.5.5H3a.5.5%200%2001-.5-.5V3z'%20stroke='%23AAACB0'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M9%205V3H8v2h1zm0%209v-2H8v2h1zM5%208H3v1h2V8zm9%200h-2v1h2V8zM9%207v1h1v1H9v1H8V9H7V8h1V7h1z'%20fill='%233D4757'/%3e%3c/svg%3e")}.ce-contextmenu-border-td{background-image:url("data:image/svg+xml,%3csvg%20width='16'%20height='16'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M2.5%203a.5.5%200%2001.5-.5h11a.5.5%200%2001.5.5v11a.5.5%200%2001-.5.5H3a.5.5%200%2001-.5-.5V3z'%20stroke='%23AAACB0'/%3e%3cpath%20stroke='%233D4757'%20d='M8.5%202.5%20v6%20h-6'/%3e%3c/svg%3e")}.ce-contextmenu-border-td-top{background-image:url("data:image/svg+xml,%3csvg%20width='16'%20height='16'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M2.5%203a.5.5%200%2001.5-.5h11a.5.5%200%2001.5.5v11a.5.5%200%2001-.5.5H3a.5.5%200%2001-.5-.5V3z'%20stroke='%23AAACB0'/%3e%3cpath%20stroke='%233D4757'%20stroke-width='2'%20d='M2.5%203%20h12'/%3e%3c/svg%3e")}.ce-contextmenu-border-td-left{background-image:url("data:image/svg+xml,%3csvg%20width='16'%20height='16'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M2.5%203a.5.5%200%2001.5-.5h11a.5.5%200%2001.5.5v11a.5.5%200%2001-.5.5H3a.5.5%200%2001-.5-.5V3z'%20stroke='%23AAACB0'/%3e%3cpath%20stroke='%233D4757'%20stroke-width='2'%20d='M3%203%20v11'/%3e%3c/svg%3e")}.ce-contextmenu-border-td-bottom{background-image:url("data:image/svg+xml,%3csvg%20width='16'%20height='16'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M2.5%203a.5.5%200%2001.5-.5h11a.5.5%200%2001.5.5v11a.5.5%200%2001-.5.5H3a.5.5%200%2001-.5-.5V3z'%20stroke='%23AAACB0'/%3e%3cpath%20stroke='%233D4757'%20stroke-width='2'%20d='M2.5%2014%20h12'/%3e%3c/svg%3e")}.ce-contextmenu-border-td-right{background-image:url("data:image/svg+xml,%3csvg%20width='16'%20height='16'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M2.5%203a.5.5%200%2001.5-.5h11a.5.5%200%2001.5.5v11a.5.5%200%2001-.5.5H3a.5.5%200%2001-.5-.5V3z'%20stroke='%23AAACB0'/%3e%3cpath%20stroke='%233D4757'%20stroke-width='2'%20d='M14%203%20v11'/%3e%3c/svg%3e")}.ce-contextmenu-border-td-forward{background-image:url("data:image/svg+xml,%3csvg%20width='16'%20height='16'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M2.5%203a.5.5%200%2001.5-.5h11a.5.5%200%2001.5.5v11a.5.5%200%2001-.5.5H3a.5.5%200%2001-.5-.5V3z'%20stroke='%23AAACB0'%20/%3e%3cpath%20stroke='%233D4757'%20d='M14%203%20l-11%2011'%20/%3e%3c/svg%3e")}.ce-contextmenu-border-td-back{background-image:url("data:image/svg+xml,%3csvg%20width='16'%20height='16'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M2.5%203a.5.5%200%2001.5-.5h11a.5.5%200%2001.5.5v11a.5.5%200%2001-.5.5H3a.5.5%200%2001-.5-.5V3z'%20stroke='%23AAACB0'%20/%3e%3cpath%20stroke='%233D4757'%20d='M3%203%20l11%2011'%20/%3e%3c/svg%3e")}.ce-hyperlink-popup{color:#3d4757;z-index:1;text-align:center;background:#fff;border-radius:2px;padding:12px 16px;display:none;position:absolute;box-shadow:0 2px 12px #626b8433}.ce-hyperlink-popup a{white-space:nowrap;text-overflow:ellipsis;cursor:pointer;color:#00f;border-bottom-style:solid;border-bottom-width:1px;min-width:100px;max-width:300px;font-size:12px;text-decoration:none;display:inline-block;overflow:hidden}.ce-zone-indicator>div{color:#000;transform-origin:0 0;background:#dae7fc;padding:3px 6px;font-size:12px;position:absolute}.ce-zone-indicator-border__top,.ce-zone-indicator-border__bottom,.ce-zone-indicator-border__left,.ce-zone-indicator-border__right{z-index:0;display:block;position:absolute}.ce-zone-indicator-border__top{border-top:2px dashed #eee}.ce-zone-indicator-border__bottom{border-top:2px dashed #eee;width:100%}.ce-zone-indicator-border__left{border-left:2px dashed #eee}.ce-zone-indicator-border__right{border-right:2px dashed #eee}.ce-zone-tip{white-space:nowrap;opacity:.9;z-index:9;-webkit-user-select:none;user-select:none;pointer-events:none;background-color:#000;border-radius:4px;outline:none;align-items:center;height:30px;padding:0 5px;transition:all .3s;display:none;position:fixed;transform:translate(10px,10px)}.ce-zone-tip.show{display:flex}.ce-zone-tip span{color:#fff;font-size:12px}.ce-magnifier{pointer-events:none;z-index:9999;border-radius:50%;display:none;position:fixed;box-shadow:0 4px 12px #00000040}.ce-sr-only{z-index:-1;clip:rect(0, 0, 0, 0);clip-path:inset(50%);white-space:nowrap;pointer-events:none;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;top:0;left:0;overflow:hidden}.ce-trace-popup{color:#3d4757;z-index:1;pointer-events:none;background:#fff;border-radius:4px;padding:8px 12px;font-size:12px;line-height:1.6;display:none;position:absolute;box-shadow:0 2px 12px #626b8433}.ce-trace-popup__list{flex-direction:column;gap:6px;display:flex}.ce-trace-popup__item{white-space:nowrap;align-items:center;gap:8px;display:flex}.ce-trace-popup__type{font-size:13px;font-weight:600}.ce-trace-popup__author,.ce-trace-popup__time{color:#6b7280}.ce-hint-popup{color:#000;z-index:1;word-break:break-word;pointer-events:none;background:#fff;border-radius:4px;max-width:280px;padding:6px 10px;font-size:12px;line-height:1.6;display:none;position:absolute;box-shadow:0 2px 12px #626b8433}.ce-hint-popup__text{white-space:pre-wrap}.ce-ruler{z-index:2;-webkit-user-select:none;user-select:none;pointer-events:none;width:100%;height:100%;position:absolute;top:0;left:0}.ce-ruler-x{pointer-events:auto;display:block;position:sticky;top:0;box-shadow:0 1px 3px #0000001a}.ce-ruler-y{pointer-events:auto;position:absolute;top:0;left:0;box-shadow:1px 0 3px #0000001a}.ce-inputarea{letter-spacing:0;z-index:-1;resize:none;color:#0000;-webkit-user-select:none;user-select:none;caret-color:#0000;background-color:#0000;border:none;outline:none;width:100px;min-width:0;height:30px;min-height:0;margin:0;padding:0;font-size:12px;position:absolute;top:0;left:0;overflow:hidden}.ce-cursor{pointer-events:none;background-color:#000;outline:none;width:1px;height:20px;position:absolute;left:0;right:0}.ce-cursor.ce-cursor--animation{animation-name:cursorAnimation;animation-duration:1s;animation-iteration-count:infinite}@keyframes cursorAnimation{0%{opacity:1}13%{opacity:0}50%{opacity:0}63%{opacity:1}to{opacity:1}}.ce-float-image{opacity:.5;pointer-events:none;position:absolute}/*$vite$:1*/`)),document.head.appendChild(e)}}catch(e){console.error(`vite-plugin-css-injected-by-js`,e)}})();
2
2
  //#region package.json
3
- var e = "1.0.3", t;
3
+ var e = "1.0.4", t;
4
4
  (function(e) {
5
5
  e.HALF = "half", e.ONE_THIRD = "one-third", e.QUARTER = "quarter";
6
6
  })(t ||= {});
@@ -563,10 +563,14 @@ var Ee = [
563
563
  _countImagesBeforeTarget(e, t) {
564
564
  let n = 0;
565
565
  for (let r of e) {
566
- if (r === t) break;
566
+ if (r === t) return -1;
567
567
  if (r.type === H.TABLE) {
568
568
  let e = r.trList;
569
- for (let r of e) for (let e of r.tdList) n += this._countImagesBeforeTarget(e.value, t);
569
+ for (let r of e) for (let e of r.tdList) {
570
+ let r = this._countImagesBeforeTarget(e.value, t);
571
+ if (r < 0) return -1;
572
+ n += r;
573
+ }
570
574
  } else r.type === H.IMAGE && n++;
571
575
  }
572
576
  return n;
@@ -613,7 +617,7 @@ var Ee = [
613
617
  if (!t.imgCaption?.value) return;
614
618
  let { scale: o, imgCaption: s } = this.options, c = t.imgCaption.value;
615
619
  if (c.includes("{imageNo}")) {
616
- let e = this.draw.getOriginalMainElementList(), n = this._countImagesBeforeTarget(e, t) + 1;
620
+ let e = this.draw.getOriginalMainElementList(), n = Math.max(this._countImagesBeforeTarget(e, t), 0) + 1;
617
621
  c = c.replace(/\{imageNo\}/g, String(n));
618
622
  }
619
623
  let l = (t.imgCaption.size || s.size) * o, u = t.imgCaption.font || s.font, d = t.imgCaption.color || s.color;
@@ -7200,7 +7204,7 @@ function Jr(e, t) {
7200
7204
  ~u && (n.getRange().setRange(f, f), o.setCursorPosition(d[f]));
7201
7205
  let p = n.getCursor(), { cursor: { dragColor: m, dragWidth: h, dragFloatImageDisabled: g } } = n.getOptions();
7202
7206
  if (g) {
7203
- let e = t.cacheElementList?.[t.cacheRange.startIndex];
7207
+ let e = t.cacheRange && t.cacheElementList?.[t.cacheRange.startIndex];
7204
7208
  if (e?.type === H.IMAGE && (e.imgDisplay === r.FLOAT_TOP || e.imgDisplay === r.FLOAT_BOTTOM || e.imgDisplay === r.SURROUND)) return;
7205
7209
  }
7206
7210
  p.drawCursor({
@@ -8757,7 +8761,7 @@ var Yr = { dragover: Jr }, Xr = class {
8757
8761
  let { tableIndex: n, trIndex: d, tdIndex: f, index: p, tdId: m } = r;
8758
8762
  c && m !== c && (o = 0), c = m;
8759
8763
  let h = u[n + a].trList[d].tdList[f].value, g = p + o, _ = h[g];
8760
- if (!i && (_?.control?.deletable === !1 || _?.title?.deletable === !1)) continue;
8764
+ if (!i && (_?.control?.deletable === !1 || _?.title?.deletable === !1) || _.type === H.CONTROL && _.controlComponent !== K.VALUE) continue;
8761
8765
  if (e === "") {
8762
8766
  this.draw.spliceElementList(h, g, 1), o--, ~l || (l = t);
8763
8767
  continue;
@@ -9898,7 +9902,9 @@ var yi = class {
9898
9902
  D.style.left = `${y}px`, D.style.top = `${b + (d?.repeatHeight || 0) * o}px`, this.container.append(D), this.toolRowContainer = D;
9899
9903
  let O = document.createElement("div");
9900
9904
  O.classList.add("ce-table-tool__quick__add"), O.style.left = `${y}px`, O.style.top = `${b + w}px`, O.style.transform = `translate(-${this.ROW_COL_QUICK_POSITION * o}px, ${this.ROW_COL_QUICK_OFFSET * o}px)`, O.onclick = () => {
9901
- this.position.setPositionContext(this.position.buildTablePositionContext(e, i, l.length - 1, 0)), this.draw.getTableOperate().insertTableBottomRow();
9905
+ let t = l.length - 1;
9906
+ for (; t > 0 && !l[t].tdList.length;) t--;
9907
+ this.position.setPositionContext(this.position.buildTablePositionContext(e, i, t, 0)), this.draw.getTableOperate().insertTableBottomRow();
9902
9908
  }, this.container.append(O), this.toolRowAddBtn = O;
9903
9909
  let k = c.map((e) => e.width), A = document.createElement("div");
9904
9910
  A.classList.add("ce-table-tool__col"), A.style.transform = `translateY(-${this.ROW_COL_OFFSET * o}px)`;
@@ -9989,29 +9995,29 @@ var yi = class {
9989
9995
  t && (v = t.dx, y = t.dy);
9990
9996
  };
9991
9997
  document.addEventListener("mousemove", b), document.addEventListener("mouseup", () => {
9992
- let e = !1;
9998
+ let e = !1, t = v / o, c = y / o;
9993
9999
  if (r === vi.ROW) {
9994
10000
  let t = i.trList, r = t[n] || t[n - 1], { defaultTrMinHeight: a } = this.options.table;
9995
- y < 0 && r.height + y < a && (y = a - r.height), y && (r.height += y, r.minHeight = r.height, e = !0);
10001
+ c < 0 && r.height + c < a && (c = a - r.height), c && (r.height += c, r.minHeight = r.height, e = !0);
9996
10002
  } else {
9997
- let { colgroup: t } = i;
9998
- if (t && v) {
9999
- if (s && a) t[n].width - v / o <= this.MIN_TD_WIDTH && (v = (t[n].width - this.MIN_TD_WIDTH) * o), t[n].width -= v / o, i.width -= v / o, i.translateX = (i.translateX || 0) + v / o, e = !0;
10003
+ let { colgroup: r } = i;
10004
+ if (r && t) {
10005
+ if (s && a) r[n].width - t <= this.MIN_TD_WIDTH && (t = r[n].width - this.MIN_TD_WIDTH), r[n].width -= t, i.width -= t, i.translateX = (i.translateX || 0) + t, e = !0;
10000
10006
  else {
10001
- let r = this.draw.getInnerWidth(), a = t[n].width;
10002
- v < 0 && a + v < this.MIN_TD_WIDTH && (v = this.MIN_TD_WIDTH - a);
10003
- let c = t[n + 1]?.width;
10004
- v > 0 && c && c - v < this.MIN_TD_WIDTH && (v = c - this.MIN_TD_WIDTH);
10005
- let l = a + v;
10006
- if (!s && n === t.length - 1) {
10007
+ let a = this.draw.getOriginalInnerWidth(), o = r[n].width;
10008
+ t < 0 && o + t < this.MIN_TD_WIDTH && (t = this.MIN_TD_WIDTH - o);
10009
+ let c = r[n + 1]?.width;
10010
+ t > 0 && c && c - t < this.MIN_TD_WIDTH && (t = c - this.MIN_TD_WIDTH);
10011
+ let l = o + t;
10012
+ if (!s && n === r.length - 1) {
10007
10013
  let e = 0;
10008
- for (let r = 0; r < t.length; r++) {
10009
- let i = t[r];
10010
- r === n + 1 && (e -= v), r === n && (e += l), r !== n && (e += i.width);
10014
+ for (let i = 0; i < r.length; i++) {
10015
+ let a = r[i];
10016
+ i === n + 1 && (e -= t), i === n && (e += l), i !== n && (e += a.width);
10011
10017
  }
10012
- e > r && (v = r - i.width);
10018
+ e > a && (t = a - i.width);
10013
10019
  }
10014
- v && (t.length - 1 !== n && (t[n + 1].width -= v / o), t[n].width += v / o, e = !0);
10020
+ t && (r.length - 1 !== n && (r[n + 1].width -= t), r[n].width += t, e = !0);
10015
10021
  }
10016
10022
  }
10017
10023
  }
@@ -10456,7 +10462,7 @@ var xi = class {
10456
10462
  let { scale: i, label: { defaultBackgroundColor: a, defaultColor: o, defaultBorderRadius: s, defaultPadding: c } } = this.options, l = t.label?.backgroundColor || a, u = t.label?.color || o, d = t.label?.borderRadius || s, f = t.label?.padding || c;
10457
10463
  e.save(), e.font = t.style;
10458
10464
  let { width: p, height: m, boundingBoxAscent: h } = t.metrics;
10459
- e.fillStyle = l, this._drawRoundedRect(e, n, r - h, p, m + (f[0] + f[3]) * i, d * i), e.fill(), e.fillStyle = u, e.fillText(t.value, n + f[3] * i, r), e.restore();
10465
+ e.fillStyle = l, this._drawRoundedRect(e, n, r - h, p, m + (f[0] + f[2]) * i, d * i), e.fill(), e.fillStyle = u, e.fillText(t.value, n + f[3] * i, r), e.restore();
10460
10466
  }
10461
10467
  _drawRoundedRect(e, t, n, r, i, a) {
10462
10468
  e.beginPath(), e.moveTo(t + a, n), e.lineTo(t + r - a, n), e.quadraticCurveTo(t + r, n, t + r, n + a), e.lineTo(t + r, n + i - a), e.quadraticCurveTo(t + r, n + i, t + r - a, n + i), e.lineTo(t + a, n + i), e.quadraticCurveTo(t, n + i, t, n + i - a), e.lineTo(t, n + a), e.quadraticCurveTo(t, n, t + a, n), e.closePath();
@@ -11029,11 +11035,11 @@ var xi = class {
11029
11035
  }
11030
11036
  clearValue(e = {}, t = {}) {
11031
11037
  if (!t.isIgnoreDisabledRule && this.control.getIsDisabledControl(e)) return -1;
11032
- let n = e.elementList || this.control.getElementList(), r = e.range || this.control.getValueRange() || this.control.getRange(), { startIndex: i, endIndex: a } = r, o = i + 1, s = this.control.removePlaceholderInRange(n, o, a - i);
11033
- return this.control.getDraw().deleteElementList(n, o, s, { isIgnoreDeletedRule: t.isIgnoreDeletedRule }), this.getValue({
11034
- range: r,
11035
- elementList: n
11036
- }).length || this.control.addPlaceholder(i, e), i;
11038
+ let { isAddPlaceholder: n = !0 } = t, r = e.elementList || this.control.getElementList(), i = e.range || this.control.getValueRange() || this.control.getRange(), { startIndex: a, endIndex: o } = i, s = a + 1, c = this.control.removePlaceholderInRange(r, s, o - a);
11039
+ return this.control.getDraw().deleteElementList(r, s, c, { isIgnoreDeletedRule: t.isIgnoreDeletedRule }), !this.getValue({
11040
+ range: i,
11041
+ elementList: r
11042
+ }).length && n && this.control.addPlaceholder(a, e), a;
11037
11043
  }
11038
11044
  keydown(e) {
11039
11045
  if (this.control.getIsDisabledControl()) return null;
@@ -11301,9 +11307,7 @@ var Ii = class {
11301
11307
  this.pickDate && (i = this.pickDate.getFullYear(), a = this.pickDate.getMonth() + 1, o = this.pickDate.getDate());
11302
11308
  let s = this.now.getFullYear(), c = this.now.getMonth() + 1;
11303
11309
  this.dom.title.yearLabel.innerText = `${s}${this.lang.year}`, this.dom.title.monthLabel.innerText = ` ${String(c).padStart(2, "0")}${this.lang.month}`;
11304
- let l = new Date(s, c, 0).getDate(), u = new Date(s, c - 1, 1).getDay();
11305
- u === 0 && (u = 7);
11306
- let d = new Date(s, c - 1, 0).getDate();
11310
+ let l = new Date(s, c, 0).getDate(), u = new Date(s, c - 1, 1).getDay(), d = new Date(s, c - 1, 0).getDate();
11307
11311
  this.dom.day.innerHTML = "";
11308
11312
  let f = d - u + 1;
11309
11313
  for (let e = f; e <= d; e++) {
@@ -11337,7 +11341,7 @@ var Ii = class {
11337
11341
  for (let e = t; e <= n; e++) {
11338
11342
  let t = document.createElement("div");
11339
11343
  t.innerText = `${e}`, e === i && t.classList.add("active"), r === e && t.classList.add("select"), t.onclick = () => {
11340
- this.now.setFullYear(e), this.pickDate && this.pickDate.setFullYear(e), this.datePickerType === Q.YEAR ? (this._submit(), this.dispose()) : (this.viewMode = Q.MONTH, this._update(), this._switchView());
11344
+ this.now = this._createDate(e, this.now.getMonth(), this.now.getDate(), this.now), this.pickDate &&= this._createDate(e, this.pickDate.getMonth(), this.pickDate.getDate(), this.pickDate), this.datePickerType === Q.YEAR ? (this._submit(), this.dispose()) : (this.viewMode = Q.MONTH, this._update(), this._switchView());
11341
11345
  }, this.dom.yearWrap.append(t);
11342
11346
  }
11343
11347
  }
@@ -11357,11 +11361,11 @@ var Ii = class {
11357
11361
  this.lang.months.oct,
11358
11362
  this.lang.months.nov,
11359
11363
  this.lang.months.dec
11360
- ], n = /* @__PURE__ */ new Date(), r = n.getFullYear(), i = n.getMonth(), a = this.pickDate?.getFullYear() || null, o = this.pickDate?.getMonth() || null;
11364
+ ], n = /* @__PURE__ */ new Date(), r = n.getFullYear(), i = n.getMonth(), a = this.pickDate?.getFullYear() ?? null, o = this.pickDate?.getMonth() ?? null;
11361
11365
  for (let n = 0; n < 12; n++) {
11362
11366
  let s = document.createElement("div");
11363
11367
  s.innerText = t[n], r === e && i === n && s.classList.add("active"), a === e && o === n && s.classList.add("select"), s.onclick = () => {
11364
- this.now.setMonth(n), this.pickDate && this.pickDate.setMonth(n), this.datePickerType === Q.MONTH ? (this._submit(), this.dispose()) : (this.viewMode = Q.DATE, this._update(), this._switchView());
11368
+ this.now = this._createDate(this.now.getFullYear(), n, this.now.getDate(), this.now), this.pickDate &&= this._createDate(this.pickDate.getFullYear(), n, this.pickDate.getDate(), this.pickDate), this.datePickerType === Q.MONTH ? (this._submit(), this.dispose()) : (this.viewMode = Q.DATE, this._update(), this._switchView());
11365
11369
  }, this.dom.monthWrap.append(s);
11366
11370
  }
11367
11371
  }
@@ -11371,8 +11375,12 @@ var Ii = class {
11371
11375
  _toggleDateTimePicker() {
11372
11376
  this.isDatePicker ? (this.dom.dateWrap.classList.add("active"), this.dom.timeWrap.classList.remove("active"), this.dom.menu.time.innerText = this.lang.timeSelect) : (this.dom.dateWrap.classList.remove("active"), this.dom.timeWrap.classList.add("active"), this.dom.menu.time.innerText = this.lang.return, this._setTimePick());
11373
11377
  }
11378
+ _createDate(e, t, n, r) {
11379
+ let i = new Date(e, t + 1, 0).getDate();
11380
+ return new Date(e, t, Math.min(n, i), r?.getHours() || 0, r?.getMinutes() || 0, r?.getSeconds() || 0);
11381
+ }
11374
11382
  _setDatePick(e, t, n) {
11375
- this.now = new Date(e, t, n), this.pickDate?.setFullYear(e), this.pickDate?.setMonth(t), this.pickDate?.setDate(n), this._update();
11383
+ this.now = new Date(e, t, n), this.pickDate &&= this._createDate(e, t, n, this.pickDate), this._update();
11376
11384
  }
11377
11385
  _setTimePick(e = !0) {
11378
11386
  let t = this.pickDate?.getHours() || 0, n = this.pickDate?.getMinutes() || 0, r = this.pickDate?.getSeconds() || 0, { hour: i, minute: a, second: o } = this.dom.time;
@@ -11392,16 +11400,16 @@ var Ii = class {
11392
11400
  });
11393
11401
  }
11394
11402
  _preMonth() {
11395
- this.now.setMonth(this.now.getMonth() - 1), this._update();
11403
+ this.now = this._createDate(this.now.getFullYear(), this.now.getMonth() - 1, this.now.getDate(), this.now), this._update();
11396
11404
  }
11397
11405
  _nextMonth() {
11398
- this.now.setMonth(this.now.getMonth() + 1), this._update();
11406
+ this.now = this._createDate(this.now.getFullYear(), this.now.getMonth() + 1, this.now.getDate(), this.now), this._update();
11399
11407
  }
11400
11408
  _preYear() {
11401
- this.now.setFullYear(this.now.getFullYear() - 1), this._update();
11409
+ this.now = this._createDate(this.now.getFullYear() - 1, this.now.getMonth(), this.now.getDate(), this.now), this._update();
11402
11410
  }
11403
11411
  _nextYear() {
11404
- this.now.setFullYear(this.now.getFullYear() + 1), this._update();
11412
+ this.now = this._createDate(this.now.getFullYear() + 1, this.now.getMonth(), this.now.getDate(), this.now), this._update();
11405
11413
  }
11406
11414
  _preYearPage() {
11407
11415
  this.yearPageStart -= 12, this._update();
@@ -11701,8 +11709,14 @@ var Ii = class {
11701
11709
  this.calculatorDom &&= (this.calculatorDom.remove(), null);
11702
11710
  }
11703
11711
  calculate(e) {
11704
- let t = Function("return " + e)();
11705
- return !Number.isFinite(t) || Number.isInteger(t) ? t : parseFloat(t.toFixed(10));
11712
+ if (!e.trim()) return NaN;
11713
+ let t;
11714
+ try {
11715
+ t = Function("return " + e)();
11716
+ } catch {
11717
+ return NaN;
11718
+ }
11719
+ return typeof t == "number" ? !Number.isFinite(t) || Number.isInteger(t) ? t : parseFloat(t.toFixed(10)) : NaN;
11706
11720
  }
11707
11721
  }, zi = class extends Fi {
11708
11722
  isPopup;
@@ -11752,7 +11766,10 @@ var Ii = class {
11752
11766
  };
11753
11767
  c.push(t);
11754
11768
  }
11755
- this.setValue(c), this.control.repaintControl({ curIndex: t + c.length }), this.control.emitControlContentChange(), this.destroy();
11769
+ this.setValue(c, { range: {
11770
+ startIndex: t,
11771
+ endIndex: t
11772
+ } }), this.control.repaintControl({ curIndex: t + c.length }), this.control.emitControlContentChange(), this.destroy();
11756
11773
  }
11757
11774
  awake() {
11758
11775
  let e = this.element.control?.numberExclusiveOptions?.calculatorDisabled === !1;
@@ -14278,7 +14295,7 @@ var ja = class {
14278
14295
  let t = this.draw.getPage();
14279
14296
  this.mousedownX = e.x, this.mousedownY = e.y, this.isAllowResize = !0;
14280
14297
  let n = e.target;
14281
- this.curHandleIndex = Number(n.dataset.index), this.resizerMask.style.display = "block";
14298
+ this.curHandleIndex = Number(n.dataset.index), this.width = this.getBlockWidth(), this.height = this.element.height, this.resizerMask.style.display = "block";
14282
14299
  let r = window.getComputedStyle(n).cursor;
14283
14300
  document.body.style.cursor = r, t.style.cursor = r;
14284
14301
  let i = this._mousemove.bind(this);
@@ -15435,7 +15452,7 @@ var ja = class {
15435
15452
  let { scale: n, lineNumber: { color: r, size: i, font: a, right: o, type: s } } = this.options, c = this.draw.getTextParticle(), { margins: l } = this.draw.getPageSize(t), u = this.draw.getPosition().getOriginalMainPositionList(), d = this.draw.getPageRowList()[t];
15436
15453
  e.save(), e.fillStyle = r, e.font = `${i * n}px ${a}`;
15437
15454
  for (let t = 0; t < d.length; t++) {
15438
- let r = d[t], { coordinate: { leftBottom: i } } = r.fragmentPosition || u[r.startIndex], a = s === tn.PAGE ? t + 1 : r.rowIndex + 1, f = c.measureText(e, { value: `${a}` }), p = l[3] - (f.width + o) * n, m = i[1] - f.actualBoundingBoxAscent * n;
15455
+ let r = d[t], { coordinate: { leftBottom: i } } = r.fragmentPosition || u[r.startIndex], a = s === tn.PAGE ? t + 1 : r.rowIndex + 1, f = c.measureText(e, { value: `${a}` }), p = l[3] - f.width - o * n, m = i[1] - f.actualBoundingBoxAscent;
15439
15456
  e.fillText(`${a}`, p, m);
15440
15457
  }
15441
15458
  e.restore();
@@ -15525,7 +15542,7 @@ var $a = class {
15525
15542
  if (!e.isTable) return;
15526
15543
  let { index: t, trIndex: n, tableId: r } = e, i = this.draw.getOriginalElementList()[t], a = i.trList, o = a[n];
15527
15544
  if (o.tdList.length < i.colgroup.length) {
15528
- let e = o.tdList[0].rowIndex;
15545
+ let e = o.tdList.length ? o.tdList[0].rowIndex : n;
15529
15546
  for (let t = 0; t < n; t++) {
15530
15547
  let n = a[t];
15531
15548
  for (let t = 0; t < n.tdList.length; t++) {
@@ -15559,7 +15576,7 @@ var $a = class {
15559
15576
  index: t,
15560
15577
  trIndex: n,
15561
15578
  tdIndex: 0,
15562
- tdId: c.tdList[0].id,
15579
+ tdId: c.tdList[0]?.id,
15563
15580
  trId: c.id,
15564
15581
  tableId: r
15565
15582
  }), this.range.setRange(0, 0), this.draw.render({ curIndex: 0 }), this.tableTool.render();
@@ -15569,7 +15586,7 @@ var $a = class {
15569
15586
  if (!e.isTable) return;
15570
15587
  let { index: t, trIndex: n, tableId: r } = e, i = this.draw.getOriginalElementList()[t], a = i.trList, o = a[n], s = a.length - 1 === n ? o : a[n + 1];
15571
15588
  if (s.tdList.length < i.colgroup.length) {
15572
- let e = s.tdList[0].rowIndex;
15589
+ let e = s.tdList.length ? s.tdList[0].rowIndex : s === o ? n : n + 1;
15573
15590
  for (let t = 0; t < n + 1; t++) {
15574
15591
  let n = a[t];
15575
15592
  for (let t = 0; t < n.tdList.length; t++) {
@@ -15603,7 +15620,7 @@ var $a = class {
15603
15620
  index: t,
15604
15621
  trIndex: n + 1,
15605
15622
  tdIndex: 0,
15606
- tdId: l.tdList[0].id,
15623
+ tdId: l.tdList[0]?.id,
15607
15624
  trId: l.id,
15608
15625
  tableId: i.id
15609
15626
  }), this.range.setRange(0, 0), this.draw.render({ curIndex: 0 });
@@ -16026,7 +16043,9 @@ var $a = class {
16026
16043
  tableSelectAll() {
16027
16044
  let { index: e, tableId: t, isTable: n } = this.position.getPositionContext();
16028
16045
  if (!n || !t) return;
16029
- let { startIndex: r, endIndex: i } = this.range.getRange(), a = this.draw.getOriginalElementList()[e].trList, o = a.length - 1, s = a[o].tdList.length - 1;
16046
+ let { startIndex: r, endIndex: i } = this.range.getRange(), a = this.draw.getOriginalElementList()[e].trList, o = a.length - 1;
16047
+ for (; o > 0 && !a[o].tdList.length;) o--;
16048
+ let s = a[o].tdList.length - 1;
16030
16049
  this.range.replaceRange({
16031
16050
  startIndex: r,
16032
16051
  endIndex: i,
@@ -16649,7 +16668,7 @@ var no = class {
16649
16668
  getContextInnerWidth() {
16650
16669
  let e = this.position.getPositionContext();
16651
16670
  if (e.isTable) {
16652
- let t = this.getOriginalElementList(), n = this.position.getTableTdByContext(t, e), r = this.getTdPadding();
16671
+ let t = this.getOriginalElementList(), n = this.position.getTableTdByContext(t, e), { table: { tdPadding: r } } = this.options;
16653
16672
  return n.width - r[1] - r[3];
16654
16673
  }
16655
16674
  let t = this.getColumnLayout();
@@ -17048,7 +17067,7 @@ var no = class {
17048
17067
  setPageMode(e) {
17049
17068
  if (!e || this.options.pageMode === e) return;
17050
17069
  if (this.options.pageMode = e, e === g.PAGING) {
17051
- let { height: e } = this.options, t = this.getPagePixelRatio(), n = this.pageList[0];
17070
+ let e = this.getHeight(), t = this.getPagePixelRatio(), n = this.pageList[0];
17052
17071
  n.style.height = `${e}px`, n.height = e * t, this._initPageContext(this.ctxList[0]);
17053
17072
  } else this._disconnectLazyRender(), this.header.recovery(), this.footer.recovery(), this.zone.setZone(h.MAIN);
17054
17073
  let { startIndex: t } = this.range.getRange(), n = this.range.getIsCollapsed();
@@ -19062,7 +19081,7 @@ var Io = class {
19062
19081
  let e = this.draw.getOriginalElementList()[E] || null;
19063
19082
  e && (D = X([e])[0]);
19064
19083
  }
19065
- let O = null, k = null, j = e - 1;
19084
+ let O = null, k = null, j = e;
19066
19085
  for (; j > 0;) {
19067
19086
  let e = a[j], t = a[j - 1];
19068
19087
  if (e.titleId && e.titleId !== t?.titleId) {
@@ -19282,7 +19301,13 @@ var Io = class {
19282
19301
  }
19283
19302
  }
19284
19303
  }
19285
- (t && o.id === t || n && o.conceptId === n) && (r = !0, this.draw.deleteElementList(e, a, 1, { isIgnoreDeletedRule: !0 })), a++;
19304
+ if (t && o.id === t || n && o.conceptId === n) {
19305
+ r = !0;
19306
+ let t = e.length;
19307
+ this.draw.deleteElementList(e, a, 1, { isIgnoreDeletedRule: !0 }), e.length === t && a++;
19308
+ continue;
19309
+ }
19310
+ a++;
19286
19311
  }
19287
19312
  }, a = [
19288
19313
  this.draw.getOriginalMainElementList(),
@@ -19555,9 +19580,9 @@ var Io = class {
19555
19580
  index: o - 1,
19556
19581
  trIndex: t,
19557
19582
  tdIndex: e,
19558
- tdId: s.tdId,
19559
- trId: s.trId,
19560
- tableId: s.tableId
19583
+ tdId: i.id,
19584
+ trId: r.id,
19585
+ tableId: s.id
19561
19586
  }
19562
19587
  };
19563
19588
  }
@@ -20417,7 +20442,7 @@ var Io = class {
20417
20442
  t && (this._removeSubMenu(t), t.remove(), this.contextMenuRelationShip.delete(e));
20418
20443
  }
20419
20444
  _setHoverStatus(e, t) {
20420
- t ? (e.parentNode?.querySelectorAll("ce-contextmenu-item").forEach((e) => e.classList.remove("hover")), e.classList.add("hover")) : e.classList.remove("hover");
20445
+ t ? (e.parentNode?.querySelectorAll(".ce-contextmenu-item").forEach((e) => e.classList.remove("hover")), e.classList.add("hover")) : e.classList.remove("hover");
20421
20446
  }
20422
20447
  _formatName(e) {
20423
20448
  let t = Object.values(zo), n = RegExp(`${t.join("|")}`), r = e;