@@ -822,6 +822,55 @@ TableTmpComp = withMethodExposing(TableTmpComp, [
822822 }
823823 } ,
824824 }
825+ ,
826+ {
827+ method : {
828+ name : "hideColumns" ,
829+ description : "Hide specified columns by dataIndex or title" ,
830+ params : [
831+ { name : "columns" , type : "arrayString" } ,
832+ ] ,
833+ } ,
834+ execute : ( comp , values ) => {
835+ const columns = values [ 0 ] ;
836+ if ( ! isArray ( columns ) ) {
837+ return Promise . reject ( "hideColumns expects an array of strings, e.g. ['id','name']" ) ;
838+ }
839+ const targets = new Set ( ( columns as any [ ] ) . map ( ( c ) => String ( c ) ) ) ;
840+ comp . children . columns . getView ( ) . forEach ( ( c ) => {
841+ const view = c . getView ( ) ;
842+ if ( targets . has ( view . dataIndex ) || targets . has ( view . title ) ) {
843+ // Ensure both persistent and temporary flags are updated
844+ c . children . hide . dispatchChangeValueAction ( true ) ;
845+ c . children . tempHide . dispatchChangeValueAction ( true ) ;
846+ }
847+ } ) ;
848+ } ,
849+ }
850+ ,
851+ {
852+ method : {
853+ name : "showColumns" ,
854+ description : "Show specified columns by dataIndex or title" ,
855+ params : [
856+ { name : "columns" , type : "arrayString" } ,
857+ ] ,
858+ } ,
859+ execute : ( comp , values ) => {
860+ const columns = values [ 0 ] ;
861+ if ( ! isArray ( columns ) ) {
862+ return Promise . reject ( "showColumns expects an array of strings, e.g. ['id','name']" ) ;
863+ }
864+ const targets = new Set ( ( columns as any [ ] ) . map ( ( c ) => String ( c ) ) ) ;
865+ comp . children . columns . getView ( ) . forEach ( ( c ) => {
866+ const view = c . getView ( ) ;
867+ if ( targets . has ( view . dataIndex ) || targets . has ( view . title ) ) {
868+ c . children . hide . dispatchChangeValueAction ( false ) ;
869+ c . children . tempHide . dispatchChangeValueAction ( false ) ;
870+ }
871+ } ) ;
872+ } ,
873+ }
825874] ) ;
826875
827876// exposing data
@@ -1052,6 +1101,30 @@ export const TableComp = withExposingConfigs(TableTmpComp, [
10521101 } ,
10531102 trans ( "table.displayDataDesc" )
10541103 ) ,
1104+ new CompDepsConfig (
1105+ "hiddenColumns" ,
1106+ ( comp ) => {
1107+ return {
1108+ dataIndexes : comp . children . columns . getColumnsNode ( "dataIndex" ) ,
1109+ hides : comp . children . columns . getColumnsNode ( "hide" ) ,
1110+ tempHides : comp . children . columns . getColumnsNode ( "tempHide" ) ,
1111+ columnSetting : comp . children . toolbar . children . columnSetting . node ( ) ,
1112+ } ;
1113+ } ,
1114+ ( input ) => {
1115+ const hidden : string [ ] = [ ] ;
1116+ _ . forEach ( input . dataIndexes , ( dataIndex , idx ) => {
1117+ const isHidden = columnHide ( {
1118+ hide : input . hides [ idx ] . value ,
1119+ tempHide : input . tempHides [ idx ] ,
1120+ enableColumnSetting : input . columnSetting . value ,
1121+ } ) ;
1122+ if ( isHidden ) hidden . push ( dataIndex ) ;
1123+ } ) ;
1124+ return hidden ;
1125+ } ,
1126+ trans ( "table.displayDataDesc" )
1127+ ) ,
10551128 new DepsConfig (
10561129 "filter" ,
10571130 ( children ) => {
0 commit comments