ElektoImapPosh.Format.ps1xml

<?xml version="1.0" encoding="utf-8"?>
<Configuration>
  <ViewDefinitions>
    <View>
      <Name>ElektoImapPosh.Folder</Name>
      <ViewSelectedBy>
        <TypeName>ElektoImapPosh.Folder</TypeName>
      </ViewSelectedBy>
      <TableControl>
        <TableHeaders>
          <TableColumnHeader><Label>Account</Label></TableColumnHeader>
          <TableColumnHeader><Label>Folder</Label></TableColumnHeader>
          <TableColumnHeader><Label>SpecialUse</Label></TableColumnHeader>
          <TableColumnHeader><Label>Count</Label><Alignment>Right</Alignment></TableColumnHeader>
          <TableColumnHeader><Label>Unread</Label><Alignment>Right</Alignment></TableColumnHeader>
        </TableHeaders>
        <TableRowEntries>
          <TableRowEntry>
            <TableColumnItems>
              <TableColumnItem><PropertyName>Account</PropertyName></TableColumnItem>
              <TableColumnItem><PropertyName>Folder</PropertyName></TableColumnItem>
              <TableColumnItem><PropertyName>SpecialUse</PropertyName></TableColumnItem>
              <TableColumnItem><PropertyName>Count</PropertyName></TableColumnItem>
              <TableColumnItem><PropertyName>Unread</PropertyName></TableColumnItem>
            </TableColumnItems>
          </TableRowEntry>
        </TableRowEntries>
      </TableControl>
    </View>
    <View>
      <Name>ElektoImapPosh.Message</Name>
      <ViewSelectedBy>
        <TypeName>ElektoImapPosh.Message</TypeName>
      </ViewSelectedBy>
      <GroupBy>
        <ScriptBlock>if ($_.Account) { "$($_.Folder) ($($_.Account))" } else { $_.Folder }</ScriptBlock>
        <Label>Folder</Label>
      </GroupBy>
      <TableControl>
        <TableHeaders>
          <TableColumnHeader><Label>Uid</Label><Alignment>Right</Alignment></TableColumnHeader>
          <TableColumnHeader><Label>Date</Label></TableColumnHeader>
          <TableColumnHeader><Label>Marks</Label></TableColumnHeader>
          <TableColumnHeader><Label>From</Label></TableColumnHeader>
          <TableColumnHeader><Label>Subject</Label></TableColumnHeader>
        </TableHeaders>
        <TableRowEntries>
          <TableRowEntry>
            <TableColumnItems>
              <TableColumnItem><PropertyName>Uid</PropertyName></TableColumnItem>
              <TableColumnItem><ScriptBlock>if ($_.Date) { $_.Date.ToString('yyyy-MM-dd HH:mm') }</ScriptBlock></TableColumnItem>
              <TableColumnItem><ScriptBlock>@(if (-not ($_.Flags -band [MailKit.MessageFlags]::Seen)) { 'unread' }; if ($_.HasAttachments) { 'attachments' }; if ($_.Withheld) { 'withheld' }) -join ' '</ScriptBlock></TableColumnItem>
              <TableColumnItem><PropertyName>From</PropertyName></TableColumnItem>
              <TableColumnItem><PropertyName>Subject</PropertyName></TableColumnItem>
            </TableColumnItems>
          </TableRowEntry>
        </TableRowEntries>
      </TableControl>
    </View>
    <View>
      <Name>ElektoImapPosh.MessageText</Name>
      <ViewSelectedBy>
        <TypeName>ElektoImapPosh.MessageText</TypeName>
      </ViewSelectedBy>
      <ListControl>
        <ListEntries>
          <ListEntry>
            <ListItems>
              <ListItem><PropertyName>Account</PropertyName></ListItem>
              <ListItem><PropertyName>Folder</PropertyName></ListItem>
              <ListItem><PropertyName>Uid</PropertyName></ListItem>
              <ListItem><Label>Date</Label><ScriptBlock>if ($_.Date) { $_.Date.ToString('yyyy-MM-dd HH:mm') }</ScriptBlock></ListItem>
              <ListItem><PropertyName>From</PropertyName></ListItem>
              <ListItem><Label>To</Label><ScriptBlock>$_.To -join ', '</ScriptBlock></ListItem>
              <ListItem><Label>Cc</Label><ScriptBlock>$_.Cc -join ', '</ScriptBlock></ListItem>
              <ListItem><PropertyName>Subject</PropertyName></ListItem>
              <ListItem><Label>Attachments</Label><ScriptBlock>@($_.Attachments | ForEach-Object { "$($_.FileName) ($($_.ContentType), up to $($_.Size) bytes$(if ($_.Withheld) { ', withheld' }))" }) -join ', '</ScriptBlock></ListItem>
              <ListItem><Label>InlineParts</Label><ScriptBlock>@($_.InlineParts | ForEach-Object { "$($_.FileName) ($($_.ContentType), up to $($_.Size) bytes$(if ($_.Withheld) { ', withheld' }))" }) -join ', '</ScriptBlock></ListItem>
              <ListItem><PropertyName>Format</PropertyName></ListItem>
              <ListItem><Label>Text</Label><ScriptBlock>if ($_.Truncated) { "$($_.Text) [...]" } else { $_.Text }</ScriptBlock></ListItem>
            </ListItems>
          </ListEntry>
        </ListEntries>
      </ListControl>
    </View>
  </ViewDefinitions>
</Configuration>