39 Commits

Author SHA1 Message Date
Dylan Piercey
35fdbe7abb
4.14.1 2018-12-06 12:56:55 -08:00
Michael Rawlings
4ae3672633
4.14.0 2018-12-03 15:56:07 -08:00
Michael Rawlings
1eb2842d23 use TemplateLiteral node 2018-12-03 12:28:56 -08:00
Michael Rawlings
3de7badc27
4.13.13 2018-11-27 12:14:19 -08:00
Dylan Piercey
997b6aab65
4.13.12 2018-11-26 10:54:14 -08:00
Dylan Piercey
4578da9daa
4.13.11 2018-11-21 13:16:03 -08:00
Dylan Piercey
df26873203
4.13.10 2018-11-15 11:07:20 -08:00
Dylan Piercey
b17ed0d150
4.13.9 2018-11-12 14:16:36 -08:00
Michael Rawlings
ac7aa93f32
4.13.8 2018-10-09 10:23:29 -07:00
Dylan Piercey
fcf277d6d9
4.13.7 2018-10-03 13:23:08 -07:00
Dylan Piercey
3bbe40e0a0
4.13.6 2018-10-02 13:56:34 -07:00
Michael Rawlings
2d3ff47410
4.13.5 2018-09-14 15:10:13 -07:00
Michael Rawlings
12a8b4d06b
Fix component dom insert (#1129) 2018-09-14 13:25:39 -07:00
Dylan Piercey
4ec94426eb
4.13.4 2018-08-30 15:31:50 -07:00
Dylan Piercey
dc9142bcd9
4.13.3 2018-08-29 10:39:45 -07:00
Michael Rawlings
3b21f907fa
4.13.2 2018-08-28 16:49:32 -07:00
Dylan Piercey
ccbb86d4b9
4.13.1 2018-08-28 13:41:51 -07:00
Michael Rawlings
7595742acd
4.13.0 2018-08-27 12:20:08 -07:00
Michael Rawlings
df79fcc5f0
Diffing/Keying fixes (#1094)
* Updates the diffing algorithm to use an HTMLFragment node as an abstraction rather than keeping track of startNode and endNode all throughout the diffing algorithm.

* Uses the HTMLFragment for the <${dynamic}> tag and <include> tags to preserve server-rendered content for which the renderBody is not available in the browser.

* Component ids are based on the resulting parent tree (not the owner tree). This means we cannot rely on the ids in the global lookup, so component key/refs are now also stored on the component instance.

* Static node trees are now only auto assigned a key for the top-level node (instead of all nodes).

* Server comment starting markers now have the component's key serialized so the component can be attached to its owner

* Server comment markers no longer have the id on the closing marker, it is stack based.

* Normalize differences between hydration and client-rendering, so post mount the DOM looks the same regardless of whether a component was server or client rendered.

* fix matching up fragments when hydrating by taking components and normalized text nodes into account

* remove wrapping divs in test, should no longer be needed.  address hydration issue with alternate fragment matching approach.

* add fragment to dom if there's a parentNode even if no startNode

* add test for mismatched hydration

* don't detach components before moving

* use fragments to preserve renderBody content

* use ___finishFragment as the incomplete fragment marker

* ensure fragments get destroyed properly and dom node key sequences don't continue from previous renders

* use parent/owner terminology in more places, component ids are now parent scoped, key/ref components are attached to their owner for both client + server render, server comment boundaries include the owner and the key in addition to the fully scoped component id, autokeyed dom nodes are attached to their parent, hydration now uses a stack: ids in ending comment nodes not needed, hydration checks to see if a component has been initialized and will attach keys directly to the owner if so

* add mutation guards for text/comment nodes, add mutation guard for input value

* make component-pages test better represent streaming hydration, fix html/head/body hydration in a better/more generic way

* add test for async rendered keyrefs

* add test for repeated mult-level transclusion

* Autokeyed elements are now stored on the parent rather than the owner. User assigned key/refs are still stored on the owner component. Because of this, user assigned keys are now prefixed (with @) to differentiate them from autokeys. This also has the benefit that assigning numeric keys can no longer conflict with the autokeys.

* add re-rendering the intermediate container to one of the new tests
2018-08-27 11:46:47 -07:00
Dylan Piercey
e9b08cb41e
4.12.5 2018-08-17 15:07:36 -07:00
Michael Rawlings
4745dcf3a3
4.12.4 2018-08-02 12:08:59 -07:00
Dylan Piercey
97253639e1
4.12.3 2018-07-26 10:41:49 -07:00
Michael Rawlings
d3c9b8d919
4.12.2 2018-07-19 16:47:46 -07:00
Michael Rawlings
0ca3778363
4.12.1 2018-07-16 13:37:10 -07:00
Michael Rawlings
c6829e1efe
4.12.0 2018-07-10 13:22:12 -07:00
Michael Rawlings
0b80f57aef
4.11.5 2018-07-02 14:37:44 -07:00
Michael Rawlings
c6a2bf2819
Deprecation warnings (#1073)
* update complain
* use fallback location for deprecation if node does not have a position
2018-07-02 14:20:47 -07:00
Michael Rawlings
916f12792f
4.11.4 2018-06-28 15:30:44 -07:00
Michael Rawlings
bdd13e6449
update context-require 2018-06-28 10:12:37 -07:00
Michael Rawlings
505dd1e1ba
switch to using extracted jsdom-context-require 2018-06-27 14:12:41 -07:00
Michael Rawlings
4c197199e1
4.11.3 2018-06-25 21:50:53 -07:00
Dylan Piercey
8679a3e681
4.11.2 2018-06-21 13:03:08 -07:00
Austin Kelleher
97b4d8a78a Update dependencies (#1060) 2018-06-21 12:31:07 -07:00
Austin Kelleher
d9805d0e28 Update prettier (#1062)
* update prettier
* format files with new version of prettier
2018-06-21 10:40:44 -07:00
Michael Rawlings
fb7575772c
4.11.1 2018-06-20 17:22:34 -07:00
Michael Rawlings
d9a3e18199
4.11.0 2018-06-19 17:12:17 -07:00
Dylan Piercey
b73e82a68a
4.10.1 2018-06-19 15:32:02 -07:00
Michael Rawlings
cdc13228fa
update package-lock 2018-06-19 13:56:50 -07:00
Dylan Piercey
a383a18932
Add lock file. 2018-06-15 15:35:47 -07:00