@univerjs/preset-sheets-filter 0.7.0-nightly.202505211607 → 0.7.0-nightly.202505221607

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/lib/umd/index.js +1 -1
  2. package/package.json +4 -4
package/lib/umd/index.js CHANGED
@@ -13,7 +13,7 @@
13
13
  hover:univer-bg-gray-50 univer-h-full
14
14
  univer-text-gray-900 dark:hover:!univer-bg-gray-900
15
15
  dark:!univer-text-white
16
- `,attachRender:v=>d.jsxs("div",{className:"univer-ml-1 univer-flex univer-h-5 univer-flex-1 univer-cursor-pointer univer-items-center univer-justify-between univer-text-sm univer-text-primary-500",children:[d.jsx("span",{"data-u-comp":"sheets-filter-panel-values-item-count",className:"univer-text-gray-400 dark:!univer-text-gray-500",children:`(${v.count})`}),d.jsx("a",{className:"univer-box-border univer-hidden univer-h-4 univer-whitespace-nowrap univer-px-1.5",onClick:()=>{const N=[];v.children?v.children.forEach(E=>{E.children?E.children.forEach(A=>{N.push(A.key)}):N.push(E.key)}):N.push(v.key),e.onFilterOnly(N)},children:l})]})})})]})]})}function ht(){var A;const t=T.useDependency(j),e=T.useDependency(c.LocaleService),r=T.useDependency(c.ICommandService),n=T.useObservable(t.filterBy$,void 0,!0),o=T.useObservable(t.filterByModel$,void 0,!1),l=T.useObservable(()=>(o==null?void 0:o.canApply$)||C.of(!1),void 0,!1,[o]),i=pt(e),s=!T.useObservable(t.hasCriteria$),a=b.useCallback(F=>{r.executeCommand(Fe.id,{filterBy:F})},[r]),m=b.useCallback(async()=>{await(o==null?void 0:o.clear()),r.executeCommand(z.id)},[o,r]),h=b.useCallback(()=>{r.executeCommand(z.id)},[r]),f=b.useCallback(async()=>{await(o==null?void 0:o.apply()),r.executeCommand(z.id)},[o,r]),v=(A=T.useDependency(u.SheetsFilterService).activeFilterModel)==null?void 0:A.getRange(),N=t.col,E=T.useComponentsOfPart(U.SheetsUIPart.FILTER_PANEL_EMBED_POINT);return d.jsxs("div",{"data-u-comp":"sheets-filter-panel",className:"univer-box-border univer-flex univer-h-[442px] univer-w-[312px] univer-flex-col univer-rounded-lg univer-bg-white univer-p-4 univer-shadow-lg dark:!univer-border-gray-600 dark:!univer-bg-gray-700",children:[d.jsx(T.ComponentContainer,{components:E,sharedProps:{range:v,colIndex:N,onClose:h}}),d.jsx("div",{className:"univer-mb-1 univer-flex-shrink-0 univer-flex-grow-0",children:d.jsx(y.Segmented,{value:n,items:i,onChange:F=>a(F)})}),o?d.jsx("div",{"data-u-comp":"sheets-filter-panel-content",className:"univer-flex-shrink univer-flex-grow univer-pt-2",children:n===me.VALUES?d.jsx(mt,{model:o}):d.jsx(lt,{model:o})}):d.jsx("div",{style:{flex:1}}),d.jsxs("div",{"data-u-comp":"sheets-filter-panel-footer",className:"univer-mt-4 univer-inline-flex univer-flex-shrink-0 univer-flex-grow-0 univer-flex-nowrap univer-justify-between univer-overflow-hidden",children:[d.jsx(y.Button,{variant:"link",onClick:m,disabled:s,children:e.t("sheets-filter.panel.clear-filter")}),d.jsxs("span",{className:"univer-space-x-2",children:[d.jsx(y.Button,{variant:"default",onClick:h,children:e.t("sheets-filter.panel.cancel")}),d.jsx(y.Button,{disabled:!l,variant:"primary",onClick:f,children:e.t("sheets-filter.panel.confirm")})]})]})]})}function pt(t){const e=t.getCurrentLocale();return b.useMemo(()=>[{label:t.t("sheets-filter.panel.by-values"),value:me.VALUES},{label:t.t("sheets-filter.panel.by-conditions"),value:me.CONDITIONS}],[e,t])}function dt(t){const e=t.get(u.SheetsFilterService);return{id:u.SmartToggleSheetsFilterCommand.id,type:T.MenuItemType.BUTTON_SELECTOR,icon:"FilterSingle",tooltip:"sheets-filter.toolbar.smart-toggle-filter-tooltip",hidden$:T.getMenuHiddenObservable(t,c.UniverInstanceType.UNIVER_SHEET),activated$:e.activeFilterModel$.pipe(C.map(r=>!!r)),disabled$:U.getObservableWithExclusiveRange$(t,U.getCurrentRangeDisable$(t,{worksheetTypes:[I.WorksheetFilterPermission,I.WorksheetViewPermission],rangeTypes:[I.RangeProtectionPermissionViewPoint]}))}}function ft(t){const e=t.get(u.SheetsFilterService);return{id:u.ClearSheetsFilterCriteriaCommand.id,type:T.MenuItemType.BUTTON,title:"sheets-filter.toolbar.clear-filter-criteria",hidden$:T.getMenuHiddenObservable(t,c.UniverInstanceType.UNIVER_SHEET),disabled$:e.activeFilterModel$.pipe(C.switchMap(r=>{var n;return(n=r==null?void 0:r.hasCriteria$.pipe(C.map(o=>!o)))!=null?n:C.of(!0)}))}}function _t(t){const e=t.get(u.SheetsFilterService);return{id:u.ReCalcSheetsFilterCommand.id,type:T.MenuItemType.BUTTON,title:"sheets-filter.toolbar.re-calc-filter-conditions",hidden$:T.getMenuHiddenObservable(t,c.UniverInstanceType.UNIVER_SHEET),disabled$:e.activeFilterModel$.pipe(C.switchMap(r=>{var n;return(n=r==null?void 0:r.hasCriteria$.pipe(C.map(o=>!o)))!=null?n:C.of(!0)}))}}const vt={[T.RibbonDataGroup.ORGANIZATION]:{[u.SmartToggleSheetsFilterCommand.id]:{order:2,menuItemFactory:dt,[u.ClearSheetsFilterCriteriaCommand.id]:{order:0,menuItemFactory:ft},[u.ReCalcSheetsFilterCommand.id]:{order:1,menuItemFactory:_t}}}},G=16,St=new Path2D("M3.30363 3C2.79117 3 2.51457 3.60097 2.84788 3.99024L6.8 8.60593V12.5662C6.8 12.7184 6.8864 12.8575 7.02289 12.9249L8.76717 13.7863C8.96655 13.8847 9.2 13.7396 9.2 13.5173V8.60593L13.1521 3.99024C13.4854 3.60097 13.2088 3 12.6964 3H3.30363Z");class We{static drawNoCriteria(e,r,n,o){e.save(),ie.Rect.drawWith(e,{radius:2,width:G,height:G,fill:o}),e.lineCap="square",e.strokeStyle=n,e.scale(r/G,r/G),e.beginPath(),e.lineWidth=1,e.lineCap="round",e.moveTo(3,4),e.lineTo(13,4),e.moveTo(4.5,8),e.lineTo(11.5,8),e.moveTo(6,12),e.lineTo(10,12),e.stroke(),e.restore()}static drawHasCriteria(e,r,n,o){e.save(),ie.Rect.drawWith(e,{radius:2,width:G,height:G,fill:o}),e.scale(r/G,r/G),e.fillStyle=n,e.fill(St),e.restore()}}var gt=Object.getOwnPropertyDescriptor,Ct=(t,e,r,n)=>{for(var o=n>1?void 0:n?gt(e,r):e,l=t.length-1,i;l>=0;l--)(i=t[l])&&(o=i(o)||o);return o},ye=(t,e)=>(r,n)=>e(r,n,t);const x=16,de=1;let Pe=class extends ie.Shape{constructor(e,r,n,o,l){super(e,r);S(this,"_cellWidth",0);S(this,"_cellHeight",0);S(this,"_filterParams");S(this,"_hovered",!1);this._contextService=n,this._commandService=o,this._themeService=l,this.setShapeProps(r),this.onPointerDown$.subscribeEvent(i=>this.onPointerDown(i)),this.onPointerEnter$.subscribeEvent(()=>this.onPointerEnter()),this.onPointerLeave$.subscribeEvent(()=>this.onPointerLeave())}setShapeProps(e){typeof e.cellHeight<"u"&&(this._cellHeight=e.cellHeight),typeof e.cellWidth<"u"&&(this._cellWidth=e.cellWidth),typeof e.filterParams<"u"&&(this._filterParams=e.filterParams),this.transformByState({width:e.width,height:e.height})}_draw(e){const r=this._cellHeight,n=this._cellWidth,o=x-n,l=x-r;e.save();const i=new Path2D;i.rect(o,l,n,r),e.clip(i);const{hasCriteria:s}=this._filterParams,a=this._themeService.getColorFromTheme("primary.600"),m=this._hovered?this._themeService.getColorFromTheme("gray.50"):"rgba(255, 255, 255, 1.0)";s?We.drawHasCriteria(e,x,a,m):We.drawNoCriteria(e,x,a,m),e.restore()}onPointerDown(e){if(e.button===2)return;const{col:r,unitId:n,subUnitId:o}=this._filterParams;this._contextService.getContextValue(Z)||!this._commandService.hasCommand(oe.id)||setTimeout(()=>{this._commandService.executeCommand(oe.id,{unitId:n,subUnitId:o,col:r})},200)}onPointerEnter(){this._hovered=!0,this.makeDirty(!0)}onPointerLeave(){this._hovered=!1,this.makeDirty(!0)}};Pe=Ct([ye(2,c.IContextService),ye(3,c.ICommandService),ye(4,c.Inject(c.ThemeService))],Pe);var Tt=Object.getOwnPropertyDescriptor,Et=(t,e,r,n)=>{for(var o=n>1?void 0:n?Tt(e,r):e,l=t.length-1,i;l>=0;l--)(i=t[l])&&(o=i(o)||o);return o},q=(t,e)=>(r,n)=>e(r,n,t);const Ot=1e3,Nt=5e3;let be=class extends c.RxDisposable{constructor(e,r,n,o,l,i,s,a){super();S(this,"_filterRangeShape",null);S(this,"_buttonRenderDisposable",null);S(this,"_filterButtonShapes",[]);this._context=e,this._injector=r,this._sheetSkeletonManagerService=n,this._sheetsFilterService=o,this._themeService=l,this._sheetInterceptorService=i,this._commandService=s,this._selectionRenderService=a,this._initRenderer()}dispose(){super.dispose(),this._disposeRendering()}_initRenderer(){this._sheetSkeletonManagerService.currentSkeleton$.pipe(C.switchMap(e=>{var s,a;if(!e)return C.of(null);const{unit:r,unitId:n}=this._context,o=((s=r.getActiveSheet())==null?void 0:s.getSheetId())||"",l=(a=this._sheetsFilterService.getFilterModel(n,o))!=null?a:void 0,i=()=>({unitId:n,worksheetId:o,filterModel:l,range:l==null?void 0:l.getRange(),skeleton:e.skeleton});return c.fromCallback(this._commandService.onCommandExecuted.bind(this._commandService)).pipe(C.filter(([m])=>{var h;return m.type===c.CommandType.MUTATION&&((h=m.params)==null?void 0:h.unitId)===r.getUnitId()&&(u.FILTER_MUTATIONS.has(m.id)||m.id===I.SetRangeValuesMutation.id)}),C.throttleTime(20,void 0,{leading:!1,trailing:!0}),C.map(i),C.startWith(i()))}),C.takeUntil(this.dispose$)).subscribe(e=>{this._disposeRendering(),!(!e||!e.range)&&(this._renderRange(e.range,e.skeleton),this._renderButtons(e))})}_renderRange(e,r){const{scene:n}=this._context,{rowHeaderWidth:o,columnHeaderHeight:l}=r,i=this._filterRangeShape=new U.SelectionControl(n,Ot,this._themeService,{rowHeaderWidth:o,columnHeaderHeight:l,enableAutoFill:!1,highlightHeader:!1}),s={range:e,primary:null,style:{fill:"rgba(0, 0, 0, 0.0)"}},a=U.attachSelectionWithCoord(s,r);i.updateRangeBySelectionWithCoord(a),i.setEvent(!1),n.makeDirty(!0)}_renderButtons(e){const{range:r,filterModel:n,unitId:o,skeleton:l,worksheetId:i}=e,{scene:s}=this._context;this._interceptCellContent(o,i,e.range);const{startColumn:a,endColumn:m,startRow:h}=r;for(let f=a;f<=m;f++){const O=`sheets-filter-button-${f}`,v=U.getCoordByCell(h,f,s,l),{startX:N,startY:E,endX:A,endY:F}=v,L=A-N,M=F-E;if(M<=de||L<=de)continue;const H=!!n.getFilterColumn(f),B=A-x-de,ve=F-x-de,Se={left:B,top:ve,height:x,width:x,zIndex:Nt,cellHeight:M,cellWidth:L,filterParams:{unitId:o,subUnitId:i,col:f,hasCriteria:H}},w=this._injector.createInstance(Pe,O,Se);this._filterButtonShapes.push(w)}s.addObjects(this._filterButtonShapes),s.makeDirty()}_interceptCellContent(e,r,n){const{startRow:o,startColumn:l,endColumn:i}=n;this._buttonRenderDisposable=this._sheetInterceptorService.intercept(I.INTERCEPTOR_POINT.CELL_CONTENT,{effect:c.InterceptorEffectEnum.Style,handler:(s,a,m)=>{const{row:h,col:f,unitId:O,subUnitId:v}=a;return O!==e||v!==r||h!==o||f<l||f>i?m(s):m({...s,fontRenderExtension:{...s==null?void 0:s.fontRenderExtension,rightOffset:x}})},priority:10})}_disposeRendering(){var e,r;(e=this._filterRangeShape)==null||e.dispose(),this._filterButtonShapes.forEach(n=>n.dispose()),(r=this._buttonRenderDisposable)==null||r.dispose(),this._filterRangeShape=null,this._buttonRenderDisposable=null,this._filterButtonShapes=[]}};be=Et([q(1,c.Inject(c.Injector)),q(2,c.Inject(U.SheetSkeletonManagerService)),q(3,c.Inject(u.SheetsFilterService)),q(4,c.Inject(c.ThemeService)),q(5,c.Inject(I.SheetInterceptorService)),q(6,c.ICommandService),q(7,U.ISheetSelectionRenderService)],be);var It=Object.getOwnPropertyDescriptor,Ft=(t,e,r,n)=>{for(var o=n>1?void 0:n?It(e,r):e,l=t.length-1,i;l>=0;l--)(i=t[l])&&(o=i(o)||o);return o},Ve=(t,e)=>(r,n)=>e(r,n,t);let se=class extends c.RxDisposable{constructor(t,e){super(),this._renderManagerService=t,this._sheetsRenderService=e,[u.SetSheetsFilterRangeMutation,u.SetSheetsFilterCriteriaMutation,u.RemoveSheetsFilterMutation,u.ReCalcSheetsFilterMutation].forEach(r=>this.disposeWithMe(this._sheetsRenderService.registerSkeletonChangingMutations(r.id))),this.disposeWithMe(this._renderManagerService.registerRenderModule(c.UniverInstanceType.UNIVER_SHEET,[be]))}};se=Ft([Ve(0,ie.IRenderManagerService),Ve(1,c.Inject(U.SheetsRenderService))],se);const yt={id:u.SmartToggleSheetsFilterCommand.id,binding:T.KeyCode.L|T.MetaKeys.CTRL_COMMAND|T.MetaKeys.SHIFT,description:"sheets-filter.shortcut.smart-toggle-filter",preconditions:U.whenSheetEditorFocused,group:"4_sheet-edit"};var Pt=Object.getOwnPropertyDescriptor,bt=(t,e,r,n)=>{for(var o=n>1?void 0:n?Pt(e,r):e,l=t.length-1,i;l>=0;l--)(i=t[l])&&(o=i(o)||o);return o},$=(t,e)=>(r,n)=>e(r,n,t);const xe="FILTER_PANEL_POPUP";let fe=class extends se{constructor(e,r,n,o,l,i,s,a,m,h,f,O,v){super(v,O);S(this,"_popupDisposable");this._injector=e,this._componentManager=r,this._sheetsFilterPanelService=n,this._sheetCanvasPopupService=o,this._sheetsFilterService=l,this._localeService=i,this._shortcutService=s,this._commandService=a,this._menuManagerService=m,this._contextService=h,this._messageService=f,this._initCommands(),this._initShortcuts(),this._initMenuItems(),this._initUI()}dispose(){super.dispose(),this._closeFilterPopup()}_initShortcuts(){[yt].forEach(e=>{this.disposeWithMe(this._shortcutService.registerShortcut(e))})}_initCommands(){[u.SmartToggleSheetsFilterCommand,u.RemoveSheetFilterCommand,u.SetSheetFilterRangeCommand,u.SetSheetsFilterCriteriaCommand,u.ClearSheetsFilterCriteriaCommand,u.ReCalcSheetsFilterCommand,Fe,oe,z].forEach(e=>{this.disposeWithMe(this._commandService.registerCommand(e))})}_initMenuItems(){this._menuManagerService.mergeMenu(vt)}_initUI(){this.disposeWithMe(this._componentManager.register(xe,ht)),this.disposeWithMe(this._componentManager.register("FilterSingle",Be)),this.disposeWithMe(this._contextService.subscribeContextValue$(Z).pipe(C.distinctUntilChanged()).subscribe(e=>{e?this._openFilterPopup():this._closeFilterPopup()})),this.disposeWithMe(this._sheetsFilterService.errorMsg$.subscribe(e=>{e&&this._messageService.show({type:y.MessageType.Error,content:this._localeService.t(e)})}))}_openFilterPopup(){const e=this._sheetsFilterPanelService.filterModel;if(!e)throw new Error("[SheetsFilterUIController]: no filter model when opening filter popup!");const r=e.getRange(),n=this._sheetsFilterPanelService.col,{startRow:o}=r;this._popupDisposable=this._sheetCanvasPopupService.attachPopupToCell(o,n,{componentKey:xe,direction:"horizontal",onClickOutside:()=>this._commandService.syncExecuteCommand(z.id),offset:[5,0]})}_closeFilterPopup(){var e;(e=this._popupDisposable)==null||e.dispose(),this._popupDisposable=null}};fe=bt([$(0,c.Inject(c.Injector)),$(1,c.Inject(T.ComponentManager)),$(2,c.Inject(j)),$(3,c.Inject(U.SheetCanvasPopManagerService)),$(4,c.Inject(u.SheetsFilterService)),$(5,c.Inject(c.LocaleService)),$(6,T.IShortcutService),$(7,c.ICommandService),$(8,T.IMenuManagerService),$(9,c.IContextService),$(10,T.IMessageService),$(11,c.Inject(U.SheetsRenderService)),$(12,ie.IRenderManagerService)],fe);var At=Object.defineProperty,Rt=Object.getOwnPropertyDescriptor,Mt=(t,e,r)=>e in t?At(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,Lt=(t,e,r,n)=>{for(var o=n>1?void 0:n?Rt(e,r):e,l=t.length-1,i;l>=0;l--)(i=t[l])&&(o=i(o)||o);return o},Ae=(t,e)=>(r,n)=>e(r,n,t),Qe=(t,e,r)=>Mt(t,typeof e!="symbol"?e+"":e,r);const wt="SHEET_FILTER_UI_PLUGIN";_.UniverSheetsFilterUIPlugin=class extends c.Plugin{constructor(e=le,r,n,o){super(),this._config=e,this._injector=r,this._configService=n,this._rpcChannelService=o;const{menu:l,...i}=c.merge({},le,this._config);l&&this._configService.setConfig("menu",l,{merge:!0}),this._configService.setConfig(Le,i)}onStarting(){[[j],[ee],[fe]].forEach(e=>this._injector.add(e)),this._config.useRemoteFilterValuesGenerator&&this._rpcChannelService&&this._injector.add([ce,{useFactory:()=>V.toModule(this._rpcChannelService.requestChannel(Ee))}])}onReady(){this._injector.get(ee)}onRendered(){this._injector.get(fe)}},Qe(_.UniverSheetsFilterUIPlugin,"type",c.UniverInstanceType.UNIVER_SHEET),Qe(_.UniverSheetsFilterUIPlugin,"pluginName",wt),_.UniverSheetsFilterUIPlugin=Lt([c.DependentOn(u.UniverSheetsFilterPlugin),Ae(1,c.Inject(c.Injector)),Ae(2,c.IConfigService),Ae(3,c.Optional(V.IRPCChannelService))],_.UniverSheetsFilterUIPlugin);var Ut=Object.defineProperty,$t=Object.getOwnPropertyDescriptor,kt=(t,e,r)=>e in t?Ut(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,Dt=(t,e,r,n)=>{for(var o=n>1?void 0:n?$t(e,r):e,l=t.length-1,i;l>=0;l--)(i=t[l])&&(o=i(o)||o);return o},je=(t,e)=>(r,n)=>e(r,n,t),Ge=(t,e,r)=>kt(t,typeof e!="symbol"?e+"":e,r);const Ht="SHEET_FILTER_UI_PLUGIN";_.UniverSheetsFilterMobileUIPlugin=class extends c.Plugin{constructor(e=le,r,n){super(),this._config=e,this._injector=r,this._configService=n;const{menu:o,...l}=c.merge({},le,this._config);o&&this._configService.setConfig("menu",o,{merge:!0}),this._configService.setConfig(Le,l)}onStarting(){[[ee],[se]].forEach(e=>this._injector.add(e))}onReady(){this._injector.get(ee)}onRendered(){this._injector.get(se)}},Ge(_.UniverSheetsFilterMobileUIPlugin,"type",c.UniverInstanceType.UNIVER_SHEET),Ge(_.UniverSheetsFilterMobileUIPlugin,"pluginName",Ht),_.UniverSheetsFilterMobileUIPlugin=Dt([c.DependentOn(u.UniverSheetsFilterPlugin),je(1,c.Inject(c.Injector)),je(2,c.IConfigService)],_.UniverSheetsFilterMobileUIPlugin);var Bt=Object.getOwnPropertyDescriptor,Wt=(t,e,r,n)=>{for(var o=n>1?void 0:n?Bt(e,r):e,l=t.length-1,i;l>=0;l--)(i=t[l])&&(o=i(o)||o);return o},Ye=(t,e)=>(r,n)=>e(r,n,t);_.UniverSheetsFilterUIWorkerPlugin=(_e=class extends c.Plugin{constructor(e,r,n){super(),this._config=e,this._injector=r,this._rpcChannelService=n}onStarting(){[[ce,{useClass:Oe}]].forEach(e=>this._injector.add(e))}onReady(){this._rpcChannelService.registerChannel(Ee,V.fromModule(this._injector.get(ce)))}},S(_e,"type",c.UniverInstanceType.UNIVER_SHEET),S(_e,"pluginName","SHEET_FILTER_UI_WORKER_PLUGIN"),_e),_.UniverSheetsFilterUIWorkerPlugin=Wt([Ye(1,c.Inject(c.Injector)),Ye(2,V.IRPCChannelService)],_.UniverSheetsFilterUIWorkerPlugin),_.ChangeFilterByOperation=Fe,_.CloseFilterPanelOperation=z,_.OpenFilterPanelOperation=oe,Object.defineProperty(_,Symbol.toStringTag,{value:"Module"})});
16
+ `,attachRender:v=>d.jsxs("div",{className:"univer-ml-1 univer-flex univer-h-5 univer-flex-1 univer-cursor-pointer univer-items-center univer-justify-between univer-text-sm univer-text-primary-500",children:[d.jsx("span",{"data-u-comp":"sheets-filter-panel-values-item-count",className:"univer-text-gray-400 dark:!univer-text-gray-500",children:`(${v.count})`}),d.jsx("a",{className:"univer-box-border univer-hidden univer-h-4 univer-whitespace-nowrap univer-px-1.5",onClick:()=>{const N=[];v.children?v.children.forEach(E=>{E.children?E.children.forEach(A=>{N.push(A.key)}):N.push(E.key)}):N.push(v.key),e.onFilterOnly(N)},children:l})]})})})]})]})}function ht(){var A;const t=T.useDependency(j),e=T.useDependency(c.LocaleService),r=T.useDependency(c.ICommandService),n=T.useObservable(t.filterBy$,void 0,!0),o=T.useObservable(t.filterByModel$,void 0,!1),l=T.useObservable(()=>(o==null?void 0:o.canApply$)||C.of(!1),void 0,!1,[o]),i=pt(e),s=!T.useObservable(t.hasCriteria$),a=b.useCallback(F=>{r.executeCommand(Fe.id,{filterBy:F})},[r]),m=b.useCallback(async()=>{await(o==null?void 0:o.clear()),r.executeCommand(z.id)},[o,r]),h=b.useCallback(()=>{r.executeCommand(z.id)},[r]),f=b.useCallback(async()=>{await(o==null?void 0:o.apply()),r.executeCommand(z.id)},[o,r]),v=(A=T.useDependency(u.SheetsFilterService).activeFilterModel)==null?void 0:A.getRange(),N=t.col,E=T.useComponentsOfPart(U.SheetsUIPart.FILTER_PANEL_EMBED_POINT);return d.jsxs("div",{"data-u-comp":"sheets-filter-panel",className:"univer-box-border univer-flex univer-h-[442px] univer-w-[312px] univer-flex-col univer-rounded-lg univer-bg-white univer-p-4 univer-shadow-lg dark:!univer-border-gray-600 dark:!univer-bg-gray-700",children:[d.jsx(T.ComponentContainer,{components:E,sharedProps:{range:v,colIndex:N,onClose:h}}),d.jsx("div",{className:"univer-mb-1 univer-flex-shrink-0 univer-flex-grow-0",children:d.jsx(y.Segmented,{value:n,items:i,onChange:F=>a(F)})}),o?d.jsx("div",{"data-u-comp":"sheets-filter-panel-content",className:"univer-flex-shrink univer-flex-grow univer-pt-2",children:n===me.VALUES?d.jsx(mt,{model:o}):d.jsx(lt,{model:o})}):d.jsx("div",{style:{flex:1}}),d.jsxs("div",{"data-u-comp":"sheets-filter-panel-footer",className:"univer-mt-4 univer-inline-flex univer-flex-shrink-0 univer-flex-grow-0 univer-flex-nowrap univer-justify-between univer-overflow-hidden",children:[d.jsx(y.Button,{variant:"link",onClick:m,disabled:s,children:e.t("sheets-filter.panel.clear-filter")}),d.jsxs("span",{className:"univer-space-x-2",children:[d.jsx(y.Button,{variant:"default",onClick:h,children:e.t("sheets-filter.panel.cancel")}),d.jsx(y.Button,{disabled:!l,variant:"primary",onClick:f,children:e.t("sheets-filter.panel.confirm")})]})]})]})}function pt(t){const e=t.getCurrentLocale();return b.useMemo(()=>[{label:t.t("sheets-filter.panel.by-values"),value:me.VALUES},{label:t.t("sheets-filter.panel.by-conditions"),value:me.CONDITIONS}],[e,t])}function dt(t){const e=t.get(u.SheetsFilterService);return{id:u.SmartToggleSheetsFilterCommand.id,type:T.MenuItemType.BUTTON_SELECTOR,icon:"FilterSingle",tooltip:"sheets-filter.toolbar.smart-toggle-filter-tooltip",hidden$:T.getMenuHiddenObservable(t,c.UniverInstanceType.UNIVER_SHEET),activated$:e.activeFilterModel$.pipe(C.map(r=>!!r)),disabled$:U.getObservableWithExclusiveRange$(t,U.getCurrentRangeDisable$(t,{worksheetTypes:[I.WorksheetFilterPermission,I.WorksheetViewPermission],rangeTypes:[I.RangeProtectionPermissionViewPoint]}))}}function ft(t){const e=t.get(u.SheetsFilterService);return{id:u.ClearSheetsFilterCriteriaCommand.id,type:T.MenuItemType.BUTTON,title:"sheets-filter.toolbar.clear-filter-criteria",hidden$:T.getMenuHiddenObservable(t,c.UniverInstanceType.UNIVER_SHEET),disabled$:e.activeFilterModel$.pipe(C.switchMap(r=>{var n;return(n=r==null?void 0:r.hasCriteria$.pipe(C.map(o=>!o)))!=null?n:C.of(!0)}))}}function _t(t){const e=t.get(u.SheetsFilterService);return{id:u.ReCalcSheetsFilterCommand.id,type:T.MenuItemType.BUTTON,title:"sheets-filter.toolbar.re-calc-filter-conditions",hidden$:T.getMenuHiddenObservable(t,c.UniverInstanceType.UNIVER_SHEET),disabled$:e.activeFilterModel$.pipe(C.switchMap(r=>{var n;return(n=r==null?void 0:r.hasCriteria$.pipe(C.map(o=>!o)))!=null?n:C.of(!0)}))}}const vt={[T.RibbonDataGroup.ORGANIZATION]:{[u.SmartToggleSheetsFilterCommand.id]:{order:2,menuItemFactory:dt,[u.ClearSheetsFilterCriteriaCommand.id]:{order:0,menuItemFactory:ft},[u.ReCalcSheetsFilterCommand.id]:{order:1,menuItemFactory:_t}}}},G=16,St=new Path2D("M3.30363 3C2.79117 3 2.51457 3.60097 2.84788 3.99024L6.8 8.60593V12.5662C6.8 12.7184 6.8864 12.8575 7.02289 12.9249L8.76717 13.7863C8.96655 13.8847 9.2 13.7396 9.2 13.5173V8.60593L13.1521 3.99024C13.4854 3.60097 13.2088 3 12.6964 3H3.30363Z");class We{static drawNoCriteria(e,r,n,o){e.save(),ie.Rect.drawWith(e,{radius:2,width:G,height:G,fill:o}),e.lineCap="square",e.strokeStyle=n,e.scale(r/G,r/G),e.beginPath(),e.lineWidth=1,e.lineCap="round",e.moveTo(3,4),e.lineTo(13,4),e.moveTo(4.5,8),e.lineTo(11.5,8),e.moveTo(6,12),e.lineTo(10,12),e.stroke(),e.restore()}static drawHasCriteria(e,r,n,o){e.save(),ie.Rect.drawWith(e,{radius:2,width:G,height:G,fill:o}),e.scale(r/G,r/G),e.fillStyle=n,e.fill(St),e.restore()}}var gt=Object.getOwnPropertyDescriptor,Ct=(t,e,r,n)=>{for(var o=n>1?void 0:n?gt(e,r):e,l=t.length-1,i;l>=0;l--)(i=t[l])&&(o=i(o)||o);return o},ye=(t,e)=>(r,n)=>e(r,n,t);const x=16,de=1;let Pe=class extends ie.Shape{constructor(e,r,n,o,l){super(e,r);S(this,"_cellWidth",0);S(this,"_cellHeight",0);S(this,"_filterParams");S(this,"_hovered",!1);this._contextService=n,this._commandService=o,this._themeService=l,this.setShapeProps(r),this.onPointerDown$.subscribeEvent(i=>this.onPointerDown(i)),this.onPointerEnter$.subscribeEvent(()=>this.onPointerEnter()),this.onPointerLeave$.subscribeEvent(()=>this.onPointerLeave())}setShapeProps(e){typeof e.cellHeight<"u"&&(this._cellHeight=e.cellHeight),typeof e.cellWidth<"u"&&(this._cellWidth=e.cellWidth),typeof e.filterParams<"u"&&(this._filterParams=e.filterParams),this.transformByState({width:e.width,height:e.height})}_draw(e){const r=this._cellHeight,n=this._cellWidth,o=x-n,l=x-r;e.save();const i=new Path2D;i.rect(o,l,n,r),e.clip(i);const{hasCriteria:s}=this._filterParams,a=this._themeService.getColorFromTheme("primary.600"),m=this._hovered?this._themeService.getColorFromTheme("gray.50"):"rgba(255, 255, 255, 1.0)";s?We.drawHasCriteria(e,x,a,m):We.drawNoCriteria(e,x,a,m),e.restore()}onPointerDown(e){if(e.button===2)return;const{col:r,unitId:n,subUnitId:o}=this._filterParams;this._contextService.getContextValue(Z)||!this._commandService.hasCommand(oe.id)||setTimeout(()=>{this._commandService.executeCommand(oe.id,{unitId:n,subUnitId:o,col:r})},200)}onPointerEnter(){this._hovered=!0,this.makeDirty(!0)}onPointerLeave(){this._hovered=!1,this.makeDirty(!0)}};Pe=Ct([ye(2,c.IContextService),ye(3,c.ICommandService),ye(4,c.Inject(c.ThemeService))],Pe);var Tt=Object.getOwnPropertyDescriptor,Et=(t,e,r,n)=>{for(var o=n>1?void 0:n?Tt(e,r):e,l=t.length-1,i;l>=0;l--)(i=t[l])&&(o=i(o)||o);return o},q=(t,e)=>(r,n)=>e(r,n,t);const Ot=1e3,Nt=5e3;let be=class extends c.RxDisposable{constructor(e,r,n,o,l,i,s,a){super();S(this,"_filterRangeShape",null);S(this,"_buttonRenderDisposable",null);S(this,"_filterButtonShapes",[]);this._context=e,this._injector=r,this._sheetSkeletonManagerService=n,this._sheetsFilterService=o,this._themeService=l,this._sheetInterceptorService=i,this._commandService=s,this._selectionRenderService=a,this._initRenderer()}dispose(){super.dispose(),this._disposeRendering()}_initRenderer(){this._sheetSkeletonManagerService.currentSkeleton$.pipe(C.switchMap(e=>{var s,a;if(!e)return C.of(null);const{unit:r,unitId:n}=this._context,o=((s=r.getActiveSheet())==null?void 0:s.getSheetId())||"",l=(a=this._sheetsFilterService.getFilterModel(n,o))!=null?a:void 0,i=()=>({unitId:n,worksheetId:o,filterModel:l,range:l==null?void 0:l.getRange(),skeleton:e.skeleton});return c.fromCallback(this._commandService.onCommandExecuted.bind(this._commandService)).pipe(C.filter(([m])=>{var h;return m.type===c.CommandType.MUTATION&&((h=m.params)==null?void 0:h.unitId)===r.getUnitId()&&(u.FILTER_MUTATIONS.has(m.id)||m.id===I.SetRangeValuesMutation.id)}),C.throttleTime(20,void 0,{leading:!1,trailing:!0}),C.map(i),C.startWith(i()))}),C.takeUntil(this.dispose$)).subscribe(e=>{this._disposeRendering(),!(!e||!e.range)&&(this._renderRange(e.range,e.skeleton),this._renderButtons(e))})}_renderRange(e,r){const{scene:n}=this._context,{rowHeaderWidth:o,columnHeaderHeight:l}=r,i=this._filterRangeShape=new U.SelectionControl(n,Ot,this._themeService,{rowHeaderWidth:o,columnHeaderHeight:l,enableAutoFill:!1,highlightHeader:!1}),s={range:e,primary:null,style:{fill:"rgba(0, 0, 0, 0.0)"}},a=U.attachSelectionWithCoord(s,r);i.updateRangeBySelectionWithCoord(a),i.setEvent(!1),n.makeDirty(!0)}_renderButtons(e){const{range:r,filterModel:n,unitId:o,skeleton:l,worksheetId:i}=e,{scene:s}=this._context;this._interceptCellContent(o,i,e.range);const{startColumn:a,endColumn:m,startRow:h}=r;for(let f=a;f<=m;f++){const O=`sheets-filter-button-${f}`,v=U.getCoordByCell(h,f,s,l),{startX:N,startY:E,endX:A,endY:F}=v,L=A-N,M=F-E;if(M<=de||L<=de)continue;const H=!!n.getFilterColumn(f),B=A-x-de,ve=F-x-de,Se={left:B,top:ve,height:x,width:x,zIndex:Nt,cellHeight:M,cellWidth:L,filterParams:{unitId:o,subUnitId:i,col:f,hasCriteria:H}},w=this._injector.createInstance(Pe,O,Se);this._filterButtonShapes.push(w)}s.addObjects(this._filterButtonShapes),s.makeDirty()}_interceptCellContent(e,r,n){const{startRow:o,startColumn:l,endColumn:i}=n;this._buttonRenderDisposable=this._sheetInterceptorService.intercept(I.INTERCEPTOR_POINT.CELL_CONTENT,{effect:c.InterceptorEffectEnum.Style,handler:(s,a,m)=>{const{row:h,col:f,unitId:O,subUnitId:v}=a;return O!==e||v!==r||h!==o||f<l||f>i?m(s):m({...s,fontRenderExtension:{...s==null?void 0:s.fontRenderExtension,rightOffset:x}})},priority:10})}_disposeRendering(){var e,r;(e=this._filterRangeShape)==null||e.dispose(),this._filterButtonShapes.forEach(n=>n.dispose()),(r=this._buttonRenderDisposable)==null||r.dispose(),this._filterRangeShape=null,this._buttonRenderDisposable=null,this._filterButtonShapes=[]}};be=Et([q(1,c.Inject(c.Injector)),q(2,c.Inject(U.SheetSkeletonManagerService)),q(3,c.Inject(u.SheetsFilterService)),q(4,c.Inject(c.ThemeService)),q(5,c.Inject(I.SheetInterceptorService)),q(6,c.ICommandService),q(7,U.ISheetSelectionRenderService)],be);var It=Object.getOwnPropertyDescriptor,Ft=(t,e,r,n)=>{for(var o=n>1?void 0:n?It(e,r):e,l=t.length-1,i;l>=0;l--)(i=t[l])&&(o=i(o)||o);return o},Ve=(t,e)=>(r,n)=>e(r,n,t);let se=class extends c.RxDisposable{constructor(t,e){super(),this._renderManagerService=t,this._sheetsRenderService=e,[u.SetSheetsFilterRangeMutation,u.SetSheetsFilterCriteriaMutation,u.RemoveSheetsFilterMutation,u.ReCalcSheetsFilterMutation].forEach(r=>this.disposeWithMe(this._sheetsRenderService.registerSkeletonChangingMutations(r.id))),this.disposeWithMe(this._renderManagerService.registerRenderModule(c.UniverInstanceType.UNIVER_SHEET,[be]))}};se=Ft([Ve(0,ie.IRenderManagerService),Ve(1,c.Inject(U.SheetsRenderService))],se);const yt={id:u.SmartToggleSheetsFilterCommand.id,binding:T.KeyCode.L|T.MetaKeys.CTRL_COMMAND|T.MetaKeys.SHIFT,description:"sheets-filter.shortcut.smart-toggle-filter",preconditions:U.whenSheetEditorFocused,group:"4_sheet-edit"};var Pt=Object.getOwnPropertyDescriptor,bt=(t,e,r,n)=>{for(var o=n>1?void 0:n?Pt(e,r):e,l=t.length-1,i;l>=0;l--)(i=t[l])&&(o=i(o)||o);return o},$=(t,e)=>(r,n)=>e(r,n,t);const xe="FILTER_PANEL_POPUP";let fe=class extends se{constructor(e,r,n,o,l,i,s,a,m,h,f,O,v){super(v,O);S(this,"_popupDisposable");this._injector=e,this._componentManager=r,this._sheetsFilterPanelService=n,this._sheetCanvasPopupService=o,this._sheetsFilterService=l,this._localeService=i,this._shortcutService=s,this._commandService=a,this._menuManagerService=m,this._contextService=h,this._messageService=f,this._initCommands(),this._initShortcuts(),this._initMenuItems(),this._initUI()}dispose(){super.dispose(),this._closeFilterPopup()}_initShortcuts(){[yt].forEach(e=>{this.disposeWithMe(this._shortcutService.registerShortcut(e))})}_initCommands(){[u.SmartToggleSheetsFilterCommand,u.RemoveSheetFilterCommand,u.SetSheetFilterRangeCommand,u.SetSheetsFilterCriteriaCommand,u.ClearSheetsFilterCriteriaCommand,u.ReCalcSheetsFilterCommand,Fe,oe,z].forEach(e=>{this.disposeWithMe(this._commandService.registerCommand(e))})}_initMenuItems(){this._menuManagerService.mergeMenu(vt)}_initUI(){[[xe,ht],["FilterSingle",Be]].forEach(([e,r])=>{this.disposeWithMe(this._componentManager.register(e,r))}),this.disposeWithMe(this._contextService.subscribeContextValue$(Z).pipe(C.distinctUntilChanged()).subscribe(e=>{e?this._openFilterPopup():this._closeFilterPopup()})),this.disposeWithMe(this._sheetsFilterService.errorMsg$.subscribe(e=>{e&&this._messageService.show({type:y.MessageType.Error,content:this._localeService.t(e)})}))}_openFilterPopup(){const e=this._sheetsFilterPanelService.filterModel;if(!e)throw new Error("[SheetsFilterUIController]: no filter model when opening filter popup!");const r=e.getRange(),n=this._sheetsFilterPanelService.col,{startRow:o}=r;this._popupDisposable=this._sheetCanvasPopupService.attachPopupToCell(o,n,{componentKey:xe,direction:"horizontal",onClickOutside:()=>this._commandService.syncExecuteCommand(z.id),offset:[5,0]})}_closeFilterPopup(){var e;(e=this._popupDisposable)==null||e.dispose(),this._popupDisposable=null}};fe=bt([$(0,c.Inject(c.Injector)),$(1,c.Inject(T.ComponentManager)),$(2,c.Inject(j)),$(3,c.Inject(U.SheetCanvasPopManagerService)),$(4,c.Inject(u.SheetsFilterService)),$(5,c.Inject(c.LocaleService)),$(6,T.IShortcutService),$(7,c.ICommandService),$(8,T.IMenuManagerService),$(9,c.IContextService),$(10,T.IMessageService),$(11,c.Inject(U.SheetsRenderService)),$(12,ie.IRenderManagerService)],fe);var At=Object.defineProperty,Rt=Object.getOwnPropertyDescriptor,Mt=(t,e,r)=>e in t?At(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,Lt=(t,e,r,n)=>{for(var o=n>1?void 0:n?Rt(e,r):e,l=t.length-1,i;l>=0;l--)(i=t[l])&&(o=i(o)||o);return o},Ae=(t,e)=>(r,n)=>e(r,n,t),Qe=(t,e,r)=>Mt(t,typeof e!="symbol"?e+"":e,r);const wt="SHEET_FILTER_UI_PLUGIN";_.UniverSheetsFilterUIPlugin=class extends c.Plugin{constructor(e=le,r,n,o){super(),this._config=e,this._injector=r,this._configService=n,this._rpcChannelService=o;const{menu:l,...i}=c.merge({},le,this._config);l&&this._configService.setConfig("menu",l,{merge:!0}),this._configService.setConfig(Le,i)}onStarting(){[[j],[ee],[fe]].forEach(e=>this._injector.add(e)),this._config.useRemoteFilterValuesGenerator&&this._rpcChannelService&&this._injector.add([ce,{useFactory:()=>V.toModule(this._rpcChannelService.requestChannel(Ee))}])}onReady(){this._injector.get(ee)}onRendered(){this._injector.get(fe)}},Qe(_.UniverSheetsFilterUIPlugin,"type",c.UniverInstanceType.UNIVER_SHEET),Qe(_.UniverSheetsFilterUIPlugin,"pluginName",wt),_.UniverSheetsFilterUIPlugin=Lt([c.DependentOn(u.UniverSheetsFilterPlugin),Ae(1,c.Inject(c.Injector)),Ae(2,c.IConfigService),Ae(3,c.Optional(V.IRPCChannelService))],_.UniverSheetsFilterUIPlugin);var Ut=Object.defineProperty,$t=Object.getOwnPropertyDescriptor,kt=(t,e,r)=>e in t?Ut(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,Dt=(t,e,r,n)=>{for(var o=n>1?void 0:n?$t(e,r):e,l=t.length-1,i;l>=0;l--)(i=t[l])&&(o=i(o)||o);return o},je=(t,e)=>(r,n)=>e(r,n,t),Ge=(t,e,r)=>kt(t,typeof e!="symbol"?e+"":e,r);const Ht="SHEET_FILTER_UI_PLUGIN";_.UniverSheetsFilterMobileUIPlugin=class extends c.Plugin{constructor(e=le,r,n){super(),this._config=e,this._injector=r,this._configService=n;const{menu:o,...l}=c.merge({},le,this._config);o&&this._configService.setConfig("menu",o,{merge:!0}),this._configService.setConfig(Le,l)}onStarting(){[[ee],[se]].forEach(e=>this._injector.add(e))}onReady(){this._injector.get(ee)}onRendered(){this._injector.get(se)}},Ge(_.UniverSheetsFilterMobileUIPlugin,"type",c.UniverInstanceType.UNIVER_SHEET),Ge(_.UniverSheetsFilterMobileUIPlugin,"pluginName",Ht),_.UniverSheetsFilterMobileUIPlugin=Dt([c.DependentOn(u.UniverSheetsFilterPlugin),je(1,c.Inject(c.Injector)),je(2,c.IConfigService)],_.UniverSheetsFilterMobileUIPlugin);var Bt=Object.getOwnPropertyDescriptor,Wt=(t,e,r,n)=>{for(var o=n>1?void 0:n?Bt(e,r):e,l=t.length-1,i;l>=0;l--)(i=t[l])&&(o=i(o)||o);return o},Ye=(t,e)=>(r,n)=>e(r,n,t);_.UniverSheetsFilterUIWorkerPlugin=(_e=class extends c.Plugin{constructor(e,r,n){super(),this._config=e,this._injector=r,this._rpcChannelService=n}onStarting(){[[ce,{useClass:Oe}]].forEach(e=>this._injector.add(e))}onReady(){this._rpcChannelService.registerChannel(Ee,V.fromModule(this._injector.get(ce)))}},S(_e,"type",c.UniverInstanceType.UNIVER_SHEET),S(_e,"pluginName","SHEET_FILTER_UI_WORKER_PLUGIN"),_e),_.UniverSheetsFilterUIWorkerPlugin=Wt([Ye(1,c.Inject(c.Injector)),Ye(2,V.IRPCChannelService)],_.UniverSheetsFilterUIWorkerPlugin),_.ChangeFilterByOperation=Fe,_.CloseFilterPanelOperation=z,_.OpenFilterPanelOperation=oe,Object.defineProperty(_,Symbol.toStringTag,{value:"Module"})});
17
17
 
18
18
 
19
19
  // index
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@univerjs/preset-sheets-filter",
3
- "version": "0.7.0-nightly.202505211607",
3
+ "version": "0.7.0-nightly.202505221607",
4
4
  "private": false,
5
5
  "description": "",
6
6
  "author": "DreamNum <developer@univer.ai>",
@@ -62,11 +62,11 @@
62
62
  "rxjs": ">=7.0.0"
63
63
  },
64
64
  "dependencies": {
65
- "@univerjs/sheets-filter": "0.7.0-nightly.202505211607",
66
- "@univerjs/sheets-filter-ui": "0.7.0-nightly.202505211607"
65
+ "@univerjs/sheets-filter": "0.7.0-nightly.202505221607",
66
+ "@univerjs/sheets-filter-ui": "0.7.0-nightly.202505221607"
67
67
  },
68
68
  "devDependencies": {
69
- "@univerjs/core": "0.7.0-nightly.202505211607",
69
+ "@univerjs/core": "0.7.0-nightly.202505221607",
70
70
  "react": "18.3.1",
71
71
  "react-dom": "18.3.1",
72
72
  "rxjs": "7.8.2",