@univerjs/sheets-ui 0.2.8 → 0.2.10

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.
Files changed (34) hide show
  1. package/lib/cjs/index.js +10 -9
  2. package/lib/es/index.js +1082 -853
  3. package/lib/index.css +1 -1
  4. package/lib/types/{basics/const → consts}/ui-name.d.ts +2 -1
  5. package/lib/types/controllers/editor/editing.render-controller.d.ts +2 -1
  6. package/lib/types/controllers/menu/menu.d.ts +2 -1
  7. package/lib/types/controllers/permission/sheet-permission-init.controller.d.ts +4 -2
  8. package/lib/types/controllers/permission/sheet-permission-render.controller.d.ts +3 -7
  9. package/lib/types/controllers/render-controllers/zoom.render-controller.d.ts +4 -0
  10. package/lib/types/controllers/sheet-ui.controller.d.ts +1 -0
  11. package/lib/types/index.d.ts +5 -1
  12. package/lib/types/services/canvas-pop-manager.service.d.ts +1 -1
  13. package/lib/types/services/format-painter/format-painter.service.d.ts +11 -2
  14. package/lib/types/services/mark-selection/mark-selection.service.d.ts +3 -0
  15. package/lib/types/services/permission/sheet-permission-panel.model.d.ts +9 -0
  16. package/lib/types/services/permission/sheet-permission-user-list.service.d.ts +1 -0
  17. package/lib/types/services/select-all/select-all.service.d.ts +5 -0
  18. package/lib/types/services/selection/base-selection-render.service.d.ts +44 -43
  19. package/lib/types/services/selection/const.d.ts +4 -0
  20. package/lib/types/services/selection/mobile-selection-render.service.d.ts +3 -4
  21. package/lib/types/services/selection/mobile-selection-shape.d.ts +3 -3
  22. package/lib/types/services/selection/selection-render-model.d.ts +7 -3
  23. package/lib/types/services/selection/selection-render.service.d.ts +3 -6
  24. package/lib/types/services/selection/selection-shape-extension.d.ts +13 -3
  25. package/lib/types/services/selection/selection-shape.d.ts +48 -42
  26. package/lib/types/sheets-ui-plugin.d.ts +1 -0
  27. package/lib/types/views/permission/panel/index.d.ts +1 -1
  28. package/lib/types/views/status-bar/CopyableStatisticItem.d.ts +1 -1
  29. package/lib/umd/index.js +10 -9
  30. package/package.json +20 -20
  31. package/lib/types/basics/const/index.d.ts +0 -17
  32. package/lib/types/basics/index.d.ts +0 -16
  33. /package/lib/types/{basics/const → consts}/permission.d.ts +0 -0
  34. /package/lib/types/{basics/const → consts}/plugin-name.d.ts +0 -0
