Commit Graph

288 Commits

Author SHA1 Message Date
vsavkin 47c1a0f381 feat(forms): added value accessor for input=text 2015-03-23 08:53:27 -07:00
vsavkin 514529b5d9 refactor(formed): changed forms to use event and property setters instead of NgElement 2015-03-23 08:52:54 -07:00
vsavkin a12dc7d75a refactor(forms): wrapped all validators into the Validator class 2015-03-23 08:50:56 -07:00
Marc Laval 41b53e71e1 feat(selector): support , for multiple targets
Fixes #867
Closes #1019
2015-03-23 10:06:33 +01:00
Pawel Kozlowski 0fb9f3bd6c fix(ElementBinderBuilder): properly bind to web component properties
Fixes #776

Closes #1024
2015-03-22 14:14:36 +01:00
Pawel Kozlowski 81f3f32217 refactor(DirectiveParser): remove checks for missing directives
Based on the discussion in #776 we can't reliably check if a given
element has a particular property at the compilation time. As such
the existing algorithm detecting "missing" directives can't be used.

We need to see if there is a different / better algorithm or maybe
those checks need to be moved later in the process (runtime). Leaving
integration tests in place (disabled) so we can come back to the
topic after unblocking the situation.

This commit effectivelly reverts 94e203b9df
2015-03-22 14:14:36 +01:00
Tim Blasi b35f288794 refactor(dart/transform): Use package:guinness in tests
`guinness` is a Dart port of Jasmine. Since the rest of Angular 2 uses
Jasmine, use it for the transformer too.

Closes #8

Closes #1037

Closes #1000
2015-03-21 15:18:15 -07:00
Tim Blasi 4e82cc0861 refactor(dart/transform): Test `directive_linker` as a unit
Formerly, it was tested only as a piece of the transformer pipeline. Add
its own directory and test the linker on its own.
2015-03-21 15:18:15 -07:00
Tim Blasi c735644c57 refactor(dart/transform): Minor logging changes
Enable easier testing by providing a null log implementation and a way
to use it.
2015-03-21 15:18:15 -07:00
Tim Blasi 5d479fa0ae refactor(dart/transform): Remove `ngData`
Now that we have `Parser`, `ngData` is redundant & unnecessary.
2015-03-21 15:18:15 -07:00
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
Nick Van Dyck f1fca5abb6 (docs) decorator events property
As from what i understand shouldn't the event property rather be events: https://github.com/angular/angular/blob/master/modules/angular2/src/core/annotations/annotations.js#L161

Closes #1018
2015-03-21 18:26:13 +00:00
Matt Follett 045ce3c77a Fix which dependency is injected w/ current elem.
Docs for the "Injecting a directive from the current element" indicate that having a dependency of `dependency: Dependency` should cause the current element's dependency to be injected, but then uses the ID value from the parent element in the example.

Closes #1032
2015-03-21 18:14:43 +00:00
Misko Hevery f822066e2a docs: annotations 2015-03-21 18:05:12 +00: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
Misko Hevery 38b96ed746 docs: annotations 2015-03-19 18:21:52 +00: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
Misko Hevery 81312e4b3e docs: annotations 2015-03-19 16:56:52 +00: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
Tim Blasi 5d502d4093 feat(dart/transform): Implement `Html5LibDomAdapter` methods.
Adding support for some additional `DomAdapter` methods necessary to run
`Complier` in the Dart transformer.
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 57723e1354 feat(di): Add the `@Injectable` annotation to `Compiler`
Mark `Compiler` and its dependencies as available to the `Injector`.
2015-03-17 22:12:47 -07:00
Tim Blasi b656f63430 feat(di): Add the `@Injectable` annotation
Add an annotation marking a class as available to `Injector`s.
2015-03-17 22:12:47 -07:00
Marc Laval a46af9c41c feat(build): check circular depencies in Node.js
Closes #980
2015-03-17 22:12:26 -07: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
PatrickJS 91398c3425 docs(application.js): ensure bootstrap promise,
so people using something like systemjs won't break the promise chain and at the same time shows that it's a promise

```es6
Promise.all({
  app1: System.import('app1').then(module => module.main()),
  app2: System.import('app2').then(module => module.main()),
  app3: System.import('app3').then(module => module.main())
})
.then(function(injectors) {
  console.log('dem injectors', injectors);
});
```

