ReadonlyChangeThe open right-click menu, or null. Positioned at the pointer.
Use ConversationDeleted.
The same emitter under the old binding name, so a template still binding (conversationDeleted) keeps working. Must stay AFTER ConversationDeleted: class fields initialise in order, and the other way round this captures undefined.
Use ConversationSelected.
The same emitter under the old binding name, so a template still binding (conversationSelected) keeps working. Must stay AFTER ConversationSelected: class fields initialise in order, and the other way round this captures undefined.
Conversations currently being dragged — the whole selection when the grabbed row is part of it.
Flattened folder list (depth-ordered) for the "Move to folder" menu.
How the conversation list is grouped. 'project' = folders, 'none' = flat list.
True while the open conversation menu is showing its folder picker.
Precomputed groupings, rebuilt whenever conversations/projects/search change.
Use PinSidebarRequested.
The same emitter under the old binding name, so a template still binding (pinSidebarRequested) keeps working. Must stay AFTER PinSidebarRequested: class fields initialise in order, and the other way round this captures undefined.
Use RefreshRequested.
The same emitter under the old binding name, so a template still binding (refreshRequested) keeps working. Must stay AFTER RefreshRequested: class fields initialise in order, and the other way round this captures undefined.
The user wants the current filter term searched across all of Chat, not just this list. Emits the term. This panel filters only loaded conversations by Name/Description, so it cannot answer "where did we discuss X" — the host owns that surface and the routing to it.
Resources the share dialog is currently offering, one per conversation.
ReadonlyShareWhy Share is unavailable, shown on its disabled button.
Show the ⋯ header options menu (refresh / select / group-by / hide sidebar).
Show the "New Conversation" button.
Show the collapsible Pinned / Folders / Messages section headers. When false, the list renders FLAT and fully expanded: folder grouping is bypassed (the folder tree's root drop-zone and New Folder action live in the section header, so a headerless tree would allow one-way folder nesting) — the chrome-less rendering for embedded hosts.
Field every section of the list is sorted on.
Direction of the current sort.
Use CurrentUser.
Use DraggedFolderId.
Use DragOverTargetId.
Use EnvironmentId.
Use FlatFolders.
Use FoldersExpanded.
Use FolderTree.
Use GroupBy.
Use IsHeaderMenuOpen.
Use IsMobileView.
Use IsRefreshing.
Use IsSearching.
True when a search filter is active.
Use IsSelectionMode.
Use IsSidebarPinned.
Use PinnedConversations.
Use PinnedExpanded.
Use SearchQuery.
The selected conversation IDs, in the order they were picked.
Use ShowHeaderMenu.
Show the search box in the list header. Flipping to false clears any active search so a hidden filter can't keep silently narrowing the list.
Use ShowSectionHeaders.
Use UngroupedExpanded.
Opens the folder picker for the selection, under the bar's Move button.
The bar acts on the selection even while a menu for another row is open.
Deletes the conversations after confirmation. Only the deleted ones leave the selection: deleting a row outside it leaves it alone, and rows that failed stay selected so the user can try again.
Moves the conversations into one folder, or out of all folders when projectId is null. The selection survives so a second bulk action can follow.
Pins or unpins the conversations, keeping the selection.
True when the user may move or pin the conversation: they own it, or hold Edit or Owner access.
True when at least one of the conversations can be moved or pinned by the current user.
True when at least one of the conversations can be shared by the current user.
Clears the search box and returns focus to it.
Ends selection mode from the selection bar's clear button.
Use CloseHeaderMenu.
Shares the menu's targets — the whole selection, or just the clicked row.
Drop target id for a conversation row: its folder, or the Ungrouped section when it has none. Resolved through the folder tree so the highlight matches the folder row's own ID regardless of how the conversation stores it.
Optionalevent: EventOptionalevent: EventUse DeleteFolder.
Optionalevent: EventUse DeselectAll.
Optionalevent: EventHand the current filter term to the host to search across every Chat entity.
Routes a row click. Ctrl/Cmd toggles one row and Shift extends from the anchor, either one starting selection mode. On touch, while selecting, a tap adds or removes the row. Any other click collapses the selection and opens the conversation.
Optionalevent: MouseEventTrue when this conversation is part of the current multi-selection.
True when this conversation was shared with the current user by someone else.
Marks the folder a single conversation already sits in. Never marks a multi-target menu.
A callback method that performs custom clean-up, invoked immediately before a directive, pipe, or service instance is destroyed.
A callback method that is invoked immediately after the default change detector has checked the directive's data-bound properties for the first time, and before any of the view or content children have been checked. It is invoked only once when the directive is instantiated.
Empty space: a click that landed on a row or folder is theirs, not the list's.
Opens the conversation menu. It acts on the whole selection when the clicked row is part of it, and on that row alone otherwise — so right-clicking something you had not selected never disturbs the selection.
Starts a conversation drag. Grabbing a row that is part of the current selection drags the whole selection; grabbing any other row drags that row alone and leaves the selection untouched. A touch press that lifts the row selects it instead, since on touch a long-press means select.
A conversation row accepts a conversation drag and stands in for its folder, so dropping onto the rows inside a folder files the drag there too. A row that is part of the drag itself is not a target.
Use OnFolderDragEnd.
The Folders section header accepts a dragged folder to move it back to the top level.
Clicking the empty space of the list drops the selection, the way clicking blank space in a file browser does. A click that landed on a row, folder, section header or button is handled by that element instead.
The row checkbox adds or removes its row without opening it — the mouse route to a selection that needs no keyboard. Shift-click extends a range. Unlike a Ctrl-click it never takes the open conversation along, so the checkboxes show exactly what is picked.
Starts timing a touch press on a row; held long enough, it selects the row. Presses on the row's own buttons (the checkbox and ⋯) are theirs to handle.
A touch that drifts is a scroll, not a press.
Escape in the search box clears it without closing any host overlay.
The row's ⋯ button opens the same menu, anchored under the button.
Use SelectAll.
Selects every row on screen — never rows hidden by the search or a collapsed folder or section.
True when any selected conversation is unpinned, so the bar's pin button pins rather than unpins.
Makes field the active sort. Choosing the field that is already active
flips the direction; switching fields starts from that field's natural
direction (newest first for date, A-Z for name).
Tooltip for the sidebar share icon: "Shared by {email or name}".
Icon for a sort button: direction arrow when active, plain field icon otherwise.
Use ToggleDirectMessages.
Use ToggleFolders.
Use ToggleGroupBy.
Optionalevent: EventUse TogglePin.
Optionalevent: EventUse TogglePinned.
Use ToggleSelectionMode.
Use ToggleUngrouped.
Why Move and Pin are unavailable, shown on their disabled buttons.