Tobias Bosch
9c697030e6
feat(compiler): generate proper reexports in `.ngfactory.ts` files to not need transitive deps for compiling `.ngfactory.ts` files. ( #13524 )
...
Note: This checks the constructors of `@Injectable` classes more strictly.
E.g this will fail now as the constructor argument has no `@Inject` nor is
the type of the argument a DI token.
```
@Injectable()
class MyService {
constructor(dep: string) {}
}
```
Last part of #12787
Closes #12787
2016-12-27 09:36:47 -08:00
Matias Niemelä
f49ab56160
fix(animations): always quote string map key values in AOT code ( #13602 )
2016-12-20 18:17:58 -08:00
Dzmitry Shylovich
c0f750af4e
fix(compiler): ignore @import in comments ( #13368 )
...
* refactor(compiler): clean up style url resolver
* fix(compiler): ignore @import in css comments
Closes #12196
2016-12-20 17:51:02 -08:00
Victor Berchet
e78508507d
fix(compiler): do not lex `}}` when interpolation is disabled ( #13531 )
...
* doc(compiler): fix the ICU expander API docs
* test(compiler): add lexer and parser specs
* fix(compiler): do not lex `}}` when interpolation is disabled
fix #13525
2016-12-16 15:33:16 -08:00
Victor Berchet
0fe3cd9a4c
fix(i18n): add a default example to xmb placeholders ( #13507 )
...
Otherwise the TC would not be able to load the message
2016-12-15 15:33:42 -08:00
Bowen Ni
f0e092515c
refactor(compiler): don't print stack trace on template parse errors ( #13390 )
2016-12-15 13:07:12 -08:00
Tobias Bosch
33910ddfc9
refactor(compiler): store metadata of top level symbols also in summaries ( #13289 )
...
This allows a build using summaries to not need .metadata.json files at all
any more.
Part of #12787
2016-12-15 09:12:40 -08:00
Chuck Jazdzewski
b6078f5887
fix(compiler): update to metadata version 3 ( #13464 )
...
This change retracts support for metadata version 2.
The collector used to produce version 2 metadata was incomplete
and can cause the AOT compiler to fail to resolve symbols or
produce other spurious errors.
All libraries compiled and published with 2.3.0 ngc will need
to be recompiled and updated with this change.
2016-12-14 15:28:51 -08:00
Victor Berchet
c65b4fa9dc
refactor: format & lint
2016-12-14 15:10:43 -08:00
Victor Berchet
aa40366a92
fix(compiler): fix simplify a reference without a name
...
closes #13470
2016-12-14 14:33:10 -08:00
Alex Rickabaugh
aa3769ba69
fix(compiler): resolver should merge host bindings and listeners ( #13474 )
...
fixes #13327
2016-12-14 14:31:57 -08:00
Chuck Jazdzewski
dd0519abad
fix(compiler): emit quoted object literal keys if the source is quoted
...
feat(tsc-wrapped): recored when to quote a object literal key
Collecting quoted literals is off by default as it introduces
a breaking change in the .metadata.json file. A follow-up commit
will address this.
Fixes #13249
Closes #13356
2016-12-14 12:58:41 -08:00
Victor Berchet
f238c8ac7a
Revert "fix(compiler): xmb `<ph>` tags should not self close ( #13413 )"
...
This reverts commit 4b3d135193
.
closes #13463
2016-12-14 12:54:58 -08:00
Victor Berchet
8c27c62fab
Revert "test(i18n): fix a typo in the reference xmb ( #13441 )"
...
This reverts commit a8d237581d
.
2016-12-14 12:54:50 -08:00
Victor Berchet
a8d237581d
test(i18n): fix a typo in the reference xmb ( #13441 )
2016-12-13 12:35:09 -08:00
Chuck Jazdzewski
2b90cd532f
fix(compiler): narrow the span reported for invalid pipes
...
fixes #13326
closes #13411
2016-12-13 11:23:47 -08:00
Victor Berchet
4b3d135193
fix(compiler): xmb `<ph>` tags should not self close ( #13413 )
2016-12-12 19:10:20 -08:00
Victor Berchet
3bee521aa4
fix(compiler): support dotted property binding
...
fixes angular/flex-layout#34
2016-12-09 15:37:41 -08:00
Victor Berchet
95f48292b1
test(Selector): add a test for dotted attribute names
2016-12-09 15:37:41 -08:00
Misko Hevery
213c713409
fix: Better error when directive not listed in NgModule.declarations
2016-12-09 11:16:28 -08:00
Dzmitry Shylovich
9a8423da36
fix(selector): SelectorMatcher match elements with :not selector ( #12977 )
2016-12-09 10:45:48 -08:00
maxime-allex
56c361ff6a
test(compiler): test i18n explicit id
...
closes #13272
2016-12-09 10:43:57 -08:00
Tobias Bosch
5614c4ff0f
fix(compiler): serialize any `StaticSymbol` correctly, not matter in which context.
2016-12-05 14:20:01 -08:00
Tobias Bosch
75d1617b63
fix(compiler): include the summaries of reexported modules / directives / pipes ( #13196 )
...
Only if these are not part of the sources.
2016-12-02 10:08:46 -08:00
Tobias Bosch
614a35d539
feat(compiler): read and write `.ngsummary.json` files
...
When compiling libraries, this feature extracts the minimal information
from the directives/pipes/modules of the library into `.ngsummary.json` files,
so that applications that use this library only need to be recompiled
if one of the summary files change, but not on every change
of the libraries (e.g. one of the templates).
Only works if individual codegen for libraries is enabled,
see the `generateCodeForLibraries: false` option.
Closes #12787
2016-12-01 14:49:52 -08:00
Tobias Bosch
9ab401f4d3
refactor(compiler): simplify `NgModuleSymmaryMetadata`
...
- merge `NgModuleInjectorSummary` and `NgModuleDirectiveSummary`
- remove `directiveLoaders` from the summary
2016-12-01 14:49:52 -08:00
Tobias Bosch
3e73bea3e7
refactor(compiler): convert metadata classes used in summaries into interfaces ( #13123 )
...
Part of #12787
2016-11-30 10:52:51 -08:00
Tobias Bosch
627282d2c8
fix(compiler): correctly evaluate references to static functions ( #13133 )
2016-11-29 12:02:50 -08:00
Tobias Bosch
2f7492c986
refactor(compiler): remove unneeded fields from metadata
...
Removes `CompileIdentifierMetadata.name` / `.moduleUrl`,
as well as `CompileTypeMetadata.name / moduleUrl` and
`CompileFactoryMetadata.name / moduleUrl`.
2016-11-28 15:19:23 -08:00
Tobias Bosch
2452cd14e0
refactor(compiler): drop old codegen tests that run inside of `test.sh`
...
These tests were hard to maintain and only yielded little value,
now that we have the full integration with TypeScript.
2016-11-28 15:19:23 -08:00
Tobias Bosch
f5c8e0989d
feat(core): properly support inheritance
...
## Inheritance Semantics:
Decorators:
1) list the decorators of the class and its parents in the ancestor first order
2) only use the last decorator of each kind (e.g. @Component / ...)
Constructor parameters:
If a class inherits from a parent class and does not declare
a constructor, it inherits the parent class constructor,
and with it the parameter metadata of that parent class.
Lifecycle hooks:
Follow the normal class inheritance model,
i.e. lifecycle hooks of parent classes will be called
even if the method is not overwritten in the child class.
## Example
E.g. the following is a valid use of inheritance and it will
also inherit all metadata:
```
@Directive({selector: 'someDir'})
class ParentDirective {
constructor(someDep: SomeDep) {}
ngOnInit() {}
}
class ChildDirective extends ParentDirective {}
```
Closes #11606
Closes #12892
2016-11-28 14:12:12 -08:00
Tobias Bosch
2a5bd2f345
refactor(compiler): Reintroduce `ReflectorHost` and move `Extractor` into `@angular/compiler`
2016-11-18 10:04:14 -08:00
Tobias Bosch
3c06a5dc25
refactor(comiler): various cleanups
2016-11-18 10:04:14 -08:00
Tobias Bosch
adeea5d86a
refactor(compiler): renames
...
- `NgHost` to `CompilerHost`
- `AotCompilerHost.resolveFileToImport` to `AotCompilerHost.fileNameToModuleName`
- `AotCompilerHoset.resolveImportToFile` to `AotCompilerHost.moduleNameToFileName`
2016-11-18 10:04:14 -08:00
Tobias Bosch
dddbb1c1cb
refactor(tsc-wrapped): collect all exported functions and classes and bump metadata version from 1 to 2
...
This is needed to resolve symbols without `.d.ts` files.
This bumps the version of the metadata from 1 to 2.
This adds logic into `ng_host.ts` to automatically upgrade
version 1 to version 2 metadata by adding the exported symbols
from the `.d.ts` file.
2016-11-18 10:04:14 -08:00
Tobias Bosch
2235048432
refactor(compiler): add `createAotCompiler` factory
...
Also adds 2 more methods to the `AotCompilerHost`:
- `loadResource`
- `resolveFileToImport`
2016-11-18 10:04:14 -08:00
Tobias Bosch
484119e59f
refactor(compiler): remove `asset:` urls
...
These urls were just relicts from Dart.
2016-11-18 10:04:14 -08:00
Tobias Bosch
24099bdbd2
refactor(compiler): move `findDeclaration` into the `StaticReflector`
...
Previously, this was part of the `AotCompilerHost`.
The `AotCompilerHost` is now also greatly simplified.
2016-11-18 10:04:14 -08:00
Tobias Bosch
912ca44979
refactor(compiler): move `static_reflector` into `@angular/compiler` and rename files
...
- `src/runtime_compiler.ts` -> `src/jit/compiler.ts`
- `src/compiler.ts` -> `src/jit/compiler_factory.ts`
- `src/offline_compiler` -> `src/aot/compiler.ts`
Part of #12867
2016-11-18 10:04:14 -08:00
Victor Berchet
7908679c4b
fix(compiler): assert xliff messages have translations
...
fixes #12815
closes #12604
2016-11-14 12:55:56 -08:00
Victor Berchet
9ed9ff40b3
test(compiler): improve xliff tests
2016-11-14 12:55:48 -08:00
Victor Berchet
2f14415836
fix(compiler): updates hash algo for xmb/xtb files
2016-11-14 12:55:48 -08:00
Victor Berchet
76e4911e8b
fix(core): fix placeholders handling in i18n.
...
Prior to this commit, translations were built in the serializers. This
could not work as a single translation can be used for different source
messages having different placeholder content.
Serializers do not try to replace the placeholders any more.
Placeholders are replaced by the translation bundle and the source
message is given as parameter so that the content of the placeholders is
taken into account.
Also XMB ids are now independent of the expression which is replaced by
a placeholder in the extracted file.
fixes #12512
2016-11-14 12:55:48 -08:00
Victor Berchet
05beffe0d0
test(core): fix a typo in the i18n integration spec
2016-11-14 12:55:48 -08:00
Victor Berchet
08c038ebd9
fix(core): xmb serializer uses decimal messaged IDs
...
fixes #12511
2016-11-14 12:55:48 -08:00
Victor Berchet
582550a90d
feat(core): implements a decimal fingerprint for i18n
2016-11-14 12:55:48 -08:00
Joao Dias
77ee27c59e
refactor(): use const and let instead of var
2016-11-12 16:40:17 -08:00
Chuck Jazdzewski
a965d11cce
fix(compiler): generate safe access strictNullChecks compatible code ( #12800 )
...
fixes #12795
2016-11-11 17:12:17 -08:00
Tobias Bosch
fcb4e66493
refactor(compiler): introduce summaries for metadata ( #12799 )
...
This does not yet introduce loading / serialization of summaries.
Part of #12787
2016-11-10 16:27:53 -08:00
Tobias Bosch
79383ce150
refactor(compiler): never create CompileDirectiveMetadata with not loaded resources ( #12788 )
...
Part of #12787
2016-11-10 14:07:30 -08:00
Chuck Jazdzewski
c3c0e2e2a2
refactor(compiler): add `span` to `TemplateBinding` ( #12792 )
...
fix(compiler): corrected error location for implicit templates expressions
2016-11-10 13:15:09 -08:00
Matias Niemelä
a0e9fde653
fix(animations): always normalize style properties and values during compilation ( #12755 )
...
Closes #11582
Closes #12481
Closes #12755
2016-11-08 15:45:30 -08:00
Victor Berchet
778e6ad3b4
refactor: cleanup ICU message syntax
2016-11-08 15:44:18 -08:00
Victor Berchet
55dc0e4a5f
fix(compiler): use the other case by default in ICU messages
2016-11-08 15:44:18 -08:00
Victor Berchet
acbf1d859c
fix(core): fix pseudo-selector shimming ( #12754 )
...
fixes #12730
fixes #12354
2016-11-07 13:56:04 -08:00
Victor Berchet
ec92f4b198
refactor: remove `keys()` and `values()` from MapWrapper
2016-11-04 13:27:38 -07:00
Pawel Kozlowski
f0cdb428f5
fix(compiler): don't convert undefined to null literals ( #11503 )
...
Fixes #11493
2016-11-04 10:55:21 -07:00
Tobias Bosch
d1035da85c
refactor(compiler): don’t use `AppElement`s for creating component views
2016-11-02 17:06:27 -07:00
Tobias Bosch
a178bc6c83
fix(compiler): dedupe NgModule declarations, …
...
This is important so that we don’t generate things multiple times.
2016-10-31 14:43:50 -07:00
Zaven Muradyan
e9fd8645ed
fix(core): improve error when multiple components match the same element
...
Closes #7067
2016-10-31 11:28:03 -07:00
Dzmitry Shylovich
d321b0ebf5
fix(selectors): use Maps instead of objects
2016-10-26 14:55:59 -07:00
Tobias Bosch
178fb79b5c
refactor(compiler): move host properties into DirectiveWrapper
...
Part of #11683
2016-10-26 14:32:24 -07:00
Tobias Bosch
fe299f4dfc
refactor(compiler): minor cleanups
2016-10-26 14:32:24 -07:00
Tobias Bosch
faa3478514
refactor(compiler): set element attributes via one call
...
This makes the cost of using directives that have host attributes
smaller.
Part of #11683
2016-10-26 14:32:23 -07:00
Tobias Bosch
867494a060
fix(compiler): don't access view local variables nor pipes in host expressions ( #12396 )
...
Fixes #12004
Closes #12071
2016-10-20 15:24:58 -07:00
Tobias Bosch
b0a03fcab3
refactor(compiler): introduce directive wrappers to generate less code
...
- for now only wraps the `@Input` properties and calls
to `ngOnInit`, `ngDoCheck` and `ngOnChanges` of directives.
- also groups eval sources by NgModule.
Part of #11683
2016-10-20 10:41:43 -07:00
Victor Berchet
76dd026447
refactor: remove some facades ( #12335 )
2016-10-19 13:42:39 -07:00
Victor Berchet
df1718d624
fix(compiler): allow WS as `<ng-content>` content ( #12225 )
2016-10-12 07:58:06 -07:00
Chuck Jazdzewski
7275e1beb3
refactor(compiler): add optional `visit()` to `TemplateAstVisitor` ( #12209 )
2016-10-11 15:46:11 -07:00
Victor Berchet
e6e007e2f1
refactor(core): cleanup SpyObject ( #12221 )
2016-10-11 15:44:48 -07:00
Victor Berchet
d972d82354
refactor: simplify `isPresent(x) ? x : y` to `x || y` ( #12166 )
...
Closes #12166
2016-10-10 09:20:58 -07:00
Victor Berchet
bdcf46f82e
refactor(compiler): improve types, misc
2016-10-10 09:20:58 -07:00
Victor Berchet
aa92512ac6
fix(compiler): properly shim `:host:before` and `:host(:before)` ( #12171 )
...
fixes #12165
2016-10-10 09:15:15 -07:00
Chuck Jazdzewski
4202936bbf
refactor(compiler): add optional `visit()` to html AST `Visitor` ( #12135 )
2016-10-10 09:13:50 -07:00
Chuck Jazdzewski
e1faca6386
refactor(compiler): template element ast has endSourceSpan ( #12138 )
2016-10-10 09:12:05 -07:00
Victor Berchet
13ecc140e8
fix(compiler): validate `@HostBinding` name ( #12139 )
...
relates to #7500
2016-10-07 13:53:53 -07:00
Chuck Jazdzewski
709a6dea06
refactor(compiler): attribute ast records span of the value ( #12132 )
2016-10-07 13:53:29 -07:00
Chuck Jazdzewski
d641c36a45
fix(compiler): interpolation expressions report the correct offset ( #12125 )
2016-10-06 15:22:10 -07:00
Alex Eagle
8c975ed156
refactor(facade): inline StringWrapper ( #12051 )
2016-10-06 15:10:27 -07:00
Victor Berchet
50c37d45dc
refactor: simplify arrow functions ( #12057 )
2016-10-04 15:57:37 -07:00
Victor Berchet
a63359689f
fix(ShadowCss): fix attribute selectors in :host and :host-context ( #12056 )
...
Fix a regression introduced in #11917 while fixing #6249
2016-10-04 15:40:31 -07:00
Alex Eagle
b64b5ece65
refactor(facade): Remove most of StringMapWrapper facade. ( #12022 )
...
This change mostly automated by
12012b07a2
with some manual fixes.
2016-10-03 16:46:05 -07:00
Victor Berchet
af520947aa
test(AstSerializer): fix serializing void tags
2016-09-30 17:59:43 -07:00
Victor Berchet
040bf57966
fix(xlif): fix `<x>` ctype names
...
fixes #12000
see http://docs.oasis-open.org/xliff/v1.2/os/xliff-core.html#ctype
2016-09-30 17:59:43 -07:00
Victor Berchet
65a60b7456
style(I18N): Carriage returns in serialized files
2016-09-30 17:59:43 -07:00
Victor Berchet
9316f95467
fix(ShadowCss): support `@page` and `@document` CSS rules ( #11878 )
...
fixes #11860
2016-09-30 16:26:24 -07:00
Victor Berchet
83d94b7504
fix(ShadowCss): support quoted attribute values
...
fixes #6085
2016-09-30 14:37:41 -07:00
Victor Berchet
a121136fae
refactor(ShadowCss): add missing types
2016-09-30 14:37:41 -07:00
Victor Berchet
a6bb84e02b
fix(ShadowCss): fix `:host(tag)` and `:host-context(tag)`
...
fixes #11972
2016-09-30 14:37:41 -07:00
Victor Berchet
6c4ec05a4a
fix(ShadowCss): support `[attr="value with space"]`
...
fixes #6249
2016-09-30 10:27:35 -07:00
Victor Berchet
f7bfda31ff
refactor(ShadowCss): cleanup
2016-09-30 10:27:35 -07:00
Victor Berchet
a92b573309
test(DirectiveResolver): test that a prop can have both `@Input` and `@HostBinding`
2016-09-30 10:08:52 -07:00
Victor Berchet
4fd13d71c8
refactor(DirectiveResolver): cleanup
2016-09-30 10:08:52 -07:00
Alex Eagle
0286956107
refactor(facade): Inline isBlank called with object-type argument ( #11992 )
2016-09-30 09:26:53 -07:00
Alex Eagle
41c8c30973
chore(lint): remove unused imports ( #11923 )
...
This was done automatically by tslint, which can now fix issues it finds.
The fixer is still pending in PR https://github.com/palantir/tslint/pull/1568
Also I have a local bugfix for https://github.com/palantir/tslint/issues/1569
which causes too many imports to be deleted.
2016-09-27 17:12:25 -07:00
Marc Laval
61129fa12d
fix(compiler): move detection of unsafe properties for binding to ElementSchemaRegistry ( #11378 )
2016-09-27 17:10:02 -07:00
Matias Niemelä
f1b6c6efa1
refactor(animations): ensure animation input/outputs are managed within the template parser ( #11782 )
...
Closes #11782
Closes #11601
Related #11707
2016-09-24 05:37:04 +09:00
Brandon
2300c23332
fix(docs): Fixed wording for NgModule schemas ( #11620 )
2016-09-18 16:03:43 -07:00
esagawe
734b8b8c13
fix(compiler): [attribute~=value] selector ( #11696 )
...
Change the seperator regular expression to ignore tildes which are followed by an equal sign.
Closes #9644
2016-09-18 15:58:19 -07:00
Victor Berchet
bd4045b6e7
fix(MetadataResolver): throw Component.moduleId is not a string
...
fixes #11590
2016-09-15 10:57:37 -07:00