Steve Sanderson
e37e22aa27
Further renderer refactoring
2018-02-10 10:55:44 +00:00
Steve Sanderson
5a9c41af0e
Make AngleSharp not strong-named. Change assembly name to Microsoft.AspNetCore.Blazor.AngleSharp to ensure no conflicts with other usages.
2018-02-09 17:37:21 +00:00
Steve Sanderson
15ddcd03b0
Major refactor of responsibilities in rendering code. Not quite done
...
with this yet either.
2018-02-09 14:50:07 +00:00
Steve Sanderson
91314ee8c8
Rename RenderTreeDiffComputer -> RenderTreeDiffBuilder
2018-02-08 15:50:14 +00:00
Steve Sanderson
b8ed7bc2c5
Track event handlers via explicit IDs rather than by index into frames
...
array
2018-02-08 15:31:45 +00:00
Steve Sanderson
83fa72bc7e
Have RenderTreeDiff build its own array of referenced frames rather than pointing to the latest render tree
...
This is in preparation for supporting multiple diffs for the same
component in a single batch (which means we can't rely on there being at
most only new render tree per component)
2018-02-07 10:27:32 +00:00
Steve Sanderson
33932f41fc
Replace "DescendantsEndIndex" concept with "SubtreeLength"
...
In other words, use relative addressing so that frame data is
independent of its position in the array
2018-02-07 10:27:32 +00:00
Steve Sanderson
93f17219ea
Rename OpenComponentElement -> OpenComponent for consistency
2018-02-05 00:19:44 +00:00
Steve Sanderson
1fda744770
Make RenderTreeFrame properly readonly to allow more pass-by-ref cases
2018-02-05 00:16:08 +00:00
Steve Sanderson
f1332919bc
Rename RenderTreeNode -> RenderTreeFrame (and correspondingly, "node" ->
...
"frame" everywhere)
2018-02-04 22:21:29 +00:00
Steve Sanderson
76dafa819f
Mechanism for components running logic when parents change their properties
2018-01-31 16:19:01 +00:00
Steve Sanderson
1c9c74c801
In RazorCompiler, fix bug about attribute nodes having wrong sequence
...
numbers. Make tests explicit about sequence numbers.
2018-01-31 10:23:56 +00:00
Steve Sanderson
50a5baa872
Dispose components on removal
2018-01-30 10:00:30 +00:00
Steve Sanderson
55592f583b
Update RendererTests to be more explicit about batch expectations
2018-01-29 20:28:38 +00:00
Steve Sanderson
080e6395cb
Move to batched rendering
2018-01-29 20:16:42 +00:00
Steve Sanderson
27d0ce4da9
Begin differentiating between rendering as a new batch on in an existing batch (even though batches don't exist yet)
2018-01-29 16:47:52 +00:00
Steve Sanderson
7799c36d50
Add E2E test to show adding and removing child components dynamically
2018-01-29 12:56:42 +00:00
Steve Sanderson
772e3a1a44
Clean up E2E tests now elements are retained via diffing
2018-01-29 12:56:41 +00:00
Steve Sanderson
4f496f649a
Add E2E test showing we can pass properties to child components and auto re-render them on change
2018-01-29 12:56:40 +00:00
Steve Sanderson
882096755b
Rerender child components when their parameters change
2018-01-26 14:25:26 -08:00
Steve Sanderson
94ad26a479
Update properties on retained child components
2018-01-26 11:58:43 -08:00
Steve Sanderson
9f7dab3096
Better error handling when setting properties on child components
2018-01-26 10:10:06 -08:00
Steve Sanderson
3940ca8b60
For components, allow attribute values to be arbitrary objects
2018-01-26 09:54:35 -08:00
Steve Sanderson
1b4fa4781a
Give attribute nodes a single object-valued value so they can be used for component properties too.
2018-01-26 09:40:48 -08:00
Steve Sanderson
9dcb1c4fc4
Begin on setting properties on child components
2018-01-26 08:47:53 -08:00
Steve Sanderson
0aa164073d
Rename Microsoft.Blazor.* -> Microsoft.AspNetCore.Blazor.* everywhere
2018-01-24 15:48:38 -08:00
Steve Sanderson
9e90ff3689
Rename AddComponentElement->OpenComponentElement for clarity (you have to close it too)
2018-01-24 15:26:27 -08:00
Steve Sanderson
2469558410
Preserve child component instances across renders. Move instantiation into the diffing phase.
2018-01-24 14:29:46 -08:00
Steve Sanderson
23c2816bcd
Change ParentChildComponent test to use Razor. Add E2E tests showing events on child components work.
2018-01-24 11:04:30 -08:00
Steve Sanderson
2107a1927f
In RazorCompiler, support temporary <c:MyComponent /> syntax
2018-01-24 10:43:23 -08:00
Steve Sanderson
6e4d0dbca4
Move common resizable-array logic into shared ArrayBuilder. Replace ArraySegment with ArrayRange since Offset is never used.
2018-01-23 23:30:48 -08:00
Steve Sanderson
b049c7f574
Fix diffing for consecutive text nodes
2018-01-23 09:43:14 -08:00
Steve Sanderson
df321b9b8d
Make RenderTreeEdit specify which sibling node it acts on, so we can eliminate the Continue concept and no longer track indices on JS side
2018-01-22 20:17:32 -08:00
Steve Sanderson
5435582c0e
Update rendering APIs to supply the diff as well as the final state
2018-01-22 08:54:03 -08:00
Steve Sanderson
bea15241f2
Various renames of diff-related types, plus XML docs for newly-public types.
2018-01-22 08:31:07 -08:00
Steve Sanderson
7c30d51be9
In tree diffs, omit trailing Continue entries and skip over unmodified subtrees
2018-01-22 01:55:10 +00:00
Steve Sanderson
b021e19598
In diffing, support elements with descendants
2018-01-21 21:30:01 +00:00
Steve Sanderson
0a5e27fdcf
Support diffing attributes. This required tracking 'sequence' values on attributes too.
2018-01-21 20:57:11 +00:00
Steve Sanderson
7a1abbaca3
In tree diffing, better handle scenario where both old and new sequences loop back but to different locations
2018-01-21 19:37:34 +00:00
Steve Sanderson
6b37494e7c
Begin on RenderTree diffing. Doesn't yet recurse into elements to handle attributes/children.
2018-01-21 18:53:09 +00:00
Steve Sanderson
a0b354e0eb
Add concept of 'sequence' to RenderTreeNode. This is in preparation for diffing.
2018-01-21 11:51:26 +00:00
Steve Sanderson
374d19c1a4
Move child component instantiation into a post-render phase to bring it closer to how it will work with rendertree diffing
...
This is also needed to make it possible to have a helper to insert
Component nodes from Razor without doing anything messy to pass the
RenderTreeBuilder into that heper.
2018-01-18 00:29:00 +00:00
Steve Sanderson
d1f96153d3
Implement basics of @onclick()-type shorthand syntax
2018-01-16 18:01:06 +00:00
Steve Sanderson
946e25462e
In RazorCompiler, support @using statements
2018-01-16 17:17:22 +00:00
Steve Sanderson
7cd5228b7f
In RazorCompiler, support attributes whose values are C# code blocks (treated as event handlers)
2018-01-16 16:58:47 +00:00
Steve Sanderson
5949045319
In RazorCompiler, support expressions with non-string or null values
2018-01-16 16:30:29 +00:00
Steve Sanderson
8c2a32b87c
Remove a .csproj.user file that shouldn't be tracked in source control
2018-01-16 16:16:48 +00:00
Steve Sanderson
7bbb2b6660
In RazorCompiler, support attribute values of type UIEventHandler
2018-01-16 16:15:46 +00:00
Steve Sanderson
3a7b6b2178
In Razor compiler, support attributes with interpolated expressions
2018-01-16 15:24:34 +00:00
Steve Sanderson
b690aeee28
In RazorCompiler, support attributes with C# expression values
2018-01-16 13:15:13 +00:00
Steve Sanderson
5aa6ccaff7
Convert TextOnlyComponent to Razor format
2018-01-16 12:36:10 +00:00
Steve Sanderson
80b371c647
In RazorCompiler, support string-valued attributes
2018-01-16 12:23:12 +00:00
Steve Sanderson
1c1fd69bf2
In RazorCompiler, support self-closing and void elements
2018-01-16 11:50:40 +00:00
Steve Sanderson
a64ece0319
In RazorCompiler, support HTML elements
2018-01-16 11:36:55 +00:00
Steve Sanderson
75b083911c
Add AngleSharp with temporary InternalsVisibleTo
2018-01-16 11:11:49 +00:00
Steve Sanderson
604aa14518
Use Razor component in StandaloneApp sample
2018-01-15 23:11:54 +00:00
Steve Sanderson
7e40427ffe
Razor compilation: Support text literals and C# code
2018-01-15 23:11:48 +00:00
Steve Sanderson
3ccdc1d16f
Begin integrating with real Razor compiler
2018-01-14 16:37:01 +00:00
Steve Sanderson
a32b857d96
When compiling Razor files, generate namespace based on directory path
2018-01-14 14:35:13 +00:00
Steve Sanderson
654c16fb44
Begin unit tests for RazorCompiler
2018-01-12 15:08:10 +00:00
Steve Sanderson
f8cbed2326
Update unit tests to reflect updated Mono BCL. Much of this will disappear once we start optimizing the BCL.
2018-01-12 14:16:41 +00:00
Steve Sanderson
34d3eb5b72
Unit tests for Renderer
2018-01-09 17:21:50 +00:00
Steve Sanderson
07e31c6318
Unit tests relating to Renderer GC behavior
2018-01-09 15:08:27 +00:00
Steve Sanderson
04f9c476a8
Update StandaloneApp to render a component. Remove some redundant code.
2018-01-09 13:45:15 +00:00
Steve Sanderson
6585667ce6
Refactor most of the rendering logic into Microsoft.Blazor, keeping only browser-specific parts in Microsoft.Blazor.Browser
2018-01-09 13:33:49 +00:00
Steve Sanderson
674024ed61
Rename UITree -> RenderTree, UIEventInfo -> UIEventArgs
2018-01-09 09:55:14 +00:00
Steve Sanderson
5793bf700a
Add ability to render child components
2018-01-08 14:21:48 +00:00
Steve Sanderson
04c582647a
Add support for passing parameters to UI event handlers (e.g., which key was pressed)
2018-01-08 11:31:10 +00:00
Steve Sanderson
23f7120b75
Basic parameterless events support (e.g., button click)
2018-01-05 22:16:29 +00:00
Steve Sanderson
f7cb54121b
Add DOM rendering capability for attributes
2018-01-05 17:50:03 +00:00
Steve Sanderson
0db6f5cc5d
Add concept of "attributes" to UITree. So far the values are only allowed to be strings, but this will have to change later.
2018-01-05 17:28:26 +00:00
Steve Sanderson
f0a78d13bf
Begin tracking association between components and DOM elements so that components can be refresh their own display
2018-01-05 14:31:06 +00:00
Steve Sanderson
dfd6c4a1c2
Begin E2E testing for BasicTestApp and component rendering in browser
2018-01-04 17:35:58 +00:00
Steve Sanderson
ce04fde7bd
Begin adding BasicTestApp for more E2E tests
2018-01-04 15:37:32 +00:00
Steve Sanderson
5e25ab16a2
Add unit tests for UITreeBuilder
2018-01-04 15:25:14 +00:00
Steve Sanderson
04064f983c
Add test to more explicitly cover both 'params array' and 'generics'-style interop APIs
2017-12-15 19:41:20 +00:00
Steve Sanderson
09eccb52c5
Remove old marshalled-interop API and update MonoSanity sample to use newer API
2017-12-15 19:16:15 +00:00
Steve Sanderson
fe6105a902
Support JS invocations that return undefined
2017-12-15 11:40:43 +00:00
Steve Sanderson
67f7559950
On exception when calling JS from .NET, return JS stack trace to .NET invoker
2017-12-15 11:05:28 +00:00
Steve Sanderson
6eede7b109
Low-level MonoSanity tests for invoking JS from .NET code
2017-12-15 10:57:44 +00:00
Steve Sanderson
c72f9a1977
Simplify in-memory file provider usage by initializing with byte[], not Stream
2017-12-14 15:48:01 +00:00
Steve Sanderson
a4b85ddf53
Split BuildTools into "Build" (for end-user app builds) and "BuildTools" (for building this repo only)
2017-12-14 15:32:28 +00:00
Steve Sanderson
c49a67dcf0
Tidy up build filesystem providers code
2017-12-14 15:12:18 +00:00
Steve Sanderson
85cc7aee34
Use CompositeMountedFileProvider to simplify build logic
2017-12-14 14:48:36 +00:00
Steve Sanderson
a81ad1830f
Implement CompositeMountedFileProvider
2017-12-14 14:31:55 +00:00
Steve Sanderson
aa63da5151
Write out all client app files to disk at build time instead of serving dynamically at runtime
2017-12-14 11:59:55 +00:00
Steve Sanderson
39b64c1bc3
Add tests for IndexHtmlFileProvider, plus minor cleanups
2017-12-13 12:33:47 +00:00
Steve Sanderson
affc66c24e
Move Server.Test project to correct location on disk
2017-12-13 11:15:31 +00:00
Steve Sanderson
fb8a01a138
Fix tests in preceding commit
2017-12-11 17:00:32 +00:00
Steve Sanderson
667f2cc007
Split Mono files provider into "Js" and "Bcl" parts, as they are used for different things
2017-12-11 16:56:31 +00:00
Steve Sanderson
0ed4a4eba5
Implement directory-capable InMemoryFileProvider
2017-12-11 14:01:34 +00:00
Steve Sanderson
c439787ab5
Begin implementing ReferencedAssemblyFileProvider
2017-12-09 00:53:44 +00:00
Steve Sanderson
4618edead4
Rename BlazorStandalone sample to StandaloneApp for consistency
2017-12-08 17:36:29 +00:00
Steve Sanderson
4c15a74d14
Begin E2E testing for HostedInAspNet sample
2017-12-08 17:27:29 +00:00
Steve Sanderson
82b2128bd9
Remove HelloWorld static site (it's now superseded by more relevant E2E samples)
2017-12-07 12:08:11 +00:00
Steve Sanderson
bee5c176de
Add comment about StaticSiteServerFixture
2017-12-07 12:06:07 +00:00
Steve Sanderson
6cad4e3b84
Make E2E tests even more E2E by using ASP.NET Core apps' BuildWebHost method
2017-12-07 11:57:34 +00:00
Steve Sanderson
0ac789221e
Begin E2E testing for DevHost-based projects
2017-12-07 11:49:05 +00:00
Steve Sanderson
a59bfa3cb9
Refactor E2E tests fixtures/base classes for better composability
2017-12-07 10:39:46 +00:00
Steve Sanderson
3ca7aa853e
Rename "runtime" -> "src" because it is all the source
2017-12-06 21:48:48 +00:00
Steve Sanderson
2c6156a149
Add missing test
2017-12-06 16:01:13 +00:00
Steve Sanderson
5aaed3d75a
Add E2E tests for MonoSanity sample
2017-12-06 15:57:06 +00:00
Steve Sanderson
32dae87b00
Make MonoSanity sample actually run some .NET code via Mono
2017-12-06 14:29:29 +00:00
Steve Sanderson
c841016783
Move and rename E2E test project for consistency
2017-12-06 12:26:20 +00:00
Steve Sanderson
47c8af1c54
Add ability to serve Mono static files
2017-12-06 12:13:22 +00:00