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 +1 -1
- package/dist/types/components/spreader/borderPicker.vue.d.ts +26 -0
- package/dist/types/components/spreader/colorPicker.vue.d.ts +30 -0
- package/dist/types/components/spreader/constants.d.ts +10 -0
- package/dist/types/components/spreader/dropdown.vue.d.ts +30 -0
- package/dist/types/components/spreader/spreader.vue.d.ts +2 -1
- package/dist/types/components/spreader/tabbar.vue.d.ts +34 -0
- package/dist/types/components/spreader/toolbar.vue.d.ts +39 -0
- package/dist/types/components/spreader/types.d.ts +8 -2
- package/dist/xiaodao-spreader.es.js +2928 -981
- package/dist/xiaodao-spreader.umd.js +4 -4
- package/package.json +1 -1
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;
|