Commit Graph

1616 Commits

Author SHA1 Message Date
vsavkin 7f976381d5 fix(view): fixed ProtoViewFactory to get all property bindings 2015-05-11 17:38:34 -07:00
Brian Ford ac80df0959 fix(router): reuse common parent components 2015-05-11 15:49:40 -07:00
Brian Ford aff85b5037 feat(facade): add equals method to StringMapWrapper 2015-05-11 15:49:40 -07:00
Jeff Cross 5691063ba0 refactor(ChangeDetection): rename AsyncPipe to ObservablePipe
The async pipe in templates will now delegate to both Observable pipe or Promise pipe,
whichever first says it can support the input. Therefore, it's beneficial to disambiguate
the name of the AsyncPipe/AsyncPipeFactory constructors to reflect that these actually
support only Observables.
2015-05-11 14:25:27 -07:00
Jeff Cross 7498758584 feat(PromisePipe): add pipe for promises 2015-05-11 14:23:46 -07:00
vsavkin f9c1de46b3 feat(compiler): added support for host actions 2015-05-11 13:28:19 -07:00
vsavkin a9ce0f7afb cleanup(di): use typescript initialization idioms 2015-05-11 12:34:22 -07:00
Rado Kirov 77d1fc149a fix(router): router-link works without params
Router-link attaches a listener to prevent default behavior and
navigate.

Closes: 1689
2015-05-11 11:58:38 -07:00
Rado Kirov c2a42d5d2b fix(location): dartium does not like pushState with null.
According to
https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Manipulating_the_browser_history
the value of the title parameter is irrelevant anyways.
2015-05-11 11:48:45 -07:00
Jacob MacDonald 01d5c29513 fix(transformer): remove classDefParser in favor of hardcoded strings to speed up build 2015-05-11 10:45:02 -07:00
Kevin Moore 7844e3a275 chore: dartfmt Dart code in the repo 2015-05-11 09:50:33 -07:00
Pawel Kozlowski a5638a940c feat(directives): export collection of core directives
Closes #1524
2015-05-11 16:47:45 +02:00
Pawel Kozlowski 4665726f48 feat(lang): support const expressions in TS/JS and Dart
Closes #1796
2015-05-11 12:11:24 +02:00
Tobias Bosch 4f3433b5bd feat(view): allow to transplant a view into a ViewContainer at another place.
Closes #1492.
2015-05-08 21:35:01 -07:00
yjbanov 2185e7cee9 feat(di): expose parent injector 2015-05-08 17:11:27 -07:00
yjbanov 66f5e30d7c chore(dart): use --trust-type-annotations and --trust-primitives 2015-05-08 16:13:53 -07:00
yjbanov 1a0da11e55 feat(di): components can self-publish via publishAs 2015-05-08 16:13:00 -07:00
Tim Blasi abc8878547 feat(dart/transform): Reuse readDirectiveMetadata in plugin
Share code for parsing `DirectiveMetadata` values between the
transformer and the analyzer plugin.
2015-05-08 14:34:16 -07:00
Brian Ford 853d1de6ec fix(router): strip base href from URLs when navigating 2015-05-08 13:51:43 -07:00
Brian Ford 84dc6ae76b fix(test_lib): spy funcs should match null arguments 2015-05-08 13:51:43 -07:00
Brian Ford 05219a54cd feat(dom): add getBaseHref method 2015-05-08 13:51:42 -07:00
PatrickJS 4b62a722f0 feat(change_detection.js): export null pipes
rather then having developers creating their own null pipes

Closes #1624
2015-05-08 13:50:17 -07:00
gdi2290 09b39bf77a docs(core): fix Formatters -> Pipes
long overdue update

Closes #1629
2015-05-08 13:45:13 -07:00
Kevin Western 42f6baeaec Fix documentation for toFactory and toAsyncFactory
The bound String classes should have a dependency on Number, not String.

Closes #1654
2015-05-08 13:40:12 -07:00
Jeremy Elbourn 8ef183b593 feat(material): add early version of md-grid-list.
Closes #1683
2015-05-08 13:29:24 -07:00
Matan Lurey 2cb066215a Add correct type to TestBed.createView
Closes #1727
2015-05-08 13:17:42 -07:00
Tim Blasi 200e190f70 fix(dart/transform): Handle `hostAttributes` in DirectiveMetadata
Handle `hostAttributes` in the transformer.
`hostAttributes` was introduced in 51839ca677

Closes #1742
2015-05-08 11:19:11 -07:00
Tim Blasi 44f829dbc6 feat(dart/transform): Use the render Compiler and the DirectiveParser
Update the `TemplateCompile` step to use the full render `Compiler`.

Provide `DirectiveMetadata` for `ViewDefinition` objects and use it to
run the `DirectiveParser` step of the render compile pipeline.
2015-05-08 11:18:40 -07:00
Jeremy Elbourn ad23921814 feat(material): early version of md-input
Closes #1753
2015-05-08 11:16:18 -07:00
vsavkin d717529e9a fix(change_detection): updated dynamic change detector not to mutate when throwing
Closes #1762
2015-05-08 10:46:08 -07:00
Tobias Bosch c68fa27444 refactor(render): remove recursion from renderer
The goal is to make implementing a renderer straight forward.

BREAKING_CHANGE:

- Renderer interface was redone / simplified.
- `DirectDomRenderer` was replaced by `DomRenderer`.
- `DirectDomRenderer.setImperativeComponentRootNodes` is replaced
  by the following 2 steps:
    1. `ViewManager.getComponentView(elementRef) -> ViewRef`
    2. `DomRenderer.setComponentViewRootNodes(viewRef, rootNodes)`
- all `@View` annotations need to have a template, but the template
  may be empty. Previously views that had a `renderer` property did
  not have to have a `template`.
- `dynamicComponentLoader.loadIntoNewLocation` does no more allow
  to pass an element, but requires a css selector.
  Special syntax: `:document` can be used as prefix to search globally
  on the document instead of in the provided parent view.

Part of #1675
2015-05-08 09:37:41 -07:00
John Jelinek IV d2507ac760 Add full example to FormBuilder docs 2015-05-08 16:35:25 +02:00
Martin Probst 4ce0d5e024 fix(dart): Remove unused imports.
These imports cause dart analyze errors once ts2dart removes the
IMPLEMENTS import.
2015-05-08 15:24:37 +02:00
Matthew Hill 5d9e573b3e docs(annotations): differentiate between component definitions and component instances
Closes #1661
2015-05-08 14:50:33 +02:00
Pawel Kozlowski 51839ca677 feat(compiler): allow setting attributes on a host element
Closes #1402
2015-05-08 14:22:07 +02:00
vsavkin fa28b28d0a build(typescript): Migrated change detection to typescript 2015-05-07 17:18:04 -07:00
Jeremy Elbourn 20a033e4c9 chore(material): add simple e2e smoke tests for components. 2015-05-07 15:13:30 -07:00
PatrickJS 93c331d103 fix(decorators.es6): export Directive decorator
Closes #1688
2015-05-07 15:12:22 -07:00
Alex Eagle 1daa8aa3a1 chore(shrinkwrap): update dependencies to latest
Also, our package.json was out-of-sync with npm-shrinkwrap.json; see https://github.com/angular/angular/issues/1737
This includes a fix for the shrinkwrapping of ts2dart; see https://github.com/angular/ts2dart/issues/138
2015-05-07 14:29:43 -07:00
Misko Hevery b0c735f72c fix(decorators): incorrect annotation to decorator adapter 2015-05-07 12:30:18 -07:00
Jacob MacDonald 0e2047f9ca chore(benchmarks): add transform benchmark runner and clean up benchmark output 2015-05-07 10:36:04 -07:00
vsavkin 49777648b3 fix(decorators): fixed decorators 2015-05-06 21:08:55 -07:00
vsavkin cb87fa0970 chore(build): migrated di to TypeScript 2015-05-06 19:00:56 -07:00
Kevin Moore 649e276610 chore: support last dev build of Dart at 1.10.0-dev.1.10
Can revert once 1.11 is available
2015-05-06 18:21:46 -07:00
Kevin Moore 5ef11774c2 chore: update pubspec files
Allow latest analyzer version
Add an upper constraint to the Dart SDK
2015-05-06 17:55:03 -07:00
Kevin Moore 75db2c5241 chore: add more types to a number of top-level properties and methods 2015-05-06 17:53:44 -07:00
Tim Blasi c8ebd11d63 feat(dart/transform): Generate DirectiveMetadata for exports
For all files that export another library, include `DirectiveMetadata`
for the exported library in that file's associated `ng_meta.json` file.
2015-05-06 17:17:04 -07:00
Alex Wolfe 577a80371f fixed build process by adding comment 2015-05-06 15:27:25 -07:00
Rado Kirov be7504d451 fix(decorators): fixes decorator reflection.
The bug appears when there are only type annotations without parameter
annotations.
2015-05-06 13:44:44 -07:00
Tim Blasi 169e4e862d refactor(dart/transform): Use render Compiler concepts
Update `TemplateCompiler` transform step to use abstractions used by the
render `Compiler`. For example, template code is now loaded via an
instance of `TemplateLoader` and external resources are fetched via an
instance of `XHR`.
2015-05-06 12:51:49 -07:00
Tobias Bosch abc3de7efe refactor(render): rename `RenderView` and `RenderProtoView`
Part of #1675
Closes #1705
2015-05-06 11:46:52 -07:00
Tobias Bosch 0856516ae9 refactor(renderer): separate compiler from renderer
Part of #1675
Closes #1702
2015-05-06 10:50:15 -07:00
Rado Kirov c9cec60007 fix(router): fix for leading slash in dart
Using string1 === string2 translates to identical(string1, string2) in
dart, which is incorrect as it is possilbe for dart strings to have
different reference.
2015-05-05 15:19:06 -07:00
Rado Kirov f356d03362 feat(dom): add location and history as DOM-like APIs.
Instead of global access methods.
2015-05-05 14:50:53 -07:00
Tim Blasi 0520ca68b4 feat(dart/transform): Add DirectiveMetadataExtractor transform step
Add a step that reads `DirectiveMetadata` object off annotated classes
into `.ng_meta.dart` files. These will be used by the `TemplateCompiler`
step as inputs to the Angular 2 render compiler.

Update one test to avoid unsupported functionality, format others.
2015-05-05 12:07:50 -07:00
Rado Kirov 8e1d53b5e9 feat(router): adds the router to the self-executing bundle.
Due to limitation of system build, the router cannot have its own sfx
bundle.

Fixes an issue with RouteConfig decorator by moving it into its own
file.
2015-05-05 10:55:23 -07:00
Kevin Moore f5b56c627b refactor: add types to top-level fields in change_detection
Also introduced an abstract PipeFactory base class
2015-05-05 10:21:56 -07:00
Jeremy Elbourn f88c4b77ca feat(material): add prototype dialog component w/ demo. 2015-05-04 16:43:15 -07:00
Brian Ford 75da6e4c4a feat(router): export decorator version of RouteConfig 2015-05-04 15:44:16 -07:00
Jacob MacDonald 1864f60afb feat(benchmarks): Add basic dart transformer benchmarks.
Adds simple benchmarks for various transformation phases, as well as hello_world.
Does not integrate these into any benchmark frameworks yet.
2015-05-04 14:03:58 -07:00
Rado Kirov 457c15cd6c feat(decorators): adds decorator versions of DI annotations.
In 'angular2/di' the symbol:
- Inject is a decorator
- InjectAnnotation is an annotation

Internally one an get a hold of annotations without *Annotations appened
(to make ts2dart work without workarounds) by importing from
'angular2/src/di/annotations_impl' instead of 'angular2/di'. This is
needed only for users that transpile through TS and through ts2dart.
2015-05-04 13:35:09 -07:00
Brian Ford 28feac9411 refactor(router): rename "alias" to "as" 2015-05-03 20:37:00 -07:00
Brian Ford 9153331303 feat(router): route redirects 2015-05-03 20:37:00 -07:00
Brian Ford 9d5c33f9dd feat(router): sibling outlets 2015-05-03 20:26:47 -07:00
Brian Ford 2713b7877b fix(router): navigate on popstate event 2015-05-03 20:26:22 -07:00
Brian Ford 259f872cea fix(router): throw if config does not contain required fields 2015-05-01 16:41:25 -07:00
Brian Ford 68ed8f1b6b refactor(router): rename LocationMock to LocationSpy 2015-05-01 16:41:25 -07:00
Brian Ford ef7014fe19 feat(router): export routerInjectables 2015-05-01 16:41:25 -07:00
Brian Ford 46ad3552c7 fix(router): infer top-level routing from app component
Closes #1600
2015-05-01 16:41:25 -07:00
Brian Ford 4965226f3f fix(router): use lists for RouteConfig annotations 2015-05-01 15:55:53 -07:00
Brian Ford ea546f5069 feat(router): add location service 2015-05-01 15:55:53 -07:00
vsavkin ce6a2ba836 refactor(view): moved the logic from ProtoView to ProtoViewFactory 2015-05-01 13:35:17 -07:00
Alex Eagle 3c77855b39 chore(build): Remove .es6 files which shadow .ts files.
This removes .es6 files which are pure duplicates of a
.ts file in the same folder.
Next we need to remove .js files as well, and remove karma preprocessors for dart.
2015-05-01 09:51:03 -07:00
vsavkin c1579222bd fix(view): changed view manager to hydrate change detector after creating directives 2015-04-30 22:01:55 -07:00
Rado Kirov f863ea0db5 feat(decorators): adds support for parameter decorators.
Paramater decorators expect to be called as currently implemented by TS.
2015-04-30 18:42:40 -07:00
vsavkin e4342743c0 feat(benchmark): added an implementation of the tree benchmark in React 2015-04-30 18:12:21 -07:00
Tobias Bosch 9e8d31d532 fix(compiler): clone templates before compiling them
This is needed as the compiler changes templates during compilation
and we are caching templates in the `TemplateLoader`.

