Andrew Kushnir
dfbf6d72b0
fix(ivy): provide an ability to match <ng-template> tags ( #27636 )
...
Prior to this change, we were unable to match directives using `ng-template` tags (for example the following selector would not work even though there might be some <ng-template>s in a template: `ng-template[directiveA]`. As a result, that broke some components that relies on such selectors to work. In order to resolve the problem, we now pass tag name to the `template` instruction (where we passed `null` before) and this tag name is used for matching at runtime. This update should also help support projecting containers, because the tag name is required to properly match such elements.
PR Close #27636
2018-12-17 09:33:37 -08:00
Misko Hevery
816ec0b1c3
refactor(ivy): treate LView as the primary global state ( #27282 )
...
- rename `LViewData` to `LView` (to be consistent with `TView`)
- Remove `getRenderer`, `getRendererFactory`, `getTview`, `getCurrentQueries`,
PR Close #27282
2018-11-29 21:26:15 -08:00
JoostK
d767e0b2c0
fix(ivy): consider providers for view/content queries ( #27156 )
...
In ViewEngine it is possible to query for a token that is provided by
a directive that is in scope. See StackBlitz for example:
https://stackblitz.com/edit/ng-viewengine-viewchild-providers
Material uses this pattern with its `MatFormFieldControl` setup, see
https://bit.ly/2zgCUxD for documentation.
PR Close #27156
2018-11-27 10:16:57 -08:00
Andrew Kushnir
3567e81175
fix(ivy): restore missing match operation in View and Content Queries ( #26847 )
...
PR Close #26847
2018-11-07 16:29:19 -08:00
Marc Laval
b0476f308b
feat(ivy): support providers and viewProviders ( #25803 )
...
PR Close #25803
2018-10-25 12:58:40 -04:00
Kara Erickson
e76a570908
refactor(ivy): remove LNode ( #26426 )
...
PR Close #26426
2018-10-15 11:20:32 -07:00
Kara Erickson
7ea5161d4d
refactor(ivy): merge directives into LViewData ( #26316 )
...
PR Close #26316
2018-10-09 16:46:00 -07:00
Kara Erickson
b0879046b7
test(ivy): add testing utility to replace loadDirective ( #26316 )
...
PR Close #26316
2018-10-09 16:46:00 -07:00
Andrew Kushnir
cb59d87489
feat(ivy): compiler support to generate QUERY_READ_FROM_NODE calls ( #26171 )
...
PR Close #26171
2018-10-03 12:28:23 -07:00
Kara Erickson
15a2b8f622
fix(ivy): wrapper fns arent necessary anymore ( #26108 )
...
PR Close #26108
2018-09-26 00:03:16 -07:00
Kara Erickson
6a62ed2245
fix(ivy): objects like ElementRef should not use a special injection fn ( #26064 )
...
PR Close #26064
2018-09-25 12:51:29 -07:00
Pawel Kozlowski
8fa099158e
fix(ivy): allow queries for ng-container without read option ( #25617 )
...
PR Close #25617
2018-08-24 11:52:50 -04:00
Kara Erickson
d5b70e0c66
fix(ivy): create LViewData from blueprint ( #25587 )
...
PR Close #25587
2018-08-22 15:58:42 -04:00
Kara Erickson
21a14407f6
refactor(ivy): generate vars in component defs ( #25562 )
...
PR Close #25562
2018-08-20 11:08:10 -07:00
Kara Erickson
f2aa9c6a7f
refactor(ivy): use generated consts value to set binding index ( #25533 )
...
PR Close #25533
2018-08-17 14:32:55 -07:00
Pawel Kozlowski
31f0f5b3c3
feat(ivy): add support for local refs on ng-template ( #25482 )
...
PR Close #25482
2018-08-17 09:58:07 -07:00
Kara Erickson
6482f6f0fe
refactor(ivy): separate container into 2 instructions ( #25509 )
...
PR Close #25509
2018-08-16 13:47:14 -07:00
Pawel Kozlowski
0c4209f4b9
refactor(ivy): harmonize container and element / elementContainer signatures ( #25458 )
...
PR Close #25458
2018-08-14 12:01:23 -07:00
Kara Erickson
409860a4da
fix(ivy): queries should be restored when view changes ( #25415 )
...
PR Close #25415
2018-08-10 09:13:16 -07:00
Kara Erickson
2b128a47b9
refactor(ivy): queries should not rely on LNode ( #25415 )
...
PR Close #25415
2018-08-10 09:13:16 -07:00
Pawel Kozlowski
9c92a6fc7a
test(ivy): add test for <ng-container> and shallow queries ( #25379 )
...
PR Close #25379
2018-08-09 07:35:01 -07:00
Kara Erickson
1fb7111da1
fix(ivy): content query results should be available in content hooks ( #25271 )
...
PR Close #25271
2018-08-02 19:32:09 -07:00
Pawel Kozlowski
28c7a4efbc
feat(ivy): add basic support for ng-container ( #25227 )
...
This commit adds basic support for <ng-container> - most of the
functionality should work as long as <ng-container> is a child of
a regular element.
PR Close #25227
2018-08-02 18:50:03 -07:00
Victor Berchet
6a797d5401
refactor(ivy): `element` and `ElementStart` retuns `void` ( #25173 )
...
use `loadElement` to load an element when needed in specs
PR Close #25173
2018-07-27 17:22:18 -07:00
Victor Berchet
89e8b6fc0e
refactor(ivy): update specs to make use of the `element()` instruction ( #25173 )
...
PR Close #25173
2018-07-27 17:22:18 -07:00
Pawel Kozlowski
0399c6972a
refactor(ivy): remove content query creation from directive factories ( #24811 )
...
PR Close #24811
2018-07-12 16:32:33 -04:00
Pawel Kozlowski
50fb13fb09
fix(ivy): report results to appropriate content queries ( #24673 )
...
PR Close #24673
2018-06-27 14:20:34 -07:00
Rado Kirov
c95437f15d
build(bazel): Turning on strictPropertyInitialization for Angular. ( #24572 )
...
All errors for existing fields have been detected and suppressed with a
`!` assertion.
Issue/24571 is tracking proper clean up of those instances.
One-line change required in ivy/compilation.ts, because it appears that
the new syntax causes tsickle emitted node to no longer track their
original sourceFiles.
PR Close #24572
2018-06-25 07:57:13 -07:00
Pawel Kozlowski
3e1a3b2e32
fix(ivy): support queries for views inserted in lifecycle hooks ( #24587 )
...
Closes #23707
PR Close #24587
2018-06-20 16:51:14 -07:00
Pawel Kozlowski
6d246d6c72
fix(ivy): allow view and content queries to match the same element ( #24507 )
...
When creating content queries from a directive on an element we need to take into account
existing view queries. The same element can be reported to both content and view queries
so freshly created content queries must be combined with pre-existing view queries.
PR Close #24507
2018-06-14 14:15:38 -07:00
Ben Lesh
82c5313740
feat(ivy): namespaced attributes added to output instructions ( #24386 )
...
NOTE: This does NOT add parsing of namespaced attributes
- Adds AttributeMarker for namespaced attributes
- Adds test for namespaced attributes
- Updates AttributeMarker enum to use CamelCase, and not UPPER_CASE names
PR Close #24386
2018-06-13 13:28:16 -07:00
Marc Laval
e3c54e4465
refactor(ivy): use comment nodes to mark view containers ( #24346 )
...
PR Close #24346
2018-06-13 11:23:21 -07:00
Pawel Kozlowski
014949f74c
fix(ivy): correctly handle queries with embedded views ( #24418 )
...
This PR takes care of all the remaining cases where embedded view definition
and insertion points are different.
PR Close #24418
2018-06-11 14:01:01 -04:00
Victor Berchet
7e73287676
Revert "feat(ivy): added new namespace and element instructions to JIT environment ( #23899 )"
...
This reverts commit acf270d724
.
2018-06-06 13:38:00 -07:00
Ben Lesh
acf270d724
feat(ivy): added new namespace and element instructions to JIT environment ( #23899 )
...
PR Close #23899
2018-06-06 10:22:28 -07:00
Marc Laval
b750919ce0
feat(ivy): implement ViewContainerRef.remove ( #24221 )
...
PR Close #24221
2018-06-05 13:33:40 -07:00
Pawel Kozlowski
0561b66a2b
fix(ivy): query nodes from different TemplateRefs inserted into one ViewContainerRef ( #24254 )
...
PR Close #24254
2018-06-02 10:34:52 -07:00
Pawel Kozlowski
1cd9e6c2eb
feat(ivy): support queries with views inserted through ViewContainerRef ( #24179 )
...
This PR tackles a simple case where ViewRef definition point (<ng-template>) is the
same as the insertion point (ViewContainerRef requested on the said <ng-template>).
For this particular case we can assume that we know a container into which a given
view will be inserted when a view is created. This is not true fall all the possible
cases so follow-up PR will be needed to extend this basic implementation.
PR Close #24179
2018-05-30 11:43:57 -07:00
Kara Erickson
de3ca56769
fix(ivy): support separate creation mode and update mode execution in runtime ( #23292 )
...
PR Close #23292
2018-04-11 15:30:39 -07:00
Miško Hevery
60065935be
refactor(ivy): align compiler with runtime ( #22921 )
...
Remove `containerRefreshStart` and `containerRefreshEnd` instruction
from the output.
Generate directives as a list in `componentDef` rather than inline into
instructions. This is consistent in making selector resolution runtime
so that translation of templates can follow locality.
PR Close #22921
2018-04-02 15:49:48 -07:00
Kara Erickson
6e5fb99304
refactor(ivy): flatten css selectors ( #23074 )
...
PR Close #23074
2018-03-30 15:27:50 -07:00
Kara Erickson
5a86f7144f
fix(ivy): store local variables in data instead of calling loadDirective ( #23029 )
...
PR Close #23029
2018-03-28 09:17:05 -07:00
Kara Erickson
910a16a1ff
refactor(ivy): remove directive references from template ( #22986 )
...
PR Close #22986
2018-03-26 22:33:23 -04:00
Kara Erickson
49396ca2ae
refactor(ivy): move directives into separate array ( #22918 )
...
PR Close #22918
2018-03-22 21:23:02 -04:00
Kara Erickson
bafdad9083
fix(ivy): cache local names and support multiple locals with same value ( #22807 )
...
PR Close #22807
2018-03-16 11:26:38 -07:00
Kara Erickson
9220521149
test(ivy): correct export tests and add query test ( #22807 )
...
PR Close #22807
2018-03-16 11:26:38 -07:00
Victor Berchet
5a14e2238f
refactor(ivy): split the `memory` instruction into `store` and `load` ( #22268 )
...
PR Close #22268
2018-02-18 18:48:41 -08:00
Victor Berchet
10a014d89e
refactor(ivy): prefix viewStart & viewEnd with embedded ( #22055 )
...
PR Close #22055
2018-02-07 17:03:25 -08:00
Victor Berchet
8feb8e5408
refactor(ivy): use long instruction format in tests ( #22055 )
...
PR Close #22055
2018-02-07 17:03:25 -08:00
Kara Erickson
81306c1f61
feat(ivy): add support for content query ( #21912 )
...
PR Close #21912
2018-01-31 10:19:15 -08:00