Commit graph

190 commits

Author SHA1 Message Date
Tim Blasi
8baedca972 style(dart/transform): Remove src from library directives
Conform to Angular 2 style by removing `src` from library directives.
Completed with:
```
find -name "*.dart" | xargs sed -i -e 's!library\(.*\)src\.\(.*\)!library \1\2!'
```

Closes #1005

Closes #1038
2015-03-21 14:55:11 -07:00
Marc Laval
02aa8e7945 feat(compiler): support bindings for any attribute
Closes #1029
2015-03-21 14:55:11 -07:00
Victor Berchet
ee523efcb4 feat(ShadowCss): Support the new deep combinator syntax >>>
fixes #990

ref http://dev.w3.org/csswg/css-scoping-1/#deep-combinator

Closes #1028
2015-03-21 14:55:11 -07:00
David-Emmanuel Divernois
bd48c927d0 fix(ViewContainer) removeChild called with null parent
In view_container.js, templateElement.parentNode can be null
when two template tags are nested in one another.
Accessing the parent node through view.nodes[0].parentNode fixes
the problem.

closes #997

Closes #999
2015-03-21 14:55:10 -07:00
gdi2290
b61b8d60b7 refactor(forEach): change to for-of with iterable
rename: foreach -> for
rename: array -> iterable
update: DartParseTreeWriter
update: naive_infinite_scroll
update: todo
fix: tests in foreach_spec

Closes #919
2015-03-21 14:19:21 -07:00
Marc Laval
2ff2ce3c6c refactor(test_lib): remove IS_NODEJS
Closes #1015
2015-03-20 15:50:05 +01:00
Marc Laval
ab5ed6f2ec chore(test): clean tests of if directive
Closes #1017
2015-03-20 15:48:55 +01:00
vsavkin
8a10edec01 feat(forms): added pristine and dirty 2015-03-19 14:36:21 -07:00
vsavkin
906fba4fab fixed imports 2015-03-19 10:52:16 -07:00
vsavkin
d220b6a2a4 test(forms): added a test checking support for select 2015-03-19 10:19:14 -07:00
vsavkin
f42e6337b7 feat(forms): added support for textarea 2015-03-19 10:19:13 -07:00
Tim Blasi
08b56e1c53 feat(dart/transform): Add simple ParseTemplates step
Generate methods in the ParseTemplates step.
Add a test for inline template method generation.
2015-03-19 08:05:44 -07:00
Tim Blasi
b3fa1fa4fa feat(dart/transform): Add simple ParseTemplates step
Adds a step that parses `inline` Template values to generate getters and
setters.
2015-03-19 07:06:51 -07:00
Pawel Kozlowski
e0710c4613 fix(PropertyBindingParser): detect bindings using full attribute name
Fixes #1001

Closes #1004
2015-03-18 21:52:15 -07:00
Patrice Chalin
376bdf4dc7 fix(bootstrap): report error on bootstrapping non-Component directive
Fixes #951. Test case added to exercise new error reporting. Also added
extra test for when Template is missing.

Closes #961
2015-03-18 21:51:46 -07:00
Pawel Kozlowski
a35cc27781 fix(PropertyBindingParser): properly parse event bindings as actions
Fixes #981

Closes #987
2015-03-18 19:09:59 +01:00
Tim Blasi
d10df7de44 style(dart/transform): Rename .ngDeps.dart => .ng_deps.dart
Update to conform with file naming conventions.

