Steve Sanderson
48627db47f
ArrayRange and RenderTreeDiff are readonly structs, so use fields directly
2018-02-07 10:27:32 +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
Eilon Lipton
c4412c9739
Add Gitter badge
2018-02-06 09:57:00 -08:00
Steve Sanderson
b59e68a84d
Clarify why ArrayBuilder<T> exists
2018-02-05 17:20:34 +00:00
Steve Sanderson
fdd0c124a1
Convert RenderTreeEdit to a readonly struct of fields
2018-02-05 00:50:02 +00:00
Steve Sanderson
848b7dc5df
Now that RenderTreeFrame is properly readonly (and because the usage is so low-level) can use fields directly
2018-02-05 00:37:03 +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
aae72c8136
In RenderTreeFrame, use explicit [FieldOffset] to shrink the struct from 40 bytes to 28 bytes (in 32-bit mode) or 32 bytes (in 64-bit mode)
2018-02-04 23:23:34 +00:00
Steve Sanderson
f1332919bc
Rename RenderTreeNode -> RenderTreeFrame (and correspondingly, "node" ->
...
"frame" everywhere)
2018-02-04 22:21:29 +00:00
Daniel Roth
4526c8c1f0
Add missing newline
2018-02-02 15:29:27 -08:00
Daniel Roth
1c7950b20a
Add build and test instructions
2018-02-02 15:29:27 -08: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
cc053ddbbf
Better validation of C# class names in RazorCompiler
2018-01-31 10:23:49 +00:00
Daniel Roth
f88dd6c822
Add README.md
2018-01-30 11:03:51 -08:00
Daniel Roth
1932d6ecc2
Add contributing guide and code of conduct
2018-01-30 11:00:40 -08:00
Steve Sanderson
50a5baa872
Dispose components on removal
2018-01-30 10:00:30 +00:00
Steve Sanderson
8839a6c558
In TypeScript, regard System_Array type as generic, even though the type param refers to the entry pointer type, not the element type
2018-01-29 22:07:16 +00:00
Steve Sanderson
855d93ce67
Improve TS annotations when calling readObjectField/readStructField
2018-01-29 21:47:55 +00:00
Steve Sanderson
c81d537ea3
Pass entire RenderBatch to JS side in one call
2018-01-29 21:43:49 +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
97d575f599
Refactor BrowserRenderer.ts to avoid tracking unnecessary child index stack
2018-01-29 12:56:41 +00:00
Steve Sanderson
7e76490844
Refactor RenderTreeDiffComputer to use more "ref local" for less array dereferencing
2018-01-29 12:56:41 +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
Daniel Roth
5981002a40
Add LICENSE.txt
2018-01-26 16:16:25 -08: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
04fa5f4b71
Since ArrayRange is now what the tree builder APIs expose, ArrayBuilder can be internal
2018-01-24 08:58:16 -08:00
Steve Sanderson
9da3260eb7
Avoid some struct copying during array building
2018-01-23 23:50:21 -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
cc2d097c99
More comments on thinking around child components and wrapper elements
2018-01-23 20:38:01 -08:00
Steve Sanderson
5d5931d3c5
Clarify comments about components needing wrapper elements
2018-01-23 17:21:45 -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
0ea4c930e9
Remove redundant property
2018-01-22 16:53:41 -08:00