Extraction of MatBlazor Documentation as a reusable component #872
Add this suggestion to a batch that can be applied as a single commit. This suggestion is invalid because no changes were made to the code. Suggestions cannot be applied while the pull request is closed. Suggestions cannot be applied while viewing a subset of changes. Only one suggestion per line can be applied in a batch. Add this suggestion to a batch that can be applied as a single commit. Applying suggestions on deleted lines is not supported. You must change the existing code in this line in order to create a valid suggestion. Outdated suggestions cannot be applied. This suggestion has been applied or marked resolved. Suggestions cannot be applied from pending reviews. Suggestions cannot be applied on multi-line comments. Suggestions cannot be applied while the pull request is queued to merge. Suggestion cannot be applied right now. Please check back later.

1. Extraction of Documation App Frame to be reusable & Generate XML Documentation and Razor View at runtime
I really like the way how you created your documentation, and would like to reuse it for other blazor components. Therefore I extracted the documentation app frame from MatBlazor.Demo. I also made the xml doc and razor code view generator executable at runtime, so that anybody simply can write some docu components and provide the xml doc file of the documented component as a embedded resource. I kept everything backward compatible.
You can toggle between the old and the new documentation apporach by selecting the launch target with the _new postfix.
There you can see that only the class doc razor is required. Menus, xml docs, and razor code view are automatically provided at runtime.
Some things I made configurable: e.g. turn on / off ads. The defaults are always set in the way that your MatBlazor documentation doesn't change.
You can use the new and the old approach of documentation side by side, but to keep it clean, I remove now the runtime generated XmlDoc and RazorDoc support from the MatBlazor.Demo project. The MatBlazor.Doc.Demo only uses the runtime generation approach.
2. MatBlazorVirtualScroll component
I've added a Blazor Virtualize based control "MatBlazorVirtualScroll", on .netstandard2.1 it falls back to MatVirtualScroll. I did it because the MatVirtualScroll had issues in .NET 5 (items were not correctly displayed). I've added a doc page in the new MatBlazor.Doc.Demo. You could take it over to MatBlazor.Demo if you decide to keep the documentation as it is, instead of using the dynamically generated xml and razor doc view
3. Fix of MatVirtualScrollView
I fixed MatVirtualScroll, the properties of MatVirtualScrollView have to be of type double instead of int, however I would like to keep the MatBlazorVirtualScroll component, because Blazor Virtualize has more features (like lazy loading, placeholder, when item not loaded, etc.) that could be utilized. I'll add some examples for that.