Closes #975
2015-03-17 22:12:08 -07:00
Pawel Kozlowski
59a1f836a2 fix: allow creation of var with camelCased names
Closes #957
2015-03-17 21:39:26 -07:00
vsavkin
99f2d7faf6 removed circular deps so tests run on node 2015-03-17 16:31:37 -07:00
vsavkin
2041860a21 feat: added an ability to dynamically load components 2015-03-17 15:23:59 -07:00
vsavkin
7488456d68 feat(element_injector): added PrivateComponentLocation 2015-03-17 15:23:58 -07:00
vsavkin
b69f3043e0 feat(compiler): added the DynamicComponent annotation 2015-03-17 15:23:58 -07:00
vsavkin
a16954d3a5 refactor(view): separate context and locals 2015-03-17 14:25:57 -07:00
Yegor Jbanov
70c875ee14 refactor(shadow dom): do not use injectors nor directives
This prepares us for the app/render split in the compiler.
2015-03-16 16:58:38 -07:00
vsavkin
75ecaf02b9 chore: upgrade guinness to remove a workaround in testlib 2015-03-13 18:19:10 -07:00
vsavkin
33bff17f33 refactor(tests): refactor tests to clarify the behavior of onChange 2015-03-13 18:09:31 -07:00
vsavkin
3273adade5 refactor(view): change view to pass all bindings to proto change detector at once 2015-03-13 14:03:57 -07:00
Pawel Kozlowski
b39d2c0101 fix: properly bind to camelCased properties
Fixes #866
Closes #941
2015-03-13 19:50:47 +01:00
Marc Laval
e8965656a4 feat(directives/forms): run tests in NodeJS
Closes #921
2015-03-13 19:18:15 +01:00
Victor Berchet
7322ed721e refactor: remove reference to the FIELD class 2015-03-13 18:59:51 +01:00
Marc Laval
8d2ee6bbda feat(selector): add support for :not
Fixes #609
Closes #948
2015-03-13 18:26:10 +01:00
Tim Blasi
5c1c534894 test(dart/transform): Move BindGenerator tests to their own dir.
Move existing BindGenerator test to its own directory and to test that
phase specificially, rather than the whole pipeline.
Add another BindGenerator test.
2015-03-13 10:25:11 -07:00
Tim Blasi
4b12c19560 feat(dart/transform): Add a parser for .ng_deps.dart files and use.
Use the parser in `BindGenerator`
This checkin also removes types from `registerSetters` calls since they
can cause runtime failures (see #886). We will resolve this by
generating change detector classes in the future.
2015-03-13 10:24:15 -07:00
Tim Blasi
92b22d24d0 feat(dart/transform): Add a .ng_deps.dart file parser.
Create a common, reusable `.ng_deps.dart` file parser. All future transformer
phases build on the information in `.ng_deps.dart` files.
2015-03-13 10:24:15 -07:00
Tim Blasi
95c9eca64c style(dart/transform): Change quote character for consistency.
Use ' as a quote character in generated output instead of ".
2015-03-13 10:24:15 -07:00
Victor Berchet
30253592ff refactor(tests): refactor some tests to use the test injector 2015-03-13 18:20:02 +01:00
Victor Berchet
33b5ba863e feat(tests): add a test injector
fixes #614

Asynchronous test should inject an AsyncTestCompleter:

Before:

  it("async test", (done) => {
    // ...
    done();
  });

After:

  it("async test", inject([AsyncTestCompleter], (async) => {
    // ...
    async.done();
  }));

Note: inject() is currently a function and the first parameter is the
array of DI tokens to inject as the test function parameters. This
construct is linked to Traceur limitations. The planned syntax is:

  it("async test", @Inject (async: AsyncTestCompleter) => {
    // ...
    async.done();
  });
2015-03-13 18:20:02 +01:00
Pawel Kozlowski
5926d2e2f7 refactor: use attributes for directives matching
Closes #940
2015-03-13 17:24:14 +01:00
Rado Kirov
f7963e1ea6 fix(shadowdom): allow conditional content tags.
Distribution is triggered on the host element injector after each new
view creation.
2015-03-12 12:06:47 -07:00
Victor Berchet
a82e20889d feat(Injector): Support binding to null 2015-03-12 19:52:08 +01:00
Victor Berchet
951a808e0e refactor(PropertySetter): use the global reflector 2015-03-12 19:49:34 +01:00
Marc Laval
c67194a3ef fix(test_lib): remove getDistributedNodes emulation in NodeJS 2015-03-12 11:16:47 +01:00
Rado Kirov
dd3e6271c2 chore(services): rename services.
Closes #711
2015-03-11 18:30:37 -07:00
Tim Blasi
f4e0f51f5a feat(dart/transform) Register parameter metadata information
Adds any metadata attached to a parameter to the "parameters" value
passed in to `registerType`.

For example:
`MyComponent(@Inject(Foo) foo)` generates
`"parameters": const [const [const Inject(Foo)]]`

Also reorganizes the testing code.

Closes #7
2015-03-11 17:21:49 -07:00
Rado Kirov
f1593ebca5 feat(shadowdom): turn on ShadowDom Emulated Mode by default.
Closes: #526
2015-03-11 12:46:15 -07:00
Marc Laval
1d4ff9bcdc feat(compiler): parse5 DOM adapter
Closes #841
2015-03-11 14:42:54 +01:00
Tim Blasi
d0aceef4e0 perf(dart/transform) Restructure transform to independent phases
Update summary:
- Removes the need for resolution, gaining transform speed at the cost
  of some precision and ability to detect errors
- Generates type registrations in the package alongside their declarations
- Ensures that line numbers do not change in transformed user code
2015-03-10 19:19:02 -07:00
vsavkin
08bd3a4443 feat(forms): add form builder 2015-03-10 18:12:50 -07:00
vsavkin
10fb7bb05f refactor(forms): make form group responsible for supporting optional controls 2015-03-10 18:12:30 -07:00
Marc Laval
5acde20c7d refactor(compiler): remove direct accesses to DOM in tests
Closes #899
2015-03-10 22:08:27 +01:00
Victor Berchet
370643539f refactor(EventHandler): have a single instance of event handlers per ProtoView 2015-03-10 15:26:06 +01:00
Victor Berchet
bfa18ffd9b feat(Directives): add the ability to declaratively bind events
relates to #621
2015-03-10 08:14:24 +01:00
Pawel Kozlowski
0d1dece7b4 feat: introduce Title service
Closes #612

Closes #900
2015-03-09 22:17:28 +01:00
Victor Berchet
b349c35678 feat(ElementInjector): implement @PropertySetter
relates to #621
2015-03-09 18:28:39 +01:00
Victor Berchet
c3873be295 fix(Compiler): asynchronous error reporting 2015-03-09 16:42:37 +01:00
Victor Berchet
03793d0714 feat(CssProcessor): add support for CssTransformers
Closes #860
2015-03-03 11:24:08 -08:00
Victor Berchet
9982520a23 refactor(Compiler): make shadow DOM stragegy support more flexible 2015-03-03 11:24:08 -08:00
vsavkin
733915d99b feat(forms): add support for nested forms 2015-03-02 14:53:03 -08:00
vsavkin
ba0a1ec459 feat(di): add support for optional dependencies 2015-03-02 14:38:02 -08:00
Bertrand Laporte
3059104e8d add compilation error test for dart
Closes #812
2015-03-02 14:38:02 -08:00
vsavkin
21f24d19dd feat(change_detection): implement hydration/dehydration 2015-03-02 13:28:39 -08:00
Richard Harrington
f30e3e59b5 fix(docs): fix typo in compiler integration_spec.js
Closes #834
2015-02-28 12:00:49 +01:00
Yegor Jbanov
757eae8ad3 feat(compiler): DOM adapters + html5lib implementation; misc fixes 2015-02-27 16:49:14 -08:00
Pawel Kozlowski
7e6f536cf5 fix(compiler): properly bind to properties that don't have matching attr name
Fixes #619
Closes #783
2015-02-27 16:10:16 +01:00
Victor Berchet
8541cfd26d feat(ShadowDomStrategy): implemented EmulatedUnscopedShadowDomStrategy
- The new strategy do not scope component styles but make them global,
- The former EmulatedShadowStrategy has been renamed to
EmulatedScopedShadowDomStrategy. It does scope the styles.
2015-02-26 20:00:23 +01:00
Victor Berchet
9f181f39e9 fix(StyleUrlResolver): add support for media query in import rules 2015-02-26 20:00:23 +01:00
Victor Berchet
4d8d17ce3d fix(StyleInliner): add support for url(url) format 2015-02-26 20:00:23 +01:00
Victor Berchet
06f7481141 feat(RegExp): expose match indexes in Dart 2015-02-26 19:32:49 +01:00
vsavkin
cf9cb61665 clean(forms): cleanup 2015-02-26 09:35:30 -08:00
vsavkin
f27e538e2c feat(forms): add optional controls 2015-02-26 09:31:02 -08:00
vsavkin
a73c643322 feat(forms): remove support for declaring forms in html 2015-02-26 09:31:02 -08:00
vsavkin
ded83e589b feat(forms): add support for validations 2015-02-26 09:31:01 -08:00
Victor Berchet
929fc65493 refactor(template loading): add support for base URLs, css rewriting
fixes #654
2015-02-26 09:36:04 +01:00
Victor Berchet
9250cd6a78 fix(ShimShadowCss): preserve attribute on style elements 2015-02-26 09:04:00 +01:00
Victor Berchet
edb797e191 feat(StyleUrlResolver): rewrite url in styles 2015-02-26 09:04:00 +01:00
Victor Berchet
ff406e65dc feat(UrlResolver): combine a base URL with an URL 2015-02-26 09:04:00 +01:00
Victor Berchet
e0cf1c7ab5 feat(StyleInliner): StyleInliner inlines @import css rules 2015-02-26 09:04:00 +01:00
Victor Berchet
41c61e5bc7 refactor(Completer): rename complete() to resolve() 2015-02-26 08:46:32 +01:00
Rado Kirov
6ad2c18277 feat(events): adds support for bubbling native events (^event).
Refactor - move DomEventManager into its own plugin.
2015-02-25 19:08:16 -08:00
Rado Kirov
2f015cc336 fix(view_container): fixes injection on dynamically added views.
Closes #777
2015-02-25 18:05:57 -08:00
vsavkin
6b2650996c fix(parser): parse pipes in template bindings 2015-02-25 14:39:44 -08:00
Pawel Kozlowski
4a5d53c549 feat: allow using KeyValueChanges as a pipe 2015-02-25 13:24:59 -08:00
Tim Blasi
50a74b1d91 feat(dart/transform): Generate setter stubs.
Generate calls to Reflector#registerSetters from the information in
provided `Directive#bind` values.

This is only an initial attempt - it covers only the most basic values
of `bind`.

Closes #780
2015-02-25 09:54:13 -08:00
Bertrand Laporte
94e203b9df feat(DirectiveParser): throw errors when expected directives are not present
closes #527
Closes #570
2015-02-24 20:57:21 -08:00
Pawel Kozlowski
908a0aa7dc test: introduce TemplateResolver mock
Closes #768
2015-02-24 10:34:52 -08:00
Tim Blasi
3b6aaf9054 feat(dart/transform) Remove import of dart:mirrors
+ Precede the call to `new ReflectionCapabilities()` with our generated
code which populates the reflection map statically.
+ Add the import of our generated code.
+ Once we are generating all necessary code, we will remove the
import of reflection_capabilities.dart and the instantiation of
`ReflectionCapabilities`, cutting the dependency on dart:mirrors.

Closes #761
2015-02-23 18:36:29 -08:00
Yegor Jbanov
d1f03e509b fix(benchpress): benchpress fixes and a smoke test for Dart 2015-02-23 10:50:51 -08:00
Tim Blasi
fb49946160 feat(dart/transform) Allow ctor stubs to be tree shaken
Change the method used to discover Directive annotated classes to ensure
that the Dart code can be tree shaken.

Closes #497

Closes $\x23736
2015-02-21 18:20:05 +00:00
Pawel Kozlowski
0c4fbfc8e2 feat(di): introduce aliasing
Closes #710
Closes #747
2015-02-21 18:43:45 +01:00
vsavkin
0dfd287ec3 fix(change_detection): handle locals when invoking a method
Closes #660
2015-02-20 17:55:06 -08:00
vsavkin
7f31036427 fix(change_detection): pass the correct previous value when using pipes
Closes #588
2015-02-20 17:53:57 -08:00
vsavkin
987a5fdf56 feat(change_detection): add support for pipes in the template 2015-02-20 17:16:57 -08:00
vsavkin
29f5ee0c29 fix(shadow_dom_emulation): handle the case when the array of element injectors has nulls 2015-02-20 15:52:15 -08:00
vsavkin
58ba700b14 feat(change_detection): change binding syntax to explicitly specify pipes 2015-02-20 10:59:46 -08:00
Victor Berchet
69e02ee76f feat(ViewSplitter): Change template shorthand syntax from '!' to '*'
fixes #717

Closes #727
2015-02-20 10:36:30 -08:00
Tim Blasi
329b2eda66 refactor(dart/transform tests): Use actual directive def'n instead of mock.
In the transformer unit tests, we previously used a mock directive annotation. This update
substitutes the actual Angular2 directive annotations.

Closes #706
2015-02-20 09:44:56 -08:00
Victor Berchet
d0ca07afaa refactor(Compiler): introduce ShimComponent to shim CSS & DOM in emulated mode
Closes #715
2015-02-19 13:42:18 -08:00
Victor Berchet
5111f9ae37 feat(ShadowCss): Make the shim also accept a selector for the host 2015-02-19 13:42:18 -08:00
Victor Berchet
d67f0299cd feat(ShadowCss): port implementation from webcomponent.js 2015-02-19 13:42:18 -08:00
Marc Laval
3496c8ac54 refactor(change_detection): remove circular dependencies
Closes #712
2015-02-19 13:42:00 -08:00