formats/DiskSmartInfo.format.ps1xml

<?xml version="1.0" encoding="utf-8" ?>
<Configuration>
    <Controls>
        <Control>
            <Name>ComputerNameControl</Name>
            <CustomControl>
                <CustomEntries>
                    <CustomEntry>
                        <CustomItem>
                            <ExpressionBinding>
                                <ItemSelectionCondition>
                                    <PropertyName>ComputerName</PropertyName>
                                </ItemSelectionCondition>
                                <ScriptBlock>
                                    "$($PSStyle.Formatting.FormatAccent)ComputerName:$($PSStyle.Reset) $($PSItem.ComputerName)`n"
                                </ScriptBlock>
                            </ExpressionBinding>
                        </CustomItem>
                    </CustomEntry>
                </CustomEntries>
            </CustomControl>
        </Control>
        <Control>
            <Name>HistoryDateControl</Name>
            <CustomControl>
                <CustomEntries>
                    <CustomEntry>
                        <CustomItem>
                            <ExpressionBinding>
                                <ScriptBlock>
                                    "$($PSStyle.Formatting.FormatAccent)HistoryDate:$($PSStyle.Reset) $($PSItem.HistoryDate)"
                                </ScriptBlock>
                            </ExpressionBinding>
                            <NewLine/>
                        </CustomItem>
                    </CustomEntry>
                </CustomEntries>
            </CustomControl>
        </Control>
        <Control>
            <Name>DiskSmartInfoControl</Name>
            <CustomControl>
                <CustomEntries>
                    <CustomEntry>
                        <CustomItem>
                            <ExpressionBinding>
                                <ScriptBlock>
                                    "$($PSStyle.Formatting.FormatAccent)Disk:$($PSStyle.Reset) $($PSItem.DiskNumber): $($PSItem.DiskModel)"
                                </ScriptBlock>
                            </ExpressionBinding>
                            <NewLine/>
                            <ExpressionBinding>
                                <ScriptBlock>
                                    "$($PSStyle.Formatting.FormatAccent)Device:$($PSStyle.Reset) $($PSItem.Device)"
                                </ScriptBlock>
                            </ExpressionBinding>
                            <NewLine/>
                            <ExpressionBinding>
                                <ItemSelectionCondition>
                                    <PropertyName>PredictFailure</PropertyName>
                                </ItemSelectionCondition>
                                <ScriptBlock>
                                    "$($PSStyle.Formatting.FormatAccent)Failure:$($PSStyle.Formatting.Error) $($PSItem.PredictFailure)$($PSStyle.Reset)`n"
                                </ScriptBlock>
                            </ExpressionBinding>
                        </CustomItem>
                    </CustomEntry>
                </CustomEntries>
            </CustomControl>
        </Control>
        <Control>
            <Name>SmartDataControl</Name>
            <CustomControl>
                <CustomEntries>
                    <CustomEntry>
                        <CustomItem>
                            <ExpressionBinding>
                                <ItemSelectionCondition>
                                    <PropertyName>SmartData</PropertyName>
                                </ItemSelectionCondition>
                                <ScriptBlock>
                                    if ($PSStyle) { $t = $PSStyle.OutputRendering; $PSStyle.OutputRendering = 'ansi' }
                                    if ($PSItem.SmartData.pstypenames[0] -eq 'DiskSmartAttribute[]' -or $PSItem.SmartData.pstypenames[0] -eq 'DiskSmartAttributeNVMe[]')
                                    {
                                        $text = $PSItem.SmartData | Format-Table | Out-String
                                    }
                                    elseif ($PSItem.SmartData.pstypenames[0] -eq 'DiskSmartAttributeCustom[]' -or $PSItem.SmartData.pstypenames[0] -eq 'DiskSmartAttributeNVMeCustom[]')
                                    {
                                        $text = $PSItem.SmartData.FormatTable() | Out-String
                                    }
                                    if ($PSStyle) { $PSStyle.OutputRendering = $t }
                                    if (-not $IsLinux)
                                    {
                                        $text.Substring(0,$text.Length-2).
                                            Replace("`r`n", "`r`n ").
                                            Insert(0, "$($PSStyle.Formatting.FormatAccent)SMARTData:$($PSStyle.Reset)").
                                            TrimEnd(' ')
                                    }
                                    elseif ($IsLinux)
                                    {
                                        $text.Substring(0,$text.Length-2).
                                            Replace("`n", "`n ").
                                            Insert(0, "$($PSStyle.Formatting.FormatAccent)SMARTData:$($PSStyle.Reset)").
                                            TrimEnd(' ') + "`n"
                                    }
                                </ScriptBlock>
                             </ExpressionBinding>
                        </CustomItem>
                    </CustomEntry>
                </CustomEntries>
            </CustomControl>
        </Control>
    </Controls>
    <ViewDefinitions>
        <View>
            <Name>DiskSmartInfo</Name>
            <ViewSelectedBy>
                <TypeName>DiskSmartInfo</TypeName>
            </ViewSelectedBy>
            <CustomControl>
                <CustomEntries>
                    <CustomEntry>
                        <CustomItem>
                            <ExpressionBinding>
                                <CustomControlName>ComputerNameControl</CustomControlName>
                            </ExpressionBinding>
                            <ExpressionBinding>
                                <CustomControlName>DiskSmartInfoControl</CustomControlName>
                            </ExpressionBinding>
                            <ExpressionBinding>
                                <CustomControlName>SmartDataControl</CustomControlName>
                            </ExpressionBinding>
                        </CustomItem>
                    </CustomEntry>
                </CustomEntries>
            </CustomControl>
        </View>
        <View>
            <Name>DiskSmartInfo#History</Name>
            <ViewSelectedBy>
                <TypeName>DiskSmartInfo#History</TypeName>
            </ViewSelectedBy>
            <CustomControl>
                <CustomEntries>
                    <CustomEntry>
                        <CustomItem>
                            <ExpressionBinding>
                                <CustomControlName>ComputerNameControl</CustomControlName>
                            </ExpressionBinding>
                            <ExpressionBinding>
                                <CustomControlName>DiskSmartInfoControl</CustomControlName>
                            </ExpressionBinding>
                            <ExpressionBinding>
                                <CustomControlName>HistoryDateControl</CustomControlName>
                            </ExpressionBinding>
                            <ExpressionBinding>
                                <CustomControlName>SmartDataControl</CustomControlName>
                            </ExpressionBinding>
                        </CustomItem>
                    </CustomEntry>
                </CustomEntries>
            </CustomControl>
        </View>
    </ViewDefinitions>
</Configuration>