@@ -4,7 +4,7 @@ import { useMemo, useRef, useState, useEffect } from 'react';
44import { parentsUntil , ValueType , FilterBarMode , CheckboxSelectionType , SelectionType , CommandModel , FailureEventArgs , ContextMenuClickEventArgs , getObject } from '@syncfusion/ej2-react-grids' ;
55import { TreeGridComponent , FilterType , LoadingIndicatorModel , AggregateTemplateContext , RowPosition , AggregatesDirective , AggregateDirective , AggregateColumnsDirective , AggregateColumnDirective , ColumnModel , FilterHierarchyMode , SelectionSettingsModel , ContextMenuItem , ToolbarItems , FilterSettingsModel , EditMode , TreeGridColumn , RowDD , Aggregate , Resize , Toolbar , ColumnChooser , CommandColumn , Edit , ContextMenu , ColumnMenu , VirtualScroll , Page , PdfExport , ExcelExport , Freeze , ColumnsDirective , ColumnDirective , Filter , Sort , Reorder , Inject , ITreeData } from '@syncfusion/ej2-react-treegrid' ;
66import { projectDetails } from './datasource' ;
7- import { ButtonComponent , CheckBoxComponent , ChipListComponent , ChipsDirective , ChipDirective , ChangeEventArgs } from '@syncfusion/ej2-react-buttons' ;
7+ import { ButtonComponent , CheckBoxComponent , ChipListComponent , ChipsDirective , ChipDirective } from '@syncfusion/ej2-react-buttons' ;
88import { AppBarComponent , MenuComponent , SidebarComponent } from '@syncfusion/ej2-react-navigations' ;
99import { AutoComplete , FieldSettingsModel } from '@syncfusion/ej2-react-dropdowns' ;
1010import { isNullOrUndefined , DateFormatOptions , createElement , closest } from '@syncfusion/ej2-base' ;
@@ -43,7 +43,7 @@ export const App = () => {
4343 let selectionType : string = "Multiple" ;
4444 let selectNewRowPosition : string = "Top" ;
4545 let selectEditMode : string = "Row" ;
46- const dateRules : object = { date : [ 'M/d/yyyy' , 'Please enter a valid date' ] , required : true } ;
46+ const dateRules : object = { date : [ 'M/d/yyyy' , 'Please enter a valid date' ] } ;
4747 let dateParams : any = { params : { format : 'M/d/yyyy' } } ;
4848 let showEditLabel : boolean = false ;
4949 const durationIDRules : object = { required : true , number : true } ;
@@ -84,10 +84,6 @@ export const App = () => {
8484 let menuObj : MenuComponent ;
8585 const taskIDRules = { required : true } ;
8686 const taskNameRules = { required : true } ;
87- let dateFormat = {
88- format : "dd/MM/yyyy" ,
89- type : "date"
90- } ;
9187 const costRules = { required : true , number : true } ;
9288 let menuRef ! : MenuComponent ;
9389 let menuMobileRef ! : MenuComponent ;
@@ -434,7 +430,6 @@ export const App = () => {
434430 filterBarTypeOptions : [
435431 { value : "CheckBox" , text : "CheckBox" } ,
436432 { value : "Excel" , text : "Excel" } ,
437- { value : "Menu" , text : "Menu" } ,
438433 { value : "FilterBar" , text : "FilterBar" }
439434 ] ,
440435 filterHierarchyOptions : [
@@ -932,19 +927,6 @@ export const App = () => {
932927 startWalkthrough ( ) ;
933928 } ,
934929
935- onDataBound : ( ) => {
936- if ( treegridInst ) {
937- if ( treegridInst . filterSettings . type === "FilterBar" ) {
938- document . querySelectorAll ( '.e-filterbar th[e-mappinguid="grid-column10005"], .e-filterbar th[e-mappinguid="grid-column10004"], .e-filterbar th[e-mappinguid="grid-column10012"], .e-filterbar th[e-mappinguid="grid-column10008"], .e-filterbar th[e-mappinguid="grid-column10007"]' ) . forEach ( cell => {
939- var val : any = ( cell as any ) . querySelector ( 'div.e-fltrinputdiv' ) ;
940- if ( ! isNullOrUndefined ( val ) ) {
941- val . style . display = "none" ;
942- }
943- } ) ;
944- }
945- }
946- } ,
947-
948930 exportComplete :( args : any ) => {
949931 treegridInst . showColumns ( [ 'Priority' ] ) ;
950932 } ,
@@ -1007,7 +989,7 @@ export const App = () => {
1007989 textboxInstance . value = "" ;
1008990 dialogInstance ! . hide ( ) ;
1009991 } else if ( args . target . textContent === "Search" ) {
1010- if ( selectedField && selectedOperator && selectedHierarchy && ! isNullOrUndefined ( searchText ) ) {
992+ if ( selectedField && selectedOperator && selectedHierarchy ) {
1011993 treegridInst . searchSettings = {
1012994 fields : [ selectedField ] ,
1013995 operator : selectedOperator ,
@@ -1369,40 +1351,20 @@ export const App = () => {
13691351 }
13701352 } ,
13711353
1372- singleColumnSettingsDateFormat : ( ( args : any ) => {
1354+ singleColumnSettingsDateFormat : ( ( args : any ) => {
13731355 let columns = treegridInst . getColumns ( ) ;
13741356 for ( let i = 0 ; i < columns . length ; i ++ ) {
13751357 if ( columns [ i ] . field === 'EndDate' ) {
1376- const aggregate = treegridInst . aggregates [ 0 ] ;
1377- if ( aggregate && aggregate . columns ) {
1378- const endDateAggregate = aggregate . columns . find ( col => col . field === 'EndDate' ) ;
1379- if ( endDateAggregate ) {
1380- endDateAggregate . format = { format : args . event . currentTarget . innerText , type : 'date' } ;
1381- }
1382- }
13831358 if ( typeof treegridInst . getColumns ( ) [ i ] . format === 'string' || ! treegridInst . getColumns ( ) [ i ] . format ) {
13841359 treegridInst . getColumns ( ) [ i ] . format = { format : '' , type : 'date' } ;
1385- }
1360+ }
13861361 ( treegridInst . getColumns ( ) [ i ] . format as DateFormatOptions ) . format = args . event . currentTarget . innerText ;
13871362 ( treegridInst . getColumns ( ) [ i ] . format as DateFormatOptions ) . type = 'date' ;
1388- treegridInst . columns = columns ;
1363+ treegridInst . refreshColumns ( ) ;
13891364 }
13901365 }
13911366 } ) ,
13921367
1393-
1394- singleColumnSettingsFreeze : ( ( args : any , data ?: any ) => {
1395- if ( treegridInst ) {
1396- let columns = treegridInst . getColumns ( ) ;
1397- columns . forEach ( ( col ) => {
1398- if ( col . field === "EndDate" ) {
1399- col . freeze = data . properties . text ;
1400- treegridInst . columns = columns ;
1401- }
1402- } ) ;
1403- }
1404- } ) ,
1405-
14061368 handleFilterTypeChange : ( value : any , dropRef : any ) => {
14071369 const barstatusElement = document . getElementById ( "barstatus" ) ;
14081370 const filterbarmodeElement = document . getElementById ( "filterbarmode" ) ;
@@ -1519,25 +1481,12 @@ export const App = () => {
15191481 text : 'Column Date' ,
15201482 iconCss : 'e-icons e-settings icon' ,
15211483 items : [
1522- {
1523- text : 'Format' ,
1524- items : [
15251484 { text : 'yMMM' , id :'yMMM' , method : menuItemMethods . singleColumnSettingsDateFormat , checkbox : false } ,
15261485 { text : 'dd/MM/yyyy' , id : 'dd/MM/yyyy' , method : menuItemMethods . singleColumnSettingsDateFormat , checkbox : true } ,
15271486 { text : 'dd.MM.yyyy' , id : 'dd.MM.yyyy' , method : menuItemMethods . singleColumnSettingsDateFormat , checkbox : false } ,
15281487 { text : 'dd/MM/yyyy hh:mm a' , id : 'dd/MM/yyyy hh:mm a' , method : menuItemMethods . singleColumnSettingsDateFormat , checkbox : false } ,
15291488 { text : 'MM/dd/yyyy hh:mm:ss a' , id : 'MM/dd/yyyy hh:mm:ss a' , method : menuItemMethods . singleColumnSettingsDateFormat , checkbox : false } ,
15301489 ]
1531- } , {
1532- text : 'Freeze' ,
1533- items : [
1534- { text : 'Left' , id : 'Freeze Left' , method : menuItemMethods . singleColumnSettingsFreeze , checkbox : true } ,
1535- { text : 'Right' , id : 'Freeze Right' , method : menuItemMethods . singleColumnSettingsFreeze , checkbox : false } ,
1536- { text : 'Fixed' , id : 'Freeze Fixed' , method : menuItemMethods . singleColumnSettingsFreeze , checkbox : false } ,
1537- { text : 'None' , id : 'Freeze None' , method : menuItemMethods . singleColumnSettingsFreeze , checkbox : false } ,
1538- ]
1539- }
1540- ] ,
15411490 } ,
15421491 ] ,
15431492 } ;
@@ -1561,7 +1510,6 @@ export const App = () => {
15611510 items : [
15621511 { id : 'selection' , label : 'Allow Selection' , defaultChecked : true } ,
15631512 { id : 'textwrap' , label : 'Allow Text Wrap' , defaultChecked : false } ,
1564- { id : 'paging' , label : 'Allow Paging' , defaultChecked : true } ,
15651513 { id : 'showcolumnmenu' , label : 'Show Column Menu' , defaultChecked : false } ,
15661514 { id : 'general_treegrid' , type : 'Separator' }
15671515 ]
@@ -2094,8 +2042,6 @@ export const App = () => {
20942042 }
20952043 else if ( selectedListItemRef . current === "Tree Grid Settings" ) {
20962044 treegridInst . allowTextWrap = prev . textwrap ;
2097- treegridInst . allowPaging = prev . paging ;
2098- treegridInst . enableVirtualization = ! prev . paging ;
20992045 treegridInst . showColumnMenu = prev . showcolumnmenu ;
21002046 treegridInst . enableAltRow = prev . altrow ;
21012047 if ( treegridInst . enableAltRow ) {
@@ -2338,6 +2284,7 @@ export const App = () => {
23382284 allowSorting : false ,
23392285 headerTemplate : treegridCommonTemplates . durationTemplate ,
23402286 validationRules : durationIDRules ,
2287+ filterTemplate : treegridFilterTemplates . filterTemplate ,
23412288 editType : "numericedit" ,
23422289 minWidth : 50 ,
23432290 maxWidth : 200
@@ -2383,20 +2330,19 @@ export const App = () => {
23832330 actionBegin = { handleTreeGridEvent . actionBegin }
23842331 toolbarClick = { handleTreeGridEvent . toolbarClick }
23852332 created = { handleTreeGridEvent . onTreeGridCreated }
2386- dataBound = { handleTreeGridEvent . onDataBound }
23872333 excelExportComplete = { handleTreeGridEvent . exportComplete }
23882334 >
23892335 < ColumnsDirective >
23902336 < ColumnDirective type = 'checkbox' width = { 40 } allowEditing = { false } minWidth = { 35 } maxWidth = { 80 } />
23912337 < ColumnDirective field = "TaskID" headerTextAlign = 'Center' validationRules = { taskIDRules } disableHtmlEncode = { false } isPrimaryKey = { true } minWidth = { 135 } width = { 145 } maxWidth = { 165 } filterBarTemplate = { treegridFilterTemplates . taskIDFilter } headerText = "Task ID" template = { customComponentTemplates . taskTemplate } />
23922338 < ColumnDirective field = "TaskName" headerTextAlign = "Center" validationRules = { taskNameRules } allowFiltering = { true } filterBarTemplate = { treegridFilterTemplates . taskNameFilter } allowSorting = { false } showColumnMenu = { false } headerTemplate = { treegridCommonTemplates . taskNameSettings } width = { 200 } minWidth = { 190 } maxWidth = { 220 } />
23932339 < ColumnDirective headerText = 'Project Details' textAlign = 'Center' headerTextAlign = "Center" columns = { treegridProperties . projectColumns } />
2394- < ColumnDirective field = "Progress" validationRules = { costRules } allowSorting = { false } headerTextAlign = "Center" showColumnMenu = { false } headerTemplate = { treegridCommonTemplates . progressSettings } headerText = "Progress (%)" template = { treegridCommonTemplates . progressTemplate } width = { 170 } minWidth = { 160 } maxWidth = { 200 } />
2395- < ColumnDirective field = "Priority" headerTextAlign = "Center" minWidth = { 120 } maxWidth = { 270 } width = { 190 } textAlign = "Center" editType = 'dropdownedit' template = { treegridCommonTemplates . priorityTemplate } />
2340+ < ColumnDirective field = "Progress" validationRules = { costRules } allowSorting = { false } headerTextAlign = "Center" showColumnMenu = { false } headerTemplate = { treegridCommonTemplates . progressSettings } headerText = "Progress (%)" template = { treegridCommonTemplates . progressTemplate } width = { 170 } minWidth = { 160 } maxWidth = { 200 } filterTemplate = { treegridFilterTemplates . filterTemplate } />
2341+ < ColumnDirective field = "Priority" headerTextAlign = "Center" minWidth = { 120 } maxWidth = { 270 } width = { 190 } textAlign = "Center" filterTemplate = { treegridFilterTemplates . filterTemplate } editType = 'dropdownedit' template = { treegridCommonTemplates . priorityTemplate } />
23962342 < ColumnDirective field = "EstimatedCost" validationRules = { costRules } format = "C0" allowSorting = { false } type = 'number' textAlign = 'Right' headerTextAlign = "Center" showColumnMenu = { false } headerTemplate = { treegridCommonTemplates . estimatedCostSettings } width = { 150 } minWidth = { 60 } maxWidth = { 250 } filterBarTemplate = { treegridFilterTemplates . templateOptionsCostTextBox } />
23972343 < ColumnDirective field = "ActualCost" validationRules = { costRules } allowSorting = { false } format = "C0" type = 'number' textAlign = 'Right' headerTextAlign = "Center" showColumnMenu = { false } headerTemplate = { treegridCommonTemplates . actualCostSettings } width = { 150 } minWidth = { 60 } maxWidth = { 250 } filterBarTemplate = { treegridFilterTemplates . templateOptionsCostTextBox } />
23982344 < ColumnDirective field = "CostDifference" validationRules = { costRules } headerTextAlign = "Center" headerText = 'Cost Comparison' width = { 180 } minWidth = { 155 } maxWidth = { 250 } template = { treegridCommonTemplates . costComparisonTemplate } > </ ColumnDirective >
2399- < ColumnDirective headerText = 'Command' freeze = "Right" headerTextAlign = "Center" textAlign = 'Center' width = { 120 } minWidth = { 110 } maxWidth = { 250 } commands = { treegridProperties . commands } />
2345+ < ColumnDirective headerText = 'Command' filterTemplate = { treegridFilterTemplates . filterTemplate } freeze = "Right" headerTextAlign = "Center" textAlign = 'Center' width = { 120 } minWidth = { 110 } maxWidth = { 250 } commands = { treegridProperties . commands } />
24002346 </ ColumnsDirective >
24012347 < AggregatesDirective >
24022348 < AggregateDirective showChildSummary = { false } >
0 commit comments