@univerjs/ui 0.6.1 → 0.6.2
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/README.md +4 -0
- package/lib/cjs/facade.js +1 -1
- package/lib/cjs/index.js +46 -35
- package/lib/cjs/locale/en-US.js +1 -1
- package/lib/cjs/locale/fa-IR.js +1 -1
- package/lib/cjs/locale/fr-FR.js +1 -1
- package/lib/cjs/locale/ru-RU.js +1 -1
- package/lib/cjs/locale/vi-VN.js +1 -1
- package/lib/cjs/locale/zh-CN.js +1 -1
- package/lib/cjs/locale/zh-TW.js +1 -1
- package/lib/es/facade.js +176 -74
- package/lib/es/index.js +3902 -3618
- package/lib/es/locale/en-US.js +4 -1
- package/lib/es/locale/fa-IR.js +4 -1
- package/lib/es/locale/fr-FR.js +4 -1
- package/lib/es/locale/ru-RU.js +4 -1
- package/lib/es/locale/vi-VN.js +4 -1
- package/lib/es/locale/zh-CN.js +6 -3
- package/lib/es/locale/zh-TW.js +6 -3
- package/lib/index.css +1 -1
- package/lib/types/components/index.d.ts +1 -0
- package/lib/types/components/menu/desktop/Menu.d.ts +2 -0
- package/lib/types/components/slider/Slider.d.ts +47 -0
- package/lib/types/components/slider/Slider.stories.d.ts +7 -0
- package/lib/types/components/slider/index.d.ts +16 -0
- package/lib/types/controllers/ui/ui-desktop.controller.d.ts +5 -16
- package/lib/types/controllers/ui/ui-mobile.controller.d.ts +5 -13
- package/lib/types/controllers/ui/ui-shared.controller.d.ts +18 -0
- package/lib/types/facade/f-enum.d.ts +9 -1
- package/lib/types/facade/f-hooks.d.ts +4 -6
- package/lib/types/facade/f-menu-builder.d.ts +61 -2
- package/lib/types/facade/f-shortcut.d.ts +37 -2
- package/lib/types/facade/f-univer.d.ts +275 -38
- package/lib/types/index.d.ts +0 -1
- package/lib/types/locale/zh-CN.d.ts +3 -0
- package/lib/types/services/menu/menu.d.ts +4 -0
- package/lib/types/services/shortcut/shortcut.service.d.ts +4 -4
- package/lib/types/views/components/ribbon/Button/ToolbarButton.d.ts +15 -1
- package/lib/types/views/components/ribbon/ToolbarItem.d.ts +1 -5
- package/lib/types/views/components/ribbon/TooltipButtonWrapper.d.ts +16 -5
- package/lib/types/views/mobile-workbench/MobileWorkbench.d.ts +6 -0
- package/lib/umd/facade.js +1 -1
- package/lib/umd/index.js +46 -35
- package/lib/umd/locale/en-US.js +1 -1
- package/lib/umd/locale/fa-IR.js +1 -1
- package/lib/umd/locale/fr-FR.js +1 -1
- package/lib/umd/locale/ru-RU.js +1 -1
- package/lib/umd/locale/vi-VN.js +1 -1
- package/lib/umd/locale/zh-CN.js +1 -1
- package/lib/umd/locale/zh-TW.js +1 -1
- package/package.json +8 -9
- package/lib/types/views/MobileApp.d.ts +0 -6
- package/lib/types/views/parts.d.ts +0 -2
package/lib/es/locale/en-US.js
CHANGED
package/lib/es/locale/fa-IR.js
CHANGED
package/lib/es/locale/fr-FR.js
CHANGED
package/lib/es/locale/ru-RU.js
CHANGED
package/lib/es/locale/vi-VN.js
CHANGED
package/lib/es/locale/zh-CN.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const
|
|
1
|
+
const o = {
|
|
2
2
|
ribbon: {
|
|
3
3
|
start: "开始",
|
|
4
4
|
insert: "插入",
|
|
@@ -57,8 +57,11 @@ const t = {
|
|
|
57
57
|
confirm: "确认",
|
|
58
58
|
cancel: "取消"
|
|
59
59
|
},
|
|
60
|
-
"global-shortcut": "全局快捷键"
|
|
60
|
+
"global-shortcut": "全局快捷键",
|
|
61
|
+
"zoom-slider": {
|
|
62
|
+
resetTo: "恢复至"
|
|
63
|
+
}
|
|
61
64
|
};
|
|
62
65
|
export {
|
|
63
|
-
|
|
66
|
+
o as default
|
|
64
67
|
};
|
package/lib/es/locale/zh-TW.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const
|
|
1
|
+
const o = {
|
|
2
2
|
ribbon: {
|
|
3
3
|
start: "開始",
|
|
4
4
|
insert: "插入",
|
|
@@ -57,8 +57,11 @@ const t = {
|
|
|
57
57
|
confirm: "確認",
|
|
58
58
|
cancel: "取消"
|
|
59
59
|
},
|
|
60
|
-
"global-shortcut": "全域快捷鍵"
|
|
60
|
+
"global-shortcut": "全域快捷鍵",
|
|
61
|
+
"zoom-slider": {
|
|
62
|
+
resetTo: "恢復至"
|
|
63
|
+
}
|
|
61
64
|
};
|
|
62
65
|
export {
|
|
63
|
-
|
|
66
|
+
o as default
|
|
64
67
|
};
|
package/lib/index.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.univer-pointer-events-none{pointer-events:none}.univer-invisible{visibility:hidden}.univer-absolute{position:absolute}.univer-relative{position:relative}.univer-left-0{left:0}.univer-right-0{right:0}.univer-right-2{right:.5rem}.univer-top-0{top:0}.univer-top-\[-99999px\]{top:-99999px}.univer-mx-auto{margin-left:auto;margin-right:auto}.univer-box-border{box-sizing:border-box}.univer-flex{display:flex}.univer-grid{display:grid}.univer-h-0{height:0px}.univer-h-6{height:1.5rem}.univer-h-8{height:2rem}.univer-h-full{height:100%}.univer-w-5{width:1.25rem}.univer-flex-1{flex:1 1 0%}.univer-cursor-not-allowed{cursor:not-allowed}.univer-cursor-pointer{cursor:pointer}.univer-select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.univer-items-center{align-items:center}.univer-justify-center{justify-content:center}.univer-gap-1{gap:.25rem}.univer-gap-2{gap:.5rem}.univer-overflow-hidden{overflow:hidden}.univer-rounded{border-radius:.25rem}.\!univer-bg-primary-500{--tw-bg-opacity: 1 !important;background-color:#466af7!important;background-color:rgba(70,106,247,var(--tw-bg-opacity, 1))!important}.univer-bg-gray-200{--tw-bg-opacity: 1;background-color:#e3e5ea;background-color:rgba(227,229,234,var(--tw-bg-opacity, 1))}.univer-bg-gray-50{--tw-bg-opacity: 1;background-color:#f9fafb;background-color:rgba(249,250,251,var(--tw-bg-opacity, 1))}.univer-bg-primary-500{--tw-bg-opacity: 1;background-color:#466af7;background-color:rgba(70,106,247,var(--tw-bg-opacity, 1))}.univer-px-2{padding-left:.5rem;padding-right:.5rem}.univer-px-4{padding-left:1rem;padding-right:1rem}.univer-py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.univer-pr-5{padding-right:1.25rem}.univer-text-sm{font-size:.875rem;line-height:1.25rem}.univer-text-gray-200{--tw-text-opacity: 1;color:#e3e5ea;color:rgba(227,229,234,var(--tw-text-opacity, 1))}.univer-text-gray-400{--tw-text-opacity: 1;color:#979dac;color:rgba(151,157,172,var(--tw-text-opacity, 1))}.univer-text-gray-700{--tw-text-opacity: 1;color:#2c3040;color:rgba(44,48,64,var(--tw-text-opacity, 1))}.univer-text-white{--tw-text-opacity: 1;color:#fff;color:rgba(255,255,255,var(--tw-text-opacity, 1))}.univer-underline{text-decoration-line:underline}.univer-transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.univer-transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.hover\:\!univer-bg-primary-500:hover{--tw-bg-opacity: 1 !important;background-color:#466af7!important;background-color:rgba(70,106,247,var(--tw-bg-opacity, 1))!important}.hover\:univer-bg-gray-100:hover{--tw-bg-opacity: 1;background-color:#eeeff1;background-color:rgba(238,239,241,var(--tw-bg-opacity, 1))}.hover\:univer-bg-gray-200:hover{--tw-bg-opacity: 1;background-color:#e3e5ea;background-color:rgba(227,229,234,var(--tw-bg-opacity, 1))}.hover\:univer-bg-gray-300:hover{--tw-bg-opacity: 1;background-color:#cdd0d8;background-color:rgba(205,208,216,var(--tw-bg-opacity, 1))}.\[\&\>\*\]\:univer-inline-flex>*{display:inline-flex}.\[\&\>\*\]\:univer-h-6>*{height:1.5rem}.\[\&\>\*\]\:univer-items-center>*{align-items:center}.\[\&\>\*\]\:univer-rounded>*{border-radius:.25rem}.\[\&\>\*\]\:univer-px-1>*{padding-left:.25rem;padding-right:.25rem}.\[\&\>\*\]\:univer-transition-colors>*{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.hover\:\[\&\>\*\]\:univer-bg-gray-300>*:hover{--tw-bg-opacity: 1;background-color:#cdd0d8;background-color:rgba(205,208,216,var(--tw-bg-opacity, 1))}.univer-ui-plugin-sheets-font-family{overflow:hidden;width:120px;font-size:var(--font-size-xs);text-overflow:ellipsis;white-space:nowrap}.univer-ui-plugin-sheets-font-family-item{font-size:var(--font-size-xs)}.univer-ui-plugin-sheets-font-size{width:28px;height:24px;font-size:var(--font-size-xs)}.univer-ui-plugin-sheets-font-size-input{height:24px;line-height:24px;background-color:transparent;border:none}.univer-ui-plugin-sheets-font-size-input input{font-size:var(--font-size-xs);background-color:transparent}.univer-popup-fixed{position:fixed;z-index:1020;top:-9999px;left:-9999px}.univer-menu-item-no-hover,.univer-menu-item-no-hover.univer-menu-item-active{background:none}.univer-menu-item-activated{background-color:rgb(var(--bg-color-hover))}.univer-menu-item-content{display:inline-flex;gap:var(--margin-xs);align-items:center}.univer-menu-item-selectable{position:relative;padding-left:var(--padding-xl)}.univer-menu-item-selectable-icon{position:absolute;left:0;display:inline-flex;align-items:center;font-size:var(--font-size-lg)}.univer-menu-item-more-icon{font-size:var(--font-size-sm);color:rgb(var(--text-color))}.univer-progress-bar{width:160px;height:4px;background-color:rgb(var(--border-color));border-radius:var(--border-radius-lg);margin-right:var(--margin-xs)}.univer-progress-bar-container{display:flex;align-items:center;margin:0 var(--margin-xs) 0 var(--margin-xs)}.univer-progress-bar-label{font-size:var(--font-size-xxs);color:rgb(var(--text-color-secondary));width:98px;text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-right:var(--margin-xs);line-height:17px}.univer-progress-bar-inner{height:4px;border-radius:var(--border-radius-lg);transition:width .5s}.univer-progress-bar-close-button{background:none;border:none;font-size:var(--font-size-xxs);color:rgb(var(--text-color));cursor:pointer;padding:0;margin:0;line-height:1;display:flex;align-items:center}.univer-progress-bar-close-button:hover{color:rgb(var(--text-color-secondary))}.univer-shortcut-panel-group-title{height:40px;font-size:13px;font-weight:700;line-height:40px}.univer-shortcut-panel-item{display:flex;justify-content:space-between;height:40px;font-size:13px;line-height:40px}.univer-shortcut-panel-item-title{overflow:hidden;flex-grow:1;flex-shrink:1;max-width:200px;text-overflow:ellipsis;text-wrap:nowrap}.univer-shortcut-panel-item-shortcut{flex-grow:0;flex-shrink:0}.univer-shortcut-panel-item:not(:last-of-type){border-bottom:1px solid rgb(var(--grey-200))}.univer-float-dom-wrapper{z-index:10}.univer-float-dom{overflow:hidden}.univer-toolbar-btn{cursor:pointer;display:flex;align-items:center;justify-content:center;min-width:24px;height:24px;padding:0;font-size:var(--font-size-lg);color:rgb(var(--text-color));background-color:transparent;border:none;border-radius:var(--border-radius-base);outline:none}.univer-toolbar-btn:not([disabled]):hover{background-color:rgb(var(--grey-100))}.univer-toolbar-btn[disabled]{cursor:not-allowed;color:rgb(var(--grey-200))}.univer-toolbar-btn-no-icon{padding:var(--padding-xs)}.univer-toolbar-btn-active{background-color:rgb(var(--grey-100))}.univer-toolbar-btn-active[disabled]{color:rgba(var(--text-color),.25)}.univer-toolbar{-webkit-user-select:none;-moz-user-select:none;user-select:none;position:relative;display:flex;align-items:center;box-sizing:border-box;height:32px;font-size:var(--font-size-base);color:rgb(var(--text-color));background-color:rgb(var(--bg-color-secondary));border-bottom:1px solid rgb(var(--border-color))}.univer-toolbar-more{max-width:80%}.univer-toolbar-more-container{display:grid;box-sizing:border-box;padding:var(--padding-sm);background-color:rgb(var(--bg-color-secondary));border-radius:var(--border-radius-base);box-shadow:var(--box-shadow-base)}.univer-toolbar-more-container .univer-toolbar-group{flex-wrap:wrap}.univer-toolbar-more-container .univer-toolbar-group:not(:last-child):after{content:normal;content:initial}.univer-toolbar-more-container .univer-toolbar-group:not(:last-child)>*{margin-bottom:var(--margin-xs)}.univer-toolbar-group{display:flex;gap:var(--margin-xs);align-items:center;flex-shrink:0}.univer-toolbar-group>*{flex-shrink:0}.univer-toolbar-group:not(:last-child):not(:empty):after{content:"";display:block;width:1px;height:20px;background-color:rgb(var(--border-color));flex-shrink:0}.univer-toolbar-item-select-button{cursor:pointer;position:relative;overflow:hidden;display:flex;align-items:center;font-size:var(--font-size-lg);border-radius:var(--border-radius-base)}.univer-toolbar-item-select-button-disabled{cursor:not-allowed;color:rgb(var(--grey-200))}.univer-toolbar-item-select-button-disabled.univer-toolbar-item-select-button-activated{color:rgba(var(--text-color),.25)}.univer-toolbar-item-select-button-disabled.univer-toolbar-item-select-button-activated .univer-toolbar-item-select-button-label:hover,.univer-toolbar-item-select-button-disabled.univer-toolbar-item-select-button-activated .univer-toolbar-item-select-button-arrow:hover{background-color:rgb(var(--grey-100))!important}.univer-toolbar-item-select-button-activated{background-color:rgb(var(--grey-100))}.univer-toolbar-item-select-button-label{position:relative;z-index:1;display:flex;align-items:center;height:100%;padding:0 var(--padding-xs)}.univer-toolbar-item-select{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)}.univer-toolbar-item-select-disabled{cursor:not-allowed;color:rgb(var(--grey-200))}.univer-toolbar-item-select:hover{background-color:rgb(var(--grey-100));border-radius:var(--border-radius-base)}.univer-toolbar-item-select-arrow{display:flex;align-items:center;height:100%;color:rgb(var(--grey-400))}.univer-toolbar-item-select-arrow-disabled{cursor:not-allowed;color:rgb(var(--grey-200))}.univer-toolbar-item-select-arrow-disabled.univer-toolbar-item-select-arrow-activated{color:rgba(var(--text-color),.25)}.univer-toolbar-item-select-arrow-disabled.univer-toolbar-item-select-arrow-activated:hover{background-color:rgb(var(--grey-100))}.univer-sidebar{position:relative;transform:translate(100%);box-sizing:border-box;width:0;height:100%;color:rgb(var(--text-color))}.univer-sidebar.univer-sidebar-open{transform:translate(0);width:380px}.univer-sidebar-container{overflow-y:auto;display:grid;grid-template-rows:auto 1fr auto;box-sizing:border-box;width:100%;height:0;min-height:100%;margin:auto;background-color:rgb(var(--bg-color-secondary));border-bottom:1px solid rgb(var(--border-color));border-left:1px solid rgb(var(--border-color));scrollbar-color:rgba(var(--scrollbar-color),.7) transparent;scrollbar-gutter:auto;scrollbar-width:thin}.univer-sidebar-header{position:sticky;top:0;display:flex;align-items:center;justify-content:space-between;height:44px;padding:var(--padding-xl) var(--padding-xl) 0;font-size:var(--font-size-lg);font-weight:500;background:rgb(var(--bg-color-secondary));box-sizing:border-box;z-index:10}.univer-sidebar-header-close{cursor:pointer;color:rgb(var(--text-color-secondary))}.univer-sidebar-body{padding:0 var(--padding-xl);box-sizing:border-box}.univer-sidebar-footer{position:sticky;bottom:0;padding:var(--padding-xl);background:rgb(var(--bg-color-secondary));box-sizing:border-box}.univer-zen-zone{position:absolute;z-index:-1;transition:all .2s ease-in-out;display:flex;flex-direction:row}.univer-zen-zone-open{z-index:100;top:0;left:0;width:100%;height:100%;background:rgb(var(--bg-color));opacity:1}.univer-zen-zone-close{opacity:0}.univer-zen-zone-editor-container{flex:1;position:relative}.univer-global-zone{position:absolute;display:none}.univer-global-zone-open{z-index:100;top:0;left:0;display:block;width:100%;height:100%;background:rgb(var(--bg-color))}.univer-global-zone-close{display:none}.univer-workbench-layout{display:flex;flex-direction:column;height:100%;background-color:rgb(var(--bg-color));min-height:0;position:relative}.univer-workbench-custom-header{position:relative;display:flex;flex-direction:column;min-height:0;background-color:rgb(var(--color-white))}.univer-workbench-container{position:relative;display:flex;flex:1;flex-direction:column;min-height:0}.univer-workbench-container-header{position:relative;z-index:10;width:100%}.univer-workbench-container-wrapper{display:grid;grid-template-columns:auto 1fr auto;grid-template-rows:100%;height:100%;overflow:hidden}.univer-workbench-container-content{position:relative;overflow:hidden;display:grid;grid-template-rows:auto 1fr;flex:1;background-color:rgb(var(--bg-color-secondary));border-bottom:1px solid rgb(var(--border-color))}.univer-workbench-container-doc-content{background:rgb(var(--bg-color-secondary))}.univer-workbench-container-canvas{position:relative;overflow:hidden}.univer-workbench-container-left-sidebar,.univer-workbench-container-sidebar{height:100%}.univer-mobile-menu-container{min-width:32px;max-width:200px;display:grid;grid-gap:4px;background-color:#000;border-radius:4px;padding:4px 8px}.univer-mobile-menu-item{display:flex;flex-direction:column;justify-content:center;align-items:center;border:none;background:none;color:#fff;width:48px}.univer-mobile-menu-item>svg{font-size:18px;height:18px;width:18px}.univer-mobile-menu-item>span{width:100%;margin-top:2px;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.univer-app-layout{display:flex;flex-direction:column;height:100%;background-color:rgb(var(--bg-color));min-height:0;position:relative}.univer-app-custom-header{position:relative;display:flex;flex-direction:column;min-height:0;background-color:rgb(var(--color-white))}.univer-app-header{width:100vw}.univer-app-container{position:relative;display:flex;flex:1;flex-direction:column;min-height:0}.univer-app-container-header{position:relative;z-index:10;width:100%}.univer-app-container-wrapper{display:grid;grid-template-columns:auto 1fr auto;grid-template-rows:100%;height:100%;overflow:hidden}.univer-app-container-content{position:relative;overflow:hidden;display:grid;grid-template-rows:auto 1fr;flex:1;background-color:rgb(var(--bg-color-secondary));border-bottom:1px solid rgb(var(--border-color))}.univer-app-container-canvas{position:relative;overflow:hidden}.univer-app-container-left-sidebar,.univer-app-container-sidebar{height:100%}.univer-notification{position:fixed;z-index:1000;display:flex;flex-direction:column;align-items:flex-end;justify-content:center;box-sizing:border-box;margin:var(--margin-xs) 0}.univer-notification-notice{display:flex;gap:var(--margin-xs);justify-content:space-between;width:280px;padding:var(--padding-lg);font-size:var(--font-size-lg);background-color:rgb(var(--color-white));border-radius:var(--border-radius-base);box-shadow:var(--box-shadow-lg)}.univer-notification-notice-wrapper{margin:var(--margin-xs) var(--margin-base)}.univer-notification-notice-content{display:inline-flex;gap:var(--margin-xs);align-items:center;align-items:flex-start}.univer-notification-notice-close{cursor:pointer;display:flex;align-items:center;justify-content:center;width:-moz-fit-content;width:fit-content;height:-moz-fit-content;height:fit-content;padding:var(--padding-xs);color:rgb(var(--text-color-secondary));border-radius:var(--border-radius-base);outline:none;transition:background-color .2s}.univer-notification-notice-close:hover{background-color:rgb(var(--bg-color-hover))}.univer-notification-icon{padding:var(--padding-xs)}.univer-notification-icon-success{color:rgb(var(--success-color))}.univer-notification-icon-info{color:rgb(var(--info-color))}.univer-notification-icon-warning{color:rgb(var(--warning-color))}.univer-notification-icon-error{color:rgb(var(--error-color))}.univer-notification-content-container{display:inline-flex;flex-direction:column;gap:var(--margin-xs);align-items:flex-start;padding-top:var(--padding-xs)}.univer-notification-title{color:rgb(var(--text-color))}.univer-notification-content{color:rgb(var(--text-color-secondary))}.univer-notification-content-ellipsis{overflow:hidden;display:-webkit-box;text-overflow:ellipsis;-webkit-box-orient:vertical}.univer-notification-top,.univer-notification-topLeft,.univer-notification-topRight{top:0}.univer-notification-bottom,.univer-notification-bottomRight,.univer-notification-bottomLeft{bottom:0}.univer-notification-bottomRight,.univer-notification-topRight{right:0}.univer-notification-fade{overflow:hidden;transition:all .3s}.univer-notification-fade-appear-prepare{opacity:0}.univer-notification-fade-appear-start{transform:translate(100%);opacity:0}.univer-notification-fade-appear-active{transform:translate(0);opacity:1}.univer-notification-fade-appear,.univer-notification-fade-enter{opacity:0;animation-play-state:paused;animation-duration:.3s;animation-timing-function:cubic-bezier(.55,0,.55,.2);animation-fill-mode:both}.univer-notification-fade-leave{animation-duration:.3s;animation-timing-function:cubic-bezier(.55,0,.55,.2);animation-fill-mode:both;animation-play-state:paused}.univer-notification-fade-appear.univer-notification-fade-appear-active,.univer-notification-fade-enter.univer-notification-fade-enter-active{animation-name:univer-notification-fade-in;animation-play-state:running}.univer-notification-fade-leave.univer-notification-fade-leave-active{animation-name:univer-notification-fade-out;animation-play-state:running}@keyframes univer-notification-fade-in{0%{opacity:0}to{opacity:1}}@keyframes univer-notification-fade-out{0%{opacity:1}to{opacity:0}}
|
|
1
|
+
.univer-pointer-events-none{pointer-events:none}.univer-invisible{visibility:hidden}.univer-absolute{position:absolute}.univer-relative{position:relative}.univer-inset-0{top:0;right:0;bottom:0;left:0}.univer-left-0{left:0}.univer-left-1{left:.25rem}.univer-left-1\/2{left:50%}.univer-right-0{right:0}.univer-right-2{right:.5rem}.univer-top-0{top:0}.univer-top-0\.5{top:.125rem}.univer-top-1\/2{top:50%}.univer-top-\[-99999px\]{top:-99999px}.univer-z-10{z-index:10}.univer-z-\[-1\]{z-index:-1}.univer-z-\[100\]{z-index:100}.univer-mx-auto{margin-left:auto;margin-right:auto}.univer-box-border{box-sizing:border-box}.univer-block{display:block}.univer-flex{display:flex}.univer-grid{display:grid}.univer-hidden{display:none}.univer-h-0{height:0px}.univer-h-0\.5{height:.125rem}.univer-h-6{height:1.5rem}.univer-h-7{height:1.75rem}.univer-h-8{height:2rem}.univer-h-full{height:100%}.univer-w-0\.5{width:.125rem}.univer-w-5{width:1.25rem}.univer-w-\[55px\]{width:55px}.univer-min-w-6{min-width:1.5rem}.univer-flex-1{flex:1 1 0%}.-univer-translate-x-1\/2{--tw-translate-x: -50%;transform:translate(-50%,var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-univer-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),-50%) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.univer-cursor-not-allowed{cursor:not-allowed}.univer-cursor-pointer{cursor:pointer}.univer-select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.univer-items-center{align-items:center}.univer-justify-center{justify-content:center}.univer-gap-1{gap:.25rem}.univer-gap-2{gap:.5rem}.univer-overflow-hidden{overflow:hidden}.univer-rounded{border-radius:.25rem}.univer-rounded-full{border-radius:9999px}.univer-border-none{border-style:none}.\!univer-bg-gray-200{--tw-bg-opacity: 1 !important;background-color:#e3e5ea!important;background-color:rgba(227,229,234,var(--tw-bg-opacity, 1))!important}.\!univer-bg-primary-500{--tw-bg-opacity: 1 !important;background-color:#466af7!important;background-color:rgba(70,106,247,var(--tw-bg-opacity, 1))!important}.univer-bg-gray-100{--tw-bg-opacity: 1;background-color:#eeeff1;background-color:rgba(238,239,241,var(--tw-bg-opacity, 1))}.univer-bg-gray-200{--tw-bg-opacity: 1;background-color:#e3e5ea;background-color:rgba(227,229,234,var(--tw-bg-opacity, 1))}.univer-bg-gray-50{--tw-bg-opacity: 1;background-color:#f9fafb;background-color:rgba(249,250,251,var(--tw-bg-opacity, 1))}.univer-bg-primary-500{--tw-bg-opacity: 1;background-color:#466af7;background-color:rgba(70,106,247,var(--tw-bg-opacity, 1))}.univer-bg-transparent{background-color:transparent}.univer-bg-white{--tw-bg-opacity: 1;background-color:#fff;background-color:rgba(255,255,255,var(--tw-bg-opacity, 1))}.univer-p-0{padding:0}.univer-p-4{padding:1rem}.univer-px-2{padding-left:.5rem;padding-right:.5rem}.univer-px-4{padding-left:1rem;padding-right:1rem}.univer-py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.univer-py-1{padding-top:.25rem;padding-bottom:.25rem}.univer-pl-6{padding-left:1.5rem}.univer-pr-5{padding-right:1.25rem}.univer-text-base{font-size:1rem;line-height:1.5rem}.univer-text-sm{font-size:.875rem;line-height:1.25rem}.univer-text-gray-100{--tw-text-opacity: 1;color:#eeeff1;color:rgba(238,239,241,var(--tw-text-opacity, 1))}.univer-text-gray-200{--tw-text-opacity: 1;color:#e3e5ea;color:rgba(227,229,234,var(--tw-text-opacity, 1))}.univer-text-gray-400{--tw-text-opacity: 1;color:#979dac;color:rgba(151,157,172,var(--tw-text-opacity, 1))}.univer-text-gray-700{--tw-text-opacity: 1;color:#2c3040;color:rgba(44,48,64,var(--tw-text-opacity, 1))}.univer-text-gray-800{--tw-text-opacity: 1;color:#181c2a;color:rgba(24,28,42,var(--tw-text-opacity, 1))}.univer-text-gray-900{--tw-text-opacity: 1;color:#0e111e;color:rgba(14,17,30,var(--tw-text-opacity, 1))}.univer-text-primary-600{--tw-text-opacity: 1;color:#2c53f1;color:rgba(44,83,241,var(--tw-text-opacity, 1))}.univer-text-white{--tw-text-opacity: 1;color:#fff;color:rgba(255,255,255,var(--tw-text-opacity, 1))}.univer-underline{text-decoration-line:underline}.univer-outline-none{outline:2px solid transparent;outline-offset:2px}.univer-transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.univer-transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}@keyframes enter{0%{opacity:1;opacity:var(--tw-enter-opacity, 1);transform:translateZ(0) scaleZ(1) rotate(0);transform:translate3d(var(--tw-enter-translate-x, 0),var(--tw-enter-translate-y, 0),0) scale3d(var(--tw-enter-scale, 1),var(--tw-enter-scale, 1),var(--tw-enter-scale, 1)) rotate(var(--tw-enter-rotate, 0))}}@keyframes exit{to{opacity:1;opacity:var(--tw-exit-opacity, 1);transform:translateZ(0) scaleZ(1) rotate(0);transform:translate3d(var(--tw-exit-translate-x, 0),var(--tw-exit-translate-y, 0),0) scale3d(var(--tw-exit-scale, 1),var(--tw-exit-scale, 1),var(--tw-exit-scale, 1)) rotate(var(--tw-exit-rotate, 0))}}.univer-animate-in{animation-name:enter;animation-duration:.15s;--tw-enter-opacity: initial;--tw-enter-scale: initial;--tw-enter-rotate: initial;--tw-enter-translate-x: initial;--tw-enter-translate-y: initial }.univer-fade-in{--tw-enter-opacity: 0 }.univer-slide-in-from-top-full{--tw-enter-translate-y: -100% }.hover\:\!univer-bg-primary-500:hover{--tw-bg-opacity: 1 !important;background-color:#466af7!important;background-color:rgba(70,106,247,var(--tw-bg-opacity, 1))!important}.hover\:univer-bg-gray-100:hover{--tw-bg-opacity: 1;background-color:#eeeff1;background-color:rgba(238,239,241,var(--tw-bg-opacity, 1))}.hover\:univer-bg-gray-200:hover{--tw-bg-opacity: 1;background-color:#e3e5ea;background-color:rgba(227,229,234,var(--tw-bg-opacity, 1))}.hover\:univer-bg-gray-300:hover{--tw-bg-opacity: 1;background-color:#cdd0d8;background-color:rgba(205,208,216,var(--tw-bg-opacity, 1))}.focus\:univer-bg-white:focus{--tw-bg-opacity: 1;background-color:#fff;background-color:rgba(255,255,255,var(--tw-bg-opacity, 1))}.\[\&\:disabled\]\:univer-cursor-not-allowed:disabled{cursor:not-allowed}.\[\&\:disabled\]\:univer-text-gray-200:disabled{--tw-text-opacity: 1;color:#e3e5ea;color:rgba(227,229,234,var(--tw-text-opacity, 1))}.\[\&\:disabled\]\:hover\:univer-bg-transparent:hover:disabled{background-color:transparent}.\[\&\>\*\]\:univer-inline-flex>*{display:inline-flex}.\[\&\>\*\]\:univer-h-6>*{height:1.5rem}.\[\&\>\*\]\:univer-items-center>*{align-items:center}.\[\&\>\*\]\:univer-rounded>*{border-radius:.25rem}.\[\&\>\*\]\:univer-px-1>*{padding-left:.25rem;padding-right:.25rem}.\[\&\>\*\]\:univer-transition-colors>*{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.hover\:\[\&\>\*\]\:univer-bg-gray-300>*:hover{--tw-bg-opacity: 1;background-color:#cdd0d8;background-color:rgba(205,208,216,var(--tw-bg-opacity, 1))}.univer-ui-plugin-sheets-font-family{overflow:hidden;width:120px;font-size:var(--font-size-xs);text-overflow:ellipsis;white-space:nowrap}.univer-ui-plugin-sheets-font-family-item{font-size:var(--font-size-xs)}.univer-ui-plugin-sheets-font-size{width:28px;height:24px;font-size:var(--font-size-xs)}.univer-ui-plugin-sheets-font-size-input{height:24px;line-height:24px;background-color:transparent;border:none}.univer-ui-plugin-sheets-font-size-input input{font-size:var(--font-size-xs);background-color:transparent}.univer-slider{-webkit-user-select:none;-moz-user-select:none;user-select:none;display:flex;gap:var(--margin-xxs);align-items:center}.univer-slider-disabled{cursor:not-allowed}.univer-slider-disabled .univer-slider-rail{background-color:rgb(var(--grey-300))}.univer-slider-disabled .univer-slider-handle{background-color:rgb(var(--grey-300));box-shadow:none}.univer-slider-disabled .univer-slider-handle:hover{cursor:not-allowed;background-color:rgb(var(--grey-300))}.univer-slider-disabled .univer-slider-reset-point{cursor:not-allowed}.univer-slider-disabled .univer-slider-value:hover{cursor:not-allowed;background-color:rgb(var(--grey-300))}.univer-slider-disabled .univer-slider-value{pointer-events:none;color:rgb(var(--grey-300))}.univer-slider-disabled .univer-slider-value:hover{background-color:transparent}.univer-slider-rail{position:relative;width:116px;height:2px;padding:0 6px;background-color:rgb(var(--text-color-secondary));border-radius:15px}.univer-slider-inner-rail{position:relative;height:2px}.univer-slider-handle{cursor:pointer;position:absolute;top:calc(50% - 6px);transform:translate(-50%);width:12px;height:12px;background-color:rgb(var(--color-white));border-radius:50%;box-shadow:0 0 6px #0000001a;transition:background .2s}.univer-slider-handle:hover{background-color:rgb(var(--border-color));box-shadow:none}.univer-slider-reset-point{cursor:pointer;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-sizing:border-box;width:4px;height:2px;background-color:rgb(var(--color-white));border-radius:50%}.univer-slider-value{cursor:pointer;width:55px;height:28px;font-size:var(--font-size-xs);line-height:2;color:rgb(var(--text-color-secondary-darker));text-align:center;border-radius:var(--border-radius-base);transition:all .2s;-webkit-text-decoration:none;text-decoration:none}.univer-slider-value:hover{background-color:rgb(var(--border-color));text-decoration:inherit;color:inherit}.univer-slider-value.univer-dropdown-open{background-color:rgb(var(--border-color))}.univer-popup-fixed{position:fixed;z-index:1020;top:-9999px;left:-9999px}.univer-menu-item-no-hover,.univer-menu-item-no-hover.univer-menu-item-active{background:none}.univer-menu-item-activated{background-color:rgb(var(--bg-color-hover))}.univer-menu-item-content{display:inline-flex;gap:var(--margin-xs);align-items:center}.univer-menu-item-selectable{position:relative;padding-left:var(--padding-xl)}.univer-menu-item-selectable-icon{position:absolute;left:0;display:inline-flex;align-items:center;font-size:var(--font-size-lg)}.univer-menu-item-more-icon{font-size:var(--font-size-sm);color:rgb(var(--text-color))}.univer-progress-bar{width:160px;height:4px;background-color:rgb(var(--border-color));border-radius:var(--border-radius-lg);margin-right:var(--margin-xs)}.univer-progress-bar-container{display:flex;align-items:center;margin:0 var(--margin-xs) 0 var(--margin-xs)}.univer-progress-bar-label{font-size:var(--font-size-xxs);color:rgb(var(--text-color-secondary));width:98px;text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-right:var(--margin-xs);line-height:17px}.univer-progress-bar-inner{height:4px;border-radius:var(--border-radius-lg);transition:width .5s}.univer-progress-bar-close-button{background:none;border:none;font-size:var(--font-size-xxs);color:rgb(var(--text-color));cursor:pointer;padding:0;margin:0;line-height:1;display:flex;align-items:center}.univer-progress-bar-close-button:hover{color:rgb(var(--text-color-secondary))}.univer-shortcut-panel-group-title{height:40px;font-size:13px;font-weight:700;line-height:40px}.univer-shortcut-panel-item{display:flex;justify-content:space-between;height:40px;font-size:13px;line-height:40px}.univer-shortcut-panel-item-title{overflow:hidden;flex-grow:1;flex-shrink:1;max-width:200px;text-overflow:ellipsis;text-wrap:nowrap}.univer-shortcut-panel-item-shortcut{flex-grow:0;flex-shrink:0}.univer-shortcut-panel-item:not(:last-of-type){border-bottom:1px solid rgb(var(--grey-200))}.univer-toolbar{-webkit-user-select:none;-moz-user-select:none;user-select:none;position:relative;display:flex;align-items:center;box-sizing:border-box;height:32px;font-size:var(--font-size-base);color:rgb(var(--text-color));background-color:rgb(var(--bg-color-secondary));border-bottom:1px solid rgb(var(--border-color))}.univer-toolbar-more{max-width:80%}.univer-toolbar-more-container{display:grid;box-sizing:border-box;padding:var(--padding-sm);background-color:rgb(var(--bg-color-secondary));border-radius:var(--border-radius-base);box-shadow:var(--box-shadow-base)}.univer-toolbar-more-container .univer-toolbar-group{flex-wrap:wrap}.univer-toolbar-more-container .univer-toolbar-group:not(:last-child):after{content:normal;content:initial}.univer-toolbar-more-container .univer-toolbar-group:not(:last-child)>*{margin-bottom:var(--margin-xs)}.univer-toolbar-group{display:flex;gap:var(--margin-xs);align-items:center;flex-shrink:0}.univer-toolbar-group>*{flex-shrink:0}.univer-toolbar-group:not(:last-child):not(:empty):after{content:"";display:block;width:1px;height:20px;background-color:rgb(var(--border-color));flex-shrink:0}.univer-toolbar-item-select-button{cursor:pointer;position:relative;overflow:hidden;display:flex;align-items:center;font-size:var(--font-size-lg);border-radius:var(--border-radius-base)}.univer-toolbar-item-select-button-disabled{cursor:not-allowed;color:rgb(var(--grey-200))}.univer-toolbar-item-select-button-disabled.univer-toolbar-item-select-button-activated{color:rgba(var(--text-color),.25)}.univer-toolbar-item-select-button-disabled.univer-toolbar-item-select-button-activated .univer-toolbar-item-select-button-label:hover,.univer-toolbar-item-select-button-disabled.univer-toolbar-item-select-button-activated .univer-toolbar-item-select-button-arrow:hover{background-color:rgb(var(--grey-100))!important}.univer-toolbar-item-select-button-activated{background-color:rgb(var(--grey-100))}.univer-toolbar-item-select-button-label{position:relative;z-index:1;display:flex;align-items:center;height:100%;padding:0 var(--padding-xs)}.univer-toolbar-item-select{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)}.univer-toolbar-item-select-disabled{cursor:not-allowed;color:rgb(var(--grey-200))}.univer-toolbar-item-select:hover{background-color:rgb(var(--grey-100));border-radius:var(--border-radius-base)}.univer-toolbar-item-select-arrow{display:flex;align-items:center;height:100%;color:rgb(var(--grey-400))}.univer-toolbar-item-select-arrow-disabled{cursor:not-allowed;color:rgb(var(--grey-200))}.univer-toolbar-item-select-arrow-disabled.univer-toolbar-item-select-arrow-activated{color:rgba(var(--text-color),.25)}.univer-toolbar-item-select-arrow-disabled.univer-toolbar-item-select-arrow-activated:hover{background-color:rgb(var(--grey-100))}.univer-global-zone{position:absolute;display:none}.univer-global-zone-open{z-index:100;top:0;left:0;display:block;width:100%;height:100%;background:rgb(var(--bg-color))}.univer-global-zone-close{display:none}.univer-sidebar{position:relative;transform:translate(100%);box-sizing:border-box;width:0;height:100%;color:rgb(var(--text-color))}.univer-sidebar.univer-sidebar-open{transform:translate(0);width:380px}.univer-sidebar-container{overflow-y:auto;display:grid;grid-template-rows:auto 1fr auto;box-sizing:border-box;width:100%;height:0;min-height:100%;margin:auto;background-color:rgb(var(--bg-color-secondary));border-bottom:1px solid rgb(var(--border-color));border-left:1px solid rgb(var(--border-color));scrollbar-color:rgba(var(--scrollbar-color),.7) transparent;scrollbar-gutter:auto;scrollbar-width:thin}.univer-sidebar-header{position:sticky;top:0;display:flex;align-items:center;justify-content:space-between;height:44px;padding:var(--padding-xl) var(--padding-xl) 0;font-size:var(--font-size-lg);font-weight:500;background:rgb(var(--bg-color-secondary));box-sizing:border-box;z-index:10}.univer-sidebar-header-close{cursor:pointer;color:rgb(var(--text-color-secondary))}.univer-sidebar-body{padding:0 var(--padding-xl);box-sizing:border-box}.univer-sidebar-footer{position:sticky;bottom:0;padding:var(--padding-xl);background:rgb(var(--bg-color-secondary));box-sizing:border-box}.univer-workbench-layout{display:flex;flex-direction:column;height:100%;background-color:rgb(var(--bg-color));min-height:0;position:relative}.univer-workbench-custom-header{position:relative;display:flex;flex-direction:column;min-height:0;background-color:rgb(var(--color-white))}.univer-workbench-container{position:relative;display:flex;flex:1;flex-direction:column;min-height:0}.univer-workbench-container-header{position:relative;z-index:10;width:100%}.univer-workbench-container-wrapper{display:grid;grid-template-columns:auto 1fr auto;grid-template-rows:100%;height:100%;overflow:hidden}.univer-workbench-container-content{position:relative;overflow:hidden;display:grid;grid-template-rows:auto 1fr;flex:1;background-color:rgb(var(--bg-color-secondary));border-bottom:1px solid rgb(var(--border-color))}.univer-workbench-container-doc-content{background:rgb(var(--bg-color-secondary))}.univer-workbench-container-canvas{position:relative;overflow:hidden}.univer-workbench-container-left-sidebar,.univer-workbench-container-sidebar{height:100%}.univer-mobile-menu-container{min-width:32px;max-width:200px;display:grid;grid-gap:4px;background-color:#000;border-radius:4px;padding:4px 8px}.univer-mobile-menu-item{display:flex;flex-direction:column;justify-content:center;align-items:center;border:none;background:none;color:#fff;width:48px}.univer-mobile-menu-item>svg{font-size:18px;height:18px;width:18px}.univer-mobile-menu-item>span{width:100%;margin-top:2px;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.univer-app-layout{display:flex;flex-direction:column;height:100%;background-color:rgb(var(--bg-color));min-height:0;position:relative}.univer-app-custom-header{position:relative;display:flex;flex-direction:column;min-height:0;background-color:rgb(var(--color-white))}.univer-app-header{width:100vw}.univer-app-container{position:relative;display:flex;flex:1;flex-direction:column;min-height:0}.univer-app-container-header{position:relative;z-index:10;width:100%}.univer-app-container-wrapper{display:grid;grid-template-columns:auto 1fr auto;grid-template-rows:100%;height:100%;overflow:hidden}.univer-app-container-content{position:relative;overflow:hidden;display:grid;grid-template-rows:auto 1fr;flex:1;background-color:rgb(var(--bg-color-secondary));border-bottom:1px solid rgb(var(--border-color))}.univer-app-container-canvas{position:relative;overflow:hidden}.univer-app-container-left-sidebar,.univer-app-container-sidebar{height:100%}.univer-notification{position:fixed;z-index:1000;display:flex;flex-direction:column;align-items:flex-end;justify-content:center;box-sizing:border-box;margin:var(--margin-xs) 0}.univer-notification-notice{display:flex;gap:var(--margin-xs);justify-content:space-between;width:280px;padding:var(--padding-lg);font-size:var(--font-size-lg);background-color:rgb(var(--color-white));border-radius:var(--border-radius-base);box-shadow:var(--box-shadow-lg)}.univer-notification-notice-wrapper{margin:var(--margin-xs) var(--margin-base)}.univer-notification-notice-content{display:inline-flex;gap:var(--margin-xs);align-items:center;align-items:flex-start}.univer-notification-notice-close{cursor:pointer;display:flex;align-items:center;justify-content:center;width:-moz-fit-content;width:fit-content;height:-moz-fit-content;height:fit-content;padding:var(--padding-xs);color:rgb(var(--text-color-secondary));border-radius:var(--border-radius-base);outline:none;transition:background-color .2s}.univer-notification-notice-close:hover{background-color:rgb(var(--bg-color-hover))}.univer-notification-icon{padding:var(--padding-xs)}.univer-notification-icon-success{color:rgb(var(--success-color))}.univer-notification-icon-info{color:rgb(var(--info-color))}.univer-notification-icon-warning{color:rgb(var(--warning-color))}.univer-notification-icon-error{color:rgb(var(--error-color))}.univer-notification-content-container{display:inline-flex;flex-direction:column;gap:var(--margin-xs);align-items:flex-start;padding-top:var(--padding-xs)}.univer-notification-title{color:rgb(var(--text-color))}.univer-notification-content{color:rgb(var(--text-color-secondary))}.univer-notification-content-ellipsis{overflow:hidden;display:-webkit-box;text-overflow:ellipsis;-webkit-box-orient:vertical}.univer-notification-top,.univer-notification-topLeft,.univer-notification-topRight{top:0}.univer-notification-bottom,.univer-notification-bottomRight,.univer-notification-bottomLeft{bottom:0}.univer-notification-bottomRight,.univer-notification-topRight{right:0}.univer-notification-fade{overflow:hidden;transition:all .3s}.univer-notification-fade-appear-prepare{opacity:0}.univer-notification-fade-appear-start{transform:translate(100%);opacity:0}.univer-notification-fade-appear-active{transform:translate(0);opacity:1}.univer-notification-fade-appear,.univer-notification-fade-enter{opacity:0;animation-play-state:paused;animation-duration:.3s;animation-timing-function:cubic-bezier(.55,0,.55,.2);animation-fill-mode:both}.univer-notification-fade-leave{animation-duration:.3s;animation-timing-function:cubic-bezier(.55,0,.55,.2);animation-fill-mode:both;animation-play-state:paused}.univer-notification-fade-appear.univer-notification-fade-appear-active,.univer-notification-fade-enter.univer-notification-fade-enter-active{animation-name:univer-notification-fade-in;animation-play-state:running}.univer-notification-fade-leave.univer-notification-fade-leave-active{animation-name:univer-notification-fade-out;animation-play-state:running}@keyframes univer-notification-fade-in{0%{opacity:0}to{opacity:1}}@keyframes univer-notification-fade-out{0%{opacity:1}to{opacity:0}}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { IValueOption } from '../../../services/menu/menu';
|
|
2
|
+
/** @deprecated */
|
|
2
3
|
export interface IBaseMenuProps {
|
|
3
4
|
parentKey?: string | number;
|
|
4
5
|
menuType?: string;
|
|
@@ -11,4 +12,5 @@ export interface IBaseMenuProps {
|
|
|
11
12
|
overViewport?: 'scroll';
|
|
12
13
|
onOptionSelect?: (option: IValueOption) => void;
|
|
13
14
|
}
|
|
15
|
+
/** @deprecated */
|
|
14
16
|
export declare const Menu: (props: IBaseMenuProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2023-present DreamNum Co., Ltd.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
export interface ISliderProps {
|
|
17
|
+
/** The value of slider. When range is false, use number, otherwise, use [number, number] */
|
|
18
|
+
value: number;
|
|
19
|
+
/**
|
|
20
|
+
* The minimum value the slider can slide to
|
|
21
|
+
* @default 0
|
|
22
|
+
*/
|
|
23
|
+
min?: number;
|
|
24
|
+
/**
|
|
25
|
+
* The maximum value the slider can slide to
|
|
26
|
+
* @default 400
|
|
27
|
+
*/
|
|
28
|
+
max?: number;
|
|
29
|
+
/**
|
|
30
|
+
* Whether the slider is disabled
|
|
31
|
+
* @default false
|
|
32
|
+
*/
|
|
33
|
+
disabled?: boolean;
|
|
34
|
+
/**
|
|
35
|
+
* The maximum value the slider can slide to
|
|
36
|
+
* @default 100
|
|
37
|
+
*/
|
|
38
|
+
resetPoint?: number;
|
|
39
|
+
/** Shortcuts of slider */
|
|
40
|
+
shortcuts: number[];
|
|
41
|
+
/** (value) => void */
|
|
42
|
+
onChange?: (value: number) => void;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Slider Component
|
|
46
|
+
*/
|
|
47
|
+
export declare function Slider(props: ISliderProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2023-present DreamNum Co., Ltd.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
export { type ISliderProps, Slider } from './Slider';
|
|
@@ -1,24 +1,13 @@
|
|
|
1
|
+
import { IDisposable, Injector, IUniverInstanceService, LifecycleService } from '@univerjs/core';
|
|
1
2
|
import { IUniverUIConfig } from '../config.schema';
|
|
2
|
-
import { Disposable, Injector, IUniverInstanceService, LifecycleService } from '@univerjs/core';
|
|
3
3
|
import { IRenderManagerService } from '@univerjs/engine-render';
|
|
4
4
|
import { ILayoutService } from '../../services/layout/layout.service';
|
|
5
5
|
import { IMenuManagerService } from '../../services/menu/menu-manager.service';
|
|
6
6
|
import { IUIPartsService } from '../../services/parts/parts.service';
|
|
7
|
-
|
|
7
|
+
import { SingleUnitUIController } from './ui-shared.controller';
|
|
8
|
+
export declare class DesktopUIController extends SingleUnitUIController {
|
|
8
9
|
private readonly _config;
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
private readonly _injector;
|
|
12
|
-
private readonly _lifecycleService;
|
|
13
|
-
private readonly _uiPartsService;
|
|
14
|
-
private readonly _menuManagerService;
|
|
15
|
-
private readonly _layoutService?;
|
|
16
|
-
private _steadyTimeout;
|
|
17
|
-
private _renderTimeout;
|
|
18
|
-
constructor(_config: IUniverUIConfig, _renderManagerService: IRenderManagerService, _instanceSrv: IUniverInstanceService, _injector: Injector, _lifecycleService: LifecycleService, _uiPartsService: IUIPartsService, _menuManagerService: IMenuManagerService, _layoutService?: ILayoutService | undefined);
|
|
19
|
-
private _initMenus;
|
|
20
|
-
private _currentRenderId;
|
|
21
|
-
private _bootstrapWorkbench;
|
|
22
|
-
private _changeRenderUnit;
|
|
10
|
+
constructor(_config: IUniverUIConfig, injector: Injector, lifecycleService: LifecycleService, renderManagerService: IRenderManagerService, layoutService: ILayoutService, instanceService: IUniverInstanceService, menuManagerService: IMenuManagerService, uiPartsService: IUIPartsService);
|
|
11
|
+
bootstrap(callback: (contentElement: HTMLElement, containerElement: HTMLElement) => void): IDisposable;
|
|
23
12
|
private _initBuiltinComponents;
|
|
24
13
|
}
|
|
@@ -1,21 +1,13 @@
|
|
|
1
|
+
import { IDisposable, Injector, IUniverInstanceService, LifecycleService } from '@univerjs/core';
|
|
1
2
|
import { IUniverUIConfig } from '../config.schema';
|
|
2
3
|
import { IUIController } from './ui.controller';
|
|
3
|
-
import { Disposable, Injector, IUniverInstanceService, LifecycleService } from '@univerjs/core';
|
|
4
4
|
import { IRenderManagerService } from '@univerjs/engine-render';
|
|
5
5
|
import { ILayoutService } from '../../services/layout/layout.service';
|
|
6
|
-
import { IMenuManagerService } from '../../services/menu/menu-manager.service';
|
|
7
6
|
import { IUIPartsService } from '../../services/parts/parts.service';
|
|
8
|
-
|
|
7
|
+
import { SingleUnitUIController } from './ui-shared.controller';
|
|
8
|
+
export declare class MobileUIController extends SingleUnitUIController implements IUIController {
|
|
9
9
|
private readonly _config;
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
private readonly _injector;
|
|
13
|
-
private readonly _lifecycleService;
|
|
14
|
-
private readonly _uiPartsService;
|
|
15
|
-
private readonly _menuManagerService;
|
|
16
|
-
private readonly _layoutService?;
|
|
17
|
-
constructor(_config: IUniverUIConfig, _instanceService: IUniverInstanceService, _renderManagerService: IRenderManagerService, _injector: Injector, _lifecycleService: LifecycleService, _uiPartsService: IUIPartsService, _menuManagerService: IMenuManagerService, _layoutService?: ILayoutService | undefined);
|
|
18
|
-
private _initMenus;
|
|
19
|
-
private _bootstrapWorkbench;
|
|
10
|
+
constructor(_config: IUniverUIConfig, injector: Injector, lifecycleService: LifecycleService, renderManagerService: IRenderManagerService, layoutService: ILayoutService, instanceService: IUniverInstanceService, uiPartsService: IUIPartsService);
|
|
11
|
+
bootstrap(callback: (contentElement: HTMLElement, containerElement: HTMLElement) => void): IDisposable;
|
|
20
12
|
private _initBuiltinComponents;
|
|
21
13
|
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { IDisposable, Injector, IUniverInstanceService, LifecycleService, Disposable } from '@univerjs/core';
|
|
2
|
+
import { IRenderManagerService } from '@univerjs/engine-render';
|
|
3
|
+
import { ILayoutService } from '../../services/layout/layout.service';
|
|
4
|
+
export declare abstract class SingleUnitUIController extends Disposable {
|
|
5
|
+
protected readonly _injector: Injector;
|
|
6
|
+
protected readonly _instanceService: IUniverInstanceService;
|
|
7
|
+
protected readonly _layoutService: ILayoutService;
|
|
8
|
+
protected readonly _lifecycleService: LifecycleService;
|
|
9
|
+
protected readonly _renderManagerService: IRenderManagerService;
|
|
10
|
+
protected _steadyTimeout: number;
|
|
11
|
+
protected _renderTimeout: number;
|
|
12
|
+
constructor(_injector: Injector, _instanceService: IUniverInstanceService, _layoutService: ILayoutService, _lifecycleService: LifecycleService, _renderManagerService: IRenderManagerService);
|
|
13
|
+
dispose(): void;
|
|
14
|
+
protected _bootstrapWorkbench(): void;
|
|
15
|
+
private _currentRenderId;
|
|
16
|
+
private _changeRenderUnit;
|
|
17
|
+
abstract bootstrap(callback: (contentElement: HTMLElement, containerElement: HTMLElement) => void): IDisposable;
|
|
18
|
+
}
|
|
@@ -1,16 +1,24 @@
|
|
|
1
1
|
import { FEnum } from '@univerjs/core/facade';
|
|
2
|
-
import { BuiltInUIPart } from '@univerjs/ui';
|
|
2
|
+
import { BuiltInUIPart, KeyCode } from '@univerjs/ui';
|
|
3
3
|
/**
|
|
4
4
|
* @ignore
|
|
5
5
|
*/
|
|
6
6
|
interface IFUIEnumMixin {
|
|
7
|
+
/**
|
|
8
|
+
* Built-in UI parts.
|
|
9
|
+
*/
|
|
7
10
|
get BuiltInUIPart(): typeof BuiltInUIPart;
|
|
11
|
+
/**
|
|
12
|
+
* Key codes.
|
|
13
|
+
*/
|
|
14
|
+
get KeyCode(): typeof KeyCode;
|
|
8
15
|
}
|
|
9
16
|
/**
|
|
10
17
|
* @ignore
|
|
11
18
|
*/
|
|
12
19
|
export declare class FUIEnum extends FEnum implements IFUIEnumMixin {
|
|
13
20
|
get BuiltInUIPart(): typeof BuiltInUIPart;
|
|
21
|
+
get KeyCode(): typeof KeyCode;
|
|
14
22
|
}
|
|
15
23
|
declare module '@univerjs/core/facade' {
|
|
16
24
|
interface FEnum extends IFUIEnumMixin {
|
|
@@ -6,30 +6,28 @@ import { FHooks } from '@univerjs/core/facade';
|
|
|
6
6
|
export interface IFHooksSheetsUIMixin {
|
|
7
7
|
/**
|
|
8
8
|
* The onBeforeCopy event is fired before a copy operation is performed.
|
|
9
|
+
* @deprecated use `univerAPI.addEvent(univerAPI.Event.BeforeClipboardChange, (params) => {})` instead
|
|
9
10
|
* @param callback Callback function that will be called when the event is fired
|
|
10
11
|
* @returns A disposable object that can be used to unsubscribe from the event
|
|
11
12
|
*/
|
|
12
13
|
onBeforeCopy(callback: () => void): IDisposable;
|
|
13
|
-
/**
|
|
14
|
-
* The onBeforeCopy event is fired before a copy operation is performed.
|
|
15
|
-
* @param callback Callback function that will be called when the event is fired
|
|
16
|
-
* @returns A disposable object that can be used to unsubscribe from the event
|
|
17
|
-
*/
|
|
18
|
-
onBeforePaste(callback: () => void): IDisposable;
|
|
19
14
|
/**
|
|
20
15
|
* The onCopy event is fired after a copy operation is performed.
|
|
16
|
+
* @deprecated use `univerAPI.addEvent(univerAPI.Event.ClipboardChanged, (params) => {})` instead
|
|
21
17
|
* @param callback Callback function that will be called when the event is fired
|
|
22
18
|
* @returns A disposable object that can be used to unsubscribe from the event
|
|
23
19
|
*/
|
|
24
20
|
onCopy(callback: () => void): IDisposable;
|
|
25
21
|
/**
|
|
26
22
|
* The onBeforePaste event is fired before a paste operation is performed.
|
|
23
|
+
* @deprecated use `univerAPI.addEvent(univerAPI.Event.BeforeClipboardPaste, (params) => {})` instead
|
|
27
24
|
* @param callback Callback function that will be called when the event is fired
|
|
28
25
|
* @returns A disposable object that can be used to unsubscribe from the event
|
|
29
26
|
*/
|
|
30
27
|
onBeforePaste(callback: () => void): IDisposable;
|
|
31
28
|
/**
|
|
32
29
|
* The onPaste event is fired after a paste operation is performed.
|
|
30
|
+
* @deprecated use `univerAPI.addEvent(univerAPI.Event.ClipboardPasted, (params) => {})` instead
|
|
33
31
|
* @param callback Callback function that will be called when the event is fired
|
|
34
32
|
* @returns A disposable object that can be used to unsubscribe from the event
|
|
35
33
|
*/
|
|
@@ -76,14 +76,18 @@ declare abstract class FMenuBase extends FBase {
|
|
|
76
76
|
* univerAPI.createMenu({
|
|
77
77
|
* id: 'custom-menu-id-1',
|
|
78
78
|
* title: 'Custom Menu 1',
|
|
79
|
-
* action: () => {
|
|
79
|
+
* action: () => {
|
|
80
|
+
* console.log('Custom Menu 1 clicked');
|
|
81
|
+
* },
|
|
80
82
|
* }).appendTo('contextMenu.others');
|
|
81
83
|
*
|
|
82
84
|
* // This menu item will only appear on the `contextMenu.others` section on the main area.
|
|
83
85
|
* univerAPI.createMenu({
|
|
84
86
|
* id: 'custom-menu-id-2',
|
|
85
87
|
* title: 'Custom Menu 2',
|
|
86
|
-
* action: () => {
|
|
88
|
+
* action: () => {
|
|
89
|
+
* console.log('Custom Menu 2 clicked');
|
|
90
|
+
* },
|
|
87
91
|
* }).appendTo(['contextMenu.mainArea', 'contextMenu.others']);
|
|
88
92
|
* ```
|
|
89
93
|
*/
|
|
@@ -139,11 +143,66 @@ export declare class FSubmenu extends FMenuBase {
|
|
|
139
143
|
* Add a menu to the submenu. It can be a {@link FMenu} or a {@link FSubmenu}.
|
|
140
144
|
* @param {FMenu | FSubmenu} submenu - Menu to add to the submenu.
|
|
141
145
|
* @returns {FSubmenu} The FSubmenu itself for chaining calls.
|
|
146
|
+
* @example
|
|
147
|
+
* ```typescript
|
|
148
|
+
* // Create two leaf menus.
|
|
149
|
+
* const menu1 = univerAPI.createMenu({
|
|
150
|
+
* id: 'submenu-nested-1',
|
|
151
|
+
* title: 'Item 1',
|
|
152
|
+
* action: () => {
|
|
153
|
+
* console.log('Item 1 clicked');
|
|
154
|
+
* }
|
|
155
|
+
* });
|
|
156
|
+
* const menu2 = univerAPI.createMenu({
|
|
157
|
+
* id: 'submenu-nested-2',
|
|
158
|
+
* title: 'Item 2',
|
|
159
|
+
* action: () => {
|
|
160
|
+
* console.log('Item 2 clicked');
|
|
161
|
+
* }
|
|
162
|
+
* });
|
|
163
|
+
*
|
|
164
|
+
* // Add the leaf menus to a submenu.
|
|
165
|
+
* const submenu = univerAPI.createSubmenu({ id: 'submenu-nested', title: 'Nested Submenu' })
|
|
166
|
+
* .addSubmenu(menu1)
|
|
167
|
+
* .addSeparator()
|
|
168
|
+
* .addSubmenu(menu2);
|
|
169
|
+
*
|
|
170
|
+
* // Create a root submenu append to the `contextMenu.others` section.
|
|
171
|
+
* univerAPI.createSubmenu({ id: 'custom-submenu', title: 'Custom Submenu' })
|
|
172
|
+
* .addSubmenu(submenu)
|
|
173
|
+
* .appendTo('contextMenu.others');
|
|
174
|
+
* ```
|
|
142
175
|
*/
|
|
143
176
|
addSubmenu(submenu: FMenu | FSubmenu): this;
|
|
144
177
|
/**
|
|
145
178
|
* Add a separator to the submenu.
|
|
146
179
|
* @returns {FSubmenu} The FSubmenu itself for chaining calls.
|
|
180
|
+
* @example
|
|
181
|
+
* ```typescript
|
|
182
|
+
* // Create two leaf menus.
|
|
183
|
+
* const menu1 = univerAPI.createMenu({
|
|
184
|
+
* id: 'submenu-nested-1',
|
|
185
|
+
* title: 'Item 1',
|
|
186
|
+
* action: () => {
|
|
187
|
+
* console.log('Item 1 clicked');
|
|
188
|
+
* }
|
|
189
|
+
* });
|
|
190
|
+
* const menu2 = univerAPI.createMenu({
|
|
191
|
+
* id: 'submenu-nested-2',
|
|
192
|
+
* title: 'Item 2',
|
|
193
|
+
* action: () => {
|
|
194
|
+
* console.log('Item 2 clicked');
|
|
195
|
+
* }
|
|
196
|
+
* });
|
|
197
|
+
*
|
|
198
|
+
* // Add the leaf menus to a submenu and add a separator between them.
|
|
199
|
+
* // Append the submenu to the `contextMenu.others` section.
|
|
200
|
+
* univerAPI.createSubmenu({ id: 'submenu-nested', title: 'Nested Submenu' })
|
|
201
|
+
* .addSubmenu(menu1)
|
|
202
|
+
* .addSeparator()
|
|
203
|
+
* .addSubmenu(menu2)
|
|
204
|
+
* .appendTo('contextMenu.others');
|
|
205
|
+
* ```
|
|
147
206
|
*/
|
|
148
207
|
addSeparator(): this;
|
|
149
208
|
/**
|
|
@@ -1,15 +1,18 @@
|
|
|
1
1
|
import { IShortcutItem, IShortcutService } from '@univerjs/ui';
|
|
2
|
-
import { Injector } from '@univerjs/core';
|
|
2
|
+
import { Injector, IUniverInstanceService } from '@univerjs/core';
|
|
3
3
|
import { FBase } from '@univerjs/core/facade';
|
|
4
|
+
import { IRenderManagerService } from '@univerjs/engine-render';
|
|
4
5
|
/**
|
|
5
6
|
* The Facade API object to handle shortcuts in Univer
|
|
6
7
|
* @hideconstructor
|
|
7
8
|
*/
|
|
8
9
|
export declare class FShortcut extends FBase {
|
|
9
10
|
protected readonly _injector: Injector;
|
|
11
|
+
private _renderManagerService;
|
|
12
|
+
protected readonly _univerInstanceService: IUniverInstanceService;
|
|
10
13
|
protected readonly _shortcutService: IShortcutService;
|
|
11
14
|
private _forceDisableDisposable;
|
|
12
|
-
constructor(_injector: Injector, _shortcutService: IShortcutService);
|
|
15
|
+
constructor(_injector: Injector, _renderManagerService: IRenderManagerService, _univerInstanceService: IUniverInstanceService, _shortcutService: IShortcutService);
|
|
13
16
|
/**
|
|
14
17
|
* Enable shortcuts of Univer.
|
|
15
18
|
* @returns {FShortcut} The Facade API instance itself for chaining.
|
|
@@ -31,6 +34,38 @@ export declare class FShortcut extends FBase {
|
|
|
31
34
|
* ```
|
|
32
35
|
*/
|
|
33
36
|
disableShortcut(): this;
|
|
37
|
+
/**
|
|
38
|
+
* Trigger shortcut of Univer by a KeyboardEvent and return the matched shortcut item.
|
|
39
|
+
* @param {KeyboardEvent} e - The KeyboardEvent to trigger.
|
|
40
|
+
* @returns {IShortcutItem<object> | undefined} The matched shortcut item.
|
|
41
|
+
*
|
|
42
|
+
* @example
|
|
43
|
+
* ```typescript
|
|
44
|
+
* // Assum the current sheet is empty sheet.
|
|
45
|
+
* const fWorkbook = univerAPI.getActiveWorkbook();
|
|
46
|
+
* const fWorksheet = fWorkbook.getActiveSheet();
|
|
47
|
+
* const fRange = fWorksheet.getRange('A1');
|
|
48
|
+
*
|
|
49
|
+
* // Set A1 cell active and set value to 'Hello Univer'.
|
|
50
|
+
* fRange.activate();
|
|
51
|
+
* fRange.setValue('Hello Univer');
|
|
52
|
+
* console.log(fRange.getCellStyle().bold); // false
|
|
53
|
+
*
|
|
54
|
+
* // Set A1 cell bold by shortcut.
|
|
55
|
+
* const fShortcut = univerAPI.getShortcut();
|
|
56
|
+
* const pseudoEvent = new KeyboardEvent('keydown', {
|
|
57
|
+
* key: 'b',
|
|
58
|
+
* ctrlKey: true,
|
|
59
|
+
* keyCode: univerAPI.Enum.KeyCode.B
|
|
60
|
+
* });
|
|
61
|
+
* const ifShortcutItem = fShortcut.triggerShortcut(pseudoEvent);
|
|
62
|
+
* if (ifShortcutItem) {
|
|
63
|
+
* const commandId = ifShortcutItem.id;
|
|
64
|
+
* console.log(fRange.getCellStyle().bold); // true
|
|
65
|
+
* }
|
|
66
|
+
* ```
|
|
67
|
+
*/
|
|
68
|
+
triggerShortcut(e: KeyboardEvent): IShortcutItem<object> | undefined;
|
|
34
69
|
/**
|
|
35
70
|
* Dispatch a KeyboardEvent to the shortcut service and return the matched shortcut item.
|
|
36
71
|
* @param {KeyboardEvent} e - The KeyboardEvent to dispatch.
|