In our code, if the column needs to behave differently, we create a special column type.

Example

We have an icon column which looks different from our other columns.
Within the code, you can search for “icononly” to follow this example.

TS file (Expanding on the code)

In the IColumn, add this new type

export interface IColumn {
  field: string,
  title: string,
  hidden: boolean,
  width: number,
  locked: boolean,
  link?: ILink,
  icon: string,
  icononly: string, //ADDED IN HERE
  multilink: boolean,
  commsLog: number,
  lazy: string,
}

Next you will need to clarify which fields from the dataset, should be this type
(Because both the Config Group Grid and Asset Grid extends the IColumn, both need to now include this)

// Columns that have an icon only, no text
  private configGroupColumnIconOnly: Record<string, string> = {
  };
  private configAssetColumnIconOnly: Record<string, string> = {
    "flagged": "icon-flag",
    "vinMatch": "icon-ok icon-green"
  };

For each grid’s setup, set these values

	this.configGroupsColumns[columnSetting.index - 1] = {
        field: column.field,
        title: column.name,
        hidden: column?.hidden,
        locked: !!this.lockedConfigGroupsColumns[column.field],
        width: columnSetting.currentWidth,
        link: this.linkConfigGroupsColumnSettings[column.field],
        icon: this.configGroupColumnIcon[column.field],
        icononly: this.configGroupColumnIconOnly[column.field], // ADDED here
        multilink: !!this.configGroupColumnMultiLink[column.field],
        commsLog: this.configGroupColumnCommsLog[column.field],
        lazy: this.configGroupColumnLazy[column.field],
    };
 
	this.assetsColumns[columnSetting.index - 1] = {
        field: column.field,
        title: column.name,
        hidden: column?.hidden,
        locked: !!this.lockedConfigAssetsColumns[column.field],
        width: columnSetting.currentWidth,
        link: this.linkConfigAssetsColumnSettings[column.field],
        icon: this.configAssetColumnIcon[column.field],
        icononly: this.configAssetColumnIconOnly[column.field], // ADDED here
        multilink: !!this.configAssetColumnMultiLink[column.field],
        commsLog: this.configAssetColumnCommsLog[column.field],
        lazy: this.configAssetColumnLazy[column.field],
    };

HTML (Expanded from above image)

In the image above, number 2 points out to exclude the new column type from the multi lines.
(It is just due to how we created the grid, but we have to do this)

<!--cell: multi lines-->
<ng-template kendoGridCellTemplate *ngIf="!col?.link && !col?.multilink && !col?.icononly && !(col?.commsLog > -1)" let-dataItem>

Next we also have to add in a new template to display this column type, as per point 3 above

<!--Icon only column (eg. Asset Flagged)-->
<ng-template kendoGridCellTemplate *ngIf="col?.icononly" let-dataItem>
<div>
  <a *ngIf="col?.icononly && dataItem[col?.field] === 1" (click)="blackFlagClicked(dataItem)">
	<i class="{{col?.icononly}}"></i>
  </a><!--Icon-->
  <i *ngIf="col?.icononly && dataItem[col?.field] === true" class="{{col?.icononly}}"></i> <!--Icon-->
</div>
</ng-template>

Further idea

If you would like to, for instance, format text, you could do something like this.
Within the ng-template (make sure you have added the let-dataItem)

<div>{{callMethodInTSToFormat(dataItem[col?.field])}}</div>

EG