Steve Sanderson
58ae5dea9a
Additional methods on ParameterCollection to simplify usage
2018-02-22 15:03:49 +00:00
Steve Sanderson
3e30655ea4
Low-level NavLink implementation
2018-02-22 15:03:49 +00:00
Steve Sanderson
25b76bc6dc
Skip rerendering child components if their params are definitely unchanged
2018-02-22 13:23:52 +00:00
Steve Sanderson
08d7b77d38
Avoid component syntax confusion by making it a compile-time error. Fixes #145
2018-02-22 11:07:03 +00:00
Steve Sanderson
1a31634b70
Capture component child content as a RenderFragment parameter.
2018-02-22 11:07:03 +00:00
Steve Sanderson
bd455453d6
Report line/column when reporting mismatching tags
2018-02-22 11:07:03 +00:00
Steve Sanderson
0665d30e19
In RazorCompiler, reject malformed documents with mismatching tags
2018-02-22 11:07:03 +00:00
Steve Sanderson
95023c0300
In RazorCompiler, support components with children
2018-02-22 11:07:03 +00:00
Steve Sanderson
d67bf63864
Update to SpaServices.Extensions 2.0.0
2018-02-22 11:07:03 +00:00
Steve Sanderson
6f25663a32
In UriHelper, cache current absolute URL
2018-02-21 10:22:03 +00:00
Steve Sanderson
b764029ce0
Fix comment
2018-02-21 10:22:03 +00:00
Steve Sanderson
fc9cb1af65
Add E2E tests for BrowserRouter, plus implement querystring/hash support
2018-02-21 10:22:03 +00:00
Steve Sanderson
8bc7c92683
Support hosting at non-root URL. Prove it by updating BasicTestApp to serve from non-root location.
2018-02-21 10:22:03 +00:00
Steve Sanderson
7073429cd5
Clean up and include routing unit tests
2018-02-21 10:22:03 +00:00
Steve Sanderson
78a19c07e9
In RazorCompiler, allow HTML comments
2018-02-21 10:22:03 +00:00
Steve Sanderson
7370d748c6
Initial, minimal BrowserRouter implementation. No config besides subclassing yet.
2018-02-21 10:22:03 +00:00
Steve Sanderson
0b5294a8f5
Enable SPA fallback routing on server
2018-02-21 10:22:03 +00:00
Steve Sanderson
58af3e1638
Allow blazor-boot script to be served from apps not hosted at domain root
2018-02-21 10:22:03 +00:00
Steve Sanderson
796d915526
Make spelling one step closer to correctness
2018-02-20 09:47:19 +00:00
Eugene Bekker
ea2019ac39
Update a reference to the new API style
2018-02-20 09:40:09 +00:00
Eugene Bekker
79a4016b13
Refactoring middleware configuration API
2018-02-20 09:40:09 +00:00
Steve Sanderson
a4c74234b4
Introduce deliberate misspelling
2018-02-19 15:14:08 +00:00
Steve Sanderson
608da4c78b
Specifying entrypoint: Add tests and other stylistic tweaks
2018-02-19 14:22:03 +00:00
Eugene Bekker
1653e56b98
Adding ability to qualify the entry point of the main assembly
2018-02-19 14:11:25 +00:00
Steve Sanderson
1e0836167d
Make temporary "layout" and "implements" syntax work with _ViewImports hierarchies
2018-02-19 12:48:08 +00:00
Steve Sanderson
f649de2976
Support _ViewImports.cshtml files hierarchically
2018-02-18 23:57:20 +00:00
Steve Sanderson
782ca0137d
Support "@inherits ..." directive
2018-02-18 22:03:15 +00:00
Steve Sanderson
f6d6714251
Serve static content from wwwroot
2018-02-16 15:56:22 +00:00
Steve Sanderson
69498f68f9
Add LayoutDisplay component and use it in StandaloneApp
2018-02-16 15:04:57 +00:00
Steve Sanderson
f54df27c21
Define ILayoutComponent so there's compile-time validation that layouts are defined correctly
2018-02-16 15:04:51 +00:00
Steve Sanderson
7139cb70c5
Support temporary @(Implements<MyInterfaceType>()) syntax
2018-02-16 12:39:38 +00:00
Steve Sanderson
9e333e31c5
Support temporary @(Layout<MyLayoutType>()) syntax
2018-02-16 12:10:44 +00:00
Steve Sanderson
f91d1d4803
Better handling of render-after-disposed scenarios
2018-02-16 12:10:44 +00:00
Steve Sanderson
7ad88a9406
Fix ArrayBuilder capacity expansion bug
2018-02-16 10:10:13 +00:00
Steve Sanderson
ad2c63ca37
Make OpenRegion/CloseRegion not public because they are only to support AddContent(seq, fragment)
2018-02-16 10:10:12 +00:00
Steve Sanderson
41aae0b7e6
Add ability to append RenderFragment into a RenderTreeBuilder
2018-02-16 10:10:11 +00:00
Steve Sanderson
29a6175ac1
Define RenderFragment concept
2018-02-16 10:10:10 +00:00
Steve Sanderson
1ac5ee25c1
Rename RenderTreeBuilder's AddText to AddContent, since it will be used for other types too
2018-02-16 10:10:08 +00:00
Steve Sanderson
acc5b9461b
Add ability to add component frame using runtime type object instead of generic param
2018-02-16 10:10:07 +00:00
Steve Sanderson
535b601d55
Multitargeted generate AngleSharp twice, so minimise the chance of either seeing the other in an incomplete state during build
2018-02-15 17:26:07 +00:00
Steve Sanderson
b529f2b913
Avoid confusion with client apps not rebuilding after changing Blazor library code
2018-02-15 16:45:30 +00:00
Steve Sanderson
af0085f550
Add *.cshtml for UpToDateCheckInput for VS
2018-02-15 16:14:48 +00:00
Steve Sanderson
dcbd7a27eb
Workaround file locked issue during build
2018-02-15 15:59:00 +00:00
Steve Sanderson
2ebfddc237
Switch client apps to netstandard2.0 to fix type load errors
...
Do a "git clean -xdf" on your local copy if you get runtime errors after
updating to this.
2018-02-15 10:20:31 +00:00
Steve Sanderson
e046dfca6d
Build net461 Razor extensions target on Windows only
2018-02-15 10:20:51 +00:00
Steve Sanderson
2da17602ed
Support "Region" frames in JS-side code
...
They only appear in a prepended subtree, because the .NET-side diffing
code resolves them out if they are top-level to any given edit
2018-02-14 23:41:25 +00:00
Steve Sanderson
848f24536a
Support "Region" frames in diffing
2018-02-14 23:41:24 +00:00
Steve Sanderson
a9822216f1
Add the concept of a "Region" render tree frame
2018-02-14 23:41:24 +00:00
Ryan Nowak
043e623d5b
Split Razor extensibility into its own assembly
...
This functionality will need to cross-compile to desktop framework
(net461) so that we can use it in VS. VS doesn't yet have netstandard2.0
support.
2018-02-14 14:08:14 -08:00
Steve Sanderson
af98672b17
Remove redundant WeakValueDictionary
2018-02-13 19:52:44 +00:00
Steve Sanderson
0eb0555303
Eliminate IComponent.BuildRenderTree to guarantee that components are only rendered by themselves
2018-02-13 19:47:37 +00:00
Steve Sanderson
70a3ee3d98
Remove externally-callable Renderer.RenderInNewBatch() now that rendering is triggered by components themselves
2018-02-13 17:06:00 +00:00
Steve Sanderson
804ab2d89f
Add IHandleEvent concept so components can define their own lifecycle around events
2018-02-13 16:42:21 +00:00
Steve Sanderson
a889cd3152
Beginning lifecycle methods on BlazorComponent
2018-02-13 15:55:37 +00:00
Steve Sanderson
d98a6153f7
In RazorCompiler, have BuildRenderTree overrides call base implementation
2018-02-13 15:53:59 +00:00
Steve Sanderson
861154764c
Introduce IComponent.SetParameters, moving parameter-setting and rerendering logic into component base class
2018-02-13 15:00:53 +00:00
Steve Sanderson
37217db73a
Implement ParameterCollection
2018-02-13 13:14:55 +00:00
Steve Sanderson
695ddc0fd6
Add Init/RenderHandle concepts so components can rerender themselves arbitrarily (e.g., after internal state change)
2018-02-13 11:49:33 +00:00
Steve Sanderson
7bb4bbbe5c
In IndexHtmlFileProvider, preserve original source formatting
2018-02-12 23:05:47 +00:00
Eugene Bekker
b38718d77f
Require <script type="blazor-boot"> to define script injection location
2018-02-12 21:49:27 +00:00
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
Mark Gaze
89796cae2c
Fixed BlazorBuildToolsExe path to remove backslash in path, (missed in PR #43 )
2018-02-07 16:30:26 +00:00
Mark Gaze
5a4bc2e6d6
Added quotes to paths in build that cause the build to fail when directory has a space in the path #44
2018-02-07 16:30:26 +00:00
Brian Allred
5da3c172b5
Make build target path platform agnostic
2018-02-07 10:27:33 +00:00
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
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
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
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
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
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
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
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
Steve Sanderson
2c3925a05c
Apply render tree diffs on JS side
2018-01-22 16:02:52 -08:00
Steve Sanderson
584e363110
Pass the tree edits to JS code on render
2018-01-22 09:26:14 -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
b038117961
Force VS to treat all Blazor cshtml components as inheriting from BlazorComponent so that helpers like @onclick appear in intellisense
2018-01-18 10:05:07 +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
3deab026c8
Stop spurious VS "cannot override ExecuteAsync" errors even if you don't specify a base class
2018-01-18 00:07:54 +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
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
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
a03cb48c7a
When compiling Razor components, take base namespace from host project
2018-01-14 14:40:57 +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
5b3f05bdc1
Begin emitting C# classes for Razor components
2018-01-11 11:51:27 +00:00
Steve Sanderson
3f522ab216
Begin ability to have .cshtml files in Blazor apps
2018-01-11 11:11:47 +00:00
Steve Sanderson
8d4491d4b8
Begin Razor build command
2018-01-11 10:31:49 +00:00
Steve Sanderson
863826ab9d
Begin on compilation infrastructure for Razor components
2018-01-10 16:34:37 +00:00
Steve Sanderson
247015fabb
Move interop-related TS code into its own directory
2018-01-10 12:36:37 +00:00
Steve Sanderson
111e83c976
Clean up usage of RenderComponentArgs in TS by explicitly defining accessors
2018-01-10 12:31:25 +00:00
Steve Sanderson
950250d1f7
Improve naming for direct memory access APIs in Platform interface
2018-01-10 12:15:26 +00:00
Steve Sanderson
0187384638
Clean up how JS functions are registered and located for invocation from .NET
2018-01-10 11:55:52 +00:00
Steve Sanderson
7bbf2b54aa
Enable TypeScript strict mode
2018-01-10 10:42:08 +00:00
Steve Sanderson
a729a8d5c5
Improve XML docs on BrowserRenderer
2018-01-09 15:23:27 +00:00
Steve Sanderson
07e31c6318
Unit tests relating to Renderer GC behavior
2018-01-09 15:08:27 +00:00
Steve Sanderson
c95747af3e
Remove some implementation code that isn't strictly needed (so far, at least)
2018-01-09 13:52:56 +00:00
Steve Sanderson
04f9c476a8
Update StandaloneApp to render a component. Remove some redundant code.
2018-01-09 13:45:15 +00:00