Closes #1058
2015-04-30 16:40:57 -07:00
Tobias Bosch f75a50c1dd refactor(compiler): rename decorator directives into directive
BREAKING CHANGE:
Previously, `Directive` was the abstract base class of several directives.
Now, `Directive` is the former `Decorator`, and `Component` inherits from it.
2015-04-30 13:38:40 -07:00
Tobias Bosch c671706518 refactor(benchpress): report forced gc metric separately 2015-04-30 12:15:30 -07:00
Tobias Bosch ead21c91a4 fix(exception_handler): log errors via `console.error`
This is e.g. needed as we use this to test for errors
in our examples.
2015-04-30 11:45:34 -07:00
Rado Kirov 87dcd5eb6f fix(decorators): updates missing benchmark and fixes typo. 2015-04-30 10:22:30 -07:00
Tobias Bosch 8faf6364dc refactor(core): remove DynamicComponent
BREAKING CHANGE:
A dynamic component is just a component that has no @View annotation…
2015-04-30 09:17:25 -07:00
Alex Eagle bb50fc131b chore(build): update TypeScript version to unreleased beta
Also fixup the typings which were broken by changes in typescript's lib.d.ts.
Second attempt to merge this, now that bugfix for tsd is in.
2015-04-29 17:03:02 -07:00
Tobias Bosch 3aac2fefd7 refactor(compiler): remove `Viewport` directives, use `Decorator` instead
BREAKING_CHANGE:
- The special type of `Viewport` directives is removed
  in favor of a more general `Decorator` directive
- `ViewContainerRef` now no more has a default `ProtoViewRef`
  but requires an explicit one when creating views.

Closes #1536
2015-04-29 15:59:55 -07:00
Rado Kirov fb67e37339 feat(decorators): adds decorators to be used by TS and Babel transpiled apps. 2015-04-29 15:13:25 -07:00
Tim Blasi 648c514c28 feat(dart/transform): Add directiveMetadata{To,From}Map
Add utility methods to convert `render.dom.DirectiveMetadata` to and
from maps. This will allow saving and restoring `DirectiveMetadata` in
the Angular 2 Transformer.

