@univerjs/ui 0.21.0 → 0.21.1

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/lib/cjs/index.js CHANGED
@@ -5181,7 +5181,7 @@ const IUIController = (0, _univerjs_core.createIdentifier)("univer.ui.ui-control
5181
5181
  //#endregion
5182
5182
  //#region package.json
5183
5183
  var name = "@univerjs/ui";
5184
- var version = "0.21.0";
5184
+ var version = "0.21.1";
5185
5185
 
5186
5186
  //#endregion
5187
5187
  //#region src/views/components/ribbon/MobileRibbon.tsx
package/lib/es/index.js CHANGED
@@ -5136,7 +5136,7 @@ const IUIController = createIdentifier("univer.ui.ui-controller");
5136
5136
  //#endregion
5137
5137
  //#region package.json
5138
5138
  var name = "@univerjs/ui";
5139
- var version = "0.21.0";
5139
+ var version = "0.21.1";
5140
5140
 
5141
5141
  //#endregion
5142
5142
  //#region src/views/components/ribbon/MobileRibbon.tsx
package/lib/index.js CHANGED
@@ -5136,7 +5136,7 @@ const IUIController = createIdentifier("univer.ui.ui-controller");
5136
5136
  //#endregion
5137
5137
  //#region package.json
5138
5138
  var name = "@univerjs/ui";
5139
- var version = "0.21.0";
5139
+ var version = "0.21.1";
5140
5140
 
5141
5141
  //#endregion
5142
5142
  //#region src/views/components/ribbon/MobileRibbon.tsx
package/lib/umd/index.js CHANGED
@@ -40,7 +40,7 @@ hover:univer-bg-gray-100 whitespace-nowrap univer-w-max
40
40
  univer-text-primary-600
41
41
  `}),(0,a.jsx)(`span`,{className:(0,o.clsx)(Ao,l&&i&&`
42
42
  univer-pl-4
43
- `),children:(0,a.jsx)(z,{value$:e.value$,value:e.value,label:e.label,icon:e.icon,onChange:t=>{d==null||d({...e,value:t,id:c.id,label:s,commandId:e.commandId})}})})]});return l?(0,a.jsx)(`button`,{type:`button`,className:f,disabled:e.disabled,onClick:()=>{d==null||d({...e,id:c.id,label:s,commandId:e.commandId})},children:p},r):(0,a.jsx)(`div`,{className:f,"aria-disabled":e.disabled,children:p},r)})}),F&&(0,a.jsx)(Po,{menuSchemas:N,submenuPortalContainer:u,onOptionSelect:d,maxMenuHeight:f})]})}),u):null)]})}function Io(e){let[t,i]=(0,r.useState)({});return(0,r.useEffect)(()=>{let t=e.map(e=>{var t;return(t=e.children)!=null&&t.length?(0,n.combineLatest)(e.children.map(e=>{var t,r;return(t=(r=e.item)==null?void 0:r.hidden$)==null?(0,n.of)(!1):t})).subscribe(t=>{let n=t.every(e=>e===!0);i(t=>({...t,[e.key]:n}))}):null});return()=>{t.forEach(e=>e==null?void 0:e.unsubscribe()),i({})}},[e]),t}function Lo(e){let{hostId:t,visible:n,anchorRect:s,menuType:c,anchorVertical:l=`bottom`,menuOffset:u=0,onRequestClose:d,onOptionSelect:f}=e,p=(0,r.useRef)(null),m=(0,i.useDependency)(wo),h=(0,r.useRef)(d),g=(0,r.useRef)(0),_=(0,r.useRef)(n),v=(0,r.useRef)(c);(0,r.useEffect)(()=>{h.current=d},[d]),n&&(!_.current||c!==v.current)&&(g.current+=1),_.current=n,v.current=c,(0,r.useEffect)(()=>{let e=m.registerMenu(t,()=>{h.current()});return()=>{e.dispose(),m.deactivateMenu(t)}},[m,t]),(0,r.useLayoutEffect)(()=>{if(n){m.activateMenu(t);return}m.deactivateMenu(t)},[m,t,n]),(0,r.useEffect)(()=>{if(!n)return;let e=e=>e instanceof Element&&e.closest(`[data-u-context-menu-submenu]`),t=t=>{e(t.target)||p.current&&!p.current.contains(t.target)&&h.current()},r=e=>{e.key===`Escape`&&h.current()},i=t=>{var n;if(e(t.target)){t.stopPropagation();return}if((n=p.current)!=null&&n.contains(t.target)){t.stopPropagation();return}t.preventDefault(),t.stopPropagation()};return document.addEventListener(`pointerdown`,t),document.addEventListener(`keydown`,r),document.addEventListener(`wheel`,i,{capture:!0,passive:!1}),()=>{document.removeEventListener(`pointerdown`,t),document.removeEventListener(`keydown`,r),document.removeEventListener(`wheel`,i,!0)}},[n]);let y=(0,r.useMemo)(()=>{if(!s)return[0,0];let e=l===`top`?s.top:s.bottom,t=l===`top`?e-u:e+u;return[s.left,t]},[s,l,u]);return(0,a.jsx)(o.Popup,{visible:n&&!!s,offset:y,overflowVisible:!0,placementY:l===`top`?`above`:`below`,children:(0,a.jsx)(`section`,{ref:p,children:c&&(0,a.jsx)(No,{menuType:c,menuSessionVersion:g.current,onOptionSelect:f})})})}function Ro(){let[e,n]=(0,r.useState)(!1),[o,s]=(0,r.useState)(``),[c,l]=(0,r.useState)(null),u=(0,r.useRef)(e),d=(0,i.useDependency)(So),f=(0,i.useDependency)(t.ICommandService),p=(0,i.useInjector)();u.current=e,(0,r.useEffect)(()=>{let e=d.registerContextMenuHandler({handleContextMenu:m,hideContextMenu(){h()},get visible(){return u.current}});return()=>{e.dispose()}},[d]);function m(e,t){n(!1),requestAnimationFrame(()=>{s(t),l({left:e.clientX,top:e.clientY,bottom:e.clientY}),n(!0)})}function h(){n(!1)}return(0,a.jsx)(Lo,{hostId:`desktop-context-menu`,visible:e,anchorRect:c,menuType:o,onRequestClose:h,onOptionSelect:e=>{let{label:t,commandId:n,value:r}=e;f&&f.executeCommand(n==null?t:n,{value:r}),p.get(H).focus(),h()}})}let zo=(0,t.createIdentifier)(`univer.global-zone-service`);function Bo(){let e=(0,i.useDependency)(zo),[t,n]=(0,r.useState)(!1),s=(0,i.useObservable)(e.componentKey$,e.componentKey),c=(0,i.useDependency)(R),l=(0,r.useMemo)(()=>{let e=c.get(s==null?``:s);if(e)return e},[s,c]);return(0,r.useEffect)(()=>{let t=e.visible$.subscribe(e=>{n(e)});return()=>{t.unsubscribe()}},[e.visible$]),t?(0,a.jsx)(`section`,{className:(0,o.clsx)(`univer-absolute univer-bg-gray-100`,{"univer-hidden":!t,"univer-inset-0 univer-z-[100] univer-block univer-size-full":t}),children:l&&(0,a.jsx)(l,{})}):null}function Vo(){let e=(0,i.useDependency)(T),t=(0,i.useObservable)(e.sidebarOptions$),n=(0,r.useRef)(null),s=(0,r.useMemo)(()=>{if(!t)return null;let e={...t};for(let n of[`children`,`header`,`footer`]){let r=n;if(t[r]){let{key:n,...i}=t[r];i&&(e[r]=(0,a.jsx)(z,{...i},n))}}return e},[t]);(0,r.useEffect)(()=>(n.current&&e.setContainer(n.current),()=>{e.setContainer(void 0)}),[e]),(0,r.useEffect)(()=>{let t=t=>{e.scrollEvent$.next(t)},r=n.current;return r&&r.addEventListener(`scroll`,t),()=>{r==null||r.removeEventListener(`scroll`,t)}},[e]);let c=(0,r.useMemo)(()=>s!=null&&s.visible?typeof s.width==`number`?`${s.width}px`:s.width:0,[s]);function l(){e.close(t==null?void 0:t.id)}return(0,a.jsx)(`section`,{"data-u-comp":`sidebar`,className:(0,o.clsx)(`univer-relative univer-h-full univer-bg-white univer-text-gray-900 dark:!univer-bg-gray-900 dark:!univer-text-white`,{"univer-w-96 univer-translate-x-0":s==null?void 0:s.visible,"univer-w-0 univer-translate-x-full":!(s!=null&&s.visible)}),style:{width:c},children:(0,a.jsxs)(`section`,{ref:n,className:(0,o.clsx)(`univer-box-border univer-grid univer-h-0 univer-min-h-full univer-grid-rows-[auto_1fr_auto] univer-overflow-y-auto`,o.borderLeftBottomClassName,o.scrollbarClassName),children:[(0,a.jsxs)(`header`,{className:`univer-sticky univer-top-0 univer-z-10 univer-box-border univer-flex univer-cursor-default univer-items-center univer-justify-between univer-bg-white univer-p-4 univer-pb-2 univer-text-base univer-font-medium univer-text-gray-800 dark:!univer-bg-gray-900 dark:!univer-text-white`,children:[s==null?void 0:s.header,(0,a.jsx)(`a`,{className:`univer-cursor-pointer univer-text-gray-500 dark:!univer-text-gray-300`,onClick:l,children:(0,a.jsx)(De,{})})]}),(0,a.jsx)(`section`,{className:`univer-box-border univer-cursor-default univer-px-4`,style:s==null?void 0:s.bodyStyle,children:s==null?void 0:s.children}),(s==null?void 0:s.footer)&&(0,a.jsx)(`footer`,{className:`univer-sticky univer-bottom-0 univer-box-border univer-bg-white univer-p-4 dark:!univer-bg-gray-900`,children:s.footer})]})})}let Ho=(0,t.createIdentifier)(`univer.zen-zone-service`);function Uo(){let e=(0,i.useDependency)(Ho),[t,n]=(0,r.useState)(!1),[s,c]=(0,r.useState)(),l=(0,i.useObservable)(e.temporaryHidden$),u=(0,i.useDependency)(R);(0,r.useEffect)(()=>{let t=[e.visible$.subscribe(e=>{n(e)}),e.componentKey$.subscribe(e=>{c(e)})];return()=>{t.forEach(e=>{e.unsubscribe()})}},[]);let d=(0,r.useMemo)(()=>{let e=u.get(s==null?``:s);if(e)return e},[s]);return(0,a.jsx)(`section`,{className:(0,o.clsx)(`univer-absolute univer-z-[-1] univer-flex`,{"univer-animate-in univer-fade-in univer-inset-0 univer-z-[100] univer-bg-gray-100":t,"univer-hidden":l}),children:(0,a.jsx)(`div`,{className:`univer-relative univer-flex-1`,children:d&&(0,a.jsx)(d,{})})})}function Wo(e){let t=Ii(zi);return(0,a.jsx)(Go,{...e,...t})}function Go(e){var n;let{header:s=!0,toolbar:c=!0,footer:l=!0,headerMenu:u=!0,contextMenu:d=!0,ribbonType:f=`classic`,mountContainer:p,onRendered:m}=e,h=(0,i.useDependency)(t.LocaleService),g=(0,i.useDependency)(t.ThemeService),_=(0,i.useDependency)(xo),v=(0,r.useRef)(null),y=(0,i.useDependency)(t.IConfigService).getConfig(zi),b=$(X.CUSTOM_HEADER),x=$(X.FOOTER),S=$(X.HEADER),C=$(X.HEADER_MENU),w=$(X.CONTENT),T=$(X.LEFT_SIDEBAR),E=$(X.GLOBAL),D=$(X.TOOLBAR),O=(n=y==null?void 0:y.popupRootId)==null?`univer-popup-portal`:n;(0,r.useLayoutEffect)(()=>{let e=g.currentTheme$.subscribe(e=>{_.injectThemeToHead(e)});return()=>{e.unsubscribe()}},[]);let[k,A]=(0,r.useState)(!1);(0,r.useLayoutEffect)(()=>{let e=g.darkMode$.subscribe(e=>{A(e),e?document.documentElement.classList.add(`univer-dark`):document.documentElement.classList.remove(`univer-dark`)});return()=>{e.unsubscribe()}},[]),(0,r.useEffect)(()=>{v.current&&(m==null||m(v.current))},[m]);let[j,M]=(0,r.useState)(h.getLocales()),N=(0,r.useMemo)(()=>document.createElement(`div`),[]);return(0,r.useEffect)(()=>{document.body.appendChild(N);let e=[h.localeChanged$.subscribe(()=>{M(h.getLocales())})];return()=>{e.forEach(e=>e.unsubscribe()),document.body.removeChild(N)}},[h,p,N]),(0,a.jsxs)(o.ConfigProvider,{locale:j==null?void 0:j.design,mountContainer:N,children:[(0,a.jsxs)(`div`,{"data-u-comp":`workbench-layout`,className:(0,o.clsx)(`univer-flex univer-h-full univer-min-h-0 univer-flex-col univer-bg-white dark:!univer-bg-gray-800`,{"univer-dark":k}),tabIndex:-1,onBlur:e=>e.stopPropagation(),onContextMenu:e=>e.preventDefault(),children:[(0,a.jsx)(`div`,{className:`univer-relative univer-flex univer-min-h-0 univer-flex-col univer-bg-white dark:!univer-bg-gray-800`,children:(0,a.jsx)(Q,{components:b},`custom-header`)}),s&&c&&(0,a.jsx)(`header`,{"data-u-comp":`headerbar`,className:`univer-relative univer-z-10 univer-w-full univer-overflow-hidden`,children:(0,a.jsx)(Q,{components:D,sharedProps:{ribbonType:f,headerMenuComponents:C,headerMenu:u}},`toolbar`)}),(0,a.jsxs)(`section`,{className:`univer-relative univer-flex univer-min-h-0 univer-flex-1 univer-flex-col`,children:[(0,a.jsxs)(`div`,{className:`univer-grid univer-h-full univer-grid-cols-[auto_1fr_auto] univer-grid-rows-[100%] univer-overflow-hidden`,children:[(0,a.jsx)(`aside`,{"data-u-comp":`left-sidebar`,className:`univer-h-full`,children:(0,a.jsx)(Q,{components:T},`left-sidebar`)}),(0,a.jsxs)(`section`,{className:(0,o.clsx)(`univer-relative univer-grid univer-flex-1 univer-grid-rows-[auto_1fr] univer-overflow-hidden univer-bg-white dark:!univer-bg-gray-800`,o.borderBottomClassName),children:[(0,a.jsx)(`header`,{children:s&&(0,a.jsx)(Q,{components:S},`header`)}),(0,a.jsx)(`section`,{className:`univer-relative univer-overflow-hidden dark:!univer-bg-gray-900`,ref:v,"data-range-selector":!0,onContextMenu:e=>e.preventDefault(),children:(0,a.jsx)(Q,{components:w},`content`)})]}),(0,a.jsx)(`aside`,{"data-u-comp":`right-sidebar`,className:`univer-z-[100] univer-h-full`,children:(0,a.jsx)(Vo,{})})]}),l&&(0,a.jsx)(`footer`,{children:(0,a.jsx)(Q,{components:x,sharedProps:{contextMenu:d}},`footer`)}),(0,a.jsx)(Uo,{})]})]}),(0,a.jsx)(Q,{components:E},`global`),(0,a.jsx)(Bo,{}),d&&(0,a.jsx)(Ro,{}),(0,a.jsx)(Ko,{}),(0,a.jsx)(`div`,{id:O})]})}function Ko(){let{mountContainer:e}=(0,r.useContext)(o.ConfigContext);return(0,l.createPortal)((0,a.jsx)(Q,{components:$(X.FLOATING)},`floating`),e)}var qo=class extends t.Disposable{constructor(e,t,n,r,i){super(),this._injector=e,this._instanceService=t,this._layoutService=n,this._lifecycleService=r,this._renderManagerService=i,S(this,`_steadyTimeout`,void 0),S(this,`_renderTimeout`,void 0),S(this,`_currentRenderId`,null)}dispose(){super.dispose(),clearTimeout(this._steadyTimeout),clearTimeout(this._renderTimeout),delete this._instanceService,delete this._layoutService,delete this._lifecycleService,delete this._renderManagerService}_bootstrapWorkbench(){this.disposeWithMe(this.bootstrap(async(e,n)=>{this._layoutService&&(this.disposeWithMe(this._layoutService.registerRootContainerElement(n)),this.disposeWithMe(this._layoutService.registerContentElement(e)));try{await this._lifecycleService.onStage(t.LifecycleStages.Ready),this._renderTimeout=window.setTimeout(()=>{let n=this._renderManagerService.getRenderAll();for(let[t]of n)if(this._changeRenderUnit(t,e))break;this.disposeWithMe(this._instanceService.focused$.subscribe(t=>{t&&this._changeRenderUnit(t,e)})),this.disposeWithMe(this._renderManagerService.created$.subscribe(t=>{var n;t.unitId===((n=this._instanceService.getFocusedUnit())==null?void 0:n.getUnitId())&&this._changeRenderUnit(t.unitId,e)})),this.disposeWithMe(this._renderManagerService.disposed$.subscribe(e=>{this._currentRenderId===e&&(this._currentRenderId=null)})),this._lifecycleService.stage=t.LifecycleStages.Rendered,this._steadyTimeout=window.setTimeout(()=>{this._lifecycleService.stage=t.LifecycleStages.Steady},3e3)},300)}catch(e){if(clearTimeout(this._steadyTimeout),clearTimeout(this._renderTimeout),e instanceof t.LifecycleUnreachableError)return;throw e}}))}_changeRenderUnit(e,n){if(this._currentRenderId===e)return!1;let r=this._renderManagerService.getRenderById(e);if(!r||!r.unitId||(0,t.isInternalEditorID)(r.unitId))return!1;let i=this._currentRenderId?this._renderManagerService.getRenderById(this._currentRenderId):null;return i==null||i.deactivate(),i==null||i.engine.unmount(),r.engine.mount(n),r.activate(),this._currentRenderId=e,!0}};let Jo=class extends qo{constructor(e,t,n,r,i,a,o,s,c){super(t,a,i,n,r),this._config=e,this._componentManager=c,o.mergeMenu(qa),this._initBuiltinComponents(s),this._registerComponents(),this._bootstrapWorkbench()}_registerComponents(){[[ji,Ai],[Ni,Mi],[Yi,Wi],[Xi,Ji],[ea,Zi],[Ri,o.ColorPicker]].forEach(([e,t])=>{this.disposeWithMe(this._componentManager.register(e,t))})}dispose(){super.dispose(),this._componentManager.dispose()}bootstrap(e){return Yo(this._injector,this._config,e)}_initBuiltinComponents(e){this.disposeWithMe(e.registerComponent(X.FLOATING,()=>(0,i.connectInjector)(io,this._injector))),this.disposeWithMe(e.registerComponent(X.CONTENT,()=>(0,i.connectInjector)(Za,this._injector))),this.disposeWithMe(e.registerComponent(X.TOOLBAR,()=>(0,i.connectInjector)(bo,this._injector)))}};Jo=V([B(1,(0,t.Inject)(t.Injector)),B(2,(0,t.Inject)(t.LifecycleService)),B(3,s.IRenderManagerService),B(4,H),B(5,t.IUniverInstanceService),B(6,J),B(7,Z),B(8,(0,t.Inject)(R))],Jo);function Yo(e,n,r){let s,c=n.container;s=typeof c==`string`?document.getElementById(c)||Xo(c):c instanceof HTMLElement?c:Xo(`univer`);let l=(0,i.connectInjector)(Wo,e),u=e=>r(e,s);function d(){(0,o.render)((0,a.jsx)(l,{...n,mountContainer:s,onRendered:u}),s)}return d(),(0,t.toDisposable)(()=>{(0,o.unmount)(s)})}function Xo(e){let t=document.createElement(`div`);return t.id=e,t}let Zo=(0,t.createIdentifier)(`univer.ui.ui-controller`);var Qo=`@univerjs/ui`,$o=`0.21.0`;let es=`
43
+ `),children:(0,a.jsx)(z,{value$:e.value$,value:e.value,label:e.label,icon:e.icon,onChange:t=>{d==null||d({...e,value:t,id:c.id,label:s,commandId:e.commandId})}})})]});return l?(0,a.jsx)(`button`,{type:`button`,className:f,disabled:e.disabled,onClick:()=>{d==null||d({...e,id:c.id,label:s,commandId:e.commandId})},children:p},r):(0,a.jsx)(`div`,{className:f,"aria-disabled":e.disabled,children:p},r)})}),F&&(0,a.jsx)(Po,{menuSchemas:N,submenuPortalContainer:u,onOptionSelect:d,maxMenuHeight:f})]})}),u):null)]})}function Io(e){let[t,i]=(0,r.useState)({});return(0,r.useEffect)(()=>{let t=e.map(e=>{var t;return(t=e.children)!=null&&t.length?(0,n.combineLatest)(e.children.map(e=>{var t,r;return(t=(r=e.item)==null?void 0:r.hidden$)==null?(0,n.of)(!1):t})).subscribe(t=>{let n=t.every(e=>e===!0);i(t=>({...t,[e.key]:n}))}):null});return()=>{t.forEach(e=>e==null?void 0:e.unsubscribe()),i({})}},[e]),t}function Lo(e){let{hostId:t,visible:n,anchorRect:s,menuType:c,anchorVertical:l=`bottom`,menuOffset:u=0,onRequestClose:d,onOptionSelect:f}=e,p=(0,r.useRef)(null),m=(0,i.useDependency)(wo),h=(0,r.useRef)(d),g=(0,r.useRef)(0),_=(0,r.useRef)(n),v=(0,r.useRef)(c);(0,r.useEffect)(()=>{h.current=d},[d]),n&&(!_.current||c!==v.current)&&(g.current+=1),_.current=n,v.current=c,(0,r.useEffect)(()=>{let e=m.registerMenu(t,()=>{h.current()});return()=>{e.dispose(),m.deactivateMenu(t)}},[m,t]),(0,r.useLayoutEffect)(()=>{if(n){m.activateMenu(t);return}m.deactivateMenu(t)},[m,t,n]),(0,r.useEffect)(()=>{if(!n)return;let e=e=>e instanceof Element&&e.closest(`[data-u-context-menu-submenu]`),t=t=>{e(t.target)||p.current&&!p.current.contains(t.target)&&h.current()},r=e=>{e.key===`Escape`&&h.current()},i=t=>{var n;if(e(t.target)){t.stopPropagation();return}if((n=p.current)!=null&&n.contains(t.target)){t.stopPropagation();return}t.preventDefault(),t.stopPropagation()};return document.addEventListener(`pointerdown`,t),document.addEventListener(`keydown`,r),document.addEventListener(`wheel`,i,{capture:!0,passive:!1}),()=>{document.removeEventListener(`pointerdown`,t),document.removeEventListener(`keydown`,r),document.removeEventListener(`wheel`,i,!0)}},[n]);let y=(0,r.useMemo)(()=>{if(!s)return[0,0];let e=l===`top`?s.top:s.bottom,t=l===`top`?e-u:e+u;return[s.left,t]},[s,l,u]);return(0,a.jsx)(o.Popup,{visible:n&&!!s,offset:y,overflowVisible:!0,placementY:l===`top`?`above`:`below`,children:(0,a.jsx)(`section`,{ref:p,children:c&&(0,a.jsx)(No,{menuType:c,menuSessionVersion:g.current,onOptionSelect:f})})})}function Ro(){let[e,n]=(0,r.useState)(!1),[o,s]=(0,r.useState)(``),[c,l]=(0,r.useState)(null),u=(0,r.useRef)(e),d=(0,i.useDependency)(So),f=(0,i.useDependency)(t.ICommandService),p=(0,i.useInjector)();u.current=e,(0,r.useEffect)(()=>{let e=d.registerContextMenuHandler({handleContextMenu:m,hideContextMenu(){h()},get visible(){return u.current}});return()=>{e.dispose()}},[d]);function m(e,t){n(!1),requestAnimationFrame(()=>{s(t),l({left:e.clientX,top:e.clientY,bottom:e.clientY}),n(!0)})}function h(){n(!1)}return(0,a.jsx)(Lo,{hostId:`desktop-context-menu`,visible:e,anchorRect:c,menuType:o,onRequestClose:h,onOptionSelect:e=>{let{label:t,commandId:n,value:r}=e;f&&f.executeCommand(n==null?t:n,{value:r}),p.get(H).focus(),h()}})}let zo=(0,t.createIdentifier)(`univer.global-zone-service`);function Bo(){let e=(0,i.useDependency)(zo),[t,n]=(0,r.useState)(!1),s=(0,i.useObservable)(e.componentKey$,e.componentKey),c=(0,i.useDependency)(R),l=(0,r.useMemo)(()=>{let e=c.get(s==null?``:s);if(e)return e},[s,c]);return(0,r.useEffect)(()=>{let t=e.visible$.subscribe(e=>{n(e)});return()=>{t.unsubscribe()}},[e.visible$]),t?(0,a.jsx)(`section`,{className:(0,o.clsx)(`univer-absolute univer-bg-gray-100`,{"univer-hidden":!t,"univer-inset-0 univer-z-[100] univer-block univer-size-full":t}),children:l&&(0,a.jsx)(l,{})}):null}function Vo(){let e=(0,i.useDependency)(T),t=(0,i.useObservable)(e.sidebarOptions$),n=(0,r.useRef)(null),s=(0,r.useMemo)(()=>{if(!t)return null;let e={...t};for(let n of[`children`,`header`,`footer`]){let r=n;if(t[r]){let{key:n,...i}=t[r];i&&(e[r]=(0,a.jsx)(z,{...i},n))}}return e},[t]);(0,r.useEffect)(()=>(n.current&&e.setContainer(n.current),()=>{e.setContainer(void 0)}),[e]),(0,r.useEffect)(()=>{let t=t=>{e.scrollEvent$.next(t)},r=n.current;return r&&r.addEventListener(`scroll`,t),()=>{r==null||r.removeEventListener(`scroll`,t)}},[e]);let c=(0,r.useMemo)(()=>s!=null&&s.visible?typeof s.width==`number`?`${s.width}px`:s.width:0,[s]);function l(){e.close(t==null?void 0:t.id)}return(0,a.jsx)(`section`,{"data-u-comp":`sidebar`,className:(0,o.clsx)(`univer-relative univer-h-full univer-bg-white univer-text-gray-900 dark:!univer-bg-gray-900 dark:!univer-text-white`,{"univer-w-96 univer-translate-x-0":s==null?void 0:s.visible,"univer-w-0 univer-translate-x-full":!(s!=null&&s.visible)}),style:{width:c},children:(0,a.jsxs)(`section`,{ref:n,className:(0,o.clsx)(`univer-box-border univer-grid univer-h-0 univer-min-h-full univer-grid-rows-[auto_1fr_auto] univer-overflow-y-auto`,o.borderLeftBottomClassName,o.scrollbarClassName),children:[(0,a.jsxs)(`header`,{className:`univer-sticky univer-top-0 univer-z-10 univer-box-border univer-flex univer-cursor-default univer-items-center univer-justify-between univer-bg-white univer-p-4 univer-pb-2 univer-text-base univer-font-medium univer-text-gray-800 dark:!univer-bg-gray-900 dark:!univer-text-white`,children:[s==null?void 0:s.header,(0,a.jsx)(`a`,{className:`univer-cursor-pointer univer-text-gray-500 dark:!univer-text-gray-300`,onClick:l,children:(0,a.jsx)(De,{})})]}),(0,a.jsx)(`section`,{className:`univer-box-border univer-cursor-default univer-px-4`,style:s==null?void 0:s.bodyStyle,children:s==null?void 0:s.children}),(s==null?void 0:s.footer)&&(0,a.jsx)(`footer`,{className:`univer-sticky univer-bottom-0 univer-box-border univer-bg-white univer-p-4 dark:!univer-bg-gray-900`,children:s.footer})]})})}let Ho=(0,t.createIdentifier)(`univer.zen-zone-service`);function Uo(){let e=(0,i.useDependency)(Ho),[t,n]=(0,r.useState)(!1),[s,c]=(0,r.useState)(),l=(0,i.useObservable)(e.temporaryHidden$),u=(0,i.useDependency)(R);(0,r.useEffect)(()=>{let t=[e.visible$.subscribe(e=>{n(e)}),e.componentKey$.subscribe(e=>{c(e)})];return()=>{t.forEach(e=>{e.unsubscribe()})}},[]);let d=(0,r.useMemo)(()=>{let e=u.get(s==null?``:s);if(e)return e},[s]);return(0,a.jsx)(`section`,{className:(0,o.clsx)(`univer-absolute univer-z-[-1] univer-flex`,{"univer-animate-in univer-fade-in univer-inset-0 univer-z-[100] univer-bg-gray-100":t,"univer-hidden":l}),children:(0,a.jsx)(`div`,{className:`univer-relative univer-flex-1`,children:d&&(0,a.jsx)(d,{})})})}function Wo(e){let t=Ii(zi);return(0,a.jsx)(Go,{...e,...t})}function Go(e){var n;let{header:s=!0,toolbar:c=!0,footer:l=!0,headerMenu:u=!0,contextMenu:d=!0,ribbonType:f=`classic`,mountContainer:p,onRendered:m}=e,h=(0,i.useDependency)(t.LocaleService),g=(0,i.useDependency)(t.ThemeService),_=(0,i.useDependency)(xo),v=(0,r.useRef)(null),y=(0,i.useDependency)(t.IConfigService).getConfig(zi),b=$(X.CUSTOM_HEADER),x=$(X.FOOTER),S=$(X.HEADER),C=$(X.HEADER_MENU),w=$(X.CONTENT),T=$(X.LEFT_SIDEBAR),E=$(X.GLOBAL),D=$(X.TOOLBAR),O=(n=y==null?void 0:y.popupRootId)==null?`univer-popup-portal`:n;(0,r.useLayoutEffect)(()=>{let e=g.currentTheme$.subscribe(e=>{_.injectThemeToHead(e)});return()=>{e.unsubscribe()}},[]);let[k,A]=(0,r.useState)(!1);(0,r.useLayoutEffect)(()=>{let e=g.darkMode$.subscribe(e=>{A(e),e?document.documentElement.classList.add(`univer-dark`):document.documentElement.classList.remove(`univer-dark`)});return()=>{e.unsubscribe()}},[]),(0,r.useEffect)(()=>{v.current&&(m==null||m(v.current))},[m]);let[j,M]=(0,r.useState)(h.getLocales()),N=(0,r.useMemo)(()=>document.createElement(`div`),[]);return(0,r.useEffect)(()=>{document.body.appendChild(N);let e=[h.localeChanged$.subscribe(()=>{M(h.getLocales())})];return()=>{e.forEach(e=>e.unsubscribe()),document.body.removeChild(N)}},[h,p,N]),(0,a.jsxs)(o.ConfigProvider,{locale:j==null?void 0:j.design,mountContainer:N,children:[(0,a.jsxs)(`div`,{"data-u-comp":`workbench-layout`,className:(0,o.clsx)(`univer-flex univer-h-full univer-min-h-0 univer-flex-col univer-bg-white dark:!univer-bg-gray-800`,{"univer-dark":k}),tabIndex:-1,onBlur:e=>e.stopPropagation(),onContextMenu:e=>e.preventDefault(),children:[(0,a.jsx)(`div`,{className:`univer-relative univer-flex univer-min-h-0 univer-flex-col univer-bg-white dark:!univer-bg-gray-800`,children:(0,a.jsx)(Q,{components:b},`custom-header`)}),s&&c&&(0,a.jsx)(`header`,{"data-u-comp":`headerbar`,className:`univer-relative univer-z-10 univer-w-full univer-overflow-hidden`,children:(0,a.jsx)(Q,{components:D,sharedProps:{ribbonType:f,headerMenuComponents:C,headerMenu:u}},`toolbar`)}),(0,a.jsxs)(`section`,{className:`univer-relative univer-flex univer-min-h-0 univer-flex-1 univer-flex-col`,children:[(0,a.jsxs)(`div`,{className:`univer-grid univer-h-full univer-grid-cols-[auto_1fr_auto] univer-grid-rows-[100%] univer-overflow-hidden`,children:[(0,a.jsx)(`aside`,{"data-u-comp":`left-sidebar`,className:`univer-h-full`,children:(0,a.jsx)(Q,{components:T},`left-sidebar`)}),(0,a.jsxs)(`section`,{className:(0,o.clsx)(`univer-relative univer-grid univer-flex-1 univer-grid-rows-[auto_1fr] univer-overflow-hidden univer-bg-white dark:!univer-bg-gray-800`,o.borderBottomClassName),children:[(0,a.jsx)(`header`,{children:s&&(0,a.jsx)(Q,{components:S},`header`)}),(0,a.jsx)(`section`,{className:`univer-relative univer-overflow-hidden dark:!univer-bg-gray-900`,ref:v,"data-range-selector":!0,onContextMenu:e=>e.preventDefault(),children:(0,a.jsx)(Q,{components:w},`content`)})]}),(0,a.jsx)(`aside`,{"data-u-comp":`right-sidebar`,className:`univer-z-[100] univer-h-full`,children:(0,a.jsx)(Vo,{})})]}),l&&(0,a.jsx)(`footer`,{children:(0,a.jsx)(Q,{components:x,sharedProps:{contextMenu:d}},`footer`)}),(0,a.jsx)(Uo,{})]})]}),(0,a.jsx)(Q,{components:E},`global`),(0,a.jsx)(Bo,{}),d&&(0,a.jsx)(Ro,{}),(0,a.jsx)(Ko,{}),(0,a.jsx)(`div`,{id:O})]})}function Ko(){let{mountContainer:e}=(0,r.useContext)(o.ConfigContext);return(0,l.createPortal)((0,a.jsx)(Q,{components:$(X.FLOATING)},`floating`),e)}var qo=class extends t.Disposable{constructor(e,t,n,r,i){super(),this._injector=e,this._instanceService=t,this._layoutService=n,this._lifecycleService=r,this._renderManagerService=i,S(this,`_steadyTimeout`,void 0),S(this,`_renderTimeout`,void 0),S(this,`_currentRenderId`,null)}dispose(){super.dispose(),clearTimeout(this._steadyTimeout),clearTimeout(this._renderTimeout),delete this._instanceService,delete this._layoutService,delete this._lifecycleService,delete this._renderManagerService}_bootstrapWorkbench(){this.disposeWithMe(this.bootstrap(async(e,n)=>{this._layoutService&&(this.disposeWithMe(this._layoutService.registerRootContainerElement(n)),this.disposeWithMe(this._layoutService.registerContentElement(e)));try{await this._lifecycleService.onStage(t.LifecycleStages.Ready),this._renderTimeout=window.setTimeout(()=>{let n=this._renderManagerService.getRenderAll();for(let[t]of n)if(this._changeRenderUnit(t,e))break;this.disposeWithMe(this._instanceService.focused$.subscribe(t=>{t&&this._changeRenderUnit(t,e)})),this.disposeWithMe(this._renderManagerService.created$.subscribe(t=>{var n;t.unitId===((n=this._instanceService.getFocusedUnit())==null?void 0:n.getUnitId())&&this._changeRenderUnit(t.unitId,e)})),this.disposeWithMe(this._renderManagerService.disposed$.subscribe(e=>{this._currentRenderId===e&&(this._currentRenderId=null)})),this._lifecycleService.stage=t.LifecycleStages.Rendered,this._steadyTimeout=window.setTimeout(()=>{this._lifecycleService.stage=t.LifecycleStages.Steady},3e3)},300)}catch(e){if(clearTimeout(this._steadyTimeout),clearTimeout(this._renderTimeout),e instanceof t.LifecycleUnreachableError)return;throw e}}))}_changeRenderUnit(e,n){if(this._currentRenderId===e)return!1;let r=this._renderManagerService.getRenderById(e);if(!r||!r.unitId||(0,t.isInternalEditorID)(r.unitId))return!1;let i=this._currentRenderId?this._renderManagerService.getRenderById(this._currentRenderId):null;return i==null||i.deactivate(),i==null||i.engine.unmount(),r.engine.mount(n),r.activate(),this._currentRenderId=e,!0}};let Jo=class extends qo{constructor(e,t,n,r,i,a,o,s,c){super(t,a,i,n,r),this._config=e,this._componentManager=c,o.mergeMenu(qa),this._initBuiltinComponents(s),this._registerComponents(),this._bootstrapWorkbench()}_registerComponents(){[[ji,Ai],[Ni,Mi],[Yi,Wi],[Xi,Ji],[ea,Zi],[Ri,o.ColorPicker]].forEach(([e,t])=>{this.disposeWithMe(this._componentManager.register(e,t))})}dispose(){super.dispose(),this._componentManager.dispose()}bootstrap(e){return Yo(this._injector,this._config,e)}_initBuiltinComponents(e){this.disposeWithMe(e.registerComponent(X.FLOATING,()=>(0,i.connectInjector)(io,this._injector))),this.disposeWithMe(e.registerComponent(X.CONTENT,()=>(0,i.connectInjector)(Za,this._injector))),this.disposeWithMe(e.registerComponent(X.TOOLBAR,()=>(0,i.connectInjector)(bo,this._injector)))}};Jo=V([B(1,(0,t.Inject)(t.Injector)),B(2,(0,t.Inject)(t.LifecycleService)),B(3,s.IRenderManagerService),B(4,H),B(5,t.IUniverInstanceService),B(6,J),B(7,Z),B(8,(0,t.Inject)(R))],Jo);function Yo(e,n,r){let s,c=n.container;s=typeof c==`string`?document.getElementById(c)||Xo(c):c instanceof HTMLElement?c:Xo(`univer`);let l=(0,i.connectInjector)(Wo,e),u=e=>r(e,s);function d(){(0,o.render)((0,a.jsx)(l,{...n,mountContainer:s,onRendered:u}),s)}return d(),(0,t.toDisposable)(()=>{(0,o.unmount)(s)})}function Xo(e){let t=document.createElement(`div`);return t.id=e,t}let Zo=(0,t.createIdentifier)(`univer.ui.ui-controller`);var Qo=`@univerjs/ui`,$o=`0.21.1`;let es=`
44
44
  univer-m-0 univer-flex univer-appearance-none univer-items-center univer-justify-center
45
45
  univer-border-0 univer-bg-transparent univer-p-0 univer-leading-none univer-outline-none
46
46
  `;function ts(e){var n;let{headerMenuComponents:s,headerMenu:c=!0}=e,l=(0,i.useDependency)(t.LocaleService),u=(0,i.useDependency)(ao),d=(0,i.useObservable)(u.ribbon$,[]),f=(0,i.useObservable)(u.activatedTab$,G.START),p=(0,r.useMemo)(()=>{let e=d.findIndex(e=>e.key===f);return e===-1?0:e},[f,d]),m=d[p],h=(n=m==null?void 0:m.children)==null?[]:n,g=!!(c&&s&&s.size>0),_=(0,r.useRef)(null),[v,y]=(0,r.useState)(!1),[b,x]=(0,r.useState)(!1);if((0,r.useEffect)(()=>{!m&&d.length>0&&u.setActivatedTab(d[0].key)},[m,d,u]),(0,r.useEffect)(()=>{let e=_.current;if(!e)return;let t=()=>{let{scrollLeft:t,clientWidth:n,scrollWidth:r}=e;y(t>4),x(t+n<r-4)};t();let n=new ResizeObserver(t);return n.observe(e),e.addEventListener(`scroll`,t,{passive:!0}),()=>{n.disconnect(),e.removeEventListener(`scroll`,t)}},[m]),d.length===0&&!g)return null;function S(e){let t=d[e];t&&u.setActivatedTab(t.key)}function C(e){let t=_.current;t&&t.scrollBy({left:e===`left`?-168:168,behavior:`smooth`})}return(0,a.jsxs)(`div`,{"data-u-comp":`mobile-ribbon`,className:(0,o.clsx)(`univer-flex univer-flex-col univer-gap-1.5 univer-bg-gray-50 univer-px-3 univer-py-1.5 univer-text-sm dark:!univer-bg-gray-900`,o.borderBottomClassName),children:[(0,a.jsxs)(`div`,{className:`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@univerjs/ui",
3
- "version": "0.21.0",
3
+ "version": "0.21.1",
4
4
  "private": false,
5
5
  "description": "UniverSheet normal plugin UI manager",
6
6
  "author": "DreamNum <developer@univer.ai>",
@@ -68,9 +68,9 @@
68
68
  "@univerjs/icons": "^1.1.1",
69
69
  "@wendellhu/redi": "1.1.1",
70
70
  "localforage": "^1.10.0",
71
- "@univerjs/design": "0.21.0",
72
- "@univerjs/engine-render": "0.21.0",
73
- "@univerjs/core": "0.21.0"
71
+ "@univerjs/core": "0.21.1",
72
+ "@univerjs/design": "0.21.1",
73
+ "@univerjs/engine-render": "0.21.1"
74
74
  },
75
75
  "devDependencies": {
76
76
  "@testing-library/react": "^16.3.2",
@@ -82,8 +82,8 @@
82
82
  "tailwindcss-animate": "^1.0.7",
83
83
  "typescript": "^6.0.2",
84
84
  "vitest": "^4.1.4",
85
- "@univerjs-infra/shared": "0.21.0",
86
- "@univerjs/themes": "0.21.0"
85
+ "@univerjs-infra/shared": "0.21.1",
86
+ "@univerjs/themes": "0.21.1"
87
87
  },
88
88
  "scripts": {
89
89
  "test": "vitest run",