# Glossary Blazor/MAUI UI terminology. For core framework terms see `AyCode.Core/docs/GLOSSARY.md`. ## UI Components | Term | Definition | |---|---| | **DxGrid** | DevExpress Blazor data grid. Used with `AcSignalRDataSource` for real-time SignalR data. | | **CardView** | Card-style layout wrapping DxGrid. Mobile-friendly alternative to table grids. | | **AcSignalRDataSource** | Grid data source backed by SignalR. Handles load, CRUD, filtering, and change tracking. See `AyCode.Services/docs/SIGNALR_DATASOURCE/README.md` in AyCode.Core repo. | | **AcExpressionNode** | Serializable LINQ expression tree. Grid filters are serialized as expression nodes and sent to server. | ## MgGrid System For full technical reference see `AyCode.Blazor.Components/docs/MGGRID/README.md`. | Term | Definition | |---|---| | **MgGridBase** | Abstract generic grid component extending `DxGrid` with SignalR CRUD, layout persistence, master-detail, InfoPanel, fullscreen, and a quick-filter `FilterPanel` slot. | | **FilterPanel** | `MgGridBase` `RenderFragment` slot for filter components (`MgGridFilterPanelTagBox`); rendered below the toolbar as its own full-bleed band (styled like the native group panel) in a `.mg-grid-filter-panel` container, with a toolbar Show/Hide toggle and a built-in right-aligned Clear button. Criteria persists with the grid layout; hiding the panel clears its OWN filters only (filter-row values survive — no invisible filtering either way). | | **MgTagBox** | Pure, behavior-free `DxTagBox` seam (Mg* seam policy) — universal, no grid/filter-panel wiring. The grid filter component derives from it: `MgGridFilterPanelTagBox`. | | **MgGridFilterPanelTagBox** | `MgTagBox` + the grid filter-panel wiring (`IMgGridFilterPanelComponent`), with a `FieldName` — a selection applies a per-field `IN` criteria via `IMgGridBase.SetFilterPanelCriteria` (DevExpress `SetFieldFilterCriteria`); used inside `FilterPanel`. Defaults its `SizeMode` to the grid's when unset; bind to lookup objects (`ValueFieldName`/`TextFieldName`) to filter an FK column by name; re-selects from a restored layout's criteria; only manages criteria it owns (its `IN` shape). Owns `ValuesChanged` — do not bind it. | | **IMgGridFilterPanelComponent** | Contract for `FilterPanel` filter components (`FieldName`, `OwnsCriteria`, `SyncFromGrid`) — future dropdown/textbox/checkbox filter components implement it over their own Mg* seams. | | **MgGridWithInfoPanel** | `DxSplitter` wrapper: grid (left pane) + InfoPanel (right pane), fullscreen overlay, splitter size persistence. | | **MgGridToolbarBase** | `DxToolbar` base with `Grid` (`IMgGridBase`) reference and `RefreshClick` callback. | | **MgGridToolbarTemplate** | Full toolbar: New/Edit/Delete/Save/Cancel, row navigation, layout menu, export, filter-panel toggle (when the grid has a `FilterPanel`), fullscreen. Extensible via `ToolbarItemsExtended`. | | **MgGridDataColumn** | Extended `DxGridDataColumn` with InfoPanel parameters and `UrlLink` template (`{Property}` placeholders). | | **MgGridInfoPanel** | Default InfoPanel: column-value pairs for focused row, responsive columns, edit mode with typed editors, template system. | | **MgGridSignalRDataSource** | `GridCustomDataSource` wrapping `AcSignalRDataSource`. Local cache, background refresh. | | **IMgGridBase** | Public interface: `IsSyncing`, `GridEditState`, `ParentGrid`, `StepPrevRow/NextRow`, layout persistence, filter panel (`SetFilterPanelCriteria`, `GetFilterPanelCriteria`, `RegisterFilterPanelComponent`, `ClearFilterPanel`, `RefreshFilterPanel`, `HasFilterPanel`, `IsFilterPanelVisible`, `ToggleFilterPanel`), `GridSizeMode`. | | **MgGridEditState** | Enum: `None` (no edit), `New` (adding item), `Edit` (modifying item). | | **SignalRCrudTags** | Bundle of 5 integer message tags (GetAll, GetItem, Add, Update, Remove) for one entity type. See `AyCode.Services/docs/SIGNALR_DATASOURCE/README.md` in AyCode.Core repo. | | **IsMasterGrid** | `true` when `ParentDataItem == null` — top-level grid (not detail). | | **AutoSaveLayoutName** | Base name for localStorage layout keys. Default: `"Grid{TDataItem.Name}"`. | ## Architecture | Term | Definition | |---|---| | **Blazor Hybrid** | MAUI app hosting Blazor components via WebView. Shares UI code between web and native. | | **DLL Reference** | AyCode.Core projects are referenced as DLLs (not ProjectReference). This is intentional — separates solution build graphs. | | **AcBinaryHubProtocol** | Custom SignalR hub protocol using AcBinary serializer instead of default JSON. Used for performance. | ## Authentication | Term | Definition | |---|---| | **AcBlazorLoginServiceBase** | Client-side login service managing JWT tokens, SecureStorage, and auto-refresh. | | **AcAuthenticationStateProvider** | Custom Blazor auth state provider backed by JWT claims. | ## MAUI Platforms | Term | Definition | |---|---| | **Platforms/** | Per-platform code folders: Android, iOS, Windows. MAUI SDK auto-includes based on target. | | **API 33+** | Minimum Android API level (Android 13). |