xiaodao-spreader 0.1.2 → 0.1.3

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/dist/style.css CHANGED
@@ -1 +1 @@
1
- .spreadsheet-outer[data-v-5100e6d6]{flex:1;display:flex;flex-direction:column;overflow:hidden}.formula-bar[data-v-5100e6d6]{display:flex;align-items:start;height:32px;min-height:32px;padding:0;gap:0}.formula-bar__cell-label[data-v-5100e6d6]{width:48px;min-width:48px;height:28px;line-height:28px;text-align:center;font-size:12px;font-weight:600;color:var(--sp-formula-bar-label-color);background:var(--sp-formula-bar-label-bg);border:1px solid var(--sp-formula-bar-label-border);border-radius:2px;-webkit-user-select:none;user-select:none}.formula-bar__input[data-v-5100e6d6]{flex:1;height:28px;border:1px solid var(--sp-formula-bar-input-border);border-radius:2px;outline:none;padding:0 6px;margin-left:4px;font-size:13px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Microsoft YaHei,sans-serif;color:var(--sp-formula-bar-input-color);background:var(--sp-formula-bar-input-bg)}.formula-bar__input[data-v-5100e6d6]:focus{border-color:var(--sp-formula-bar-input-focus-border);box-shadow:0 0 0 1px var(--sp-formula-bar-input-focus-shadow)}.tab-bar[data-v-5100e6d6]{display:flex;align-items:stretch;height:30px;min-height:30px;background:var(--sp-tab-bar-bg);border-bottom:1px solid var(--sp-tab-bar-border);-webkit-user-select:none;user-select:none;margin-bottom:4px}.tab-list[data-v-5100e6d6]{display:flex;align-items:flex-end;flex:1;overflow:hidden;gap:1px;padding:0 1px}.tab-item[data-v-5100e6d6]{display:flex;align-items:center;height:28px;min-width:0;max-width:120px;padding:0 10px;cursor:pointer;border:1px solid var(--sp-tab-inactive-border);background:var(--sp-tab-inactive-bg);color:var(--sp-tab-inactive-color);font-size:14px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Microsoft YaHei,sans-serif;white-space:nowrap;transition:background .1s}.tab-item[data-v-5100e6d6]:hover{background:var(--sp-tab-hover-bg)}.tab-item--active[data-v-5100e6d6]{height:28px;background:var(--sp-tab-active-bg);color:var(--sp-tab-active-color);border-color:var(--sp-tab-bar-border) var(--sp-tab-bar-border) var(--sp-tab-active-bg);border-bottom:2px solid var(--sp-tab-active-border);font-size:16px}.tab-item--active[data-v-5100e6d6]:hover{background:var(--sp-tab-active-bg)}.tab-item__name[data-v-5100e6d6]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tab-rename-input[data-v-5100e6d6]{width:100%;height:18px;border:none;border-radius:0;outline:none;padding:0;font-size:16px;font-family:inherit;background:var(--sp-tab-active-bg);color:var(--sp-tab-active-color);box-sizing:border-box}.tab-bar__add-btn[data-v-5100e6d6]{width:24px;min-width:24px;height:24px;margin:3px 4px 0 3px;border:none;background:transparent;color:var(--sp-tab-add-btn-color);font-size:16px;line-height:22px;text-align:center;cursor:pointer;padding:0}.tab-bar__add-btn[data-v-5100e6d6]:hover{background:var(--sp-tab-add-btn-hover-bg)}.spreadsheet-wrapper[data-v-5100e6d6]{flex:1;position:relative;overflow:hidden;background:var(--sp-wrapper-bg)}.grid-canvas[data-v-5100e6d6]{position:absolute;top:0;left:0;display:block;outline:none;cursor:cell}.grid-canvas[data-v-5100e6d6]:focus{outline:none}.v-scrollbar[data-v-5100e6d6]{position:absolute;right:0;top:0;width:11px;height:calc(100% - 11px);display:flex;flex-direction:column;background:var(--sp-wrapper-bg)}.h-scrollbar[data-v-5100e6d6]{position:absolute;left:0;bottom:0;height:11px;width:calc(100% - 11px);display:flex;background:var(--sp-wrapper-bg)}.sb-corner[data-v-5100e6d6]{position:absolute;right:0;bottom:0;width:11px;height:11px;background:var(--sp-wrapper-bg)}.sb-btn[data-v-5100e6d6]{width:11px;height:11px;min-width:11px;min-height:11px;border:none;background:var(--sp-scroll-btn-bg, #e8e8e8);display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;-webkit-user-select:none;user-select:none}.sb-btn[data-v-5100e6d6]:hover{background:var(--sp-scroll-btn-hover-bg, #d0d0d0)}.sb-btn[data-v-5100e6d6]:active{background:var(--sp-scroll-btn-active-bg, #c0c0c0)}.sb-arrow[data-v-5100e6d6]{display:block;width:0;height:0}.sb-arrow--up[data-v-5100e6d6]{border-left:3px solid transparent;border-right:3px solid transparent;border-bottom:4px solid var(--sp-scroll-btn-color, #666)}.sb-arrow--down[data-v-5100e6d6]{border-left:3px solid transparent;border-right:3px solid transparent;border-top:4px solid var(--sp-scroll-btn-color, #666)}.sb-arrow--left[data-v-5100e6d6]{border-top:3px solid transparent;border-bottom:3px solid transparent;border-right:4px solid var(--sp-scroll-btn-color, #666)}.sb-arrow--right[data-v-5100e6d6]{border-top:3px solid transparent;border-bottom:3px solid transparent;border-left:4px solid var(--sp-scroll-btn-color, #666)}.sb-track[data-v-5100e6d6]{flex:1;position:relative;background:var(--sp-scroll-track-bg, rgba(0,0,0,.06))}.sb-track--v[data-v-5100e6d6]{width:11px}.sb-track--h[data-v-5100e6d6]{height:11px}.sb-thumb[data-v-5100e6d6]{position:absolute;border-radius:3px;background:var(--sp-scroll-thumb);cursor:default}.sb-thumb[data-v-5100e6d6]:hover{background:var(--sp-scroll-thumb-hover)}.sb-thumb--v[data-v-5100e6d6]{left:1px;right:1px;min-height:16px}.sb-thumb--h[data-v-5100e6d6]{top:1px;bottom:1px;min-width:16px}.cell-editor[data-v-5100e6d6]{position:absolute;border:2px solid var(--sp-cell-editor-border);outline:none;padding:0 4px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Microsoft YaHei,sans-serif;font-size:13px;color:var(--sp-cell-editor-color);background:var(--sp-cell-editor-bg);box-shadow:0 0 0 1px var(--sp-cell-editor-shadow);z-index:10;box-sizing:border-box;min-width:0}.context-menu{position:fixed;z-index:10000;background:#fff;border:1px solid #ccc;border-radius:4px;box-shadow:0 2px 8px #00000026;padding:4px 0;min-width:120px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Microsoft YaHei,sans-serif;font-size:13px}.context-menu__item{padding:6px 20px;cursor:pointer;color:#333;white-space:nowrap;position:relative;display:flex;align-items:center;justify-content:space-between}.context-menu__item:hover{background:#e8f0fe}.context-menu__item--disabled{color:#bbb;cursor:default}.context-menu__item--disabled:hover{background:transparent}.context-menu__arrow{margin-left:16px;margin-right:-5px;width:0;height:0;border-top:3px solid transparent;border-bottom:3px solid transparent;border-left:4px solid #888}.context-submenu{display:none;position:absolute;left:100%;top:-4px;background:#fff;border:1px solid #ccc;border-radius:4px;box-shadow:0 2px 8px #00000026;padding:4px 0;min-width:100px;z-index:10001}.context-submenu--left{left:auto;right:100%}.context-menu__item:hover>.context-submenu{display:block}.context-submenu .context-menu__item{justify-content:flex-start}
1
+ .sp-dropdown[data-v-47e5c681]{position:relative;display:inline-flex;min-width:0}.sp-dropdown__trigger[data-v-47e5c681]{display:flex;align-items:center;justify-content:space-between;gap:4px;width:100%;height:26px;border:1px solid transparent;border-radius:3px;background:transparent;color:var(--sp-toolbar-btn-color, #444);font-size:12px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Microsoft YaHei,sans-serif;cursor:pointer;padding:0 5px;box-sizing:border-box}.sp-dropdown__trigger[data-v-47e5c681]:hover{background:var(--sp-toolbar-btn-hover-bg, #e6e6e6)}.sp-dropdown__trigger--open[data-v-47e5c681]{background:var(--sp-toolbar-btn-hover-bg, #e6e6e6);border-color:var(--sp-toolbar-border, #d8d8d8)}.sp-dropdown__value[data-v-47e5c681]{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left}.sp-dropdown__caret[data-v-47e5c681]{width:12px;height:12px;min-width:12px;opacity:.7}.sp-dropdown__menu[data-v-47e5c681]{position:fixed;z-index:20000;display:flex;flex-direction:column;background:#fff;border:1px solid #ccc;border-radius:4px;box-shadow:0 2px 8px #00000026;padding:4px 0;box-sizing:border-box;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Microsoft YaHei,sans-serif;transform-origin:top center}.sp-dropdown__menu--up[data-v-47e5c681]{transform-origin:bottom center}.menu-pop-enter-active[data-v-47e5c681],.menu-pop-leave-active[data-v-47e5c681]{transition:opacity .12s ease-out,transform .12s ease-out}.menu-pop-enter-from[data-v-47e5c681],.menu-pop-leave-to[data-v-47e5c681]{opacity:0;transform:scaleY(.85)}.sp-dropdown__nav[data-v-47e5c681]{display:flex;align-items:center;justify-content:center;height:15px;min-height:15px;border:none;background:transparent;color:#666;cursor:pointer;padding:0}.sp-dropdown__nav[data-v-47e5c681]:hover:not(:disabled){background:#eef3f9}.sp-dropdown__nav[data-v-47e5c681]:disabled{color:#ccc;cursor:default}.sp-dropdown__nav svg[data-v-47e5c681]{width:10px;height:10px}.sp-dropdown__list[data-v-47e5c681]{display:flex;flex-direction:column;overflow:hidden;touch-action:none}.sp-dropdown__item[data-v-47e5c681]{display:block;width:100%;height:26px;min-height:26px;border:none;background:transparent;color:#333;font-size:13px;text-align:left;cursor:pointer;padding:0 10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-sizing:border-box}.sp-dropdown__item[data-v-47e5c681]:hover{background:#eef3f9}.sp-dropdown__item--active[data-v-47e5c681]{background:#e5f1fb;color:#0078d7}.color-picker[data-v-c262a5e5]{position:relative;display:inline-flex;height:26px}.color-picker__menu[data-v-c262a5e5]{position:absolute;top:calc(100% + 4px);right:0;z-index:9999;background:#fff;border:1px solid var(--sp-toolbar-border, #d0d0d0);border-radius:4px;padding:6px;box-shadow:0 4px 12px #0000001f;-webkit-user-select:none;user-select:none;transform-origin:top right}.menu-pop-enter-active[data-v-c262a5e5],.menu-pop-leave-active[data-v-c262a5e5]{transition:opacity .12s ease-out,transform .12s ease-out}.menu-pop-enter-from[data-v-c262a5e5],.menu-pop-leave-to[data-v-c262a5e5]{opacity:0;transform:scale(.9)}.color-picker__row[data-v-c262a5e5]{display:flex;gap:4px;margin-bottom:4px}.color-picker__row[data-v-c262a5e5]:last-child{margin-bottom:0}.color-picker__swatch[data-v-c262a5e5]{width:20px;height:20px;padding:0;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform .08s,box-shadow .08s;position:relative}.color-picker__swatch[data-v-c262a5e5]:hover{transform:scale(1.18);box-shadow:0 0 0 1px #0003;z-index:1}.color-picker__swatch--selected[data-v-c262a5e5]{box-shadow:0 0 0 2px #0078d7}.border-picker[data-v-c9b0ba80]{position:relative;display:inline-flex;height:26px}.border-picker__menu[data-v-c9b0ba80]{position:absolute;top:calc(100% + 4px);right:0;z-index:9999;background:#fff;border:1px solid var(--sp-toolbar-border, #d0d0d0);border-radius:4px;box-shadow:0 4px 12px #0000001f;-webkit-user-select:none;user-select:none;padding:4px;transform-origin:top right}.border-picker__item[data-v-c9b0ba80]{display:flex;align-items:center;gap:6px;width:100%;padding:4px 8px;border:none;background:transparent;color:var(--sp-toolbar-btn-color, #444);cursor:pointer;border-radius:3px;font-size:12px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Microsoft YaHei,sans-serif;white-space:nowrap}.border-picker__item[data-v-c9b0ba80]:hover{background:#eef3f9}.border-picker__icon[data-v-c9b0ba80]{width:18px;height:18px;flex-shrink:0}.border-picker__label[data-v-c9b0ba80]{overflow:hidden;text-overflow:ellipsis}.menu-pop-enter-active[data-v-c9b0ba80],.menu-pop-leave-active[data-v-c9b0ba80]{transition:opacity .12s ease-out,transform .12s ease-out}.menu-pop-enter-from[data-v-c9b0ba80],.menu-pop-leave-to[data-v-c9b0ba80]{opacity:0;transform:scale(.9)}.toolbar[data-v-69401a37]{position:relative;display:flex;align-items:center;height:32px;min-height:32px;gap:2px;padding:0 6px;background:var(--sp-toolbar-bg);border-bottom:1px solid var(--sp-toolbar-border);-webkit-user-select:none;user-select:none}.tb-item[data-v-69401a37]{display:flex;align-items:center;flex:0 0 auto}.toolbar-sep[data-v-69401a37]{width:1px;height:18px;margin:0 4px;background:var(--sp-toolbar-border)}.toolbar-font[data-v-69401a37]{flex:0 0 auto}.toolbar-font-size[data-v-69401a37]{display:inline-flex;align-items:center;gap:0;height:26px;position:relative}.toolbar-font-size__input[data-v-69401a37]{width:36px;height:26px;border:1px solid transparent;border-right:none;border-radius:3px 0 0 3px;background:transparent;color:var(--sp-toolbar-btn-color);font-size:12px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Microsoft YaHei,sans-serif;text-align:center;padding:0 2px;outline:none;box-sizing:border-box}.toolbar-font-size__input[data-v-69401a37]:hover{background:var(--sp-toolbar-btn-hover-bg)}.toolbar-font-size__input[data-v-69401a37]:focus{border-color:var(--sp-toolbar-border);background:#fff}.toolbar-font-size__btn[data-v-69401a37]{display:flex;align-items:center;justify-content:center;width:16px;height:26px;border:1px solid transparent;border-left:none;border-radius:0 3px 3px 0;background:transparent;color:var(--sp-toolbar-btn-color);cursor:pointer;padding:0}.toolbar-font-size__btn[data-v-69401a37]:hover{background:var(--sp-toolbar-btn-hover-bg)}.toolbar-font-size__btn svg[data-v-69401a37]{width:10px;height:10px}.toolbar-font-size__dropdown[data-v-69401a37]{position:absolute;width:56px;height:26px;pointer-events:none}.toolbar-btn[data-v-69401a37]{display:flex;align-items:center;justify-content:center;width:30px;height:26px;border:none;border-radius:3px;background:transparent;color:var(--sp-toolbar-btn-color);cursor:pointer;padding:0}.toolbar-btn[data-v-69401a37]:hover:not(:disabled){background:var(--sp-toolbar-btn-hover-bg)}.toolbar-btn[data-v-69401a37]:active:not(:disabled){opacity:.7}.toolbar-btn--active[data-v-69401a37]{background:var(--sp-toolbar-btn-hover-bg);color:var(--sp-toolbar-btn-active-color)}.toolbar-btn--step[data-v-69401a37]{width:26px;height:26px}.toolbar-btn--step svg[data-v-69401a37]{width:16px;height:16px}.toolbar-btn[data-v-69401a37]:disabled{color:var(--sp-toolbar-btn-disabled-color);cursor:default}.toolbar-btn__icon[data-v-69401a37]{width:18px;height:18px}.toolbar-btn svg[data-v-69401a37]:not(.toolbar-btn__icon){width:18px;height:18px}.toolbar-split[data-v-69401a37]{display:inline-flex;align-items:center;position:relative;height:26px}.toolbar-split__main[data-v-69401a37]{border:1px solid transparent;border-right:none;border-radius:3px 0 0 3px}.toolbar-split__arrow[data-v-69401a37]{display:flex;align-items:center;justify-content:center;width:16px;height:26px;border:1px solid transparent;border-radius:0 3px 3px 0;background:transparent;color:var(--sp-toolbar-btn-color);cursor:pointer;padding:0}.toolbar-split__arrow[data-v-69401a37]:hover:not(:disabled){background:var(--sp-toolbar-btn-hover-bg)}.toolbar-split__arrow svg[data-v-69401a37]{width:10px!important;height:10px!important}.toolbar-more[data-v-69401a37]{display:flex;align-items:center;justify-content:center;width:30px;height:26px;border:none;border-radius:3px;background:transparent;color:var(--sp-toolbar-btn-color);cursor:pointer;padding:0;flex:0 0 auto;margin-left:auto}.toolbar-more[data-v-69401a37]:hover{background:var(--sp-toolbar-btn-hover-bg)}.toolbar-more--active[data-v-69401a37]{background:var(--sp-toolbar-btn-hover-bg);color:var(--sp-toolbar-btn-active-color)}.toolbar-more svg[data-v-69401a37]{width:18px;height:18px}.overflow-menu[data-v-69401a37]{min-width:180px;max-width:260px;max-height:calc(100vh - 40px);overflow-y:auto;background:var(--sp-toolbar-bg, #fff);border:1px solid var(--sp-toolbar-border);border-radius:4px;box-shadow:0 4px 12px #0000001f;padding:4px 6px;display:flex;flex-direction:column;gap:2px;z-index:1000;transform-origin:top right}.overflow-menu.no-anim[data-v-69401a37]{transition:none!important}.overflow-menu .tb-item[data-v-69401a37]{width:100%}.overflow-menu .toolbar-sep[data-v-69401a37]{width:100%;height:1px;margin:2px 0}.overflow-menu .toolbar-split[data-v-69401a37]{width:100%}.overflow-menu .toolbar-split__main[data-v-69401a37]{flex:1 1 auto;justify-content:flex-start}.overflow-menu .toolbar-font-size[data-v-69401a37]{width:100%;justify-content:flex-start}.overflow-menu .toolbar-font[data-v-69401a37]{width:100%}.menu-pop-enter-active[data-v-69401a37],.menu-pop-leave-active[data-v-69401a37]{transition:opacity .12s ease-out,transform .12s ease-out}.menu-pop-enter-from[data-v-69401a37],.menu-pop-leave-to[data-v-69401a37]{opacity:0;transform:scale(.9)}.tab-bar[data-v-49f54625]{display:flex;align-items:stretch;height:30px;min-height:30px;background:var(--sp-tab-bar-bg);border-top:1px solid var(--sp-tab-bar-border);-webkit-user-select:none;user-select:none;margin-top:4px}.tab-list[data-v-49f54625]{display:flex;align-items:flex-start;flex:1;overflow:hidden;gap:1px;padding:0 1px}.tab-item[data-v-49f54625]{display:flex;align-items:center;height:28px;min-width:0;max-width:120px;padding:0 10px;cursor:pointer;border:1px solid var(--sp-tab-inactive-border);background:var(--sp-tab-inactive-bg);color:var(--sp-tab-inactive-color);font-size:14px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Microsoft YaHei,sans-serif;white-space:nowrap;transition:background .1s}.tab-item[data-v-49f54625]:hover{background:var(--sp-tab-hover-bg)}.tab-item--active[data-v-49f54625]{height:28px;background:var(--sp-tab-active-bg);color:var(--sp-tab-active-color);border-color:var(--sp-tab-active-bg) var(--sp-tab-bar-border) var(--sp-tab-bar-border);border-top:2px solid var(--sp-tab-active-border);font-size:16px}.tab-item--active[data-v-49f54625]:hover{background:var(--sp-tab-active-bg)}.tab-item__name[data-v-49f54625]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tab-rename-input[data-v-49f54625]{width:100%;height:18px;border:none;border-radius:0;outline:none;padding:0;font-size:16px;font-family:inherit;background:var(--sp-tab-active-bg);color:var(--sp-tab-active-color);box-sizing:border-box}.tab-bar__add-btn[data-v-49f54625]{width:24px;min-width:24px;height:24px;margin:0 4px 3px 3px;border:none;background:transparent;color:var(--sp-tab-add-btn-color);font-size:16px;line-height:22px;text-align:center;cursor:pointer;padding:0}.tab-bar__add-btn[data-v-49f54625]:hover{background:var(--sp-tab-add-btn-hover-bg)}.spreadsheet-outer[data-v-59bd8e5f]{flex:1;display:flex;flex-direction:column;overflow:hidden}.formula-bar[data-v-59bd8e5f]{display:flex;align-items:start;height:36px;min-height:36px;padding:0;gap:0}.formula-bar__cell-label[data-v-59bd8e5f]{width:48px;min-width:48px;height:28px;line-height:28px;margin-top:4px;text-align:center;font-size:12px;font-weight:600;color:var(--sp-formula-bar-label-color);background:var(--sp-formula-bar-label-bg);border:1px solid var(--sp-formula-bar-label-border);border-radius:2px;-webkit-user-select:none;user-select:none}.formula-bar__input[data-v-59bd8e5f]{flex:1;height:28px;margin-top:4px;border:1px solid var(--sp-formula-bar-input-border);border-radius:2px;outline:none;padding:0 6px;margin-left:4px;font-size:13px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Microsoft YaHei,sans-serif;color:var(--sp-formula-bar-input-color);background:var(--sp-formula-bar-input-bg)}.formula-bar__input[data-v-59bd8e5f]:focus{border-color:var(--sp-formula-bar-input-focus-border);box-shadow:0 0 0 1px var(--sp-formula-bar-input-focus-shadow)}.spreadsheet-wrapper[data-v-59bd8e5f]{flex:1;position:relative;overflow:hidden;background:var(--sp-wrapper-bg)}.grid-canvas[data-v-59bd8e5f]{position:absolute;top:0;left:0;display:block;outline:none;cursor:cell}.grid-canvas[data-v-59bd8e5f]:focus{outline:none}.v-scrollbar[data-v-59bd8e5f]{position:absolute;right:0;top:0;width:11px;height:calc(100% - 11px);display:flex;flex-direction:column;background:var(--sp-wrapper-bg)}.h-scrollbar[data-v-59bd8e5f]{position:absolute;left:0;bottom:0;height:11px;width:calc(100% - 11px);display:flex;background:var(--sp-wrapper-bg)}.sb-corner[data-v-59bd8e5f]{position:absolute;right:0;bottom:0;width:11px;height:11px;background:var(--sp-wrapper-bg)}.sb-btn[data-v-59bd8e5f]{width:11px;height:11px;min-width:11px;min-height:11px;border:none;background:var(--sp-scroll-btn-bg, #e8e8e8);display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;-webkit-user-select:none;user-select:none}.sb-btn[data-v-59bd8e5f]:hover{background:var(--sp-scroll-btn-hover-bg, #d0d0d0)}.sb-btn[data-v-59bd8e5f]:active{background:var(--sp-scroll-btn-active-bg, #c0c0c0)}.sb-arrow[data-v-59bd8e5f]{display:block;width:0;height:0}.sb-arrow--up[data-v-59bd8e5f]{border-left:3px solid transparent;border-right:3px solid transparent;border-bottom:4px solid var(--sp-scroll-btn-color, #666)}.sb-arrow--down[data-v-59bd8e5f]{border-left:3px solid transparent;border-right:3px solid transparent;border-top:4px solid var(--sp-scroll-btn-color, #666)}.sb-arrow--left[data-v-59bd8e5f]{border-top:3px solid transparent;border-bottom:3px solid transparent;border-right:4px solid var(--sp-scroll-btn-color, #666)}.sb-arrow--right[data-v-59bd8e5f]{border-top:3px solid transparent;border-bottom:3px solid transparent;border-left:4px solid var(--sp-scroll-btn-color, #666)}.sb-track[data-v-59bd8e5f]{flex:1;position:relative;background:var(--sp-scroll-track-bg, rgba(0,0,0,.06))}.sb-track--v[data-v-59bd8e5f]{width:11px}.sb-track--h[data-v-59bd8e5f]{height:11px}.sb-thumb[data-v-59bd8e5f]{position:absolute;border-radius:3px;background:var(--sp-scroll-thumb);cursor:default}.sb-thumb[data-v-59bd8e5f]:hover{background:var(--sp-scroll-thumb-hover)}.sb-thumb--v[data-v-59bd8e5f]{left:1px;right:1px;min-height:16px}.sb-thumb--h[data-v-59bd8e5f]{top:1px;bottom:1px;min-width:16px}.cell-editor[data-v-59bd8e5f]{position:absolute;border:2px solid var(--sp-cell-editor-border);outline:none;padding:0 4px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Microsoft YaHei,sans-serif;font-size:13px;color:var(--sp-cell-editor-color);background:var(--sp-cell-editor-bg);box-shadow:0 0 0 1px var(--sp-cell-editor-shadow);z-index:10;box-sizing:border-box;min-width:0}.context-menu{position:fixed;z-index:10000;background:#fff;border:1px solid #ccc;border-radius:4px;box-shadow:0 2px 8px #00000026;padding:4px 0;min-width:120px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Microsoft YaHei,sans-serif;font-size:13px;transform-origin:top left}.context-menu__item{padding:6px 20px;cursor:pointer;color:#333;white-space:nowrap;position:relative;display:flex;align-items:center;justify-content:space-between}.context-menu__item:hover{background:#e8f0fe}.context-menu__item--disabled{color:#bbb;cursor:default}.context-menu__item--disabled:hover{background:transparent}.context-menu__arrow{margin-left:16px;margin-right:-5px;width:0;height:0;border-top:3px solid transparent;border-bottom:3px solid transparent;border-left:4px solid #888}.context-submenu{display:none;position:absolute;left:100%;top:-4px;background:#fff;border:1px solid #ccc;border-radius:4px;box-shadow:0 2px 8px #00000026;padding:4px 0;min-width:100px;z-index:10001}.context-submenu--left{left:auto;right:100%}.context-menu__item:hover>.context-submenu{display:block}.context-submenu .context-menu__item{justify-content:flex-start}.menu-pop-enter-active,.menu-pop-leave-active{transition:opacity .12s ease-out,transform .12s ease-out}.menu-pop-enter-from,.menu-pop-leave-to{opacity:0;transform:scale(.9)}.dim-panel{position:fixed;z-index:10002;width:220px;background:#fff;border:1px solid #ccc;border-radius:4px;box-shadow:0 2px 8px #00000026;padding:10px 12px;box-sizing:border-box;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Microsoft YaHei,sans-serif;-webkit-user-select:none;user-select:none;transform-origin:top left}.dim-panel__title{font-size:13px;font-weight:600;color:#333;margin-bottom:8px}.dim-panel__body{display:flex;align-items:center;gap:6px}.dim-panel__input{flex:1;height:26px;border:1px solid #c0c0c0;border-radius:3px;outline:none;padding:0 6px;font-size:13px;color:#1a1a1a;background:#fff;box-sizing:border-box}.dim-panel__input:focus{border-color:#0078d7;box-shadow:0 0 0 1px #0078d74d}.dim-panel__input--error{border-color:#d93025;box-shadow:0 0 0 1px #d930254d}.dim-panel__unit{font-size:12px;color:#888}.dim-panel__error{margin-top:6px;font-size:12px;color:#d93025;line-height:1.4}.dim-panel__footer{display:flex;justify-content:flex-end;gap:8px;margin-top:10px}.dim-panel__btn{height:26px;padding:0 14px;border:1px solid #ccc;border-radius:3px;background:#fff;color:#333;font-size:13px;cursor:pointer}.dim-panel__btn:hover{background:#f0f0f0}.dim-panel__btn--primary{border-color:#0078d7;background:#0078d7;color:#fff}.dim-panel__btn--primary:hover{background:#0069c0}
@@ -0,0 +1,26 @@
1
+ export type BorderType = 'none' | 'bottom' | 'top' | 'left' | 'right' | 'all' | 'outer' | 'thickOuter';
2
+ type __VLS_Props = {
3
+ modelOpen?: boolean;
4
+ locale?: string;
5
+ currentBorder?: BorderType;
6
+ };
7
+ declare function openMenu(): void;
8
+ declare function close(): void;
9
+ declare const _default: import("vue").DefineComponent<__VLS_Props, {
10
+ open: import("vue").Ref<boolean, boolean>;
11
+ openMenu: typeof openMenu;
12
+ close: typeof close;
13
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
14
+ change: (v: BorderType) => any;
15
+ "update:modelOpen": (v: boolean) => any;
16
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
17
+ onChange?: ((v: BorderType) => any) | undefined;
18
+ "onUpdate:modelOpen"?: ((v: boolean) => any) | undefined;
19
+ }>, {
20
+ modelOpen: boolean;
21
+ locale: string;
22
+ currentBorder: BorderType;
23
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {
24
+ rootRef: HTMLDivElement;
25
+ }, HTMLDivElement>;
26
+ export default _default;
@@ -0,0 +1,30 @@
1
+ type __VLS_Props = {
2
+ modelOpen?: boolean;
3
+ colorKey?: string;
4
+ currentColor?: string;
5
+ locale?: string;
6
+ };
7
+ declare function openMenu(): void;
8
+ declare function close(): void;
9
+ declare const _default: import("vue").DefineComponent<__VLS_Props, {
10
+ open: import("vue").Ref<boolean, boolean>;
11
+ openMenu: typeof openMenu;
12
+ close: typeof close;
13
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
14
+ "update:modelValue": (v: string) => any;
15
+ change: (v: string) => any;
16
+ "update:modelOpen": (v: boolean) => any;
17
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
18
+ "onUpdate:modelValue"?: ((v: string) => any) | undefined;
19
+ onChange?: ((v: string) => any) | undefined;
20
+ "onUpdate:modelOpen"?: ((v: boolean) => any) | undefined;
21
+ }>, {
22
+ modelOpen: boolean;
23
+ currentColor: string;
24
+ colorKey: string;
25
+ locale: string;
26
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {
27
+ rootRef: HTMLDivElement;
28
+ menuRef: HTMLDivElement;
29
+ }, HTMLDivElement>;
30
+ export default _default;
@@ -5,11 +5,21 @@ export declare const DEFAULT_COL_WIDTH = 100;
5
5
  export declare const DEFAULT_ROW_HEIGHT = 24;
6
6
  export declare const MIN_COL_WIDTH = 30;
7
7
  export declare const MIN_ROW_HEIGHT = 24;
8
+ export declare const MAX_COL_WIDTH = 1000;
9
+ export declare const MAX_ROW_HEIGHT = 500;
8
10
  export declare const SB_SIZE = 11;
9
11
  export declare const ARROW_SIZE = 11;
10
12
  export declare const SCROLL_STEP = 50;
11
13
  export declare const UNDO_MAX = 50;
12
14
  export declare const i18n: Record<string, Record<string, string>>;
13
15
  export declare function t(locale: string, key: string): string;
16
+ export declare const DEFAULT_FONT_FAMILY = "-apple-system, BlinkMacSystemFont, \"Segoe UI\", \"Microsoft YaHei\", sans-serif";
17
+ export declare const DEFAULT_FONT_SIZE = 10;
18
+ export interface FontOption {
19
+ label: string;
20
+ value: string | number;
21
+ }
22
+ export declare const FONT_FAMILIES: FontOption[];
23
+ export declare const FONT_SIZES: FontOption[];
14
24
  export declare const lightTheme: ThemeColors;
15
25
  export declare const darkTheme: ThemeColors;
@@ -0,0 +1,30 @@
1
+ import type { FontOption } from './constants';
2
+ type __VLS_Props = {
3
+ modelValue: string | number;
4
+ options: FontOption[];
5
+ width?: string | number;
6
+ visibleCount?: number;
7
+ title?: string;
8
+ modelOpen?: boolean;
9
+ hideTrigger?: boolean;
10
+ };
11
+ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
12
+ "update:modelValue": (v: string | number) => any;
13
+ change: (v: string | number) => any;
14
+ "update:modelOpen": (v: boolean) => any;
15
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
16
+ "onUpdate:modelValue"?: ((v: string | number) => any) | undefined;
17
+ onChange?: ((v: string | number) => any) | undefined;
18
+ "onUpdate:modelOpen"?: ((v: boolean) => any) | undefined;
19
+ }>, {
20
+ width: string | number;
21
+ visibleCount: number;
22
+ title: string;
23
+ modelOpen: boolean;
24
+ hideTrigger: boolean;
25
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {
26
+ rootRef: HTMLDivElement;
27
+ menuRef: HTMLDivElement;
28
+ listRef: HTMLDivElement;
29
+ }, HTMLDivElement>;
30
+ export default _default;
@@ -15,14 +15,15 @@ declare const _default: import("vue").DefineComponent<__VLS_PublicProps, {}, {},
15
15
  }, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
16
16
  "onUpdate:data"?: ((value: SheetModelData[]) => any) | undefined;
17
17
  }>, {
18
+ locale: string;
18
19
  rowCount: number;
19
20
  colCount: number;
20
21
  theme: "light" | "dark";
21
- locale: string;
22
22
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {
23
23
  formulaBarRef: HTMLInputElement;
24
24
  wrapperRef: HTMLDivElement;
25
25
  canvasRef: HTMLCanvasElement;
26
26
  editInputRef: HTMLInputElement;
27
+ dimInputRef: HTMLInputElement;
27
28
  }, HTMLDivElement>;
28
29
  export default _default;
@@ -0,0 +1,34 @@
1
+ import type { SheetState } from './types';
2
+ type __VLS_Props = {
3
+ locale: string;
4
+ sheets: SheetState[];
5
+ activeSheetIndex: number;
6
+ renTab: number | null;
7
+ renTabVal: string;
8
+ };
9
+ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
10
+ "tab-click": (i: number) => any;
11
+ "tab-dblclick": (i: number) => any;
12
+ "tab-contextmenu": (payload: {
13
+ ev: MouseEvent;
14
+ i: number;
15
+ }) => any;
16
+ "tab-rename-input": (v: string) => any;
17
+ "tab-rename-keydown": (ev: KeyboardEvent) => any;
18
+ "tab-rename-commit": () => any;
19
+ "tabbar-contextmenu": (ev: MouseEvent) => any;
20
+ "add-sheet": () => any;
21
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
22
+ "onTab-click"?: ((i: number) => any) | undefined;
23
+ "onTab-dblclick"?: ((i: number) => any) | undefined;
24
+ "onTab-contextmenu"?: ((payload: {
25
+ ev: MouseEvent;
26
+ i: number;
27
+ }) => any) | undefined;
28
+ "onTab-rename-input"?: ((v: string) => any) | undefined;
29
+ "onTab-rename-keydown"?: ((ev: KeyboardEvent) => any) | undefined;
30
+ "onTab-rename-commit"?: (() => any) | undefined;
31
+ "onTabbar-contextmenu"?: ((ev: MouseEvent) => any) | undefined;
32
+ "onAdd-sheet"?: (() => any) | undefined;
33
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, HTMLDivElement>;
34
+ export default _default;
@@ -0,0 +1,39 @@
1
+ import { type FontOption } from './constants';
2
+ import { type BorderType } from './borderPicker.vue';
3
+ type __VLS_Props = {
4
+ locale: string;
5
+ canUndo: boolean;
6
+ canRedo: boolean;
7
+ paintFmtActive: boolean;
8
+ hasSelection: boolean;
9
+ fontFamilyOptions: FontOption[];
10
+ fontSizeOptions: FontOption[];
11
+ selFontFamily: string | number;
12
+ selFontSize: number;
13
+ fontSizeInput: string;
14
+ fontSizeMenuOpen: boolean;
15
+ selFontWeight: boolean;
16
+ selFontStyle: boolean;
17
+ selUnderline: boolean;
18
+ selStrikethrough: boolean;
19
+ selTextColor: string;
20
+ textColorMenuOpen: boolean;
21
+ selFillColor: string;
22
+ fillColorMenuOpen: boolean;
23
+ cachedTextColor: string;
24
+ cachedFillColor: string;
25
+ borderMenuOpen: boolean;
26
+ cachedBorder: BorderType;
27
+ };
28
+ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
29
+ [x: string]: any;
30
+ } & {
31
+ [x: string]: any;
32
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
33
+ [x: `on${Capitalize<any>}`]: ((...args: any[] | unknown[]) => any) | undefined;
34
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {
35
+ rootEl: HTMLDivElement;
36
+ moreBtnEl: HTMLButtonElement;
37
+ overflowMenuEl: HTMLDivElement;
38
+ }, any>;
39
+ export default _default;
@@ -46,12 +46,12 @@ export interface SheetState {
46
46
  scrollX: number;
47
47
  scrollY: number;
48
48
  colWidths: number[];
49
- rowHeights: number[];
49
+ rowHeights: (number | undefined)[];
50
50
  }
51
51
  export interface UndoSnapshot {
52
52
  cells: Record<string, CellData>;
53
53
  colWidths: number[];
54
- rowHeights: number[];
54
+ rowHeights: (number | undefined)[];
55
55
  }
56
56
  export interface ContextMenuItem {
57
57
  label: string;
@@ -108,6 +108,12 @@ export interface ThemeColors {
108
108
  scrollBtnHoverBg: string;
109
109
  scrollBtnActiveBg: string;
110
110
  scrollTrackBg: string;
111
+ toolbarBg: string;
112
+ toolbarBorder: string;
113
+ toolbarBtnColor: string;
114
+ toolbarBtnHoverBg: string;
115
+ toolbarBtnDisabledColor: string;
116
+ toolbarBtnActiveColor: string;
111
117
  }
112
118
  export interface Point {
113
119
  x: number;