package/lib/index.css CHANGED
@@ -1 +1 @@
1
- .univer-ui-plugin-sheets-border-panel{display:grid;gap:var(--margin-sm)}.univer-ui-plugin-sheets-border-panel-position{display:grid;grid-template-columns:repeat(5,1fr);gap:var(--margin-xxs);box-sizing:border-box;padding-bottom:var(--padding-base);border-bottom:1px solid rgb(var(--border-color))}.univer-ui-plugin-sheets-border-panel-position-item{display:flex;align-items:center;justify-content:center;width:24px;height:24px;font-size:var(--font-size-lg);border-radius:var(--border-radius-base)}.univer-ui-plugin-sheets-border-panel-position-item:hover,.univer-ui-plugin-sheets-border-panel-position-item-active{background-color:rgb(var(--bg-color-hover))}.univer-ui-plugin-sheets-border-panel-styles{display:flex;gap:var(--margin-xs);align-items:center;justify-content:space-around}.univer-ui-plugin-sheets-border-panel-board{box-sizing:border-box;padding:var(--padding-base);background-color:rgb(var(--bg-color-secondary));border:1px solid rgb(var(--border-color));border-radius:var(--border-radius-lg);box-shadow:var(--box-shadow-base)}.univer-ui-plugin-sheets-border-panel-button{cursor:pointer;position:relative;display:flex;gap:var(--margin-xs);align-items:center;height:24px;padding:0 var(--padding-xs);font-size:var(--font-size-lg);border-radius:var(--border-radius-base);transition:all .15s}.univer-ui-plugin-sheets-border-panel-button:hover{background-color:rgb(var(--bg-color-hover))}.univer-ui-plugin-sheets-border-panel-more-icon{color:rgb(var(--grey-400))}.univer-sheets-ui-context-menu-input{display:flex;gap:var(--margin-sm);align-items:center}.univer-sheets-ui-context-menu-input-container{width:72px}.univer-sheets-ui-context-menu-input-number{height:24px}.univer-count-bar{display:flex;flex:0 0 260px;justify-content:flex-end}.univer-editor-container{position:absolute;z-index:10;top:200px;left:100px;display:flex;width:100px;height:50px;border:1px solid rgb(var(--primary-color));box-shadow:none;box-sizing:border-box}.univer-editor-container .univer-editor-input{position:relative;display:flex;width:100%;height:100%;background:#fff}.univer-editor-container .univer-editor-input canvas{position:absolute;top:-1px!important;left:-1px!important}.univer-defined-name{display:flex;position:relative;transition:height .15s;border-right:1px solid rgb(var(--border-color));height:100%;width:100px;box-sizing:border-box}.univer-defined-name-drop-down{display:flex;align-items:center;justify-content:center;padding:0 var(--padding-xs);cursor:pointer;position:absolute;right:0;height:100%}.univer-defined-name-drop-down:hover{background-color:rgb(var(--grey-50));color:rgb(var(--primary-color))}.univer-defined-name-drop-down-disable{color:rgb(var(--grey-200));cursor:not-allowed}.univer-defined-name-drop-down-disable:hover{color:rgb(var(--grey-200))}.univer-defined-name-overlay{position:relative;border:1px solid rgb(var(--border-color));width:300px;background-color:rgb(var(--color-white));transform:translate(-75px)}.univer-defined-name-overlay-container{position:relative;height:100%;max-height:400px;width:100%;overflow:hidden;overflow-y:auto;scrollbar-color:rgba(var(--scrollbar-color),.7) transparent;scrollbar-gutter:auto;scrollbar-width:thin}.univer-defined-name-overlay-item{display:flex;align-items:center;justify-content:space-between;padding:var(--padding-xs);border-bottom:1px solid rgb(var(--border-color));user-select:none;cursor:pointer}.univer-defined-name-overlay-item:hover{background-color:rgb(var(--grey-50))}.univer-defined-name-overlay-item-name{font-size:var(--font-size-md);color:rgb(var(--grey-900));margin:5px 0;overflow:hidden;text-overflow:ellipsis;flex:1}.univer-defined-name-overlay-item-name-for-sheet{font-size:var(--font-size-xxs);color:rgb(var(--grey-400));margin-left:5px;font-weight:400}.univer-defined-name-overlay-item-formula{font-size:var(--font-size-xs);color:rgb(var(--grey-800));margin:5px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}.univer-defined-name-overlay-manager{position:absolute;display:flex;flex-direction:column;overflow-y:auto;height:70px;width:100%;cursor:pointer;overflow:hidden;bottom:-70px;background-color:rgb(var(--color-white))}.univer-defined-name-overlay-manager:hover{background-color:rgb(var(--grey-50))}.univer-defined-name-overlay-manager-title{font-size:var(--font-size-xs);font-weight:700;margin:var(--margin-xs);margin-bottom:0;color:rgb(var(--grey-800))}.univer-defined-name-overlay-manager-content{font-size:var(--font-size-xxs);margin:var(--margin-xs);color:rgb(var(--grey-500))}.univer-defined-name-container{width:100%;position:relative}.univer-defined-name-container-scroll{width:100%;overflow:hidden;overflow-y:auto;position:absolute}.univer-defined-name-container-addButton{display:flex;align-items:center;justify-content:center;width:100%;height:40px;border-top:1px solid rgb(var(--border-color));border-bottom:1px solid rgb(var(--border-color));font-size:var(--font-size-md);color:rgb(var(--primary-color))}.univer-defined-name-container-addButton:hover{background-color:rgb(var(--grey-50));cursor:pointer}.univer-defined-name-container-addButton-text{margin-left:5px}.univer-defined-name-container-item{position:relative;display:flex;align-items:center;justify-content:space-between;padding:var(--padding-xs);border-bottom:1px solid rgb(var(--border-color));user-select:none;cursor:default}.univer-defined-name-container-item-name{font-size:var(--font-size-sm);font-weight:500;color:rgb(var(--color-black));margin:5px 0;max-width:190px;max-height:100px;overflow:hidden}.univer-defined-name-container-item-name-for-sheet{font-size:var(--font-size-xxs);color:rgb(var(--grey-400));margin-left:5px;font-weight:400}.univer-defined-name-container-item-formula-or-refString{font-size:var(--font-size-xs);color:rgb(var(--grey-500));font-weight:400;margin:5px 0;max-height:100px;text-overflow:ellipsis;overflow:hidden}.univer-defined-name-container-item-update{position:absolute;font-size:var(--font-size-xs);color:rgb(var(--primary-color));cursor:pointer;padding:4px;transform:translateY(-50%);border-radius:var(--border-radius-base);right:60px;top:20px}.univer-defined-name-container-item-update:hover{background-color:rgb(var(--hyacinth-50))}.univer-defined-name-container-item-delete{position:absolute;font-size:var(--font-size-xs);color:rgb(var(--error-color));cursor:pointer;padding:4px;right:20px;top:20px;transform:translateY(-50%);border-radius:var(--border-radius-base)}.univer-defined-name-container-item-delete:hover{background-color:rgb(var(--hyacinth-50))}.univer-defined-name-container-item-show{display:none}.univer-defined-name-container-item:hover{background-color:rgb(var(--grey-50))}.univer-defined-name-container-item:hover .univer-defined-name-container-item-show{display:block}.univer-defined-name-input{display:flex;align-items:center;justify-content:left;border-bottom:1px solid rgb(var(--border-color));padding-bottom:5px}.univer-defined-name-input>div{width:100%;margin-top:5px}.univer-defined-name-input-validation{display:flex;align-items:center;justify-content:left;color:rgb(var(--error-color));font-size:var(--font-size-xs)}.univer-defined-name-input-validation>span{margin-right:2px}.univer-defined-name-input-disable{color:rgb(var(--grey-200));cursor:not-allowed}.univer-formula-box{display:flex;box-sizing:border-box;height:28px;background:rgb(var(--bg-color-secondary));border-bottom:1px solid rgb(var(--border-color));transition:height .15s}.univer-formula-box .univer-name-ranges{box-sizing:border-box;width:100px;height:100%;position:relative}.univer-formula-box .univer-formula-bar{display:flex;width:100%;height:100%}.univer-formula-box .univer-formula-bar .univer-formula-icon{padding:6px 0}.univer-formula-box .univer-formula-bar .univer-formula-icon-disable{color:rgb(var(--grey-200));cursor:not-allowed}.univer-formula-box .univer-formula-bar .univer-formula-icon-wrapper{position:relative;display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:80px;height:100%;font-size:var(--font-size-xs);border-right:1px solid rgb(var(--border-color))}.univer-formula-box .univer-formula-bar .univer-formula-icon-wrapper .univer-icon-container{display:flex;align-items:center;justify-content:center;padding:var(--padding-xs);font-size:var(--font-size-lg);border-radius:var(--border-radius-base)}.univer-formula-box .univer-formula-bar .univer-formula-icon-wrapper .univer-icon-container-success.univer-formula-active{cursor:pointer;color:rgb(var(--success-color))}.univer-formula-box .univer-formula-bar .univer-formula-icon-wrapper .univer-icon-container-success.univer-formula-active:hover{background-color:rgb(var(--grey-50))}.univer-formula-box .univer-formula-bar .univer-formula-icon-wrapper .univer-icon-container-error.univer-formula-active{cursor:pointer;color:rgb(var(--error-color))}.univer-formula-box .univer-formula-bar .univer-formula-icon-wrapper .univer-icon-container-error.univer-formula-active:hover{background-color:rgb(var(--grey-50))}.univer-formula-box .univer-formula-bar .univer-formula-icon-wrapper .univer-icon-container-fx{cursor:pointer}.univer-formula-box .univer-formula-bar .univer-formula-icon-wrapper .univer-icon-container-fx:hover{background-color:rgb(var(--grey-50))}.univer-formula-box .univer-formula-bar .univer-formula-input{overflow:hidden;display:flex;flex:1;width:100%;padding:0 0 0 10px}.univer-formula-box .univer-formula-bar .univer-formula-input .univer-formula-content{position:relative;width:100%;height:100%;word-wrap:break-word;outline:none}.univer-formula-box .univer-formula-bar .univer-formula-input .univer-arrow-container{cursor:pointer;display:flex;align-items:center;justify-content:center;width:20px;height:100%;font-size:var(--font-size-xs);color:rgb(var(--text-color-secondary))}.univer-formula-box .univer-formula-bar .univer-formula-input .univer-arrow-container-disable{color:rgb(var(--grey-200));cursor:not-allowed}.univer-operate-container{position:absolute;z-index:10;right:0;left:0;width:0;height:0}.univer-auto-fill-popup-menu{display:grid;gap:var(--margin-xxs);align-items:center;box-sizing:border-box;min-width:128px;margin-top:0;margin-bottom:0;padding:var(--padding-sm);font-size:var(--font-size-base);background-color:rgb(var(--bg-color-secondary));border:1px solid rgb(var(--border-color));border-radius:var(--border-radius-lg);box-shadow:var(--box-shadow-lg)}.univer-auto-fill-popup-menu li{list-style:none}.univer-auto-fill-popup-menu-item{cursor:pointer;position:relative;display:flex;align-items:center;box-sizing:border-box;width:134px;height:28px;padding:var(--padding-xs) 0 var(--padding-xs) 36px;font-size:13px;font-weight:400;font-style:normal;line-height:20px;color:rgb(var(--black, #35322b));text-align:left;border-radius:4px;border-radius:var(--border-radius-base);transition:background .2s}.univer-auto-fill-popup-menu-item:hover{background-color:rgb(var(--bg-color-hover))}.univer-auto-fill-popup-menu-item-icon{position:absolute;top:50%;left:var(--padding-xs);transform:translateY(-50%);display:flex;align-items:center;justify-content:center}.univer-auto-fill-popup-menu-item-title{padding:var(--padding-xs) var(--padding-xs) var(--padding-xs) 0;vertical-align:middle}.univer-auto-fill-popup-menu-item-hide{color:rgb(var(--text-color-secondary))}.univer-auto-fill-popup-menu-item:hover{background:rgb(var(--grey-100))}.univer-btn-container{display:flex;align-items:center;justify-content:center;padding:3px;background:#fff;border:1px solid rgb(var(--grey-200, #e5e5e5));border-radius:4px}.univer-btn-container:hover,.univer-btn-container.univer-btn-container-expand{background:rgb(var(--grey-100, #f5f5f5))}.univer-sheet-bar{position:relative;display:flex;flex:1 1 0px;flex-direction:row;min-width:calc(100% - 592px);max-width:calc(100% - 260px);height:100%;background-color:rgb(var(--bg-color))}.univer-sheet-bar-options{display:flex;flex-direction:row;align-items:center;margin:var(--margin-xxs);transition:display .2s}.univer-sheet-bar-options-divider:after{content:"";display:block;width:1px;height:16px;margin:0 var(--margin-xs);background-color:rgb(var(--grey-400))}.univer-sheet-bar-btn{cursor:pointer;display:flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;font-size:var(--font-size-lg);color:rgb(var(--text-color-secondary-darker));background-color:transparent;border:none;border-radius:var(--border-radius-base);outline:none}.univer-sheet-bar-btn:not([disabled]):hover{background-color:rgb(var(--bg-color-hover))}.univer-sheet-bar-btn[disabled]{cursor:not-allowed;color:rgb(var(--grey-200))}.univer-sheet-bar-menu{display:grid;gap:var(--margin-xxs);align-items:center;box-sizing:border-box;padding:var(--padding-sm);background-color:rgb(var(--bg-color-secondary));border:1px solid rgb(var(--border-color));border-radius:var(--border-radius-lg);box-shadow:var(--box-shadow-lg)}.univer-sheet-bar-menu li{list-style:none}.univer-sheet-bar-menu-item{cursor:pointer;position:relative;display:flex;box-sizing:border-box;padding:var(--padding-xs) 24px;color:rgb(var(--text-color));border-radius:var(--border-radius-base);transition:background .2s}.univer-sheet-bar-menu-item:hover{background-color:rgb(var(--bg-color-hover))}.univer-sheet-bar-menu-item-icon{position:absolute;top:50%;left:var(--margin-xxs);transform:translateY(-50%);color:transparent}.univer-sheet-bar-menu-item-hide .univer-sheet-bar-menu-item-icon{display:flex;align-items:center;justify-content:center;width:16px;height:16px;color:rgb(var(--grey-400))}.univer-sheet-bar-menu-item-select{font-weight:500;color:rgb(var(--primary-color))}.univer-sheet-bar-menu-item-select .univer-sheet-bar-menu-item-icon{display:flex;align-items:center;justify-content:center;width:16px;height:16px;color:rgb(var(--primary-color))}.univer-sheet-bar-menu-item-label{font-size:var(--font-size-xs);font-weight:400;line-height:20px;display:flex;align-items:center}.univer-slide-tab-bar-container{overflow:hidden;max-width:calc(100% - 112px)}.univer-slide-tab-bar-container .univer-slide-tab-bar{user-select:none;overflow:hidden;display:flex;flex-direction:row;align-items:center;padding:var(--padding-xs) 6px;transition:box-shadow .2s}.univer-slide-tab-item{cursor:pointer;user-select:none;display:flex;flex-direction:row;flex-grow:1;align-items:center;box-sizing:border-box;margin:0 var(--margin-xxs);font-size:var(--font-size-xs);line-height:16px;color:rgb(var(--grey-1000));border-radius:var(--border-radius-base)}.univer-slide-tab-item:not(.univer-slide-tab-active):hover{background-color:rgb(var(--bg-color-hover))}.univer-slide-tab-item .univer-slide-tab-div{box-sizing:border-box;padding:var(--padding-xs) var(--padding-sm);white-space:nowrap;border:2px solid transparent;border-radius:var(--border-radius-base);display:flex;align-items:center}.univer-slide-tab-item .univer-slide-tab-div-edit{cursor:text;outline:none}.univer-slide-tab-item .univer-slide-tab-div-edit::selection{color:rgb(var(--color-white));background-color:rgb(var(--primary-color))}.univer-slide-tab-active{font-weight:700;color:rgb(var(--primary-color));background-color:rgb(var(--bg-color-secondary));box-shadow:0 0 8px #00000014;transition:box-shadow .2s;display:flex;justify-content:center}.univer-slide-tab-item-dropdown{user-select:none;min-width:auto!important}.univer-status-bar{display:flex;align-items:center;max-width:332px}.univer-status-bar.univer-single-mode{max-width:136px}.univer-status-bar-div{width:1px;height:16px;margin-left:10px;background:rgb(var(--grey-400, #ccc))}.univer-statistic-list{display:flex}.univer-statistic-list-column{flex-direction:column}.univer-statistic-list-column .univer-statistic-item{font-size:12px;line-height:140%;color:rgb(var(--grey-500))}.univer-statistic-item{cursor:default;overflow:hidden;display:flex;justify-content:flex-start;max-width:106px;margin-right:8px;font-size:var(--font-size-xxs);font-weight:400;font-style:normal;line-height:20px;color:rgb(var(--grey-900));text-align:center;text-overflow:ellipsis;white-space:nowrap}.univer-statistic-item:hover{color:rgb(var(--color-black))}.univer-statistic-picker{display:grid;gap:var(--margin-sm);align-items:center;box-sizing:border-box;width:196px;padding:var(--padding-base);font-size:var(--font-size-xs);background-color:rgb(var(--color-white));border:1px solid rgb(var(--border-color));border-radius:var(--border-radius-lg);box-shadow:var(--box-shadow-lg)}.univer-statistic-picker-item{display:flex;align-items:center;justify-content:flex-start}.univer-statistic-more{transform:rotate(90deg);display:flex;align-items:center;justify-content:center;width:24px;height:24px;font-size:12px;color:rgb(var(--grey-600, #e8e8e8));border-radius:4px}.univer-statistic-more:hover{background:rgb(var(--grey-300, #e8e8e8))}.univer-sheet-container{display:flex;align-items:center;justify-content:space-between;box-sizing:border-box;height:36px;padding:0 var(--padding-xl)}.univer-cell-alert{box-sizing:border-box;box-shadow:var(--box-shadow-base);padding:var(--padding-sm) var(--padding-base);border-radius:var(--border-radius-lg);color:rgba(var(--color-black));background:rgba(var(--color-white));z-index:100;width:156px}.univer-cell-alert-title{height:20px;font-size:var(--font-size-sm);font-weight:500;display:flex;flex-direction:row;align-items:center;margin-bottom:6px;line-height:20px}.univer-cell-alert-icon{margin-right:6px}.univer-cell-alert-icon-error{color:rgba(var(--red-400))}.univer-cell-alert-icon-info{color:rgba(var(--blue-500))}.univer-cell-alert-icon-warning{color:rgba(var(--gold-400))}.univer-cell-alert-content{font-size:var(--font-size-sm)}.univer-spin-container{position:relative;width:100%;height:100%}.univer-spin-overlay{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;justify-content:center;align-items:center;backdrop-filter:blur(10px);background-color:#ffffff80;z-index:10}.univer-spinner{width:40px;height:40px;border:4px solid #f3f3f3;border-top:4px solid #3498db;border-radius:50%;animation:univer-spin 2s linear infinite}.univer-content-blur{filter:blur(2px);pointer-events:none}@keyframes univer-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.univer-permission-panel-detail-wrapper{margin-top:16px;height:100%}.univer-radio-group-vertical{display:flex;flex-direction:column;font-weight:400}.univer-sheet-permission-design-person-panel{height:300px;border:1px solid rgb(var(--grey-200));border-radius:var(--border-radius-lg);padding:var(--padding-base);margin-bottom:var(--margin-xs);display:flex;flex-direction:column}.univer-sheet-permission-design-person-panel-header{display:flex;justify-content:space-between;align-items:center}.univer-sheet-permission-design-person-panel-header-add{cursor:pointer;color:rgb(var(--blue-500))}.univer-sheet-permission-design-person-panel-split{height:1px;background-color:rgb(var(--grey-200));margin:var(--margin-xs) 0}.univer-sheet-permission-design-person-panel-content-item{height:28px;line-height:28px;margin-bottom:var(--margin-sm);display:flex;align-items:center}.univer-sheet-permission-design-person-panel-content-item:last-child{margin-bottom:0}.univer-sheet-permission-design-person-panel-content-item-name{width:130px;color:rgb(var(--color-black));white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-left:6px}.univer-sheet-permission-design-person-panel-content-item-select{width:90px;cursor:pointer}.univer-sheet-permission-design-person-panel .univer-sheet-permission-design-person-panel-content-item-select.univer-select-single:not(.univer-select-customize-input) .univer-select-selector{border:none;padding:0;color:rgb(var(--grey-900))}.univer-sheet-permission-design-person-panel .univer-sheet-permission-design-person-panel-content-item-select.univer-select-show-arrow .univer-select-arrow{right:0}.univer-sheet-permission-design-person-panel-content{flex:1}.univer-sheet-permission-panel-title{font-weight:500}.univer-permission-range-selector{font-weight:400}.univer-permission-range-selector-error,.univer-sheet-permission-panel-name-input-error,.univer-permission-range-selector-error:hover,.univer-sheet-permission-panel-name-input-error:hover{border:1px solid rgb(var(--red-400))}.univer-permission-range-selector-error-text,.univer-sheet-permission-panel-name-input-error-text{height:20px;line-height:20px;color:rgb(var(--red-400));font-size:var(--font-size-xs);font-weight:400}.univer-sheet-permission-list-panel-wrapper{margin-top:var(--margin-xs);height:100%}.univer-sheet-permission-list-panel-header{display:flex;padding:var(--padding-sm) 0;height:30px}.univer-sheet-permission-list-panel-header-type{display:flex;flex-direction:column;align-items:center;margin-right:var(--margin-lg);cursor:pointer}.univer-sheet-permission-list-panel-header-type div{height:24px;line-height:24px}.univer-sheet-permission-list-panel-header-type-bottom{height:2px;width:24px;background-color:rgb(var(--blue-500));margin-top:var(--margin-xxs)}.univer-sheet-permission-list-panel-header-select{color:rgb(var(--blue-500));height:24px;line-height:24px;font-size:var(--font-size-lg);font-weight:500}.univer-sheet-permission-list-item-header-icon{border-radius:var(--border-radius-base);height:24px;padding:4px;box-sizing:border-box}.univer-sheet-permission-list-item-header-icon:hover{background-color:rgb(var(--grey-200))}.univer-sheet-permission-list-item{margin-top:var(--margin-sm);border-radius:var(--border-radius-lg);border:1px solid rgb(var(--grey-200));padding:var(--padding-base)}.univer-sheet-permission-list-item:hover{background-color:rgb(var(--grey-50))}.univer-sheet-permission-list-item-header{height:20px;line-height:20px;display:flex;justify-content:space-between}.univer-sheet-permission-list-item-header-name{font-weight:500;max-width:200px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.univer-sheet-permission-list-item-header-operator{display:flex;align-items:center}.univer-sheet-permission-list-item-header-operator div{margin-left:var(--margin-xs)}.univer-sheet-permission-list-item-split{height:1px;background-color:rgb(var(--grey-200));margin:var(--margin-xs) 0}.univer-sheet-permission-list-item-content-edit{display:flex;align-items:center}.univer-sheet-permission-list-item-content-view{display:flex;align-items:center;margin-top:var(--margin-xs)}.univer-sheet-permission-list-item-content-desc{font-size:12px;color:rgb(var(--grey-400));max-width:256px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:var(--margin-xs)}.univer-sheet-permission-list-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%}.univer-sheet-permission-list-empty-text{width:240px;word-wrap:break-word;color:rgb(var(--grey-400));font-size:13px}.univer-sheet-permission-list-item-content-title{font-size:12px;height:16px;line-height:16px;flex-grow:1;color:rgb(var(--color-black))}.univer-sheet-permission-list-item-content-sub{font-size:12px;height:16px;line-height:16px;color:rgb(var(--grey-600))}.univer-sheet-permission-panel-footer{display:flex;flex-direction:row-reverse}.univer-sheet-permission-panel-footer-cancel{margin-right:12px}.univer-sheet-permission-panel-add-button{width:100%;display:flex;align-items:center;justify-content:center}.univer-sheet-permission-panel-add-button div{margin-right:4px}.univer-sheet-permission-user-dialog-wrapper{height:329px;padding:var(--padding-base);box-sizing:content-box}.univer-sheet-permission-user-dialog-search-input{width:256px;height:32px}.univer-sheet-permission-user-list{height:240px;overflow-y:auto}.univer-sheet-permission-user-list-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%}.univer-sheet-permission-user-list-empty-text{width:240px;word-wrap:break-word;color:rgb(var(--grey-400));font-size:13px}.univer-sheet-permission-user-item{display:flex;align-items:center;margin:var(--margin-xs) 0;border-radius:6px;padding:var(--padding-xs) var(--padding-sm)}.univer-sheet-permission-user-item:hover{background-color:rgb(var(--grey-50))}.univer-sheet-permission-user-item div{margin-left:6px}.univer-sheet-permission-user-item-name{width:186px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.univer-sheet-permission-split{height:1px;background-color:rgb(var(--grey-200))}.univer-sheet-permission-user-dialog-footer{height:36px;padding:var(--padding-xs) 0;display:flex;justify-content:flex-end;align-items:center;margin-top:var(--margin-xs);height:28px}.univer-sheet-permission-user-dialog-button{height:28px;line-height:28px;padding:0px var(--padding-base)}.univer-sheet-permission-dialog-wrapper{display:flex;flex-direction:column;padding:2px}.univer-sheet-permission-dialog-split{height:1px;background-color:rgb(var(--grey-200))}.univer-sheet-permission-dialog-item{display:flex;align-items:center;justify-content:space-between;height:20px;line-height:20px;margin:6px 0}.univer-sheet-permission-user-dialog-footer{height:36px;padding:var(--padding-xs) 0;display:flex;justify-content:flex-end;align-items:center;margin-top:var(--margin-xs)}.univer-sheet-permission-user-dialog-footer-confirm{margin-left:var(--margin-sm)}.univer-sheet-permission-user-dialog-button{height:32px;line-height:32px;padding:0px var(--padding-base)}.univer-sheet-permission-alert-dialog{padding:var(--padding-xl) 24px}.univer-sheet-permission-alert-dialog-title{font-size:var(--font-size-lg);font-weight:500;margin-bottom:var(--margin-base)}.univer-sheet-permission-alert-dialog-button{margin-top:var(--margin-lg);display:flex;justify-content:flex-end}.sheet-permission-user-dialog .univer-dialog-close,.sheet-permission-user-dialog .univer-dialog-header{display:none}.sheet-permission-user-dialog .univer-dialog-body{padding:0}.univer-mobile-sheet-bar-container{width:100%;overflow-x:scroll;height:32px;background-color:rgb(var(--bg-color))}.univer-mobile-sheet-bar-slider{display:flex;flex-wrap:nowrap;align-items:center;height:32px}.univer-mobile-sheet-bar-item{align-items:center;box-sizing:border-box;flex-grow:1;flex-shrink:0;flex-wrap:nowrap;font-size:12px;height:100%;line-height:28px;min-width:48px;overflow:hidden;padding:2px 4px;text-align:center;white-space:nowrap;border-right:1px solid rgb(var(--border-color));background-color:rgb(var(--bg-color));text-overflow:ellipsis;max-width:120px}.univer-mobile-sheet-bar-item.univer-mobile-sheet-bar-item-activated{color:rgb(var(--primary-color));background-color:rgb(var(--bg-color-secondary))}
1
+ .univer-ui-plugin-sheets-border-panel{display:grid;gap:var(--margin-sm)}.univer-ui-plugin-sheets-border-panel-position{display:grid;grid-template-columns:repeat(5,1fr);gap:var(--margin-xxs);box-sizing:border-box;padding-bottom:var(--padding-base);border-bottom:1px solid rgb(var(--border-color))}.univer-ui-plugin-sheets-border-panel-position-item{display:flex;align-items:center;justify-content:center;width:24px;height:24px;font-size:var(--font-size-lg);border-radius:var(--border-radius-base)}.univer-ui-plugin-sheets-border-panel-position-item:hover,.univer-ui-plugin-sheets-border-panel-position-item-active{background-color:rgb(var(--bg-color-hover))}.univer-ui-plugin-sheets-border-panel-styles{display:flex;gap:var(--margin-xs);align-items:center;justify-content:space-around}.univer-ui-plugin-sheets-border-panel-board{box-sizing:border-box;padding:var(--padding-base);background-color:rgb(var(--bg-color-secondary));border:1px solid rgb(var(--border-color));border-radius:var(--border-radius-lg);box-shadow:var(--box-shadow-base)}.univer-ui-plugin-sheets-border-panel-button{cursor:pointer;position:relative;display:flex;gap:var(--margin-xs);align-items:center;height:24px;padding:0 var(--padding-xs);font-size:var(--font-size-lg);border-radius:var(--border-radius-base);transition:all .15s}.univer-ui-plugin-sheets-border-panel-button:hover{background-color:rgb(var(--bg-color-hover))}.univer-ui-plugin-sheets-border-panel-more-icon{color:rgb(var(--grey-400))}.univer-sheets-ui-context-menu-input{display:flex;gap:var(--margin-sm);align-items:center}.univer-sheets-ui-context-menu-input-container{width:72px}.univer-sheets-ui-context-menu-input-number{height:24px}.univer-count-bar{display:flex;flex:0 0 260px;justify-content:flex-end}.univer-editor-container{position:absolute;z-index:10;top:200px;left:100px;display:flex;width:100px;height:50px;border:1px solid rgb(var(--primary-color));box-shadow:none;box-sizing:border-box}.univer-editor-container .univer-editor-input{position:relative;display:flex;width:100%;height:100%}.univer-editor-container .univer-editor-input canvas{position:absolute}.univer-defined-name{display:flex;position:relative;transition:height .15s;border-right:1px solid rgb(var(--border-color));height:100%;width:100px;box-sizing:border-box}.univer-defined-name-drop-down{display:flex;align-items:center;justify-content:center;padding:0 var(--padding-xs);cursor:pointer;position:absolute;right:0;height:100%}.univer-defined-name-drop-down:hover{background-color:rgb(var(--grey-50));color:rgb(var(--primary-color))}.univer-defined-name-drop-down-disable{color:rgb(var(--grey-200));cursor:not-allowed}.univer-defined-name-drop-down-disable:hover{color:rgb(var(--grey-200))}.univer-defined-name-overlay{position:relative;border:1px solid rgb(var(--border-color));width:300px;background-color:rgb(var(--color-white));transform:translate(-75px)}.univer-defined-name-overlay-container{position:relative;height:100%;max-height:400px;width:100%;overflow:hidden;overflow-y:auto;scrollbar-color:rgba(var(--scrollbar-color),.7) transparent;scrollbar-gutter:auto;scrollbar-width:thin}.univer-defined-name-overlay-item{display:flex;align-items:center;justify-content:space-between;padding:var(--padding-xs);border-bottom:1px solid rgb(var(--border-color));user-select:none;cursor:pointer}.univer-defined-name-overlay-item:hover{background-color:rgb(var(--grey-50))}.univer-defined-name-overlay-item-name{font-size:var(--font-size-md);color:rgb(var(--grey-900));margin:5px 0;overflow:hidden;text-overflow:ellipsis;flex:1}.univer-defined-name-overlay-item-name-for-sheet{font-size:var(--font-size-xxs);color:rgb(var(--grey-400));margin-left:5px;font-weight:400}.univer-defined-name-overlay-item-formula{font-size:var(--font-size-xs);color:rgb(var(--grey-800));margin:5px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}.univer-defined-name-overlay-manager{position:absolute;display:flex;flex-direction:column;overflow-y:auto;width:100%;cursor:pointer;overflow:hidden;background-color:rgb(var(--color-white))}.univer-defined-name-overlay-manager:hover{background-color:rgb(var(--grey-50))}.univer-defined-name-overlay-manager-title{font-size:var(--font-size-xs);font-weight:700;margin:var(--margin-xs);margin-bottom:0;color:rgb(var(--grey-800))}.univer-defined-name-overlay-manager-content{font-size:var(--font-size-xxs);margin:var(--margin-xs);color:rgb(var(--grey-500))}.univer-defined-name-container{width:100%;position:relative}.univer-defined-name-container-scroll{width:100%;overflow:hidden;overflow-y:auto;position:absolute}.univer-defined-name-container-addButton{display:flex;align-items:center;justify-content:center;width:100%;height:40px;border-top:1px solid rgb(var(--border-color));border-bottom:1px solid rgb(var(--border-color));font-size:var(--font-size-md);color:rgb(var(--primary-color))}.univer-defined-name-container-addButton:hover{background-color:rgb(var(--grey-50));cursor:pointer}.univer-defined-name-container-addButton-text{margin-left:5px}.univer-defined-name-container-item{position:relative;display:flex;align-items:center;justify-content:space-between;padding:var(--padding-xs);border-bottom:1px solid rgb(var(--border-color));user-select:none;cursor:default}.univer-defined-name-container-item-name{font-size:var(--font-size-sm);font-weight:500;color:rgb(var(--color-black));margin:5px 0;max-width:190px;max-height:100px;overflow:hidden}.univer-defined-name-container-item-name-for-sheet{font-size:var(--font-size-xxs);color:rgb(var(--grey-400));margin-left:5px;font-weight:400}.univer-defined-name-container-item-formula-or-refString{font-size:var(--font-size-xs);color:rgb(var(--grey-500));font-weight:400;margin:5px 0;max-height:100px;text-overflow:ellipsis;overflow:hidden}.univer-defined-name-container-item-update{position:absolute;font-size:var(--font-size-xs);color:rgb(var(--primary-color));cursor:pointer;padding:4px;transform:translateY(-50%);border-radius:var(--border-radius-base);right:60px;top:20px}.univer-defined-name-container-item-update:hover{background-color:rgb(var(--hyacinth-50))}.univer-defined-name-container-item-delete{position:absolute;font-size:var(--font-size-xs);color:rgb(var(--error-color));cursor:pointer;padding:4px;right:20px;top:20px;transform:translateY(-50%);border-radius:var(--border-radius-base)}.univer-defined-name-container-item-delete:hover{background-color:rgb(var(--hyacinth-50))}.univer-defined-name-container-item-show{display:none}.univer-defined-name-container-item:hover{background-color:rgb(var(--grey-50))}.univer-defined-name-container-item:hover .univer-defined-name-container-item-show{display:block}.univer-defined-name-input{display:flex;align-items:center;justify-content:left;border-bottom:1px solid rgb(var(--border-color));padding-bottom:5px}.univer-defined-name-input>div{width:100%;margin-top:5px}.univer-defined-name-input-validation{display:flex;align-items:center;justify-content:left;color:rgb(var(--error-color));font-size:var(--font-size-xs)}.univer-defined-name-input-validation>span{margin-right:2px}.univer-defined-name-input-disable{color:rgb(var(--grey-200));cursor:not-allowed}.univer-formula-box{display:flex;box-sizing:border-box;height:28px;background:rgb(var(--bg-color-secondary));border-bottom:1px solid rgb(var(--border-color));transition:height .15s}.univer-formula-box .univer-name-ranges{box-sizing:border-box;width:100px;height:100%;position:relative}.univer-formula-box .univer-formula-bar{display:flex;width:100%;height:100%}.univer-formula-box .univer-formula-bar .univer-formula-icon{padding:6px 0}.univer-formula-box .univer-formula-bar .univer-formula-icon-disable{color:rgb(var(--grey-200));cursor:not-allowed}.univer-formula-box .univer-formula-bar .univer-formula-icon-wrapper{position:relative;display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:80px;height:100%;font-size:var(--font-size-xs);border-right:1px solid rgb(var(--border-color))}.univer-formula-box .univer-formula-bar .univer-formula-icon-wrapper .univer-icon-container{display:flex;align-items:center;justify-content:center;padding:var(--padding-xs);font-size:var(--font-size-lg);border-radius:var(--border-radius-base)}.univer-formula-box .univer-formula-bar .univer-formula-icon-wrapper .univer-icon-container-success.univer-formula-active{cursor:pointer;color:rgb(var(--success-color))}.univer-formula-box .univer-formula-bar .univer-formula-icon-wrapper .univer-icon-container-success.univer-formula-active:hover{background-color:rgb(var(--grey-50))}.univer-formula-box .univer-formula-bar .univer-formula-icon-wrapper .univer-icon-container-error.univer-formula-active{cursor:pointer;color:rgb(var(--error-color))}.univer-formula-box .univer-formula-bar .univer-formula-icon-wrapper .univer-icon-container-error.univer-formula-active:hover{background-color:rgb(var(--grey-50))}.univer-formula-box .univer-formula-bar .univer-formula-icon-wrapper .univer-icon-container-fx{cursor:pointer}.univer-formula-box .univer-formula-bar .univer-formula-icon-wrapper .univer-icon-container-fx:hover{background-color:rgb(var(--grey-50))}.univer-formula-box .univer-formula-bar .univer-formula-input{overflow:hidden;display:flex;flex:1;width:100%;padding:0 0 0 10px}.univer-formula-box .univer-formula-bar .univer-formula-input .univer-formula-content{position:relative;width:100%;height:100%;word-wrap:break-word;outline:none}.univer-formula-box .univer-formula-bar .univer-formula-input .univer-arrow-container{cursor:pointer;display:flex;align-items:center;justify-content:center;width:20px;height:100%;font-size:var(--font-size-xs);color:rgb(var(--text-color-secondary))}.univer-formula-box .univer-formula-bar .univer-formula-input .univer-arrow-container-disable{color:rgb(var(--grey-200));cursor:not-allowed}.univer-operate-container{position:absolute;z-index:10;right:0;left:0;width:0;height:0}.univer-auto-fill-popup-menu{display:grid;gap:var(--margin-xxs);align-items:center;box-sizing:border-box;min-width:128px;margin-top:0;margin-bottom:0;padding:var(--padding-sm);font-size:var(--font-size-base);background-color:rgb(var(--bg-color-secondary));border:1px solid rgb(var(--border-color));border-radius:var(--border-radius-lg);box-shadow:var(--box-shadow-lg)}.univer-auto-fill-popup-menu li{list-style:none}.univer-auto-fill-popup-menu-item{cursor:pointer;position:relative;display:flex;align-items:center;box-sizing:border-box;width:134px;height:28px;padding:var(--padding-xs) 0 var(--padding-xs) 36px;font-size:13px;font-weight:400;font-style:normal;line-height:20px;color:rgb(var(--black, #35322b));text-align:left;border-radius:4px;border-radius:var(--border-radius-base);transition:background .2s}.univer-auto-fill-popup-menu-item:hover{background-color:rgb(var(--bg-color-hover))}.univer-auto-fill-popup-menu-item-icon{position:absolute;top:50%;left:var(--padding-xs);transform:translateY(-50%);display:flex;align-items:center;justify-content:center}.univer-auto-fill-popup-menu-item-title{padding:var(--padding-xs) var(--padding-xs) var(--padding-xs) 0;vertical-align:middle}.univer-auto-fill-popup-menu-item-hide{color:rgb(var(--text-color-secondary))}.univer-auto-fill-popup-menu-item:hover{background:rgb(var(--grey-100))}.univer-btn-container{display:flex;align-items:center;justify-content:center;padding:3px;background:#fff;border:1px solid rgb(var(--grey-200, #e5e5e5));border-radius:4px}.univer-btn-container:hover,.univer-btn-container.univer-btn-container-expand{background:rgb(var(--grey-100, #f5f5f5))}.univer-sheet-bar{position:relative;display:flex;flex:1 1 0px;flex-direction:row;min-width:calc(100% - 592px);max-width:calc(100% - 260px);height:100%;background-color:rgb(var(--bg-color-secondary))}.univer-sheet-bar-options{display:flex;flex-direction:row;align-items:center;margin:var(--margin-xxs);transition:display .2s}.univer-sheet-bar-options-divider:after{content:"";display:block;width:1px;height:16px;margin:0 var(--margin-xs);background-color:rgb(var(--grey-400))}.univer-sheet-bar-btn{cursor:pointer;display:flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;font-size:var(--font-size-lg);color:rgb(var(--text-color-secondary-darker));background-color:transparent;border:none;border-radius:var(--border-radius-base);outline:none}.univer-sheet-bar-btn:not([disabled]):hover{background-color:rgb(var(--bg-color-hover))}.univer-sheet-bar-btn[disabled]{cursor:not-allowed;color:rgb(var(--grey-200))}.univer-sheet-bar-menu{display:grid;gap:var(--margin-xxs);align-items:center;box-sizing:border-box;padding:var(--padding-sm);background-color:rgb(var(--bg-color-secondary));border:1px solid rgb(var(--border-color));border-radius:var(--border-radius-lg);box-shadow:var(--box-shadow-lg)}.univer-sheet-bar-menu li{list-style:none}.univer-sheet-bar-menu-item{cursor:pointer;position:relative;display:flex;box-sizing:border-box;padding:var(--padding-xs) 24px;color:rgb(var(--text-color));border-radius:var(--border-radius-base);transition:background .2s}.univer-sheet-bar-menu-item:hover{background-color:rgb(var(--bg-color-hover))}.univer-sheet-bar-menu-item-icon{position:absolute;top:50%;left:var(--margin-xxs);transform:translateY(-50%);color:transparent}.univer-sheet-bar-menu-item-hide .univer-sheet-bar-menu-item-icon{display:flex;align-items:center;justify-content:center;width:16px;height:16px;color:rgb(var(--grey-400))}.univer-sheet-bar-menu-item-select{font-weight:500;color:rgb(var(--primary-color))}.univer-sheet-bar-menu-item-select .univer-sheet-bar-menu-item-icon{display:flex;align-items:center;justify-content:center;width:16px;height:16px;color:rgb(var(--primary-color))}.univer-sheet-bar-menu-item-label{font-size:var(--font-size-xs);font-weight:400;line-height:20px;display:flex;align-items:center}.univer-slide-tab-bar-container{overflow:hidden;max-width:calc(100% - 112px)}.univer-slide-tab-bar-container .univer-slide-tab-bar{user-select:none;overflow:hidden;display:flex;flex-direction:row;align-items:center;padding:var(--padding-xs) 6px;transition:box-shadow .2s}.univer-slide-tab-item{cursor:pointer;user-select:none;display:flex;flex-direction:row;flex-grow:1;align-items:center;box-sizing:border-box;margin:0 var(--margin-xxs);font-size:var(--font-size-xs);line-height:16px;color:rgb(var(--grey-1000));border-radius:var(--border-radius-base)}.univer-slide-tab-item:not(.univer-slide-tab-active):hover{background-color:rgb(var(--bg-color-hover))}.univer-slide-tab-item .univer-slide-tab-div{box-sizing:border-box;padding:var(--padding-xs) var(--padding-sm);white-space:nowrap;border:2px solid transparent;border-radius:var(--border-radius-base);display:flex;align-items:center}.univer-slide-tab-item .univer-slide-tab-div-edit{cursor:text;outline:none}.univer-slide-tab-item .univer-slide-tab-div-edit::selection{color:rgb(var(--color-white));background-color:rgb(var(--primary-color))}.univer-slide-tab-active{font-weight:700;color:rgb(var(--primary-color));background-color:rgb(var(--bg-color-secondary));box-shadow:0 0 8px #00000014;transition:box-shadow .2s;display:flex;justify-content:center}.univer-slide-tab-item-dropdown{user-select:none;min-width:auto!important}.univer-status-bar{display:flex;align-items:center;max-width:332px}.univer-status-bar.univer-single-mode{max-width:136px}.univer-status-bar-div{width:1px;height:16px;margin-left:10px;background:rgb(var(--grey-400, #ccc))}.univer-statistic-list{display:flex}.univer-statistic-list-column{flex-direction:column}.univer-statistic-list-column .univer-statistic-item{font-size:12px;line-height:140%;color:rgb(var(--grey-500))}.univer-statistic-item{cursor:default;overflow:hidden;display:flex;justify-content:flex-start;max-width:106px;margin-right:8px;font-size:var(--font-size-xxs);font-weight:400;font-style:normal;line-height:20px;color:rgb(var(--grey-900));text-align:center;text-overflow:ellipsis;white-space:nowrap}.univer-statistic-item:hover{color:rgb(var(--color-black))}.univer-statistic-picker{display:grid;gap:var(--margin-sm);align-items:center;box-sizing:border-box;width:196px;padding:var(--padding-base);font-size:var(--font-size-xs);background-color:rgb(var(--color-white));border:1px solid rgb(var(--border-color));border-radius:var(--border-radius-lg);box-shadow:var(--box-shadow-lg)}.univer-statistic-picker-item{display:flex;align-items:center;justify-content:flex-start}.univer-statistic-more{transform:rotate(90deg);display:flex;align-items:center;justify-content:center;width:24px;height:24px;font-size:12px;color:rgb(var(--grey-600, #e8e8e8));border-radius:4px}.univer-statistic-more:hover{background:rgb(var(--grey-300, #e8e8e8))}.univer-sheet-container{display:flex;align-items:center;justify-content:space-between;box-sizing:border-box;height:36px;padding:0 var(--padding-xl);background-color:rgb(var(--bg-color-secondary))}.univer-cell-alert{box-sizing:border-box;box-shadow:var(--box-shadow-base);padding:var(--padding-sm) var(--padding-base);border-radius:var(--border-radius-lg);color:rgba(var(--color-black));background:rgba(var(--color-white));z-index:100;width:156px}.univer-cell-alert-title{height:20px;font-size:var(--font-size-sm);font-weight:500;display:flex;flex-direction:row;align-items:center;margin-bottom:6px;line-height:20px}.univer-cell-alert-icon{margin-right:6px}.univer-cell-alert-icon-error{color:rgba(var(--red-400))}.univer-cell-alert-icon-info{color:rgba(var(--blue-500))}.univer-cell-alert-icon-warning{color:rgba(var(--gold-400))}.univer-cell-alert-content{font-size:var(--font-size-sm)}.univer-sheet-permission-list-panel-wrapper{margin-top:var(--margin-xs);height:100%}.univer-sheet-permission-list-panel-header{display:flex;padding:var(--padding-sm) 0;height:30px}.univer-sheet-permission-list-panel-header-type{display:flex;flex-direction:column;align-items:center;margin-right:var(--margin-lg);cursor:pointer}.univer-sheet-permission-list-panel-header-type div{height:24px;line-height:24px}.univer-sheet-permission-list-panel-header-type-bottom{height:2px;width:24px;background-color:rgb(var(--blue-500));margin-top:var(--margin-xxs)}.univer-sheet-permission-list-panel-header-select{color:rgb(var(--blue-500));height:24px;line-height:24px;font-size:var(--font-size-lg);font-weight:500}.univer-sheet-permission-list-item-header-icon{border-radius:var(--border-radius-base);height:24px;padding:4px;box-sizing:border-box}.univer-sheet-permission-list-item-header-icon:hover{background-color:rgb(var(--grey-200))}.univer-sheet-permission-list-item{margin-top:var(--margin-sm);border-radius:var(--border-radius-lg);border:1px solid rgb(var(--grey-200));padding:var(--padding-base)}.univer-sheet-permission-list-item:hover{background-color:rgb(var(--grey-50))}.univer-sheet-permission-list-item-header{height:20px;line-height:20px;display:flex;justify-content:space-between}.univer-sheet-permission-list-item-header-name{font-weight:500;max-width:200px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.univer-sheet-permission-list-item-header-operator{display:flex;align-items:center}.univer-sheet-permission-list-item-header-operator div{margin-left:var(--margin-xs)}.univer-sheet-permission-list-item-split{height:1px;background-color:rgb(var(--grey-200));margin:var(--margin-xs) 0}.univer-sheet-permission-list-item-content-edit{display:flex;align-items:center}.univer-sheet-permission-list-item-content-view{display:flex;align-items:center;margin-top:var(--margin-xs)}.univer-sheet-permission-list-item-content-desc{font-size:12px;color:rgb(var(--grey-400));max-width:256px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:var(--margin-xs)}.univer-sheet-permission-list-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%}.univer-sheet-permission-list-empty-text{width:240px;word-wrap:break-word;color:rgb(var(--grey-400));font-size:13px}.univer-sheet-permission-list-item-content-title{font-size:12px;height:16px;line-height:16px;flex-grow:1;color:rgb(var(--color-black))}.univer-sheet-permission-list-item-content-sub{font-size:12px;height:16px;line-height:16px;color:rgb(var(--grey-600))}.univer-spin-container{position:relative;width:100%;height:100%}.univer-spin-overlay{position:absolute;top:-2px;left:-2px;right:-2px;bottom:-2px;display:flex;justify-content:center;align-items:center;backdrop-filter:blur(10px);background-color:#ffffff80;z-index:10}.univer-spinner{width:40px;height:40px;border:4px solid #f3f3f3;border-top:4px solid #3498db;border-radius:50%;animation:univer-spin 2s linear infinite}.univer-content-blur{filter:blur(2px);pointer-events:none}@keyframes univer-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.univer-permission-panel-detail-wrapper{margin-top:16px;height:100%}.univer-radio-group-vertical{display:flex;flex-direction:column;font-weight:400}.univer-sheet-permission-design-person-panel{height:300px;border:1px solid rgb(var(--grey-200));border-radius:var(--border-radius-lg);padding:var(--padding-base);margin-bottom:var(--margin-xs);display:flex;flex-direction:column}.univer-sheet-permission-design-person-panel-header{display:flex;justify-content:space-between;align-items:center}.univer-sheet-permission-design-person-panel-header-add{cursor:pointer;color:rgb(var(--blue-500))}.univer-sheet-permission-design-person-panel-split{height:1px;background-color:rgb(var(--grey-200));margin:var(--margin-xs) 0}.univer-sheet-permission-design-person-panel-content-item{height:28px;line-height:28px;margin-bottom:var(--margin-sm);display:flex;align-items:center}.univer-sheet-permission-design-person-panel-content-item:last-child{margin-bottom:0}.univer-sheet-permission-design-person-panel-content-item-name{width:130px;color:rgb(var(--color-black));white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-left:6px}.univer-sheet-permission-design-person-panel-content-item-select{width:90px;cursor:pointer}.univer-sheet-permission-design-person-panel .univer-sheet-permission-design-person-panel-content-item-select.univer-select-single:not(.univer-select-customize-input) .univer-select-selector{border:none;padding:0;color:rgb(var(--grey-900))}.univer-sheet-permission-design-person-panel .univer-sheet-permission-design-person-panel-content-item-select.univer-select-show-arrow .univer-select-arrow{right:0}.univer-sheet-permission-design-person-panel-content{flex:1}.univer-sheet-permission-panel-title{font-weight:500}.univer-permission-range-selector{font-weight:400}.univer-permission-range-selector-error,.univer-sheet-permission-panel-name-input-error,.univer-permission-range-selector-error:hover,.univer-sheet-permission-panel-name-input-error:hover{border:1px solid rgb(var(--red-400))}.univer-permission-range-selector-error-text,.univer-sheet-permission-panel-name-input-error-text{height:20px;line-height:20px;color:rgb(var(--red-400));font-size:var(--font-size-xs);font-weight:400}.univer-sheet-permission-panel-footer{display:flex;flex-direction:row-reverse}.univer-sheet-permission-panel-footer-cancel{margin-right:12px}.univer-sheet-permission-panel-add-button{width:100%;display:flex;align-items:center;justify-content:center}.univer-sheet-permission-panel-add-button div{margin-right:4px}.univer-sheet-permission-user-dialog-wrapper{height:329px;padding:var(--padding-base);box-sizing:content-box}.univer-sheet-permission-user-dialog-search-input{width:256px;height:32px}.univer-sheet-permission-user-list{height:240px;overflow-y:auto}.univer-sheet-permission-user-list-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%}.univer-sheet-permission-user-list-empty-text{width:240px;word-wrap:break-word;color:rgb(var(--grey-400));font-size:13px}.univer-sheet-permission-user-item{display:flex;align-items:center;margin:var(--margin-xs) 0;border-radius:6px;padding:var(--padding-xs) var(--padding-sm)}.univer-sheet-permission-user-item:hover{background-color:rgb(var(--grey-50))}.univer-sheet-permission-user-item div{margin-left:6px}.univer-sheet-permission-user-item-name{width:186px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.univer-sheet-permission-split{height:1px;background-color:rgb(var(--grey-200))}.univer-sheet-permission-user-dialog-footer{height:36px;padding:var(--padding-xs) 0;display:flex;justify-content:flex-end;align-items:center;margin-top:var(--margin-xs);height:28px}.univer-sheet-permission-user-dialog-button{height:28px;line-height:28px;padding:0px var(--padding-base)}.univer-sheet-permission-dialog-wrapper{display:flex;flex-direction:column;padding:2px}.univer-sheet-permission-dialog-split{height:1px;background-color:rgb(var(--grey-200))}.univer-sheet-permission-dialog-item{display:flex;align-items:center;justify-content:space-between;height:20px;line-height:20px;margin:6px 0}.univer-sheet-permission-user-dialog-footer{height:36px;padding:var(--padding-xs) 0;display:flex;justify-content:flex-end;align-items:center;margin-top:var(--margin-xs)}.univer-sheet-permission-user-dialog-footer-confirm{margin-left:var(--margin-sm)}.univer-sheet-permission-user-dialog-button{height:32px;line-height:32px;padding:0px var(--padding-base)}.univer-sheet-permission-alert-dialog{padding:var(--padding-xl) 24px}.univer-sheet-permission-alert-dialog-title{font-size:var(--font-size-lg);font-weight:500;margin-bottom:var(--margin-base)}.univer-sheet-permission-alert-dialog-button{margin-top:var(--margin-lg);display:flex;justify-content:flex-end}.sheet-permission-user-dialog .univer-dialog-close,.sheet-permission-user-dialog .univer-dialog-header{display:none}.sheet-permission-user-dialog .univer-dialog-body{padding:0}.univer-mobile-sheet-bar-container{width:100%;overflow-x:scroll;height:32px;background-color:rgb(var(--bg-color))}.univer-mobile-sheet-bar-slider{display:flex;flex-wrap:nowrap;align-items:center;height:32px}.univer-mobile-sheet-bar-item{align-items:center;box-sizing:border-box;flex-grow:1;flex-shrink:0;flex-wrap:nowrap;font-size:12px;height:100%;line-height:28px;min-width:48px;overflow:hidden;padding:2px 4px;text-align:center;white-space:nowrap;border-right:1px solid rgb(var(--border-color));background-color:rgb(var(--bg-color));text-overflow:ellipsis;max-width:120px}.univer-mobile-sheet-bar-item.univer-mobile-sheet-bar-item-activated{color:rgb(var(--primary-color));background-color:rgb(var(--bg-color-secondary))}
@@ -14,5 +14,6 @@
14
14
  * limitations under the License.
15
15
  */
16
16
  export declare enum SheetsUIPart {
17
- FILTER_PANEL_EMBED_POINT = "filter-panel-embed-point"
17
+ FILTER_PANEL_EMBED_POINT = "filter-panel-embed-point",
18
+ SHEETS_FOOTER = "sheets-footer"
18
19
  }
@@ -1,4 +1,4 @@
1
- import { DocumentDataModel, ICellData, IDocumentBody, IDocumentData, Workbook, Disposable, ICommandService, IContextService, IResourceLoaderService, IUndoRedoService, IUniverInstanceService, LocaleService } from '@univerjs/core';
1
+ import { DocumentDataModel, ICellData, IDocumentBody, IDocumentData, IStyleData, Nullable, Workbook, Disposable, ICommandService, IContextService, IResourceLoaderService, IUndoRedoService, IUniverInstanceService, LocaleService } from '@univerjs/core';
2
2
  import { TextSelectionManagerService } from '@univerjs/docs';
3
3
  import { IDocumentLayoutObject, IRenderContext, IRenderModule, IRenderManagerService, ITextSelectionRenderManager } from '@univerjs/engine-render';
4
4
  import { IEditorService, ILayoutService } from '@univerjs/ui';
@@ -88,3 +88,4 @@ export declare class EditingRenderController extends Disposable implements IRend
88
88
  }
89
89
  export declare function getCellDataByInput(cellData: ICellData, documentLayoutObject: IDocumentLayoutObject, lexerTreeBuilder: LexerTreeBuilder, getSnapshot: (data: DocumentDataModel) => IDocumentData, localeService: LocaleService, functionService: IFunctionService): ICellData | null;
90
90
  export declare function isRichText(body: IDocumentBody): boolean;
91
+ export declare function getCellStyleBySnapshot(snapshot: IDocumentData): Nullable<IStyleData>;
@@ -3,7 +3,8 @@ import { IMenuButtonItem, IMenuSelectorItem } from '@univerjs/ui';
3
3
  export declare enum SheetMenuPosition {
4
4
  ROW_HEADER_CONTEXT_MENU = "ROW_HEADER_CONTEXT_MENU",
5
5
  COL_HEADER_CONTEXT_MENU = "COL_HEADER_CONTEXT_MENU",
6
- SHEET_BAR = "SHEET_BAR"
6
+ SHEET_BAR = "SHEET_BAR",
7
+ SHEET_FOOTER = "SHEET_FOOTER"
7
8
  }
8
9
  export declare function FormatPainterMenuItemFactory(accessor: IAccessor): IMenuButtonItem;
9
10
  export declare function BoldMenuItemFactory(accessor: IAccessor): IMenuButtonItem;
@@ -1,4 +1,4 @@
1
- import { Disposable, IAuthzIoService, IPermissionService, IUniverInstanceService, UserManagerService } from '@univerjs/core';
1
+ import { Disposable, IAuthzIoService, IPermissionService, IUndoRedoService, IUniverInstanceService, UserManagerService } from '@univerjs/core';
2
2
  import { RangeProtectionRenderModel, RangeProtectionRuleModel, SheetInterceptorService, WorksheetProtectionPointModel, WorksheetProtectionRuleModel } from '@univerjs/sheets';
3
3
  import { IDialogService } from '@univerjs/ui';
4
4
  export declare class SheetPermissionInitController extends Disposable {
@@ -12,7 +12,8 @@ export declare class SheetPermissionInitController extends Disposable {
12
12
  private _worksheetProtectionPointRuleModel;
13
13
  private _sheetInterceptorService;
14
14
  private _selectionProtectionRenderModel;
15
- constructor(_univerInstanceService: IUniverInstanceService, _dialogService: IDialogService, _permissionService: IPermissionService, _authzIoService: IAuthzIoService, _rangeProtectionRuleModel: RangeProtectionRuleModel, _worksheetProtectionRuleModel: WorksheetProtectionRuleModel, _userManagerService: UserManagerService, _worksheetProtectionPointRuleModel: WorksheetProtectionPointModel, _sheetInterceptorService: SheetInterceptorService, _selectionProtectionRenderModel: RangeProtectionRenderModel);
15
+ private _undoRedoService;
16
+ constructor(_univerInstanceService: IUniverInstanceService, _dialogService: IDialogService, _permissionService: IPermissionService, _authzIoService: IAuthzIoService, _rangeProtectionRuleModel: RangeProtectionRuleModel, _worksheetProtectionRuleModel: WorksheetProtectionRuleModel, _userManagerService: UserManagerService, _worksheetProtectionPointRuleModel: WorksheetProtectionPointModel, _sheetInterceptorService: SheetInterceptorService, _selectionProtectionRenderModel: RangeProtectionRenderModel, _undoRedoService: IUndoRedoService);
16
17
  private _initRangePermissionFromSnapshot;
17
18
  private _initRangePermissionChange;
18
19
  initWorkbookPermissionChange(_unitId?: string): void;
@@ -23,4 +24,5 @@ export declare class SheetPermissionInitController extends Disposable {
23
24
  private _initUserChange;
24
25
  private _initViewModelByRangeInterceptor;
25
26
  private _initViewModelBySheetInterceptor;
27
+ refreshPermission(unitId: string, permissionId: string): void;
26
28
  }
@@ -1,18 +1,14 @@
1
- import { Disposable, Injector, IPermissionService } from '@univerjs/core';
2
- import { MenuConfig, ComponentManager, IMenuService } from '@univerjs/ui';
1
+ import { Disposable, IPermissionService } from '@univerjs/core';
2
+ import { MenuConfig, ComponentManager } from '@univerjs/ui';
3
3
  import { RangeProtectionRuleModel } from '@univerjs/sheets';
4
4
  import { IRenderContext, IRenderModule } from '@univerjs/engine-render';
5
5
  import { SheetSkeletonManagerService } from '../../services/sheet-skeleton-manager.service';
6
6
  export interface IUniverSheetsPermissionMenuConfig {
7
7
  menu: MenuConfig;
8
8
  }
9
- export declare const DefaultSheetPermissionMenuConfig: {};
10
9
  export declare class SheetPermissionRenderManagerController extends Disposable {
11
- private readonly _config;
12
- private _menuService;
13
10
  private _componentManager;
14
- private readonly _injector;
15
- constructor(_config: Partial<IUniverSheetsPermissionMenuConfig>, _menuService: IMenuService, _componentManager: ComponentManager, _injector: Injector);
11
+ constructor(_componentManager: ComponentManager);
16
12
  private _init;
17
13
  private _initComponents;
18
14
  }
@@ -10,6 +10,10 @@ export declare class SheetsZoomRenderController extends Disposable implements IR
10
10
  updateZoom(worksheetId: string, zoomRatio: number): boolean;
11
11
  private _initZoomEventListener;
12
12
  private _initSkeletonListener;
13
+ /**
14
+ * Zoom scene, resize viewport and then setScrollInfo
15
+ * @param zoomRatio
16
+ */
13
17
  private _updateViewZoom;
14
18
  private _getSheetObject;
15
19
  }
@@ -2,6 +2,7 @@ import { DependencyOverride, Disposable, ICommandService, Injector } from '@univ
2
2
  import { MenuConfig, ComponentManager, ILayoutService, IMenuService, IShortcutService, IUIPartsService } from '@univerjs/ui';
3
3
  export interface IUniverSheetsUIConfig {
4
4
  menu: MenuConfig;
5
+ disableAutoFocus?: true;
5
6
  override?: DependencyOverride;
6
7
  }
7
8
  export declare const DefaultSheetUiConfig: {};
@@ -13,7 +13,8 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- export * from './basics';
16
+ export { SheetsUIPart } from './consts/ui-name';
17
+ export { SHEET_UI_PLUGIN_NAME } from './consts/plugin-name';
17
18
  export { getEditorObject } from './basics/editor/get-editor-object';
18
19
  export { SheetsScrollRenderController } from './controllers/render-controllers/scroll.render-controller';
19
20
  export { deriveStateFromActiveSheet$, getCurrentRangeDisable$ } from './controllers/menu/menu-util';
@@ -80,6 +81,8 @@ export { SheetPrintInterceptorService } from './services/print-interceptor.servi
80
81
  export { UniverSheetsMobileUIPlugin } from './mobile-sheets-ui-plugin';
81
82
  export { MobileSheetBar } from './views/mobile/sheet-bar/MobileSheetBar';
82
83
  export { SheetPermissionInitController } from './controllers/permission/sheet-permission-init.controller';
84
+ export { IFormatPainterService } from './services/format-painter/format-painter.service';
85
+ export type { IFormatPainterBeforeApplyHookParams, IFormatPainterHook } from './services/format-painter/format-painter.service';
83
86
  export { AddWorksheetMergeCommand, AddWorksheetMergeAllCommand, AddWorksheetMergeVerticalCommand, AddWorksheetMergeHorizontalCommand } from './commands/commands/add-worksheet-merge.command';
84
87
  export { AutoFillCommand, AutoClearContentCommand } from './commands/commands/auto-fill.command';
85
88
  export { SheetCopyCommand, SheetCutCommand, SheetPasteCommand, SheetPasteValueCommand, SheetPasteShortKeyCommand, SheetPasteColWidthCommand, SheetPasteFormatCommand, SheetPasteBesidesBorderCommand, type ISheetPasteParams, } from './commands/commands/clipboard.command';
@@ -114,3 +117,4 @@ export { type IBaseSheetBarProps } from './views/sheet-bar/sheet-bar-tabs/SheetB
114
117
  export { FONT_FAMILY_COMPONENT, FONT_FAMILY_ITEM_COMPONENT } from './components/font-family/interface';
115
118
  export { FONT_SIZE_COMPONENT } from './components/font-size/interface';
116
119
  export { attachSelectionWithCoord, attachPrimaryWithCoord } from './services/selection/util';
120
+ export { SELECTION_SHAPE_DEPTH } from './services/selection/const';
@@ -29,7 +29,7 @@ export declare class SheetCanvasPopManagerService extends Disposable {
29
29
  * @param viewport target viewport
30
30
  * @returns disposable
31
31
  */
32
- attachPopupToCell(row: number, col: number, popup: ICanvasPopup, viewport?: Viewport, showOnSelectionMoving?: boolean): Nullable<IDisposable>;
32
+ attachPopupToCell(row: number, col: number, popup: ICanvasPopup, _unitId?: string, _subUnitId?: string, viewport?: Viewport, showOnSelectionMoving?: boolean): Nullable<IDisposable>;
33
33
  private _createCellPositionObserver;
34
34
  private _calcCellPositionByCell;
35
35
  }
@@ -20,17 +20,26 @@ export interface IFormatPainterHook {
20
20
  id: string;
21
21
  isDefaultHook?: boolean;
22
22
  priority?: number;
23
- onStatusChange(status: FormatPainterStatus): void;
24
- onApply(unitId: string, subUnitId: string, range: IRange, format: ISelectionFormatInfo): {
23
+ onStatusChange?(status: FormatPainterStatus): void;
24
+ onApply?(unitId: string, subUnitId: string, range: IRange, format: ISelectionFormatInfo): {
25
25
  undos: IMutationInfo[];
26
26
  redos: IMutationInfo[];
27
27
  };
28
+ onBeforeApply?(ctx: IFormatPainterBeforeApplyHookParams): boolean;
28
29
  }
29
30
  export declare enum FormatPainterStatus {
30
31
  OFF = 0,
31
32
  ONCE = 1,
32
33
  INFINITE = 2
33
34
  }
35
+ export interface IFormatPainterBeforeApplyHookParams {
36
+ unitId: string;
37
+ subUnitId: string;
38
+ range: IRange;
39
+ redoMutationsInfo: IMutationInfo[];
40
+ undoMutationsInfo: IMutationInfo[];
41
+ format: ISelectionFormatInfo;
42
+ }
34
43
  export declare const IFormatPainterService: import('@univerjs/core').IdentifierDecorator<IFormatPainterService>;
35
44
  export declare class FormatPainterService extends Disposable implements IFormatPainterService {
36
45
  private readonly _selectionManagerService;
@@ -18,6 +18,9 @@ interface IMarkSelectionInfo {
18
18
  exits: string[];
19
19
  }
20
20
  export declare const IMarkSelectionService: import('@univerjs/core').IdentifierDecorator<IMarkSelectionService>;
21
+ /**
22
+ * For condition format selection.
23
+ */
21
24
  export declare class MarkSelectionService extends Disposable implements IMarkSelectionService {
22
25
  private readonly _currentService;
23
26
  private readonly _renderManagerService;
@@ -4,9 +4,14 @@ export declare enum viewState {
4
4
  othersCanView = "othersCanView",
5
5
  noOneElseCanView = "noOneElseCanView"
6
6
  }
7
+ export declare enum editState {
8
+ designedUserCanEdit = "designedUserCanEdit",
9
+ onlyMe = "onlyMe"
10
+ }
7
11
  type IPermissionPanelBaseRule = IRangeProtectionRule | IWorksheetProtectionRule;
8
12
  export type IPermissionPanelRule = IPermissionPanelBaseRule & {
9
13
  viewStatus?: viewState;
14
+ editStatus?: editState;
10
15
  ranges: IRange[];
11
16
  };
12
17
  export declare class SheetPermissionPanelModel {
@@ -14,12 +19,16 @@ export declare class SheetPermissionPanelModel {
14
19
  private _rule$;
15
20
  private _oldRule;
16
21
  private _rangeErrorMsg$;
22
+ private _visible;
23
+ setVisible(v: boolean): void;
24
+ getVisible(): boolean;
17
25
  rangeErrorMsg$: import('rxjs').Observable<string>;
18
26
  setRangeErrorMsg(msg: string): void;
19
27
  rule$: import('rxjs').Observable<IPermissionPanelRule>;
20
28
  get rule(): IPermissionPanelRule;
21
29
  setRule(ruleObj: Partial<IPermissionPanelRule>): void;
22
30
  resetRule(): void;
31
+ reset(): void;
23
32
  get oldRule(): Nullable<IPermissionPanelRule>;
24
33
  setOldRule(ruleObj: Nullable<IPermissionPanelRule>): void;
25
34
  }
@@ -10,6 +10,7 @@ export declare class SheetPermissionUserManagerService {
10
10
  get allUserList(): ICollaborator[];
11
11
  setAllUserList(userList: ICollaborator[]): void;
12
12
  setUserList(userList: ICollaborator[]): void;
13
+ reset(): void;
13
14
  get oldCollaboratorList(): ICollaborator[];
14
15
  setOldCollaboratorList(userList: ICollaborator[]): void;
15
16
  get selectUserList(): ICollaborator[];
@@ -0,0 +1,5 @@
1
+ import { IRange, Disposable } from '@univerjs/core';
2
+ export declare class SelectAllService extends Disposable {
3
+ rangesStack: IRange[];
4
+ selectedRangeWorksheet: string;
5
+ }
@@ -1,8 +1,9 @@
1
- import { IInterceptor, Injector, IRange, IRangeWithCoord, ISelectionCell, ISelectionCellWithMergeInfo, ISelectionWithCoord, Nullable, ThemeService, Disposable, InterceptorManager, RANGE_TYPE } from '@univerjs/core';
2
- import { IMouseEvent, IPointerEvent, IRenderManagerService, IRenderModule, Scene, SpreadsheetSkeleton, Viewport, ScrollTimer, ScrollTimerType } from '@univerjs/engine-render';
1
+ import { IFreeze, IInterceptor, Injector, IRange, IRangeWithCoord, ISelectionCell, ISelectionCellWithMergeInfo, ISelectionWithCoord, Nullable, ThemeService, Disposable, InterceptorManager, RANGE_TYPE } from '@univerjs/core';
2
+ import { IMouseEvent, IPointerEvent, IRenderModule, Scene, SpreadsheetSkeleton, Viewport, ScrollTimer, ScrollTimerType } from '@univerjs/engine-render';
3
3
  import { ISelectionStyle, ISelectionWithCoordAndStyle, ISelectionWithStyle } from '@univerjs/sheets';
4
4
  import { IShortcutService } from '@univerjs/ui';
5
5
  import { Observable, Subscription, BehaviorSubject, Subject } from 'rxjs';
6
+ import { SheetSkeletonManagerService } from '../sheet-skeleton-manager.service';
6
7
  import { SelectionControl } from './selection-shape';
7
8
  export interface IControlFillConfig {
8
9
  oldRange: IRange;
@@ -42,7 +43,7 @@ export declare class BaseSelectionRenderService extends Disposable implements IS
42
43
  protected readonly _injector: Injector;
43
44
  protected readonly _themeService: ThemeService;
44
45
  protected readonly _shortcutService: IShortcutService;
45
- protected readonly _renderManagerService: IRenderManagerService;
46
+ protected readonly _sheetSkeletonManagerService: SheetSkeletonManagerService;
46
47
  private _downObserver;
47
48
  protected _scenePointerMoveSub: Nullable<Subscription>;
48
49
  protected _scenePointerUpSub: Nullable<Subscription>;
@@ -70,11 +71,6 @@ export declare class BaseSelectionRenderService extends Disposable implements IS
70
71
  protected _skipLastEnabled: boolean;
71
72
  protected _singleSelectionEnabled: boolean;
72
73
  protected readonly _selectionMoveEnd$: BehaviorSubject<ISelectionWithCoordAndStyle[]>;
73
- /**
74
- * trigger when selection move end(pointerup)
75
- * and then update selection model in selectionManagerService
76
- * selectionMoveEnd$ ---> _updateSelections --> selectionOperation@selectionManagerService.setSelections
77
- */
78
74
  readonly selectionMoveEnd$: Observable<ISelectionWithCoordAndStyle[]>;
79
75
  protected readonly _selectionMoving$: Subject<ISelectionWithCoordAndStyle[]>;
80
76
  readonly selectionMoving$: Observable<ISelectionWithCoordAndStyle[]>;
@@ -92,55 +88,41 @@ export declare class BaseSelectionRenderService extends Disposable implements IS
92
88
  scene: Scene;
93
89
  }>;
94
90
  }>;
95
- constructor(_injector: Injector, _themeService: ThemeService, _shortcutService: IShortcutService, _renderManagerService: IRenderManagerService);
91
+ private _escapeShortcutDisposable;
92
+ constructor(_injector: Injector, _themeService: ThemeService, _shortcutService: IShortcutService, _sheetSkeletonManagerService: SheetSkeletonManagerService);
96
93
  private _initMoving;
97
- protected _setStyle(style: ISelectionStyle): void;
98
- protected _resetStyle(): void;
94
+ protected _setSelectionStyle(style: ISelectionStyle): void;
95
+ /**
96
+ * Reset this._selectionStyle to default normal selection style
97
+ */
98
+ protected _resetSelectionStyle(): void;
99
99
  /** @deprecated This should not be provided by the selection render service. */
100
100
  getViewPort(): Viewport;
101
101
  setSingleSelectionEnabled(enabled?: boolean): void;
102
102
  /**
103
- * add a selection
104
- *
105
- * in PC:init & pointerup would call this function.
106
- *
107
- * init
108
- * selectionController@_initSkeletonChangeListener --> selectionManagerService.add --> selectionManagerService._selectionMoveEnd$ --> this.addControlToCurrentByRangeData
109
- *
110
- * selectionMoveEnd$ --> this.addSelectionControlBySelectionData
111
- *
112
- *
113
- *
114
- * pointer
115
- * engine@_pointerDownEvent --> spreadsheet?.onPointerDownObserve --> eventTrigger --> scene@disableEvent() --> then scene.input-manager currentObject is always scene until scene@enableEvent.
116
- * engine@_pointerUpEvent --> scene.input-manager@_onPointerUp --> this._selectionMoveEnd$ --> _selectionManagerService.selectionMoveEnd$ --> this.addControlToCurrentByRangeData
117
- *
118
- * but in mobile, we do not call disableEvent() in eventTrigger,
119
- * so pointerup --> scene.input-manager currentObject is spreadsheet --> this.eventTrigger
120
- *
121
- *
122
- * columnHeader pointerup$ --> selectionMoveEnd$ --> selectionManagerService@setSelections -->
123
- * selectionManagerService@_emitOnEnd -->
124
- * _workbookSelections.selectionMoveEnd$ --> _addSelectionControlBySelectionData
125
- *
126
- * @param selectionData
103
+ * Add a selection in spreadsheet, create a new SelectionControl and then update this control by range derives from selection.
104
+ * @param {ISelectionWithCoordAndStyle} selection
127
105
  */
128
106
  protected _addSelectionControlBySelectionData(selection: ISelectionWithCoordAndStyle): void;
129
- newSelectionControl(scene: Scene, _rangeType: RANGE_TYPE): SelectionControl;
107
+ newSelectionControl(scene: Scene, _rangeType: RANGE_TYPE, skeleton: SpreadsheetSkeleton): SelectionControl;
130
108
  /**
131
109
  * Update the corresponding selectionControl based on selectionsData.
132
- * selectionData[i] ---- selectionControls[i]
110
+ * selectionData[i] syncs selectionControls[i]
133
111
  * @param selections
134
112
  */
135
113
  updateControlForCurrentByRangeData(selections: ISelectionWithCoordAndStyle[]): void;
136
114
  refreshSelectionMoveStart(): void;
137
115
  protected _changeRuntime(skeleton: SpreadsheetSkeleton, scene: Scene, viewport?: Viewport): void;
138
116
  getSkeleton(): SpreadsheetSkeleton;
117
+ /**
118
+ * Generate selectionData from this._selectionControls.model .
119
+ * @returns {ISelectionWithCoordAndStyle[]} {range, primary, style}[]
120
+ */
139
121
  getSelectionDataWithStyle(): ISelectionWithCoordAndStyle[];
140
122
  getSelectionControls(): SelectionControl[];
141
123
  protected _clearSelectionControls(): void;
142
- protected _getFreeze(): import('@univerjs/core').IFreeze | undefined;
143
- protected _getViewportByCell(row?: number, column?: number): Viewport | null | undefined;
124
+ protected _getFreeze(): Nullable<IFreeze>;
125
+ protected _getViewportByCell(row?: number, column?: number): Nullable<Viewport>;
144
126
  /**
145
127
  * Returns the selected range in the active sheet, or null if there is no active range. If multiple ranges are selected this method returns only the last selected range.
146
128
  */
@@ -163,7 +145,16 @@ export declare class BaseSelectionRenderService extends Disposable implements IS
163
145
  * @param _zIndex Stacking order of the selection object
164
146
  * @param rangeType Determines whether the selection is made normally according to the range or by rows and columns
165
147
  */
166
- protected _onPointerDown(evt: IPointerEvent | IMouseEvent, _zIndex?: number, rangeType?: RANGE_TYPE, viewport?: Viewport, scrollTimerType?: ScrollTimerType): false | undefined;
148
+ protected _onPointerDown(evt: IPointerEvent | IMouseEvent, _zIndex: number | undefined, rangeType: RANGE_TYPE | undefined, viewport: Nullable<Viewport>, scrollTimerType?: ScrollTimerType): void;
149
+ /**
150
+ * Init pointer move listener, bind in each pointer down, unbind in each pointer up
151
+ * @param viewportMain
152
+ * @param activeSelectionControl
153
+ * @param rangeType
154
+ * @param scrollTimerType
155
+ * @param moveStartPosX
156
+ * @param moveStartPosY
157
+ */
167
158
  protected _setupPointerMoveListener(viewportMain: Nullable<Viewport>, activeSelectionControl: SelectionControl, rangeType: RANGE_TYPE, scrollTimerType: ScrollTimerType | undefined, moveStartPosX: number, moveStartPosY: number): void;
168
159
  /** @deprecated Use the function `attachSelectionWithCoord` instead`. */
169
160
  attachSelectionWithCoord(selectionWithStyle: ISelectionWithStyle): ISelectionWithCoordAndStyle;
@@ -173,8 +164,14 @@ export declare class BaseSelectionRenderService extends Disposable implements IS
173
164
  /**
174
165
  * When mousedown and mouseup need to go to the coordination and undo stack, when mousemove does not need to go to the coordination and undo stack
175
166
  */
176
- protected _moving(offsetX: number, offsetY: number, activeSelectionControl: Nullable<SelectionControl>, rangeType: RANGE_TYPE): false | undefined;
177
- protected _updateSelectionControlRange(control: SelectionControl, newSelectionRange: IRangeWithCoord, highlight: Nullable<ISelectionCellWithMergeInfo>): void;
167
+ protected _movingHandler(offsetX: number, offsetY: number, activeSelectionControl: Nullable<SelectionControl>, rangeType: RANGE_TYPE): void;
168
+ /**
169
+ * Update the selection control by range.
170
+ * @param control
171
+ * @param newSelectionRange
172
+ * @param highlight
173
+ */
174
+ protected _updateSelectionControlByRange(control: SelectionControl, newSelectionRange: IRangeWithCoord, highlight: Nullable<ISelectionCellWithMergeInfo>): void;
178
175
  protected _clearUpdatingListeners(): void;
179
176
  protected _addEndingListeners(): void;
180
177
  protected _getCellRangeByCursorPosition(offsetX: number, offsetY: number, scaleX: number, scaleY: number, scrollXY: {
@@ -183,7 +180,11 @@ export declare class BaseSelectionRenderService extends Disposable implements IS
183
180
  }): Nullable<ISelectionWithCoord>;
184
181
  protected _checkClearPreviousControls(evt: IPointerEvent | IMouseEvent): void;
185
182
  private _performSelectionByTwoCells;
183
+ /**
184
+ * Reset all this.selectionControls by selectionsData.
185
+ * @param selectionsData
186
+ */
186
187
  protected _refreshSelectionControl(selectionsData: readonly ISelectionWithStyle[]): void;
187
188
  }
188
189
  export declare function getAllSelection(skeleton: SpreadsheetSkeleton): ISelectionWithStyle;
189
- export declare function getTopLeftSelection(skeleton: SpreadsheetSkeleton): ISelectionWithStyle;
190
+ export declare function getTopLeftSelection(skeleton: SpreadsheetSkeleton): Nullable<ISelectionWithStyle>;
@@ -6,3 +6,7 @@ export declare const RANGE_FILL_PERMISSION_CHECK: import('@univerjs/core').IInte
6
6
  skeleton: SpreadsheetSkeleton;
7
7
  scene: Scene;
8
8
  }>;
9
+ export declare enum SELECTION_SHAPE_DEPTH {
10
+ FORMULA_EDITOR_SHOW = 100,// see packages/sheets-formula/src/controllers/formula-editor-show.controller.ts
11
+ MARK_SELECTION = 10000
12
+ }
@@ -1,5 +1,5 @@
1
1
  import { Workbook, ICommandService, IContextService, ILogService, Injector, RANGE_TYPE, ThemeService } from '@univerjs/core';
2
- import { IMouseEvent, IPointerEvent, IRenderContext, IRenderModule, Scene, Viewport, IRenderManagerService } from '@univerjs/engine-render';
2
+ import { IMouseEvent, IPointerEvent, IRenderContext, IRenderModule, Scene, Viewport } from '@univerjs/engine-render';
3
3
  import { SheetsSelectionsService } from '@univerjs/sheets';
4
4
  import { IShortcutService } from '@univerjs/ui';
5
5
  import { SheetScrollManagerService } from '../scroll-manager.service';
@@ -19,14 +19,13 @@ export declare class MobileSheetsSelectionRenderService extends BaseSelectionRen
19
19
  private readonly _logService;
20
20
  private readonly _commandService;
21
21
  private readonly _contextService;
22
- private readonly _sheetSkeletonManagerService;
23
22
  private readonly _scrollManagerService;
24
23
  private readonly _workbookSelections;
25
24
  private _renderDisposable;
26
25
  _expandingSelection: boolean;
27
26
  protected _selectionControls: MobileSelectionControl[];
28
27
  expandingControlMode: ExpandingControl;
29
- constructor(_context: IRenderContext<Workbook>, injector: Injector, themeService: ThemeService, shortcutService: IShortcutService, renderManagerService: IRenderManagerService, selectionManagerService: SheetsSelectionsService, _logService: ILogService, _commandService: ICommandService, _contextService: IContextService, _sheetSkeletonManagerService: SheetSkeletonManagerService, _scrollManagerService: SheetScrollManagerService);
28
+ constructor(_context: IRenderContext<Workbook>, injector: Injector, themeService: ThemeService, shortcutService: IShortcutService, selectionManagerService: SheetsSelectionsService, sheetSkeletonManagerService: SheetSkeletonManagerService, _logService: ILogService, _commandService: ICommandService, _contextService: IContextService, _scrollManagerService: SheetScrollManagerService);
30
29
  private _init;
31
30
  private _initSkeletonChangeListener;
32
31
  private _initSelectionChangeListener;
@@ -65,7 +64,7 @@ export declare class MobileSheetsSelectionRenderService extends BaseSelectionRen
65
64
  *
66
65
  * In Mobile version, new selection is determined by cursor cell and current of activeSelectionControl.model
67
66
  */
68
- protected _moving(offsetX: number, offsetY: number, activeSelectionControl: MobileSelectionControl, rangeType: RANGE_TYPE): false | undefined;
67
+ protected _movingHandler(offsetX: number, offsetY: number, activeSelectionControl: MobileSelectionControl, rangeType: RANGE_TYPE): false | undefined;
69
68
  private _updateControlPointWhenScrolling;
70
69
  }
71
70
  export {};
@@ -5,7 +5,7 @@ import { SelectionControl } from './selection-shape';
5
5
  export declare class MobileSelectionControl extends SelectionControl {
6
6
  protected _scene: Scene;
7
7
  protected _zIndex: number;
8
- protected _isHeaderHighlight: boolean;
8
+ protected _highlightHeader: boolean;
9
9
  protected readonly _themeService: ThemeService;
10
10
  protected _rangeType: RANGE_TYPE;
11
11
  /**
@@ -24,7 +24,7 @@ export declare class MobileSelectionControl extends SelectionControl {
24
24
  * a very small visible point, placed in control pointer
25
25
  */
26
26
  private _fillControlBottomRightInner;
27
- constructor(_scene: Scene, _zIndex: number, _isHeaderHighlight: boolean, _themeService: ThemeService, _rangeType?: RANGE_TYPE);
27
+ constructor(_scene: Scene, _zIndex: number, _highlightHeader: boolean, _themeService: ThemeService, _rangeType?: RANGE_TYPE);
28
28
  initControlPoints(): void;
29
29
  get fillControlTopLeft(): Rect<IRectProps> | null;
30
30
  set fillControlTopLeft(value: Rect);
@@ -34,7 +34,7 @@ export declare class MobileSelectionControl extends SelectionControl {
34
34
  set rangeType(value: RANGE_TYPE);
35
35
  dispose(): void;
36
36
  updateRange(range: IRangeWithCoord): void;
37
- protected _updateControl(style: Nullable<ISelectionStyle>, rowHeaderWidth: number, columnHeaderHeight: number): void;
37
+ protected _updateControlStyleAndLayout(style: Nullable<ISelectionStyle>): void;
38
38
  getViewportMainScrollInfo(): {
39
39
  viewportScrollX: number;
40
40
  viewportScrollY: number;
@@ -9,9 +9,7 @@ export declare class SelectionRenderModel implements IRangeWithCoord {
9
9
  private _endX;
10
10
  private _endY;
11
11
  /**
12
- * highlight cell of selection
13
- * when there is no merge info
14
- * top left cell of current selection (or bottomLeft of current selection)
12
+ * The highlight cell of a selection. aka: current cell
15
13
  */
16
14
  private _primary;
17
15
  private _rangeType;
@@ -40,6 +38,12 @@ export declare class SelectionRenderModel implements IRangeWithCoord {
40
38
  setRangeType(rangeType: RANGE_TYPE): void;
41
39
  getValue(): ISelectionWithCoord;
42
40
  setValue(newSelectionRange: IRangeWithCoord, currentCell: Nullable<ISelectionCellWithMergeInfo>): void;
41
+ /**
42
+ * Set primary cell.
43
+ *
44
+ * TODO @lumixraku there are 3 concepts for same thing, primary and current and highlight, primary is better cuz selectionModel is using primary.
45
+ * @param currentCell
46
+ */
43
47
  setCurrentCell(currentCell: Nullable<ISelectionCellWithMergeInfo>): void;
44
48
  clearCurrentCell(): void;
45
49
  }