We discussed adding this as a member on `DirectiveMetadata`. Since this
is not necessary for anything except the Transformer, we decided to put
it into a separate file to avoid shipping it with the Angular 2 core
code.
2015-04-29 14:22:08 -07:00
Alex Eagle 511e832ee2 chore(build): Karma watches broccoli output.
This is a prerequisite for switching to TypeScript. We need to remove the Traceur preprocessor
from Karma, so we have the build specified in a single place (broccoli tree def'n).
2015-04-29 14:15:45 -07:00
Tobias Bosch 09f8d8f7ba refactor(core): introduce `ViewRef` and `ProtoViewRef`
BREAKING CHANGES:
- `NgElement` merged into `ElementRef`
- `Compiler.compile…` returns `ProtoViewRef`
- `ViewContainer` uses `ProtoViewRef`s and `ViewRef`s.
- `ViewRef`/`ProtoViewRef` in renderer were renamed to
  `RenderViewRef`/`RenderProtoViewRef`.

Related to #1477
Closes #1592
2015-04-29 14:03:38 -07:00
Alex Eagle b5032fd374 fix(build): revert typescript upgrade which broke the build.
This reverts commit a7a9463624.
This reverts commit 59824e40e8.
2015-04-29 10:49:54 -07:00
Alex Eagle a7a9463624 fix(build): refer to newest version of hammerjs typings 2015-04-29 10:13:30 -07:00
Alex Eagle 59824e40e8 chore(build): update TypeScript version to unreleased beta
Also fixup the typings which were broken by changes in typescript's lib.d.ts
2015-04-29 10:09:32 -07:00
Marc Laval a51a5c2968 chore(build): run forms tests in Node
Closes #1565
2015-04-29 13:58:07 +02:00
vsavkin e3c11045bf fix(compiler): changed the compiler to set up event listeners and host properties on host view elements
Closes #1584
2015-04-29 05:27:45 +00:00
Pawel Kozlowski d2d4e7d783 refactor(parser): remove unused variables
Closes #1553
2015-04-29 04:08:42 +00:00
Pawel Kozlowski ee1b574baf fix(di): improve error messages for invalid bindings
Fixes #1515

Closes #1573
2015-04-28 23:42:36 +00:00
Pawel Kozlowski c0f3778dda docs(For): fix example to use for-of syntax
Closes #1572
2015-04-28 23:42:24 +00:00
Matteo Suppo d4925b61ff fix(change_detector): ensure that locals are only used when implicit receiver
closes #1542
2015-04-28 23:40:22 +00:00
Josh Kurz 14988d4415 docs(core): updating some errors in 01_templates
Signed-off-by: Josh Kurz <jkurz25@gmail.com>

Closes #1529
2015-04-28 23:39:20 +00:00
Josh Kurz cd953ceb48 docs(core): update core directives document
Signed-off-by: Josh Kurz <jkurz25@gmail.com>
2015-04-28 23:39:20 +00:00
Tim Blasi 726fecbfb6 feat(dart/transform): Turn on transform for examples/todo
- Tag services with `@Injectable()`
- Update `pubspec.yaml` to transform examples/todo.

Closes #1527
2015-04-28 23:38:08 +00:00
vsavkin 818bb9b697 test: changed test bed to run change detection twice to make sure there are no changes second time
Closes #1517
2015-04-28 23:37:09 +00:00
vsavkin e4586249fa refactor(change_detection): removed NO_CHANGED and replaced it with WrappedValue 2015-04-28 23:37:09 +00:00
Matthew Hill 3d62546314 fix(compiler): only sets viewDefinition absUrl if the view has either a template or templateUrl
fixes #1326
closes #1327
2015-04-28 15:40:07 -07:00
Jeremy Elbourn b9eab463f7 chore(): fix host properties for MD components. 2015-04-28 10:48:03 -07:00
Peter Bacon Darwin 7fb2f2069c docs(Injector): remove unwanted tab characters in the examples
These mess up the jade templates that use tabs for structuring the output.
2015-04-28 14:31:35 +01:00
Tobias Bosch a801da6f7c fix(ViewManager): dehydrate views recursively over ViewContainers
Closes #1560
2015-04-27 17:39:20 -07:00
Tobias Bosch 6fcd3709cf fix(render): return views when destroyed in ViewContainer
Closes #1316
2015-04-27 17:39:09 -07:00
Brian Ford 1b2754dacd feat(router): add initial implementation 2015-04-27 17:15:58 -07:00
Brian Ford e617ca6323 feat(facade): add isType method 2015-04-27 17:15:58 -07:00
Tim Blasi 15376a6d24 feat(dart/transform): Dedup getters, setters, & methods
Dedup the getters, setters, and methods generated by the transformer
when compiling a template.

Run `dartformat` over the transform code.
2015-04-27 17:04:31 -07:00
Naomi Black 6ab19dd095 docs(change_detection): document JitChangeDetection and DynamicChangeDetection
closes #1446
2015-04-27 15:34:40 -07:00
Tim Blasi 99fdb9ac41 fix(dart/transform): Use `var` instead of `bool` in generated files
If a source file hides `bool` (explicitly or implicitly via `show`), a
generated file using `bool` may not resolve.

Closes #1455
2015-04-27 14:23:24 -07:00
Yegor Jbanov 427f0d021c perf(benchmarks): benchmark that measure cost of dynamic components 2015-04-27 10:16:53 -07:00
Yegor Jbanov 9fc9d53566 perf(benchmarks): benchmark measuring cost of decorators (fixes #1479) 2015-04-27 10:16:52 -07:00
Tobias Bosch 6dece68bb8 refactor(core): rename ViewContainer to ViewContainerRef
This also renames InternalAppViewContainer into AppViewContainer

Related to #1477
Closes #1554
2015-04-27 10:12:21 -07:00
Ciro Nunes 0676fef61f docs(directives): CSS selectors are used for directives
Closes #1544
2015-04-27 15:32:26 +02:00
Sekib Omazic 1d52cfba13 chore(query_list.js): fix minor typos
Typos fixed

Closes #1549
2015-04-27 15:30:17 +02:00
Tobias Bosch bfa381b35a refactor(view): introduce AppViewManager to consolidate logic
AppViewManager is the single entry point to changing the view hierarchy.
It is split between the manager itself which does coordination and
helper methods, so both are easily testable in isolation.

Also, ViewContainer is now only a pure reference to a bound element
with the previous functionality but does not contain the list of views
any more.

Part of #1477
2015-04-24 20:26:18 -07:00
Tobias Bosch f78406392b fix(test_lib): support multi matches with deep equality for function calls 2015-04-24 17:53:41 -07:00
Alex Eagle 623edcd2d8 Copy a second package to TypeScript. 2015-04-24 15:49:04 -07:00
vsavkin b5e350b18c cleanup(forms): do not export AbstractControl
Closes #1299
2015-04-24 13:57:03 -07:00
Yegor Jbanov 87cf434929 chore(sources): intro modules_dart; move analyzer code there
We have Dart code in `angular2` module that ought to be in its own
package. Examples include Dart analysis plugins, and potentially the
transformers (although transformers cannot be moved out just yet).
However, this code is Dart-only and it doesn’t make sense to use JS
directory layout for it. This commit introduces a sub-directory called
`modules_dart`. All modules in this directory are pure Dart packages
using standard pub directory layout. The code in these packages never
gets transpiled. It is directly copied to `dist` unmodified, except an
adjustment in relative paths in `pubspec.yaml` files.
2015-04-24 13:29:18 -07:00
Pawel Kozlowski 4bab25b366 feat: alllow specifying directives as bindings
Related to #709
Closes #1498
2015-04-24 11:02:17 -07:00
Pawel Kozlowski 6896305e34 fix: export ShadowDom strategies
Fixes #1510
Closes #1511
2015-04-24 08:41:37 +02:00
vsavkin 8ccafb0524 feat(view): reimplemented property setters using change detection 2015-04-23 11:55:27 -07:00
Marc Laval 8a92a1f13e fix(angular2): export QueryList in angular2/core
Closes #1502
2015-04-23 11:04:30 -07:00
Pawel Kozlowski d0059b5d75 refactor(PipeRegistry): improve error messages
Closes #1504
2015-04-23 11:04:30 -07:00
Pawel Kozlowski fa8e059f28 refacor(lexer): remove unused ~/ operator
Closes #1509
2015-04-23 11:04:30 -07:00
Wesley Cho 8e18d6c6cf docs(annotations): fix casing in view annotation
- Fix the casing to match key name exposed for `templateUrl` in `View`
  annotation

Closes #1495
2015-04-23 11:04:30 -07:00
Pawel Kozlowski afe0e45453 feat(parser): support === and !== operators
Closes #1496

Closes #1500
2015-04-23 20:01:31 +02:00
Victor Berchet 2e3e41ba64 fix(ListWrapper): follow JS semantics 2015-04-23 09:46:09 +02:00
vsavkin d74dd1126b cleanup(di): removed dead code 2015-04-22 14:48:53 -07:00
Matthew Hill 6f4b6783c0 docs(02_directives): TemplateConfig -> @View
for #1224

Closes #1325
2015-04-21 16:31:25 -07:00
Sam Rawlins 642e7e5c46 fix(benchpress): only print the CV when it is meaningful
When the mean is 0, the coefficient of variation is calculated to be
NaN, which is not meaningful, so instead of printing "+-NaN%", just
don't print the CV at all.

Closes #908

Closes #1444
2015-04-21 16:31:12 -07:00
Kevin Moore 7551a28f1a chore: show dart2js package warnings for angular2, benchmarks, examples
Closes #1468
2015-04-21 16:22:49 -07:00
Gion Kunz e51a48fe4c Fixed example for EventEmitter
I didn't get a full trace back for my evidence I got from making this example work. EventEmitter was instantiated and assigned to wrong property. Also the mapping should be done using the component property name as it will be obtained via accessor and exposed on the directive (as far as I understood).
2015-04-21 16:22:10 -07:00
Marc Laval 22c6c09daf chore(build): run event tests in Node
Closes #1476
2015-04-21 16:21:39 -07:00
Tobias Bosch e70a2f21dd fix(dom): remove methods is allowed on text nodes as well
Fixes #1473
Closes #1478
2015-04-21 11:56:11 -07:00
Tobias Bosch 97e6fb6835 fix(benchmarks): wait for end of benchmarks 2015-04-21 11:25:07 -07:00
Julie Ralph fa1ec48549 chore(example): fix TODO example on dart
Reflection for Dart was not set up properly for the TODO example,
so it was failing when served on dartium via
gulp serve/examples.dart
2015-04-21 10:17:26 -07:00
Kevin Moore f7f06c5ad4 chore: add more type annotations 2015-04-21 08:49:05 -07:00
Pawel Kozlowski e23004df52 fix(di): capture original exception in InvalidBindingError
Fixes #1406

Closes #1459
2015-04-21 10:59:44 +02:00
Tobias Bosch ada1e642c5 feat(view): add imperative views 2015-04-20 17:18:44 -07:00
Julie Ralph 817c79ca77 refactor(testability): rename function to get testability
Previously, getting testability was `window.angular2.getTestability`
This was because the plan was to export the API to the window as
angular2. However, the decision was changed to make this just `angular`
in 3177576ad6

To decouple testability from the rest of the Angular API, just make it
one function, `window.getAngularTestability`.
2015-04-20 15:13:09 -07:00
vsavkin a97a2266d3 feat(change_detection): added async pipe 2015-04-20 14:50:23 -07:00
vsavkin 2d929e73ec cleanup(change_detection): moved pipes-related tests to the pipes dir 2015-04-20 14:24:15 -07:00
vsavkin 681d06386d feat(view): implemented loading component next to existing location 2015-04-20 13:41:10 -07:00
Tim Blasi 77b31ab42f feat(dart/transform): Add debug transform parameters
Add two transform parameters to aid in debugging the transformer
- `mirror_mode`, with values {`debug`, `none`, and `verbose`}
- `init_reflector`, with values {`true`, `false`}

`mirror_mode`:
- `debug`: Allow reflective access, but log a message if it is used
- `none`: Remove reflective access, `throw` if it is used. Default value
- `verbose`: Allow reflective access, log a stack trace if it is used

`init_reflector`: Whether to generate calls to our generated
`initReflector` code.

These will be useful to reveal areas where the transformer is not generating
appropriate code and to quickly see where reflective accesses occur.

When the pub mode is `transform_dynamic`, we run in MirrorMode.debug
with `init_reflector = false`. This is used for testing purposes.
2015-04-20 12:32:04 -07:00
Tim Blasi 5b4eb0c6d7 style(dart/transform): Format Dart files in reflection
Run the formatter on some Dart-specific reflection files.
2015-04-20 12:32:04 -07:00
Naomi Black 5c25248582 docs(x-ref links): Change links to use dgeni syntax
Closes #1440
2015-04-20 18:45:04 +00:00
Tobias Bosch 64ad74acbe fix(shadowdom): remove unused nodes on redistribute
Previously, light dom nodes that were not used by any content tag
were not removed from a view on redistribute. This lead
to a bug when reusing a view from the view pool, as it
still contained stale reprojected nodes.

Fixes #1416
2015-04-20 11:36:39 -07:00
Tobias Bosch 02997f473a fix(viewFactory): allow empty view cache 2015-04-20 11:36:39 -07:00
Misko Hevery 447018b54b docs: change primordial injector to platform injector 2015-04-20 16:45:23 +00:00
Marc Laval 883e1c1541 feat(events): support preventdefault
Fixes #1039
Closes #1397
2015-04-20 15:20:52 +02:00
Marc Laval aabe83cf63 chore(build): run application tests in Node
Closes #1423
2015-04-20 14:45:18 +02:00
Konstantin Shcheglov a00cb1de50 feat(Compiler): Make Compiler.buildRenderDirective() static. 2015-04-17 21:57:25 -07:00
vsavkin 56f3429cc9 fix(view): chagned view factory to keep AstWithSource 2015-04-17 17:40:43 -07:00
vsavkin 4943c0f887 fix(view): fixed hydrator to pass the right element index when attaching an event listener 2015-04-17 17:27:12 -07:00
Tim Blasi 00e2d70f05 refactor(dart/transform): Remove index_static from hello_world
index_static.js & index_static.html are unnecessary in Js and are now
essentially generated via the Dart transformer. The angular
transformer is specified in examples/pubspec.yaml; use pub build to
create a transformed application that does not use dart:mirrors.

Create index_dynamic.js & index_dynamic.html, which are used to test
that the app runs equally well with mirrors and without.

Closes #495
2015-04-17 16:11:48 -07:00
Yegor Jbanov e52d71060f chore(analysis): fix analyzer warning in index_static 2015-04-17 14:01:42 -07:00
Yegor Jbanov 01869f9fa8 chore(format): format a TS file 2015-04-17 13:56:13 -07:00
Yegor Jbanov 526c51d1a6 fix(facades): fix splice semantics; add test 2015-04-17 13:52:03 -07:00
Yegor Jbanov 2b4d30d931 chore(analysis): analyze everything in lib folders recursively; fix existing warnings 2015-04-17 13:52:02 -07:00
Yegor Jbanov 3dc4df2ffa chore(analysis): analyze web folders; fix existing warnings 2015-04-17 13:52:02 -07:00
Tobias Bosch f830cfca12 refactor(view): provide ViewContainers dynamically on any element 2015-04-17 12:35:59 -07:00
vsavkin eac5c88893 fix(view): fixed hydrator to export the dom element instead of ng element 2015-04-17 12:32:33 -07:00
Victor Berchet abfe175c9e doc(VmTurnZone): inline doc
Closes #1427
2015-04-17 18:19:59 +00:00
Victor Berchet 0fc66daef6 fix(core): typo ComponetRef -> ComponentRef
Closes #1426
2015-04-17 18:19:58 +00:00
Pawel Kozlowski 5a095bb257 refactor(di): rename ProviderError to BindingError
Closes #1428
2015-04-17 20:17:51 +02:00
Naomi Black de31aca7a7 docs(di): Edits to DI.
Closes #1420
2015-04-17 17:49:12 +00:00
Peter Bacon Darwin 97220dd2ba docs(life_cycle): mark `registerWith` as `@private` 2015-04-17 16:25:13 +01:00
Peter Bacon Darwin 66a2f9b23a docs(angular2/annotations): convert `[...]` links to use `{@link ...}` style inline tags
This is an example of how to link to other code components using the `link`
inline tag.
2015-04-17 14:02:03 +01:00
Misko Hevery 87ac100c66 docs: add DI to public docs 2015-04-17 03:56:17 +00:00
vsavkin 5408abca68 refactor(change_detection): removed global change detection objects so it is possible to override pipe registry 2015-04-16 15:57:45 -07:00
vsavkin 233cb0f96a feat(view): changed event emitters to be observables 2015-04-16 14:44:14 -07:00
Julie Ralph 8b28e99373 fix(benchpress): explicitly require navigation to finish before continuing 2015-04-16 14:04:41 -07:00
Tobias Bosch 923d90bce8 refactor(views): clean up creating views in place and extract view_hydrator
Major changes:
- `compiler.compileRoot(el, type)`
  -> `compiler.compileInHost(type) + viewHydrator.hydrateHostViewInPlace(el, view)`
- move all `hydrate`/`dehydrate` methods out of `View` and `ViewContainer` into
  a standalone class `view_hydrator` as private methods and provide new public
  methods dedicated to the individual use cases.

Note: This PR does not change the current functionality, only moves it
into different places.

See design discussion in #1351, in preparation for imperative views.
2015-04-16 11:58:01 -07:00
vsavkin 97fc248e00 cleanup(di): changed an error message to be more descriptive 2015-04-16 11:06:20 -07:00
vsavkin 7bd682bb27 feat(parser): changed parser to parse pipes in the middle of a binding 2015-04-16 10:39:03 -07:00
Tim Blasi e927342e58 Read only a single DirectiveMetadata (will be squashed) 2015-04-16 09:11:03 -07:00
Tim Blasi ae84eb7462 refactor(dart/transform): Correct Dart analyzer warnings 2015-04-16 09:11:03 -07:00
Tim Blasi f89bb8eaf3 Address code review comments 2015-04-16 09:11:03 -07:00
Tim Blasi 0d0b3a35da test(dart/transform): Add unit tests for DirectiveMetadataReader 2015-04-16 09:11:03 -07:00
Tim Blasi cf7bef58b0 feat(dart/transform): Add the DirectiveMetadataReader
Add a class that parses and reads Directive metadata to prepare for
running the Render compiler in the Dart transformer.
2015-04-16 09:11:02 -07:00
Jacob MacDonald c65fd31e86 feat(dart/transform): Detect annotations which extend Injectable or Template.
Create a method that recursively walks imports from an entry point and
determines where classes are registered.

Use this information to determine if a particular annotation implements or
extends Injectable or Template.
2015-04-16 07:17:24 -07:00
Kevin Moore 957384ceeb fix: Fix issues found by Dart analyzer 2015-04-15 20:58:29 -07:00
Marc Laval d3e391d176 chore(build): run render tests in Node
Closes #1358
2015-04-15 19:51:11 -07:00
Bradley Heinz cd1295a823 Update 01_templates.md
Closes #1373
2015-04-15 19:48:34 -07:00
Bradley Heinz 5d302c504e Update 02_directives.md
Closes #1374
2015-04-15 19:48:31 -07:00
vsavkin 68faddbf5c feat(change_detection): updated handling ON_PUSH detectors so they get notified when their bindings change 2015-04-15 16:21:21 -07:00
vsavkin 8c1adabe1c refactor(change_detection): renamed BindingPropagationConfig to ChangeDetectorRef 2015-04-15 12:58:58 -07:00
Tobias Bosch 213dabdceb fix(view): remove dynamic components when the parent view is dehydrated
Also adds a bunch of unit tests for affected parts.

Fixes #1201
2015-04-15 12:53:21 -07:00
Tobias Bosch 6ecaa9aebb feat(change detection): add removeShadowDomChild 2015-04-15 12:53:21 -07:00
Tobias Bosch cb2e646332 fix(tests): create default spys for all methods on a class 2015-04-15 12:53:20 -07:00
Tim Blasi fef1dee7aa fix(dart/transform): Ensure consistent ordering of generated imports
- Linked imports are generated in a consistent order.
- Linked imports are generated immediately after their associated files.
2015-04-15 12:09:51 -07:00
Tobias Bosch c25478380c docs(benchpress): add details about normalized mobile environment. 2015-04-15 10:12:13 -07:00
Misko Hevery e819e97f9a docs: expose more API to public, document QueryList 2015-04-15 05:10:26 +00:00
Jeremy Elbourn f149ae79c6 feat(material): first ng2 material design components 2015-04-14 16:15:35 -07:00
vsavkin f0d0fe0801 refactor(change_detection): cleaned up change_detection.js 2015-04-14 14:34:57 -07:00
Naomi Black d630d5baa5 docs(change_detection): document LifeCycle 2015-04-14 14:16:14 -07:00
Tim Blasi 7cac7c5157 refactor(dart/transform): Correct Dart analyzer warnings
- Fix numerous Dart analyzer warnings we had been ignoring.
- Delete unused `in_progress` dir
2015-04-14 13:41:22 -07:00
Naomi Black 8475c63a6a misc(docs): Edits and additions for Forms and Change Detection 2015-04-14 13:34:29 -07:00
Peter Bacon Darwin 0e3d0fbec6 docs(change_detection): don't annotate exports that are already in public modules
Since `DynamicChangeDetection` and `JitChangeDetection` classes are alreadt in the
public module, they do not need to be annotated with a `@exportAs` tag

Closes #1353
2015-04-14 13:22:41 +01:00
vsavkin 8b97cf1479 cleanup(view): changed ComponentRef to contain ElementRef instead of extending it 2015-04-13 19:30:00 -07:00
vsavkin b5c9f9ed9b cleanup(element_injector): added a missing test 2015-04-13 19:30:00 -07:00
Rado Kirov 3177576ad6 feat(bundle): adds a self-executing dev bundle (SFX). 2015-04-13 18:05:53 -07:00
Yegor Jbanov 3667854a8f refactor(di): move all binding resolution logic into injector.js 2015-04-13 15:06:44 -07:00
Yegor Jbanov c5c1c9e38e feat(docs): more docs on binding resolution 2015-04-13 15:06:44 -07:00
Yegor Jbanov 308823b6ea perf(view): use pre-resolved bindings for child injector init
Creating a child injector from pre-resolved bindings (if any) is an
order of magnitude faster.
2015-04-13 15:06:44 -07:00
Yegor Jbanov c05bad381c perf(benchmark): measure Injector init from resolved bindings 2015-04-13 15:06:44 -07:00
Yegor Jbanov 4a961f4ecb feat(di): provide two ways to create an injector, resolved and unresolved
Add two factory static functions to Injector: resolveAndCreate and
fromResolvedBindings.

We want to avoid resolution and flattening every time we create a new
injector. This commit allows the user to cache resolved bindings and
reuse them.
2015-04-13 15:06:43 -07:00
Yegor Jbanov 6c8398df9b fix(di): refactor bindings to support Dart annotations 2015-04-13 15:06:43 -07:00
keertip 28ba179e31 feat: intiial commit for angular 2 dart analysis
Initial commit for analysis support to Angular 2 Dart
2015-04-13 13:50:29 -07:00
Marc Laval b96e560c8d feat(events): add support for global events
Fixes #1098
Closes #1255
2015-04-13 22:35:36 +02:00
Pawel Kozlowski 7c95cea3a8 chore(bundle): avoid imports in "global" format
If an "empty" file (like angular2/template.js) is imported
it is auto-detected as the one using "global" format by the
system builder. This is incorrect as the entire angular2 build
output is in the ES6 format.

Removing empty import till it has some content.

Closes #1329
2015-04-13 21:24:56 +02:00
Yegor Jbanov 0012caa4d5 perf(benchmarks): measure cost of Injector init with a variety of bindings 2015-04-13 10:02:13 -07:00
Tobias Bosch 8499cf84c3 fix(shadow_dom): redistribute light dom when a dynamic component is attached.
Fixes #1077
Closes #1315
2015-04-13 09:23:52 -07:00
Martin Probst a3decad4c2 feat(build): Use broccoli for ts2dart transpilation. 2015-04-11 16:26:44 -07:00
Alex Eagle 7b790a3369 chore(build): fix check-format 2015-04-11 12:40:05 -07:00
vsavkin 6f8fef4f13 feat(bootstrap): changed bootstrap to return ComponentRef 2015-04-10 18:14:59 -07:00
Naomi Black e295940833 cleanup(docs): Edited API docs 2015-04-10 18:02:10 -07:00
Tobias Bosch 6ce085a21a feat(benchmark): make view cache a parameter to the tree benchmark 2015-04-10 16:57:46 -07:00
Tobias Bosch e34146fc14 fix(view_factory): fix caching of views
Previous implementation had bugs, and did not cache per ProtoView.
2015-04-10 16:57:45 -07:00
Kevin Moore 5ce5a87abe style: add more type info to Dart BrowserAdapter 2015-04-10 23:34:06 +00:00
Jeremy Elbourn afe5465862 add return types for indexOf and lastIndexOf
closes #1277
2015-04-10 23:34:05 +00:00
Victor Berchet 678d541da7 refactor(compiler): add control.ignoreCurrentElement() to skip the current element
relates to #808
2015-04-10 23:34:05 +00:00
Peter Bacon Darwin b5002fb46b docs(test_lib/test_injector): fix invalid jsdoc type
chore(doc-gen): capture docs for modules from comments

Closes #1258

docs(*): add module description jsdoc tags
docs(*): add @public tag to public modules
chore(doc-gen): fix overview-dump template
The template was referencing an invalid property
chore(doc-gen): use `@exportedAs` and `@public` rather than `@publicModule`

This commit refactors how we describe components that are re-exported in another
module. For example the "public" modules like `angular/angular` and `angular/annotations`
are public but they only re-export components from "private" modules.

Previously, you must apply the `@publicModule` tag to a component that was to be
re-exported. Applying this tag caused the destination module to become public.

Now, you specify that a module is public by applying the `@public` tag and then
you can "re-export" components to other modules by applying the `@exportedAs`
giving the name of the module from which the component will be re-exported.
tag. This tag can be used multiple times on a single component, allowing the
component to be exported on multiple modules.

docs(*): rename `@publicModule` to `@exportedAs`

The `@publicModule` dgeni tag has been replaced by the `@exportedAs`
dgeni tag on components that are to be re-exported on another module.

Closes #1290
2015-04-10 22:00:41 +00:00
Tim Blasi 82127571b5 feat(dart/transform): Use the Dart transformer for benchmarks
Remove explicit generation of reflection information in benchmark code
and generate it with the transformer.
2015-04-10 14:01:55 -07:00
Tim Blasi f6e9d1f857 feat(dart/transform): Fix handling of Dart keywords
Use `package:analyzer`'s list of Dart keywords to ensure we are properly
reporting usages of Dart keywords as runtime errors.
2015-04-10 13:43:11 -07:00
Tim Blasi 2cab7c79c3 feat(dart/transform): Allow multiple transformer entry points
- Allow the user to specify multiple entry points to an app.
- Allow the Angular 2 transformer to run without explicit entry points to
generate necessary setters & getters on built-in directives like `For`
and `If`.

Closes #1246
2015-04-10 13:41:26 -07:00
Tim Blasi bba849909c fix(dart/transform): Gracefully handle log calls before init
- Lazily create and use a logger that prints instead of `throw`ing.
- Use this logger in unit tests.
2015-04-10 13:41:26 -07:00
Tim Blasi cac74c73e1 feat(dart/transform): Add stub implementations to Html5LibAdapter
Stub out some methods used in the `CompilerPipeline`.
2015-04-10 13:41:26 -07:00
Tim Blasi f375dbd013 feat(dart/transform): Mark Compiler as Injectable
Necessary to allow runtime access via the `Injector`
2015-04-10 13:41:26 -07:00
Pawel Kozlowski bf7933714a chore(rename): rename View and Template concepts for #1244 2015-04-10 12:00:37 -07:00
Pawel Kozlowski 7e2c04e805 feat: add class directive to a list of directives
Closes #1292
2015-04-10 18:33:51 +02:00
David-Emmanuel Divernois 8fa1539bac feat(keyEvents): support for <div (keyup.enter)="callback()">
This commit adds a plugin for the event manager, to allow a key name to
be appended to the event name (for keyup and keydown events), so that
the callback is only called for that key.

Here are some examples:
 (keydown.shift.enter)
 (keyup.space)
 (keydown.control.shift.a)
 (keyup.f1)

Key names mostly follow the DOM Level 3 event key values:
http://www.w3.org/TR/DOM-Level-3-Events-key/#key-value-tables

There are some limitations to be worked on (cf details
in https://github.com/angular/angular/pull/1136) but for now, this
implementation is reliable for the following keys (by "reliable" I mean
compatible with Chrome and Firefox and not depending on the keyboard
layout):
- alt, control, shift, meta (those keys can be combined with other keys)
- tab, enter, backspace, pause, scrolllock, capslock, numlock
- insert, delete, home, end, pageup, pagedown
- arrowup, arrowdown, arrowleft, arrowright
- latin letters (a-z), function keys (f1-f12)
- numbers on the numeric keypad (but those keys are not correctly simulated
by Chromedriver)

There is a sample to play with in examples/src/key_events/.

close #523
close #1136
2015-04-10 13:29:27 +02:00
vsavkin f45281a10a feat(view): generalized loading of dynamic components 2015-04-09 22:15:42 -07:00
Rado Kirov e9f70293ac feat(query): adds initial implementation of the query api.
Queries allow a directive to inject a live list of directives of a given
type from its LightDom. The injected list is Iterable (in JS and Dart).
It will be Observable when Observables are support in JS, for now it
maintains a simple list of onChange callbacks API.

To support queries, element injectors now maintain a list of
child injectors in the correct DOM order (dynamically updated by
viewports).

For performance reasons we allow only 3 active queries in an injector
subtree. The feature adds no overhead to the application when not
used. Queries walk the injector tree only during dynamic view
addition/removal as triggered by viewport directives.

Syncs changes between viewContainer on the render and logic sides.

Closes #792
2015-04-09 19:07:19 -07:00
vsavkin 61cb99ea42 refactor(change_detection): removed directive and binding mementos 2015-04-09 18:56:19 -07:00
vsavkin 5408a9a72d cleanup(change_detection): removed dead code 2015-04-09 18:56:19 -07:00
Martin Probst 22c1a0d030 fix(benchmarks): Stop working around a Traceur bug. 2015-04-09 18:03:27 -07:00
vsavkin a027912891 cleanup(change_detection): fixed ChangeDetector interface 2015-04-09 17:30:04 -07:00
vsavkin 3bdf669ddf cleanup(change_detection): removed dead code 2015-04-09 17:30:04 -07:00
Alex Eagle b94b04c074 chore(build): Migrate remaining tasks under build.js.dev to broccoli. 2015-04-09 14:09:38 -07:00
vsavkin 69c3bff086 feat(change_detection): updated change detection to update directive directly, without the dispatcher 2015-04-08 22:14:50 -07:00
Tobias Bosch 50098767fc refactor(render): use render layer fully
Introduces angular2/src/core/compiler/ViewFactory which
extracts ProtoView.instantiate and replaces ViewPool.

Note: This is a work in progress commit to unblock other commits.
There will be follow ups to add unit tests, remove TODOs, …
2015-04-08 20:51:31 -07:00
Pawel Kozlowski 41262f4265 feat(Ruler): introduce Ruler service
Closes #1089

Closes #1253
2015-04-08 11:04:42 +02:00
Tobias Bosch ca958464c4 refactor(render): create and store render ProtoViewRef in every app ProtoView
Needed to change Renderer.mergeChildComponentProtoViews to not create
new ProtoViews to be able to deal with cyclic references.

This commit is part of using the new render layer in Angular.
2015-04-07 20:27:25 -07:00
Tim Blasi 42c0171b40 chore(dart/transform): Create targets for serving transformed Dart code
- Allow pub (build|serve) to specify mode
- Update pubbuild.js & pubserve.js to allow the caller to provide a `mode` value.
- Update settings to allow the di benchmark to be transformed to run statically.
2015-04-07 10:57:01 -07:00
John Arstingstall b7eea4f577 docs(directives): add # to for directive microsyntax example 2015-04-07 08:44:32 +02:00
vsavkin 9c62b5867e benchmark(change_detection): added a new set of benchmarks measuring updating properties 2015-04-06 18:13:20 -07:00
Harry Terkelsen 2560af731a refactor(dart): use Map instead of HashMap
Closes #1202
2015-04-06 17:16:54 +00:00
Victor Berchet 86211eb5f0 doc(directives): add inline documentation
Closes #1240
2015-04-06 17:11:23 +00:00
Pawel Kozlowski a3387b7f48 fix(di): allow injecting static attrs without type annotations
Closes #1226
2015-04-06 12:33:37 +02:00
Victor Berchet 94a48e8640 test(VmTurnZone): provide a stub VmTurnZone for CJS tests 2015-04-06 10:30:17 +02:00
Victor Berchet d8aeb40b49 reafactor(XHR): rename XHRMock to MockXHR for consistency 2015-04-06 10:30:16 +02:00
Victor Berchet 52c55d0ee8 test: convert to using TestBed 2015-04-06 10:30:16 +02:00
Victor Berchet 438c2b31e4 test(TestBed): initial implementation 2015-04-06 10:30:16 +02:00
Victor Berchet 57e308dd46 test(MockTemplateResolver): allow directive overriding 2015-04-06 10:07:50 +02:00
Gerd Jungbluth c922b5a112 docs(annotations): fix some typos, align docs with code
Closes #1227
2015-04-04 12:23:01 +02:00
PatrickJS d552303cd5 docs(02_directives.md): foreach -> for
Closes #1235
2015-04-04 10:32:53 +02:00
Tobias Bosch 1d4d18d9db refactor(render): user render compiler 2015-04-03 23:41:00 -07:00
Patrick 069bbf3ed0 docs(02_directives.md): Fixes variable name for visibility in Components example 2015-04-03 14:18:15 -07:00
Kevin Moore d77f409093 chore: analyzer fixes for Dart transformer 2015-04-03 14:18:14 -07:00
Andrew 25c709c58e fix(angular2): export PrivateComponent{Loader,Location} in angular2/core 2015-04-03 14:18:14 -07:00
Tim Blasi bc909d1d0f refactor(dart/transform): Minor renames
Rename `setupReflection` => `initReflector`
Rename `TemplateComplier` => `TemplateCompiler`

Closes #1180
2015-04-03 13:16:24 -07:00
Tim Blasi a6736ff9f2 perf(change detection): Assign this.locals in change detector ctor
Set `this.locals = null;` in the ctor of generated change detector
classes to prevent the class "shape" from changing on `hydrate`.
2015-04-03 12:23:47 -07:00
Alex Eagle 894a0f0ee5 chore(ts): duplicate the .es6 files in the facade directory to TypeScript.
Adds a gulp task which builds the .ts files (in the cjs build only).
The new files have extension .ts since they are now valid typescript.
Unfortunately until Typescript can emit System.require, we have to keep the old .es6 version
so traceur works inside the Karma preprocessor. This should be fixed soon.
2015-04-03 09:35:06 -07:00
vsavkin abea92af59 refactor(change_detection): call onChange from the change detector 2015-04-02 21:22:42 -07:00
Misko Hevery 86dc3e5b07 docs: create public API surface
Closes #1181
2015-04-02 23:23:39 +00:00
Tobias Bosch c1aa65239e refactor(render): move services to render folder
property_setter_factory
selector
style_inliner
style_url_resolver
shadow_css
2015-04-02 14:40:49 -07:00
Tobias Bosch be5ccf6957 refactor(render): delete copies files so we add them via moves 2015-04-02 14:24:55 -07:00
Marc Laval 90d9a1df3f fix(IE11): first fixes
Closes #1179
2015-04-02 22:06:21 +02:00
Victor Berchet 1037cef22e refactor(render): misc minor fixes 2015-04-02 20:50:05 +02:00
Tim Blasi 09948f4403 feat(dart/transform): Add a `di` transformer
Add a transformer for `di` which generates `.ng_deps.dart` files for all
`.dart` files it is run on. These `.ng_deps.dart` files register
metadata for any `@Injectable` classes.

Fix unit tests for changes introduced by the di transformer.

When using `pub (build|serve) --mode=ngstatic`, we will also generate
getters and setters, parse templates, and remove import of `dart:mirrors`
in the Angular transform. Because this is still relatively immature, we
use the mode to keep it opt-in for now.

Closes #700
2015-04-02 11:06:33 -07:00
Tim Blasi 788461b7e2 feat(di): Mark objects @Injectable
Allow `PrivateComponentLoader`, `Testability`, and `TestabilityRegistry` to be injected.
2015-04-02 11:02:26 -07:00
Tobias Bosch 4f56628566 refactor(render): move services to right location
core/compiler/events -> render/dom/events
core/compiler/url_resolver -> services/url_resolver
core/compiler/xhr/* -> services/*
2015-04-02 10:35:27 -07:00
Tobias Bosch bcbf1ccc68 refactor(render): remove duplicate files to prepare for move
Remove first so Github shows the files as being moved instead of copied and deleted.
2015-04-02 10:35:27 -07:00
Pawel Kozlowski ae30d7ba40 fix(di): allow injecting event emitter fns without specifying type annotation
Fixes #965

Closes #1155
2015-04-02 19:07:49 +02:00
Marc Laval 1d79d534d9 test(selector): add tests with multiple attributes
Fixes #1025
Closes #1117
2015-04-02 18:06:44 +02:00
Tobias Bosch 47542b0cb0 fix(build): don’t read out chrome perflogs during e2e tests
We do this as we are seeing flakes in Chrome with ECONNREFUSED.

Also reuses the same browser window.

Also reenables the infinite scroll benchmark

Closes #1137
2015-04-01 17:09:26 -07:00
Tobias Bosch 6c60c3e547 feat(render): add initial implementation of render layer 2015-04-01 16:50:22 -07:00
Julie Ralph e81e5fb2b9 feat(testability): add an initial scaffold for the testability api
Make each application component register itself onto the testability
API and exports the API onto the window object.
2015-04-01 13:54:06 -07:00
Alex Eagle f68cdf3878 chore(ts): introduce some TypeScript type declarations.
This uses tsd to fetch the typings from another git repo. I've forked the DefinitelyTyped repo because some typings we use are not available upstream.
We should probably fork it in the Angular org, so everyone on the team has commit access to our DefinitelyTyped fork.
2015-04-01 12:01:45 -07:00
vsavkin 514ba54282 feat(change_detection): added changeDetection to Component 2015-03-31 20:54:44 -07:00
Alex Eagle a11f683e7b chore(ts): Don't mask the Regexp builtin.
Doing so makes it impossible to compile with TypeScript, since it conflicts with the shape of the Regexp global var defined in the standard lib.
2015-03-31 19:20:21 -07:00
vsavkin b65b145122 refactor(view): refactored DirectiveMemento to expose properties in a consistent way 2015-03-31 18:26:58 -07:00
vsavkin 982bb8b01d fix(forms): fixed a directive selector 2015-03-31 17:45:38 -07:00
Martin Probst eb7b7581ca fix(build): Actually code in the subset of JS that Traceur-Dart supports. 2015-03-31 16:08:49 -07:00
Martin Probst 54a4e4a67c fix(dart): The Traceur dart transpiler doesn't support shorthand syntax. 2015-03-31 13:17:56 -07:00
Pawel Kozlowski aca4604879 feat(CSSClass): support binding to classList
Closes #876
2015-03-31 21:53:24 +02:00
Victor Berchet 48811cd805 doc(lifecycle): minor fixes 2015-03-31 21:12:37 +02:00
Martin Probst 136f64f4ac fix(dart): don't instantiate abstract directive.
Directive is an abstract class, so it should not
be instantiated directly in tests.
2015-03-31 11:38:59 -07:00
Jeff Cross 123ee8e06f feat(dom): add replaceChild to DOM adapter 2015-03-31 09:54:41 -07:00
Jeff Cross a55efbd8b8 feat(perf): add Angular2 implementation of largetable benchmark from AngularJS 1.x 2015-03-31 09:54:41 -07:00
Jeff Cross 7bf9525353 fix(benchmark_util): remove strict equality check from getStringParameter
Transpiled dart code was using identical() method to compare, which checks reference
equality, even for strings.
2015-03-31 09:54:41 -07:00
Naomi Black 3915e1b242 docs(annotations): Added new text 2015-03-30 17:19:58 -07:00
Tim Blasi ed5975d3e5 test(dart/transform): Add unit tests for url-linked templates
Test expression and method generation from url-linked templates.
2015-03-30 14:49:31 -07:00
Tim Blasi 1a788e6b0d feat(dart/transform): Parse `url` values in `Template`s
When a `Template` annotation declares a `url` value, parse it to
generate `getter`s, `setter`s, and `method`s which will it needs to
access reflectively.
2015-03-30 14:49:31 -07:00
Marc Laval d822793229 fix(test): add a test for @PropertySetter on a class with a dash
Closes #1113
Fixes #1099
2015-03-28 16:17:43 +01:00
Sekib Omazic b46d0bc48c docs(annotations): fix typo, align docs with code
Closes #1045
2015-03-28 15:39:50 +01:00
laiso 65320126c2 docs(directives): fix HTML in an example
Closes #1115
2015-03-28 15:37:11 +01:00
Tobias Bosch 8c5d9d372f fix(build): publish docs as well and correct bench press docs 2015-03-27 16:47:52 -07:00
Tobias Bosch 8598c87ef4 docs(bench press): add initial docs 2015-03-27 16:16:35 -07:00
Tobias Bosch 33bfc4c24a feat(bench press): replace microIterations with microMetrics 2015-03-27 16:16:35 -07:00
Julie Ralph 3afb744e77 chore(ci): reorganize e2e/perf test running
Now, running protractor configs by default only runs e2e tests. If
the --benchmark flag is added, it runs only the perf tests, and always
restarts the browser in between tests. If the --dryrun test is added,
the perf tests are run only once.

This should make it easier to run perf tests versus example e2e tests,
and help stabilize the travis build because perf tests always
run with a clean browser.
2015-03-27 13:29:21 -07:00
vsavkin e92918bbfe feat(change_detector): split light dom and shadow dom children 2015-03-27 13:26:37 -07:00
vsavkin 723e8fde93 feat(change_detection): added a directive lifecycle hook that is called after children are checked 2015-03-27 13:26:36 -07:00
vsavkin 6b985d56a5 cleanup(forms): added missing type annotations
Closes #1054
2015-03-27 11:30:39 -07:00
Victor Berchet c8385ad998 refactor(cd): remove dead code 2015-03-27 16:59:23 +01:00
Caitlin Potter 9d21a6f40d chore(package.json): upgrade traceur to v0.0.87
Fix in source-map test to follow through the sourcemap chain.
2015-03-26 18:37:03 -07:00
vsavkin d304f41197 docs(core): improved docs on directive lifecycle 2015-03-26 18:18:25 -07:00
vsavkin 8d85b839b6 feat(change_detection): pass binding propagation config to pipe registry 2015-03-26 16:57:04 -07:00
Pawel Kozlowski 5306b6dd0c fix(change_detection): expose values when detecting changes in key-value pairs
Fixes #1118

Closes #1123
2015-03-26 21:18:14 +01:00
vsavkin b09624024b example(forms): added a example of using forms 2015-03-26 11:36:14 -07:00
Pawel Kozlowski edc3709451 fix(ElementBinderBuilder): properly bind CSS classes with "-" in their names
Fixes #1057

Closes #1059
2015-03-26 19:25:31 +01:00
Rob Wormald e706f3477b Remove invalid super() call
Unless I'm missing something?
2015-03-26 11:10:39 -07:00
Victor Berchet 878fce6482 fix(ts): ts doesn't like ";;" 2015-03-26 17:32:48 +01:00
vsavkin b02bd65871 feat(forms): made forms works with single controls 2015-03-26 07:48:17 -07:00
vsavkin ee36aaf163 fix(tests): fixed a broken test 2015-03-26 07:46:26 -07:00
vsavkin ff84506bd5 feat(forms): added support for arrays of controls 2015-03-26 07:43:25 -07:00
Marc Laval 0ae33b7e3c refactor(compiler): factorize common util code dash <-> camel
Closes #1114
Fixes #1097
2015-03-26 15:22:35 +01:00
Marc Laval b1dc6239ef feat(core): @Attribute annotation
Closes #1091
Fixes #622
2015-03-26 10:51:44 +01:00
Victor Berchet 3ec837bfdb test(di): Add a test for sync binding + resolved async dependency 2015-03-26 08:38:29 +01:00
Alex Eagle 9a0a2e319c chore(ts2dart) remove extra semi
This breaks our ts2dart transpilation.
2015-03-25 17:06:47 -07:00
Martin Probst a0d86ac2bb chore(ts2dart): ts2dart doesn't support mixed typed/untyped var decl lists. 2015-03-25 16:41:33 -07:00
Yegor Jbanov 99045b2f6a refactor: update Dart package dependencies 2015-03-25 15:54:12 -07:00
Marc Laval 58dd75a1c8 feat(compiler): Add support for setting attributes to Component host element
Fixes #1008
Fixes #1009
Closes #1052
2015-03-25 17:32:07 +01:00
Misko Hevery f995b07876 docs: annotations edits 2015-03-24 23:28:24 +00:00
Victor Berchet 101a4aa3cf feat(PrivateComponentLoader): Explicit error message when loading a non-component
fixes #1062
2015-03-24 22:11:41 +01:00
Victor Berchet 65d759316b fix(PrivateComponentLoader): add the loader to the app injector
fixes #1063
2015-03-24 22:10:26 +01:00
vsavkin 19c1773133 feat(forms): added an observable of value changes to Control 2015-03-24 13:45:47 -07:00
vsavkin 9b3b3d325f feat(facade): added support for observables 2015-03-24 13:45:39 -07:00
vsavkin f8e7a37c0d fix(view): fixed view instantiation to use the component template's change detector when creating BindingPropagationConfig 2015-03-24 07:49:28 -07:00
Victor Berchet aab084866c doc(test): add a comment on why tests are disabled 2015-03-24 09:52:41 +01:00
Nick Van Dyck 0e61a86763 docs: annotations 2015-03-24 00:42:58 +00:00
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 014a28fef0 fix(examples): Fix type registration in hello_world
Fixing `registerType` call for `Content` in index_static.js.

Closes #991
2015-03-17 22:13:07 -07:00
Tim Blasi 153cee1244 feat(di): Modify hello_world to use @Injectable
Mark `GreetingService` as available to `Injector`s.

Closes #986
2015-03-17 22:12:47 -07: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
Jacob MacDonald a963ae48e5 feat(benchmarks): add polymer js 0.8-preview benchmark
Limitations because of preview status (see #960):

- does not yet use ShadowDOM
- does not use a builtin conditional like `if`
- uses a temporary bower repository

Closes #943
2015-03-13 20:48:03 -07:00
Tobias Bosch 21a293b017 refactor(bench press): rename metrics and adapt them to the features of the browser
* Rename metrics, add `Time` suffix to all so that they are
  more consistent
* iOS does not give us `gc` metrics, so they should not be reported
* Rename `scriptMicroAvg` into `microScriptTimeAvg`
* Rename previous `script` metric into `pureScriptTime` metric,
  and keep `scriptTime` metric as the overall time, so that we still
  have a shared metric across devices independent of the supported
  browser features
* `microScriptTimeAvg` is now based on overall `scriptTime`, including
  gc and render time.
* Move more shared DI tokens into `common_options` (previously
  `sample_options`).

Closes #930
2015-03-13 20:46:37 -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
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
David East afda43dc02 feat(examples): Add TodoMVC sample application. 2015-03-13 19:28:59 +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
Tobias Bosch e1a1dd07e4 fix(test): add `v8` category to server spec 2015-03-11 16:35:23 -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
Tobias Bosch 146d731e73 feat(bench press): detect major gcs 2015-03-04 17:34:29 -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 8adac5332a fix(benchmarks): prepare publish to pub 2015-03-02 16:34:32 -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
Victor Berchet 23786aaa92 feat(DomAdapter): add types
Closes #842
2015-03-02 14:38:02 -08:00
Caitlin Potter 749a75812c fix(browser_adapter): work around WebKit bug with importing template elements
Closes #851

Closes #853
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
Tobias Bosch 821d01ab34 refactor(benchpress): export webdriver adapters in benchpress/benchpress
Also adds default bindings for protractor.
Also removes sync web driver adapter for Dart as we don’t have tests
for it yet.
2015-03-02 11:31:06 -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 cbe7b8c671 chore(refactor): easier to make sense of attr-to-prop map (even if a bit reduntant) 2015-02-27 22:11:08 -08:00
Yegor Jbanov 757eae8ad3 feat(compiler): DOM adapters + html5lib implementation; misc fixes 2015-02-27 16:49:14 -08:00
Alex Eagle ab42664e76 Don't use the for..of syntax in AtScript. 2015-02-27 15:26:53 -08:00
Tim Blasi ccb306cce7 docs(di): Fix typos, add some clarification.
Or maybe expose my lack of understanding, we'll see!
2015-02-27 14:54:16 -08:00
Tobias Bosch 3b40052dc7 feat(build): enforce mobile layout during e2e tests
This is important as we run our benchmarks on
mobile devices as web driver tests fails if buttons
are not visible / overlaid by other content.
2015-02-27 11:11:32 -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
Tobias Bosch 5cbb174a6d fix(bench press): Don’t use unicode in console reporter to prevent problems 2015-02-26 13:15:17 -08: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
Victor Berchet 009e11a6be fix: Static DI init 2015-02-26 19:31:44 +01:00
Pawel Kozlowski 8d2720775c chore: re-add dependency on zone.js
Closes #811
2015-02-26 19:20:02 +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
Tobias Bosch 65ebff056a refactor(benchpress): make tests for error cases also work in Dart
Also introduces `PromiseWrapper.catchError`.
Could not use `PromiseWrapper.catch` as a name as Dart would not allow
this method name.
2015-02-26 09:24:40 -08:00
Victor Berchet dd1898c132 fix(compiler): add a missing ; 2015-02-26 15:24:21 +01: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 26872f60e6 feat(ComponentUrlMapper): retrieve the base URL for components 2015-02-26 09:04:00 +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 e8bec99aa6 feat(test_lib): support not.toBePromise() for Dart 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
Alex Eagle 56906db4d5 fix es6 compilation for Element.remove.
Use DOM facade to delete an Element since the remove method is only in Dart.
2015-02-25 15:56:08 -08:00
Alex Eagle 642e9a36b7 fix es6 compilation for Map.remove.
In dart, Map has a remove method,but in ES6 it is delete.
2015-02-25 15:44:29 -08:00
vsavkin 6b2650996c fix(parser): parse pipes in template bindings 2015-02-25 14:39:44 -08:00
Pawel Kozlowski 85abfa943d feat: add keyValDiff to default pipes 2015-02-25 13:24:59 -08:00
Pawel Kozlowski 4a5d53c549 feat: allow using KeyValueChanges as a pipe 2015-02-25 13:24:59 -08:00
Bertrand Laporte 33b503720a fix rebase glitch in PR #570
Closes #787
2015-02-25 10:04:48 -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
Victor Berchet 1376e49ea0 fix(Injector): fix dependencies in static injectors
Closes #784
2015-02-25 09:52:56 -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
Tobias Bosch 715ee14ced release: release 2.0.0-alpha.11 which includes benchpress 2015-02-24 17:01:48 -08:00
Tobias Bosch b0c6db1efb fix(benchpress): support `tdur` in events 2015-02-24 16:53:44 -08:00
Tobias Bosch cde8ffd6d9 feat(publish): update files to publish to npm 2015-02-24 16:53:44 -08:00
Yegor Jbanov cfe71def7e chore(packaging): 0.0.0-alpha.9; pubspec cleanup 2015-02-24 11:42:05 -08:00
Victor Berchet e05079f4a8 feat(rtts_assert): avoid deep recursion in prettyPrint 2015-02-24 19:40:27 +01:00
Pawel Kozlowski 908a0aa7dc test: introduce TemplateResolver mock
Closes #768
2015-02-24 10:34:52 -08:00
Sekib Omazic 4d35dd4d45 docs(02_directives.md): Change the description of bind property
Also add attribute open to the html

Closes #767
2015-02-24 10:34:26 -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
Kevin Moore fad25c2b10 chore: Adding return types to Dart facades
Closes #758
2015-02-23 14:26:55 -08:00
Yegor Jbanov d1f03e509b fix(benchpress): benchpress fixes and a smoke test for Dart 2015-02-23 10:50:51 -08:00
Tobias Bosch f54f4e89e0 fix(facade): `ListWrapper.sort()` should not return the list
This is the semantics of the regular `Array.sort` in JS,
so the wrapper should imitate this.
2015-02-23 10:36:16 -08:00
Pawel Kozlowski d8103aeca6 docs(di): fix code examples
Closes #750
2015-02-21 22:14:26 +00: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
Tobias Bosch 1d4ffd986d feat(bench press): allow multiple reporters, metrics and driver extensions. 2015-02-20 17:49:47 -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
Tobias Bosch 7aa031b3d3 feat(bench press): use chrome tracing protocol and initial iOS support 2015-02-20 13:20:17 -08:00
Victor Berchet 8a3d9050d9 feat(TreeBenchmark): use angular2 If directive 2015-02-20 20:53:44 +01: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
Rado Kirov b1fc3e87c6 fix(view): move nodes into the live document when cloning.
Closes #724
2015-02-20 09:46:10 -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
Marc Laval 85211f0a6b fix(core): workaround for circular dependencies in nodejs
Closes #716
2015-02-19 13:42:27 -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 89b3995756 refactor(core): remove direct accesses to DOM
Closes #713
2015-02-19 13:42:07 -08:00
Marc Laval 3496c8ac54 refactor(change_detection): remove circular dependencies
Closes #712
2015-02-19 13:42:00 -08:00
Rado Kirov a768f2e124 fix(docgen): hide additional exports that throw off docgen.
Closes #707
2015-02-18 21:15:01 -08:00
Tim Blasi 4d56a1e1af chore: Fixing review comments on Dart transformers
See https://codereview.chromium.org/927373004/

Closes #705
2015-02-18 21:08:42 -08:00
Kevin Moore fb5b168b19 chore: Remove unused imports and enable checks for unused imports as part of build 2015-02-18 21:06:30 -08:00
Jeremy Elbourn 821f008462 chore(compiler): add integration tests for @Parent and @Ancestor 2015-02-18 17:20:47 -08:00
Jeremy Elbourn 785ec26322 feat(compiler): make directive bindings optional. Fixes #647 2015-02-18 13:56:14 -08:00
Tobias Bosch 74c0699ad9 fix(build): finally publish to `rtts_assert` on npm 2015-02-18 12:52:27 -08:00
Julie Ralph 5af0ac258b tests(e2e): upgrade Protractor to 1.7.0 and remove special cases for shadow dom
With Protractor 1.7.0, which installs chromedriver 2.14, shadow DOM is supported.
2015-02-18 10:54:48 -08:00
Tobias Bosch cd90038950 fix(types): Add StringMap type 2015-02-18 09:53:27 -08:00
Pawel Kozlowski 56f4e84d45 fix: flip attr / property bind in directives annotations
Fixes #648

Closes #684
2015-02-18 17:07:53 +01:00
Pawel Kozlowski 709c3ca6b5 refactor: use the ExceptionHandler service
Fixes #533
Closes #672
2015-02-18 13:48:28 +01:00
Pawel Kozlowski a1f4060126 feat: introduce ExceptionHandler service 2015-02-18 12:11:16 +01:00
Victor Berchet 53d5f36557 feat(application): move classes to the application level injector
fixes #649
2015-02-18 10:10:07 +01:00
vsavkin 695b4ebbc7 feat(change_detection): add support for pipes 2015-02-17 17:12:58 -08:00
Kevin Moore fa25965939 chore: Remove unused imports
Closes #624
2015-02-17 16:49:08 -08:00
Tim Blasi 6e90cacaf4 feat(dart/transformer:: Initial commit of ctor stubs & annotation register
Closes #646

Closes #496

Closes #498
2015-02-17 16:34:19 -08:00
Tobias Bosch 5e798c632b refactor(bench press): wrap measure values into an object with time and iteration number.
Closes #689
2015-02-17 16:02:46 -08:00
Tobias Bosch e163eb2a51 fix(test_lib): support deep compare of objects with private/static fields 2015-02-17 16:02:46 -08:00
Tobias Bosch 674848648a feat(facade): add support for `Date`
Also refactors the dart transpilar to expose
the type mappings for future changes.
2015-02-17 16:02:46 -08:00
Peter Bacon Darwin 538b0879dc docs(core/01_templates): add <pre> tags to improve layout
Closes #687
2015-02-17 15:54:33 -08:00
PatrickJS 40d0505782 refactor(ProtoView): use const for DOM.addClass
`DOM.addClass(insertionElement, 'ng-binding');` -> `DOM.addClass(insertionElement, NG_BINDING_CLASS);`

Closes #676
2015-02-17 15:51:33 -08:00
Misko Hevery cf51057cdd fix: constrain stack_trace version, which breaks build 2015-02-17 15:07:18 -08:00
Pascal Precht 2dcddcfb4a docs(templates/directives): fixes several typos
Closes #674
2015-02-17 13:43:44 -08:00
Richard Harrington a002ed1183 docs(core/templates): fix various typo and grammatical errors
Closes #666
2015-02-17 13:35:34 -08:00
Richard Harrington 81bc706ef1 docs(core/formatters): fix typos and grammar
Closes #665
2015-02-17 12:03:55 -08:00
Gerd Jungbluth 4d1254d6df docs(core): fix some typos 2015-02-17 11:55:22 -08:00
Yegor Jbanov 08850a579b chore(packaging): rename NPM package to angular2; remove ng2 tag prefix 2015-02-17 11:46:05 -08:00
Peter Bacon Darwin 83f650fca7 docs(change_detection): add explicit @name and @description
This demonstrates how to override the name of a guide doc
2015-02-17 08:08:47 +00:00
gdi2290 85d4d13c77 docs(02_directives): TemplateConfig -> @Template
Update docs with new template api and remove previous cssUrl api
2015-02-17 08:54:20 +01:00
Tobias Bosch f6284f2a55 feat(benchpress): rewritten implementation
Limitations:
- cloud reporter is not yet supported any more
2015-02-16 11:43:27 -08:00
Peter Bacon Darwin a0e284ed0e docs(core/formatters): add some dummy code to stop marked plugin from bombing 2015-02-15 15:46:04 +00:00
Pawel Kozlowski 92afad6ebc feat: support bindings for the 'role' attribute
Closes #630
2015-02-14 21:24:40 +01:00
Pawel Kozlowski 1846ce8c68 feat: support binding to aria-* attributes
Closes #643
2015-02-14 20:28:08 +01:00
Yegor Jbanov 6d45153b67 fix(benchmarks): fix scrolling benchmark; add more tests 2015-02-13 17:35:19 -08:00
Victor Berchet e6c8bde808 feat(Compiler): Multiple template per component
fixes #596

- TemplateConfig becomes Template
- introduce a TemplateResolver to pick the cmp template,
- @Component and @Template are disociated
2015-02-13 18:07:08 +01:00
Matias Niemelä 52b062621d Update 01_templates.md 2015-02-13 12:04:03 -05:00
Victor Berchet 6d23d00057 refactor(ViewPort): @Template -> @Viewport, ViewPort -> ViewContainer
fixes #595
2015-02-13 17:48:27 +01:00
Kevin Moore 3519714f64 add types 2015-02-13 16:38:03 +01:00
Marc Laval 0499eeb231 refactor(facade): remove dependency to rtts_assert
Closes #593
2015-02-13 12:57:10 +01:00
Marc Laval 6d8ccaa8e4 feat(TemplateConfig): support array of arrays in TemplateConfig directives
Fixes #592
Closes #600
2015-02-12 11:56:45 +01:00
Victor Berchet 8844671c8d feat(EventManager): implement the EventManager 2015-02-12 10:46:11 +01:00
vsavkin 91fd5a69bf test(change_detection): add an integration test verifying that binding propagation config works 2015-02-11 17:54:07 -08:00
Yegor Jbanov 234e1eccca chore(sourcemaps): add e2e test 2015-02-11 15:07:13 -08:00
Tobias Bosch 013e1faf27 fix(build): support transpile to commonjs 2015-02-11 13:09:52 -08:00
Victor Berchet fc1b791a7a fix(view): ViewPort light should come from the direct parent 2015-02-11 09:16:53 +01:00
Victor Berchet b953956a35 refactor(view_spec): Drop SomeComponentWithEmulatedShadowDom 2015-02-11 09:16:53 +01:00
Tobias Bosch bbd212c256 fix(build): use `rtts-assert` instead of `ng-rtts-assert`.
We have the rights now :-)
2015-02-10 17:02:33 -08:00
Tobias Bosch 729e38af19 feat(build): add npm publish script
Also fixes gulpfile:
- `runSequence` needs to be called with `done` callback
- `es5build` should only run when the task executes…
2015-02-10 16:28:28 -08:00
Rado Kirov 6e923cbf84 fix(compiler): elements with events only create binders but not protoElementInjectors.
Closes #577
2015-02-10 15:29:34 -08:00
Tobias Bosch dd532fee72 feat(build): add package.json and README.md for publishing to npm 2015-02-10 11:52:42 -08:00
vsavkin 4b24734855 feat(forms): add support for checkbox 2015-02-10 08:44:25 -08:00
Victor Berchet 74f92c6a79 perf(Compiler): use Promises only when strictly required 2015-02-10 09:13:21 +01:00
Victor Berchet 47042bc503 feature(ShadowDomTransformer): create a compiler step to transform the shadow DOM 2015-02-10 08:54:37 +01:00
Rado Kirov 7bf5ab8f43 feat(view_pool): adds a view pool of dehydrated views per protoview. 2015-02-09 22:17:38 -08:00
Kara 617206bd1c docs: Update variables to match example
It looks like the {{item}} variable in the examples should be {{person}}, as that is what has been exported (#person, etc).

It seems like the docs aren't finalized, but the discrepancy might confuse people coming in to learn from them in the meantime.

Closes #589
2015-02-09 19:54:07 -08:00
Jorge Cruz 4ceb865632 docs(01_templates.md): typos
Fix spelling errors in 01_templates.md

Closes #585
2015-02-09 19:53:40 -08:00
Tobias Bosch 6f59f2f5a3 fix(transpile): fix usage of `int` and references to `assert` module 2015-02-06 22:06:55 -08:00
Tobias Bosch f39c6dc2c7 fix(setup): use upstream traceur with explicit patches
Also correct the transpile to ES6

Also support generics correctly

All patches are hooked in via `/tools/transpiler/index.js`
https://github.com/google/traceur-compiler/issues/1700
https://github.com/google/traceur-compiler/issues/1699
https://github.com/google/traceur-compiler/issues/1708
https://github.com/google/traceur-compiler/issues/1625
https://github.com/google/traceur-compiler/issues/1706
2015-02-06 17:04:08 -08:00
Marc Laval cf169f13a0 fix(compiler): add missing support to string literals
Fixes #531
Closes #559
2015-02-07 00:20:54 +01:00
Jeremy Elbourn 6dbfe0dc2e feat(vars): assignment of component or element instance to vars. 2015-02-06 15:13:31 -08:00
vsavkin ab733bd80e refactor(change_detection): rename group memento into directive memento 2015-02-06 13:55:49 -08:00
vsavkin 1ec796a601 cleanup(change_detection): rename field name 2015-02-06 13:54:55 -08:00
vsavkin 9240b09011 refactor(directives): directives use declare that they listen to onChange in the annotations 2015-02-06 13:53:49 -08:00
Pawel Kozlowski ee3f709fbf feat: support binding to style.stylename.suffix
Closes #553
2015-02-06 12:30:03 -08:00
Yegor Jbanov dbdadbafe9 chore(pub): update authors 2015-02-06 11:46:49 -08:00
Yegor Jbanov d5b2c130ca chore(pub): add primary authors, description and homepage to pubspec 2015-02-06 11:40:16 -08:00
vsavkin e9a254ae86 refactor(forms): rename decorators into directives 2015-02-06 11:03:41 -08:00
vsavkin 640134dee1 feat(forms): initial implementation of forms declared in html 2015-02-06 11:03:41 -08:00
vsavkin fa7cbf9bb1 test(di): add a test to di checking that child bindings are not used when resolving the dependencies of a parent binding 2015-02-06 09:39:22 -08:00
Marc Laval 6bfa48bc64 refactor(directives): Drop ng- prefix from all angular directives and rename NgRepeat to Foreach
fixes #532

Closes #539
2015-02-06 09:24:50 -08:00
Bertrand Laporte 63f23ec0b6 fix(life_cycle): remove cyclic dependency
fixes #477

Closes #530
2015-02-06 09:23:59 -08:00
Yegor Jbanov 5010cf9757 chore(view): remove obsolete HACK comment 2015-02-05 21:19:53 -08:00
Rado Kirov 7dba3a3e32 fix(benchmarks): fix infinite scroll benchmark. 2015-02-05 20:47:30 -08:00
Victor Berchet 746f85a621 feat(compiler, ShadowDom): adds TemplateLoader using XHR.
Also adds css shimming for emulated shadow dom and makes the shadowDom
strategy global to the application.
2015-02-05 19:47:29 -08:00
Yegor Jbanov fcbdf02767 feat(perf): port table scrolling benchmark to Angular 2 2015-02-05 18:33:57 -08:00
Yegor Jbanov d144e9a345 chore(packaging): fix warnings in forms 2015-02-05 15:47:13 -08:00
Yegor Jbanov 50b553964d chore(packaging): update imports in forms 2015-02-05 15:47:13 -08:00
Yegor Jbanov 8250a8c1ca chore(packaging): update benchmark imports 2015-02-05 15:47:13 -08:00
Yegor Jbanov c99a575b1f chore(merge): forms, compiler 2015-02-05 15:47:12 -08:00
Yegor Jbanov 3f228669d7 chore(packaging): update import for the new file structure 2015-02-05 15:47:12 -08:00
Yegor Jbanov 3820609f24 chore(packaging): move files to match target file structure 2015-02-05 15:46:13 -08:00
Pawel Kozlowski 7ce4f66cdc feat: support binding to class.classname
Closes #551
2015-02-05 15:19:23 -08:00
vsavkin ab9438ffdf fix e2e tests 2015-02-05 14:36:18 -08:00
Bertrand Laporte 3395624cb3 feat(template): add bang syntax shortcut
Closes #522
2015-02-05 11:55:49 -08:00
vsavkin cdb1e82216 feat(forms): initial implementation of forms 2015-02-05 11:55:49 -08:00
Kevin Moore 796d58c621 chore(clean-up): remove unused test method 2015-02-05 11:55:49 -08:00
vsavkin 4b8105c165 cleanup 2015-02-05 11:55:49 -08:00
vsavkin fc6e421e7e feat(compiler): add BindingPropagationConfig to the list of pre-built objects 2015-02-05 11:55:49 -08:00
vsavkin 23a080026a feat(change_detection): add mode to ChangeDetector 2015-02-05 11:55:49 -08:00
vsavkin 3067601961 feat(change_detection): update change detection benchmark 2015-02-05 11:55:49 -08:00
vsavkin 709df12b10 feat(change_detection): do not register a change from switching from null to null 2015-02-05 11:55:49 -08:00
Kevin Moore f014b53a4c more types in fascades 2015-02-05 11:55:49 -08:00
Tobias Bosch 05ffdc9b44 refactor(build): explicitly mention `src` folder in imports
Export files are now directly under the module folder,
e.g. `core/core.js`. With this, an import like `core/core`
won’t need a path mapping (e.g. via `System.paths`) any more.
This adds the `src` folder to all other import statements as well.
2015-02-05 11:55:48 -08:00
Misko Hevery 9db13be4c7 feat: change template micro-syntax to new syntax
Old syntax:
- ng-repeat: #item in items;
- ng-repeat: #item; in: items;
- <template let-ng-repeat=“item” [in]=items>

New syntax:
- ng-repeat: var item in items;
- ng-repeat: var item; in items
- <template ng-repeat var-item [in]=items>


Notice that the var is now a standalone binding 
rather then an argument to ng-repeat. This will 
make the var bindings consistent with the rest of 
the system.

Closes #482
2015-01-30 11:56:54 -08:00
Marc Laval 52d88457c8 fix(NgRepeat): activate index 2015-01-29 13:29:32 -08:00
vsavkin db0f0c462b perf(change_detection): use object pools not to create unnecessary garbage 2015-01-28 20:08:58 -08:00
Tobias Bosch ec935565ca fix(test_lib): support comparing Maps in nested structures 2015-01-28 09:35:35 -08:00
vsavkin af41fa9ac4 feat(change_detection): modify change detectors to recompute pure functions only when their args change 2015-01-27 16:52:33 -08:00
vsavkin 2793d47c67 feat(change_detection): change proto change detectors to coalesce records 2015-01-27 16:42:55 -08:00
Marc Laval 5367749f54 docs(pipeline): fix some inline doc
Closes #463
2015-01-27 16:34:09 -08:00
vsavkin 850cf0fef4 feat(change_detection): implement a change detector generator 2015-01-27 16:18:15 -08:00
yjbanov 737914061f feat(perf): add AngularDart v1 of table scrolling benchmark 2015-01-27 09:53:22 -08:00
gdi2290 a120d7f1c8 docs: follow/side effects/taught typos 2015-01-27 00:13:23 -08:00
Victor Berchet 814f3d01ef Doc(LightDom): add some inline doc 2015-01-27 08:46:52 +01:00
Victor Berchet c797a4fbd5 refactor(LightDom): refactor the code 2015-01-27 08:46:52 +01:00
Kevin Moore a02e7b5067 Remove unused fields 2015-01-26 17:32:56 -08:00
yjbanov 9682437aeb fix(tests): make Angular 2 compiler perf test use correct param name 2015-01-26 16:30:33 -08:00
yjbanov f24b9f2499 fix(perf): use correct param name in compiler benchmark 2015-01-26 16:30:33 -08:00
otodockal b3693e6e0f cleanup(ng-if): remove OnChange 2015-01-26 10:05:20 +01:00
Rado Kirov ec5cb3eb66 feat(package): introduce a catch-all package angular.
modules/angular has no implementation, but depends on all the pieces
that make angular - core, di, directives, etc. It is the package that
all client apps will depend on.
2015-01-23 10:31:24 -08:00
Victor Berchet 4df1825dc2 fix(Interpolation): switch to new AST API 2015-01-23 10:12:13 +01:00
Victor Berchet be6ce02021 refactor(NgIf): replace createElement() by el() 2015-01-23 09:27:36 +01:00
Misko Hevery 3b34ef43b1 perf(CD): Special cased interpolation in AST, Parser, and CD 2015-01-22 16:31:58 -08:00
Victor Berchet b734d56b83 fix(cd): report all changes on first cd run
- null values would not have been reported for Dart
- undefined values would not have been reported for JS

Closes #454
2015-01-22 16:15:17 -08:00
Misko Hevery 829c28f3ee docs: initial version of the documentation 2015-01-23 00:03:21 +00:00
Marc Laval d5a12d59ca feat(ng-if): an implementation of ng-if
Closes #317
2015-01-22 15:34:25 -08:00
Rado Kirov 5c4238cd41 fix(compiler): fixes a bug with top level template directives. 2015-01-22 12:48:08 -08:00
Victor Berchet b4338b623c fix(compiler): fix directive registration order
fix #328
2015-01-22 20:54:18 +01:00
Rado Kirov fd34a56347 feat(events): adds support for injectable angular event emitters.
Event emitters can be injected into Directives. Event emitters take over
browser events with the same name. Emitted events do not bubble. Event
emitters can be injected even if there is no corresponding callback in
the template.

Use as follows:
@Decorator(...)
class MyDec(@EventEmitter('click') clickEmitter) {
 ...
 fireClick() {
  var eventData = {...};
  this._clickEmitter(eventData);
 }
}
2015-01-22 10:14:03 -08:00
Victor Berchet 683bb6e5a2 feat(directive): add ng-switch directive 2015-01-22 18:49:10 +01:00
Victor Berchet 769e9741d3 refactor(OnChange): update message to ease debugging 2015-01-22 18:49:10 +01:00
Victor Berchet 85a714f022 style(cd): add types 2015-01-22 11:08:10 +01:00
Victor Berchet 211cb12413 fix(ListWrapper): fix JS ListWrapper.remove() 2015-01-22 09:41:26 +01:00
Rado Kirov 8612af9c50 fix(views): adds dehydration calls to ng-repeat removed views.
Closes #416
2015-01-21 17:15:57 -08:00
vsavkin 9957c1338e feat(change_detection): reimplement change detection 2015-01-21 14:21:14 -08:00
Victor Berchet 03c21a8cb2 feat(events): add the $event local variable to the handler context 2015-01-21 10:03:21 +01:00
Victor Berchet 156f3d99e0 feat(parser): make method calls aware of ContextWithVariableBindings 2015-01-21 09:58:01 +01:00
Rado Kirov 8a8a4b2ae7 test(ng-repeat): enables nested ng-repeat test.
It was failing previously because we were using nested <li> incorrectly.
2015-01-20 14:19:57 -08:00
gdi2290 1d0de3ea54 style(lang): add missing type annotation js/dart 2015-01-20 14:12:09 -08:00
Tobias Bosch 48125a8448 fix(perf): fix selector benchmark 2015-01-20 13:06:37 -08:00
Tobias Bosch 5c064c19e2 feat(perf): autoscale benchmarks depending on the browser. 2015-01-20 13:06:37 -08:00
Rado Kirov 7f701da66f fix(events): extract eventHandler to new function scope. 2015-01-16 16:46:01 -08:00
Rado Kirov 2381c3640b fix(event): check hydration before firing event.
It is unlikely, but it can happen that an event is fired on a dehydrated
view. Extra guard asserts the events fire only on hydrated views.
2015-01-16 13:43:02 -08:00
vsavkin fb1b1da7b9 feat(directive): notify directive before they get destroyed 2015-01-15 18:16:11 -08:00
vsavkin ec8e9f5634 feat(emuldated_shadow_dom): implement intermediate content tags 2015-01-15 17:43:45 -08:00
Jeff Cross bc8e517ae2 feat(largeTable): add AngularJS 1.x largetable benchmark 2015-01-15 13:38:31 -08:00
Jeff Cross dfcce3a789 fix(treeBenchmark): bootstrap only relevant portion to prevent angular from clobbering form 2015-01-15 13:38:31 -08:00
Jeff Cross a2b58202a0 feat(benchpress): add getStringParameter method to support text and radio inputs 2015-01-15 13:38:31 -08:00
Tobias Bosch d02c0accbb refactor(benchmarks): add cloud reporter, add params
- adds console and cloud reporter (via Google BigQuery).
- makes parameters of tests explicit and modifiable.
- removes `detect` and `ignoreGc` mode from benchpress
  as these can result in unstable numbers.
2015-01-15 09:09:05 -08:00
Rado Kirov af02f2beb1 fix(e2e): adds events to hello world static.
Extends e2e test to cover events.
2015-01-14 18:00:27 -08:00
vsavkin bf609f0e56 refactor(tests): exctract createElement into a helper 2015-01-14 09:13:56 -08:00
Rado Kirov c5b0baf805 feat(view): adds event binding to view instantiation.
Only native non-bubbling events are supported by the commit.
2015-01-13 21:12:52 -08:00
Rado Kirov bccc863567 fix(benchmark): remove duplicate line. 2015-01-13 21:09:28 -08:00
Misko Hevery f6ebaf74d3 perf: force GC on profiles 2015-01-13 13:06:17 -08:00
vsavkin abf03401df make dart analyzer happy 2015-01-13 11:14:05 -08:00
vsavkin 3c692a1b85 feat(element_injector): add distance to propertly implement @parent 2015-01-13 09:39:08 -08:00
Misko Hevery bed4b52a63 perf: Change baseline benchmark to be more consistent with the Angular 2015-01-12 21:58:19 -08:00
Misko Hevery e4a4ec840e perf: run CPU profile on constant count so that time numbers can be compared between runs 2015-01-12 21:58:18 -08:00
Misko Hevery c0a99ee7b1 perf: remove field declarations from branches in constructors
This should help with hidden class detection.
2015-01-12 15:16:25 -08:00
Misko Hevery 6e9f48564f perf: add button for profiling tree benchmark 2015-01-12 15:16:24 -08:00
Misko Hevery 2e1feec257 perf: use === instead of == for faster checks. 2015-01-12 15:16:24 -08:00
Victor Berchet 41907853b4 refactor(view): code simplification 2015-01-09 19:09:54 +01:00
Victor Berchet bcd6e4c468 feat(directive): add ng-non-bindable directive 2015-01-09 09:23:37 +01:00
Victor Berchet 48e50121d4 feat(compiler): handle compileChildren from @Decorator 2015-01-09 09:23:37 +01:00
Victor Berchet 9cacde92bb refactor(NgRepeat): remove dead code 2015-01-09 09:23:37 +01:00
Victor Berchet 4f2f083b16 feat(compiler): allow ignoring element children 2015-01-09 09:22:50 +01:00
Victor Berchet c141cbe865 refactor(pipeline_spec): remove dead code 2015-01-09 09:22:50 +01:00
vsavkin 2074cc1ca9 fix(bootstrap): change bootstrap not to create a separate injector for the provided bindings
Currently, we create a separate injector for the passed-in / root bindings. This injectors sits below the one creating the application component. This means that the applicaiton component cannot access the passed-in bindings.
2015-01-08 19:53:18 -08:00
vsavkin fbcc59dc67 feat(components): initial implementation of emulated content tag 2015-01-08 19:38:37 -08:00
Tobias Bosch 14e91e209e feat(test): add e2e tests for benchmarks and examples
Disables running the actual benchmarks on every commit as well
to speed up the build.
2015-01-08 10:51:08 -08:00
vsavkin 8c6527251b cleanup: remove `import from "test_lib"` from production code 2015-01-08 09:53:17 -08:00
vsavkin 6bb3b81465 cleanup: remove toBool
Since we decided to use the semantics of the host language, toBool is no longer needed.
2015-01-08 09:52:09 -08:00
Tobias Bosch 77aa3ed61b feat(benchpress): show more metrics and make the run mode configurable
Shows the metrics:
script, render, gcAmount, gcAmountInScript, gcTime

Run modes:
- detect: auto detect whether to force gc
- forceGc: forces a gc before every run and ignores no runs
- noGcInScript: ignore runs that have gc while a script was executing
- plain: does not force gc nor ignore runs

Closes #368
2015-01-07 16:37:52 -08:00
Tobias Bosch 82b1601a31 refactor(benchmarks): rename `timeBenchmark` into `benchmark` 2015-01-07 16:37:52 -08:00
Stephen Adams 1320175646 perf(change detection): minimized amount of code in protective try-catch 2015-01-07 13:12:43 -08:00
Rado Kirov a6a6273263 fix(compiler): fix nextSibling iterator in compiler.
Due to DOM manipulations happening during compilation, it is not correct
to call nextSibling after compilation steps.
2015-01-07 13:12:37 -08:00
Felipe Batista ef20b706aa Replaced Children loop iteration for the firstChild method 2015-01-07 09:48:07 -08:00
Victor Berchet 457cbaa39b fix(ProtoView): element injector should have either a parent or a host
fix #359
2015-01-07 11:55:58 +01:00
Victor Berchet 09092b269c fix(ElementBinderBuilder): allow a directive to have mutliple bindings
fix #320
2015-01-07 09:33:29 +01:00
Victor Berchet 7027674081 fix(compiler): fix a typo in BIND_NAME_REGEXP 2015-01-07 09:31:52 +01:00
gdi2290 164cf5b2a3 style(async): add missing type annotation js/dart 2015-01-06 18:10:10 -08:00
Tobias Bosch fe2a09bc7f refactor(perf): e2e tests and benchpress should be written in es6 2015-01-06 15:32:49 -08:00
Misko Hevery 373fd7d04a chore: add dart2js flags to benchmark to enable trust-type-annotations 2015-01-06 15:17:12 -08:00
Misko Hevery 0866485f95 perf: Traverse dom using firstChild instead of childNodes
5% improvement in speed by not using childNodes DOM API.
2015-01-06 13:16:57 -08:00
Tobias Bosch 6f303121c6 refactor(perf): introduce benchpress2
Major changes:
- make API more reusable
- format output nicely
- only force gc if needed

Regarding forcing gc:
Forcing gc can change script execution time.
We now don't force gc at first and ignore results where gc happens during script execution.
When we ignored too many results, we switch to forcing gc.

Closes #339
2015-01-05 17:49:50 -08:00
vsavkin 53906e484a fix(compiler): fix a dart analyzer warning 2014-12-30 13:25:18 -08:00
Tobias Bosch 3a80c4197d refactor(perf): move navigation into test files and rename `runSimpleBenchmark` 2014-12-29 16:58:31 -08:00
vsavkin e5dbc69f42 cleanup(di): change di.js to declare all exported symbols 2014-12-29 15:20:50 -08:00
vsavkin 739f624cc8 refactor(change_detection): add change_detection library file 2014-12-29 15:20:42 -08:00
vsavkin f06433fb58 feat(test_lib): implement SpyObject 2014-12-29 13:27:17 -08:00
vsavkin a37950293a cleanup(core): fix dart analyzer warnings 2014-12-29 12:12:11 -08:00
vsavkin da9d041f90 feat(view): add support for components that use shadow dom emulation 2014-12-29 11:42:34 -08:00
Tobias Bosch df4ac0dd33 refactor(perf): use webdriver to execute benchmarks
- use performance log of chromedriver / appium to get timeline data
  for calculating metrics for benchmarks
- change all benchmarks to be made of a standalone application
  and a protractor test that collectes timeline data
- fix and simplify benchmarks
- add dart2js to build
- remove benchpress

Closes #330
2014-12-23 22:22:55 -08:00
vsavkin d642c6afb5 feat(change_detector): wrap exceptions into ChangeDetectionError
ChangeDetectionError references the original error and the location where the error happened
2014-12-18 13:38:33 -08:00
vsavkin 3d534928b5 refactor(parser): align expression language with host language
Remove "enhancements" to the language from the parser, so the expression language mimics the host language.
2014-12-18 10:57:34 -08:00
Victor Berchet 90daca02cf fix(examples.dart): initialize the reflector
fixes #309
2014-12-18 11:11:18 +01:00
Victor Berchet 75549a660c fix(examples.dart): add LifeCycle to the reflector 2014-12-18 11:11:18 +01:00
Victor Berchet 86fb564818 fix(ChangeDispatcher): update the onRecordChange signature 2014-12-18 10:28:17 +01:00
vsavkin dbd85615b0 style(core): add missing type annotation 2014-12-17 15:58:20 -08:00
vsavkin 1d03c2af5d feat(change_detector): add a way to inspect records and record ranges 2014-12-17 15:43:36 -08:00
vsavkin df21c3c77d feat(zone): add support for long stack traces 2014-12-17 14:56:54 -08:00
vsavkin d5fcac4d7a feat(compiler): pass compilation unit to the parser 2014-12-12 18:52:53 -08:00
vsavkin cf8a5d2a0d cleanup(zones): cleanup 2014-12-12 15:24:30 -08:00
vsavkin 2184150905 feat(bootstrap): use VmTurnZone and LifeCycle to bootstrap an application 2014-12-12 15:24:30 -08:00
vsavkin 0b550f9695 feat(LifeCycle): change LifeCycle to be able register it with a zone 2014-12-12 15:24:30 -08:00
vsavkin df36ffb11d feat(zone): add initial implementation of VmTurnZone 2014-12-12 15:24:30 -08:00
Misko Hevery c25e9e7c5f fix: properly close the <tree> tag in benchmark 2014-12-11 14:23:02 -08:00
Misko Hevery 56b7ba4bce perf: improve baseline speed by 30%
Use node.firstChild and node.nextSibling instead 
of node.children or node.childNodes in the baseline
benchmark.
2014-12-11 14:05:58 -08:00
Rado Kirov 60456c8b89 feat(ng-repeat): initial implementaion of ng-repeat.
- adds support for content bindings via '[]'.
- directives module
2014-12-11 11:23:02 -08:00
Victor Berchet 59d6d604b4 fix(analyzer): fix a warning about an unused variable 2014-12-11 00:31:31 +01:00
Tobias Bosch 3ec3d5e084 perf(view): inline and refactor view instantiation and hydration
- Don’t convert DOM array into JS array via `Array.slice`
- Inline static methods for instantiation and hydration
- Misc cleanup

Closes #291
2014-12-09 16:16:45 -08:00
vsavkin 8acf9fb609 feat(change_detection): ensure that expression do not change after they have been checked 2014-12-08 18:51:19 -08:00
Tobias Bosch e7de5f8f37 feat(benchmarks): tree benchmark baseline 2014-12-08 15:54:04 -08:00
Victor Berchet 68da0012cc perf(Change Detection): remove the usage of getters/setters
- Firefox is 2.4x faster (90 vs 221ms)
- Chrome is 24% slower (15.5 vs 12.5ms)

Chrome is still 5.8x faster than Firefox
2014-12-08 21:59:59 +01:00
Victor Berchet 2c4a2f5158 perf(Change Detection): Track the range & group on changes only
1.4x speed improvement with Firefox

There is no need to track the range & group for all the records but only
for the records that have changed.
2014-12-08 21:59:59 +01:00
Victor Berchet ee36063fae style: misc minor changes 2014-12-08 21:59:59 +01:00
Victor Berchet c362f33fe4 style(Change Detection): rename WatchGroupDispatcher to ChangeDispatcher 2014-12-08 21:59:59 +01:00
Tobias Bosch 01fa90c11d feat(benchmarks): initial version of tree benchmark
Closes #269
2014-12-08 12:05:00 -08:00
Tobias Bosch 9b7e2e3029 fix(benchmarks_external): use angular dart transformer 2014-12-08 12:00:48 -08:00
Tobias Bosch 5793311421 fix(benchmarks): use explicit `main()` function and do not reexport
Otherwise `pub` would not pick it up e.g. for `dart2js`.
2014-12-08 12:00:48 -08:00
Tobias Bosch 72b970e4e2 fix(core): export ViewPort in the public exports 2014-12-08 12:00:47 -08:00
Tobias Bosch 9329c0e8bc fix(application): also bind the root component to the injector 2014-12-08 12:00:47 -08:00
Tobias Bosch 9c2d411450 feat(compiler): allow recursive components 2014-12-08 12:00:43 -08:00
vsavkin c3dc373ec4 refactor(change_detector): moves enableRecord/disableRecord into the Record class 2014-12-08 11:06:56 -08:00
vsavkin 7f941eb936 fix(change_detector): adding new ranges when disabling the current enabled record 2014-12-08 11:06:56 -08:00
vsavkin 984ff9bf1b cleanup(view): remove unused code 2014-12-05 19:06:11 -08:00
vsavkin 33b47bd5d4 fix(view): fix DirectivePropertyGroupMemento to return a new group instead of null 2014-12-05 19:01:16 -08:00
Tobias Bosch 8db77f2405 refactor(build): simplify and modularize
simplify:
- use same html file for dart and JS
- build benchmarks automatically when doing `gulp build`
- centralize configuration

modularize:
- move all build tasks into separate node.js modules under
  `tools/build`.

changes:
- the `build` folder is now the `dist` folder

Closes #284
2014-12-05 16:30:36 -08:00
Victor Berchet ceb9ee92bb fix(Change Detection): fix merge error 2014-12-05 12:20:00 +01:00
Rado Kirov 174613067c feat(views): adds (de)hydration of views and template vars.
Dehydrated views are views that are structurally fixed, but their
directive instances and viewports are purged.

Support for local bindings is added to the view.
2014-12-04 22:40:51 -08:00
Victor Berchet 5c531f718e perf(RecordRange): optimize disable()
There could be no lastEnabledChildRecord when there is no
firstEnabledChildRecord
- saves time by skipping findLastEnabledRecord() when the result is know
to be null,
- saves a test as isPresent(lastEnabledChildRecord) ==
isPresent(firstEnabledChildRecord)
2014-12-04 19:52:43 +01:00
Peter Bacon Darwin 983c00c495 docs(di/src/annotations): use triple backticks to code-fence code blocks 2014-12-04 14:16:52 +00:00
Victor Berchet 11c52ce06d style: fix typos 2014-12-04 11:01:19 +01:00
vsavkin 65242fbd6d perf(change_detection): add baseline to change detection benchmark 2014-12-03 18:09:21 -08:00
vsavkin 847cefcb7b feat(change_detector): notify directives on property changes 2014-12-03 14:33:52 -08:00
Rado Kirov 5bdefee6c9 fix(record-range): fixes bug when disabling empty ranges. 2014-12-03 12:04:06 -08:00
Rado Kirov c59cc8631a feat(examples): adds static dart hello world example.
Use gulp examples/pub.serve to start up the server and go to
http://localhost:8080/index_static.html to see the static app.
2014-12-03 10:58:30 -08:00
Victor Berchet 0f3134acd4 perf(ProtoRecordRange): re-use a ProtoRecordCreator 2014-12-03 12:10:07 +01:00
Victor Berchet f8c070c5e4 perf(ProtoRecord): remove the unused prev field 2014-12-03 12:10:07 +01:00
Tommy Odom f088e9ef15 feat(transpiler): Transform for..of to Dart as for..in
fixes #53
2014-12-03 10:48:48 +01:00
Victor Berchet bf71b94bde feat(Change Detector): Add support for collection content watch 2014-12-03 10:37:13 +01:00
Victor Berchet 2d2f44949d perf(Change Detection): Remove a useless test
Only "implicit receiver" records get their context updated (since #239)
2014-12-03 10:14:07 +01:00