NewDocV1
This commit is contained in:
+106
@@ -0,0 +1,106 @@
|
||||
# IReaderInteractionService
|
||||
|
||||
- File ID: file:1szg1zb:ireaderinteractionservice-cs
|
||||
- Path: NexusReader.UI.Shared/Services/IReaderInteractionService.cs
|
||||
- Role: service
|
||||
- Layer: frontend
|
||||
|
||||
## Purpose
|
||||
|
||||
Defines an interface for UI-level reader interactions (node/block selection, scrolling, highlighting, and text selection) and a small DTO for selection coordinates used across UI clients.
|
||||
|
||||
## Key Details
|
||||
|
||||
This file is an interface used by UI components to publish and consume reader-related events; implementations will orchestrate raising events and forwarding requests between UI parts.
|
||||
|
||||
## Symbols
|
||||
|
||||
- IReaderInteractionService: Defines an interface for UI-level reader interactions (node/block selection, scrolling, highlighting, and text selection) and a small DTO for selection coordinates used across UI clients.
|
||||
- OnNodeSelected(): Event fired when a node is selected; subscribers receive the selected nodeId.
|
||||
- OnScrollToBlockRequested(): Event fired to request scrolling to a specific blockId.
|
||||
- OnHighlightBlockRequested(): Event fired to request highlighting of a specific blockId.
|
||||
- OnTextSelected(): Event fired when text is selected; subscribers receive the text, blockId, and coordinates.
|
||||
- NotifyNodeSelected(): Declares an async method to notify that a node was selected (intended to trigger or forward OnNodeSelected).
|
||||
- RequestScrollToBlock(): Declares an async request to scroll the UI to a block (intended to trigger OnScrollToBlockRequested).
|
||||
- RequestHighlightBlock(): Declares an async request to highlight a block (intended to trigger OnHighlightBlockRequested).
|
||||
- NotifyTextSelected(): Declares an async method to notify that text was selected, providing text, block context, and coordinates.
|
||||
- SelectionCoordinates: Represents the coordinates (top, left) and width of a text selection in UI units.
|
||||
|
||||
## Dependencies
|
||||
|
||||
- No resolved dependencies.
|
||||
|
||||
## Calls
|
||||
|
||||
- No resolved calls.
|
||||
|
||||
## Coverage
|
||||
|
||||
- Symbols: 10
|
||||
- Executable symbols: 8
|
||||
- Executable symbols with control flow: 8
|
||||
- Grounded edges: 10
|
||||
- Unresolved references: 0
|
||||
- Control-flow fragments: 8
|
||||
- Unresolved jumps: 0
|
||||
- Unsupported constructs: 0
|
||||
- Control-flow coverage: 100%
|
||||
- Required diagrams: 2
|
||||
- Generated diagrams: 2
|
||||
|
||||
## Control Flow Fragments
|
||||
|
||||
- OnNodeSelected: 3 nodes, 2 edges, 0 jumps, 0 unsupported constructs
|
||||
- OnScrollToBlockRequested: 3 nodes, 2 edges, 0 jumps, 0 unsupported constructs
|
||||
- OnHighlightBlockRequested: 3 nodes, 2 edges, 0 jumps, 0 unsupported constructs
|
||||
- OnTextSelected: 3 nodes, 2 edges, 0 jumps, 0 unsupported constructs
|
||||
- NotifyNodeSelected: 4 nodes, 3 edges, 0 jumps, 0 unsupported constructs
|
||||
- RequestScrollToBlock: 3 nodes, 2 edges, 0 jumps, 0 unsupported constructs
|
||||
- RequestHighlightBlock: 3 nodes, 2 edges, 0 jumps, 0 unsupported constructs
|
||||
- NotifyTextSelected: 4 nodes, 3 edges, 0 jumps, 0 unsupported constructs
|
||||
|
||||
## Diagrams
|
||||
|
||||
### IReaderInteractionService Neighborhood
|
||||
|
||||
```mermaid
|
||||
flowchart LR
|
||||
class_w9vxji_ireaderinteractionservice("IReaderInteractionService")
|
||||
file_1szg1zb_ireaderinteractionservice_cs("IReaderInteractionService")
|
||||
method_15b21oe_onhighlightblockrequested[["OnHighlightBlockRequested()"]]
|
||||
method_18zc3my_ontextselected[["OnTextSelected()"]]
|
||||
method_1lb2q26_requesthighlightblock[["RequestHighlightBlock()"]]
|
||||
method_1r1tcl2_notifynodeselected[["NotifyNodeSelected()"]]
|
||||
method_ecn87d_onscrolltoblockrequested[["OnScrollToBlockRequested()"]]
|
||||
method_iyd7fv_requestscrolltoblock[["RequestScrollToBlock()"]]
|
||||
method_mhcg2e_onnodeselected[["OnNodeSelected()"]]
|
||||
method_p2mw02_notifytextselected[["NotifyTextSelected()"]]
|
||||
type_14glqwn_selectioncoordinates[/"SelectionCoordinates"/]
|
||||
```
|
||||
|
||||
### IReaderInteractionService Execution Overview
|
||||
|
||||
```mermaid
|
||||
flowchart TD
|
||||
class_w9vxji_ireaderinteractionservice("IReaderInteractionService")
|
||||
method_15b21oe_onhighlightblockrequested[["OnHighlightBlockRequested()"]]
|
||||
method_18zc3my_ontextselected[["OnTextSelected()"]]
|
||||
method_1lb2q26_requesthighlightblock[["RequestHighlightBlock()"]]
|
||||
method_1r1tcl2_notifynodeselected[["NotifyNodeSelected()"]]
|
||||
method_ecn87d_onscrolltoblockrequested[["OnScrollToBlockRequested()"]]
|
||||
method_iyd7fv_requestscrolltoblock[["RequestScrollToBlock()"]]
|
||||
method_mhcg2e_onnodeselected[["OnNodeSelected()"]]
|
||||
method_p2mw02_notifytextselected[["NotifyTextSelected()"]]
|
||||
class_w9vxji_ireaderinteractionservice -->|contains| method_15b21oe_onhighlightblockrequested
|
||||
class_w9vxji_ireaderinteractionservice -->|contains| method_18zc3my_ontextselected
|
||||
class_w9vxji_ireaderinteractionservice -->|contains| method_1lb2q26_requesthighlightblock
|
||||
class_w9vxji_ireaderinteractionservice -->|contains| method_1r1tcl2_notifynodeselected
|
||||
class_w9vxji_ireaderinteractionservice -->|contains| method_ecn87d_onscrolltoblockrequested
|
||||
class_w9vxji_ireaderinteractionservice -->|contains| method_iyd7fv_requestscrolltoblock
|
||||
class_w9vxji_ireaderinteractionservice -->|contains| method_mhcg2e_onnodeselected
|
||||
class_w9vxji_ireaderinteractionservice -->|contains| method_p2mw02_notifytextselected
|
||||
```
|
||||
|
||||
## Diagram Validation
|
||||
|
||||
- Status: pass
|
||||
Reference in New Issue
Block a user