Closes #967
2015-03-17 22:11:26 -07:00
Pawel Kozlowski 59a1f836a2 fix: allow creation of var with camelCased names
Closes #957
2015-03-17 21:39:26 -07:00
Victor Berchet c6893aceed perf(DirectiveDependency): iterate only once over Dependency properties
Closes #918
2015-03-17 21:24:02 -07:00
Nick Van Dyck 6fe294ff2b (docs) decorator events typo?
Ok I'm not sure (trying to understand angular2) but according to what i can see. Shouldn't the decorator event property be events. Please correct me if I'm wrong :p
2015-03-17 17:10:47 -07:00
Marc Laval 46b03a524e feat(test): more tests in Node.js 2015-03-17 16:58:58 -07:00
vsavkin 99f2d7faf6 removed circular deps so tests run on node 2015-03-17 16:31:37 -07:00
vsavkin b92d16c08e cleanup(change_detection): removed an unused method 2015-03-17 15:23:59 -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
Peter Bacon Darwin 85799aa1a5 docs(*): add `@publicModule` tags
Initial set of tags to demonstrate the public docs filtering

Closes #988
2015-03-17 14:44:45 -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
Misko Hevery 115ac5f290 docs: directive docs 2015-03-16 02:53:22 +00: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
Misko Hevery 956b8c8792 docs: bootstrap method 2015-03-13 21:55:02 +00: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
Peter Bacon Darwin 1adb23d222 docs(TestInjector): reenable jsdoc comment for exported `inject` function
This was disabled due to a bug in dgeni. See #949
2015-03-13 20:53:25 +00: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
Victor Berchet fde7e9e898 doc(TestInjector): fix a build error with dgeni 2015-03-13 18:48:29 +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
Pawel Kozlowski d35fdfcd40 refactor: return copy of DOM attributes in Dart
This alligns with JS-version behaviour
2015-03-13 17:24:13 +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
Marc Laval 537f943f57 refactor(compiler): remove direct accesses to DOM
Closes #898
2015-03-11 11:58:18 +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
Marc Laval f1f06018c1 fix(compiler): workaround for circular dependencies in nodejs
Closes #897
2015-03-10 21:58:13 +01:00
Brian Ford e0feeaf973 fix(CompileStep): use namespace to resolve circular dep issue 2015-03-10 11:35:52 -07: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
Victor Berchet 86e9dd68a4 refactor(ElementBinderBuilder): refactor pipes support 2015-03-10 07:23:17 +01:00
Pawel Kozlowski 0d1dece7b4 feat: introduce Title service
Closes #612

Closes #900
2015-03-09 22:17:28 +01:00
Dylan Johnson 7e93c54603 docs(12_zones.md): Fix typos and inconsistent capitalization
Closes #893
2015-03-09 18:58:56 +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
Tobias Bosch f9dcfa3ba5 feat(benchpress): add a file reporter 2015-03-06 12:50:05 -08:00
Alex Eagle 91426a8efe fix: remove one more use of for..of 2015-03-04 08:35:41 -08:00
Tobias Bosch 043b8c6d2e feat(bench press): add microIterations option 2015-03-03 14:41:03 -08: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
Victor Berchet bcf4a96a84 refactor(Compiler): simplify the code
Closes #862
2015-03-03 11:21:02 -08:00
Tobias Bosch 81a5ae8f6e fix(build): report and fail on errors
tree benchmark was broken and we didn’t know it…

also changes reporting to not include messages from `console.time()`, …
2015-03-02 16:34:32 -08:00
vsavkin 733915d99b feat(forms): add support for nested forms 2015-03-02 14:53:03 -08:00
Tobias Bosch 7ddfbf8bea refactor(tests): move files from `angular2/e2e_test` to `angular2/src/test_lib`
The `e2e_test` folder in `angular2` never contained e2e tests but was
used to store utilities for writing e2e/perf tests. A better place for
them is `angular2/src/test_lib`.

Closes #855
2015-03-02 14:38:02 -08:00
vsavkin ba0a1ec459 feat(di): add support for optional dependencies 2015-03-02 14:38:02 -08:00