cf8a5d2a0d
cleanup(zones): cleanup
2014-12-12 15:24:30 -08:00
2184150905
feat(bootstrap): use VmTurnZone and LifeCycle to bootstrap an application
2014-12-12 15:24:30 -08:00
0b550f9695
feat(LifeCycle): change LifeCycle to be able register it with a zone
2014-12-12 15:24:30 -08:00
df36ffb11d
feat(zone): add initial implementation of VmTurnZone
2014-12-12 15:24:30 -08:00
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
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
8acf9fb609
feat(change_detection): ensure that expression do not change after they have been checked
2014-12-08 18:51:19 -08:00
ee36063fae
style: misc minor changes
2014-12-08 21:59:59 +01:00
c362f33fe4
style(Change Detection): rename WatchGroupDispatcher to ChangeDispatcher
2014-12-08 21:59:59 +01:00
72b970e4e2
fix(core): export ViewPort in the public exports
2014-12-08 12:00:47 -08:00
9329c0e8bc
fix(application): also bind the root component to the injector
2014-12-08 12:00:47 -08:00
9c2d411450
feat(compiler): allow recursive components
2014-12-08 12:00:43 -08:00
984ff9bf1b
cleanup(view): remove unused code
2014-12-05 19:06:11 -08:00
33b47bd5d4
fix(view): fix DirectivePropertyGroupMemento to return a new group instead of null
2014-12-05 19:01:16 -08:00
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
847cefcb7b
feat(change_detector): notify directives on property changes
2014-12-03 14:33:52 -08:00
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
0758165fb5
fix(compiler): allow identifiers with -
in the template bindings as keys.
2014-12-01 16:39:36 -08:00
63053438ea
fix(compiler): always wrap views into an own <template>
element
...
This is needed to allow view instantiation also in browsers that
don’t support the `<template>` element and because of this would
return elements from the content of `<template>` elements when
using `element.querySelectorAll`.
Also stores the `elementBinder.nestedProtoView` correctly
when a template directive was used on a `<template>` element.
2014-12-01 16:39:36 -08:00
6f889e3094
feat(di): add OpaqueToken to DI
...
Using `new Object()` as a token causes cryptic errors. OpaqueToken class should be used instead.
2014-11-26 12:52:16 -08:00
c6f14dd833
feat(viewPort): adds initial implementation of ViewPort.
...
ViewPort is the mechanism backing @Template directives. Those
directives can use the viewport to dynamically create, attach and
detach views.
2014-11-25 16:19:50 -08:00
6e8175a816
feat(Reflection): extract reflection capabilities into a separate module
2014-11-24 16:53:12 -08:00
044625a098
chore: Make field declarations explicit
...
This used to be valid code:
```
class Foo {
constructor() {
this.bar = ‘string’;
}
}
```
This will now fail since ‘bar’ is not explicitly
defined as a field. We now have to write:
```
class Foo {
bar:string; // << REQUIRED
constructor() {
this.bar = ‘string’;
}
}
```
2014-11-24 16:35:39 -08:00
2980eb5b0b
refactor(ChangeDetector): rename WatchGroup into RecordRange
2014-11-20 10:24:18 -08:00
fc5b7edca4
feat(compiler): support on-
and []
2014-11-19 16:24:12 -08:00
c6846f1163
feat(compiler): new semantics for template
attributes and view variables.
...
- Supports `<div template=“…”>`, including parsing the expressions within
the attribute.
- Supports `<template let-ng-repeat=“rows”>`
- Adds attribute interpolation (was missing previously)
2014-11-19 14:32:15 -08:00
d6193e9073
feat(examples): adds hello-world app.
...
The app is writen in ES6 and transpiles to ES5 and dart as part of the
usual build.
The app contains a component, a directive and a services wired together
through dependency injection.
Before Each:
- gulp build
For es5:
- gulp serve
- open 'localhost:8000/js/examples/lib/hello_world/'
For dart:
- gulp examples/pub.serve
- open 'localhost:8080'
2014-11-19 12:24:14 -08:00
1221857d17
feat(bootstraping): application bootstrapping implementation.
...
Entry-point to bootstrapping is a rootComponent. The bootstrapping
method, uses the component's selector to find the insertion element in
the DOM, and attaches the component in its ShadowRoot.
2014-11-18 15:02:38 -08:00
f0d6464856
feat(ChangeDetector): change View to construct a WatchGroup hierarchy
2014-11-17 17:49:17 -08:00
b2ecdb5da7
fix(compiler): use parentheses around expressions and escape quotes
2014-11-17 17:47:50 -08:00
03882dcccc
refactor(ElementInjector): remove stale file and make StaticKeys private
2014-11-17 17:44:39 -08:00
be4cb2db3a
feat(view): add support for instantiation of nested component views.
...
Include shadowDom creation and integration tests for nested components.
Fix accidentally clobbered modules/core/test/compiler/view_spec.js by
previous commit.
2014-11-14 16:09:36 -08:00
b07ea6b90e
feat(compiler): add benchmarks
...
- compileEmptyTemplate
- compile25ElementsNoBindings
- compile25ElementsWithBindings
For the results see the PR #197 .
Closes #197
2014-11-14 14:25:02 -08:00
d7208b8429
feat(ElementInjector): add NgElement
2014-11-14 13:22:39 -08:00
ac8351b7bc
feat(ElementInjector): change ElementInjector so @parent and @ancestor do not include self.
2014-11-14 13:18:39 -08:00
e15bcf0ffd
refactor(ChangeDetector): pass formatters when instantiating a watch group
2014-11-14 13:16:55 -08:00
b8e3617a1d
refactor(annotations): replace Module functions with plain lists.
...
Renames:
elementServices -> shadowDomServices.
2014-11-14 13:03:24 -08:00
1b79c91320
fix(compiler, view): centralize TemplateElement checks and fix inconsistencies
...
Fixes #189
Closes #194
2014-11-14 11:04:18 -08:00
5e0ff2cbb7
refactor(ElementBinder): Store componentDirective and templateDirective as well.
2014-11-13 17:36:45 -08:00
7308a3acc7
refactor(ElementInjector): support components
...
- Allow to access containing component directive instance from the shadow DOM.
- Allow to access app services of the app level injector of the component
when the component is instantiated.
2014-11-13 17:32:52 -08:00
7a70f8f92d
feat(compiler): initial version of the compiler.
...
Supports:
- binds text nodes, element properties and directive properties
- locates decorator, component and template directives.
- inline templates of components
The compiler is built using a pipeline design,
see core/src/compiler/pipeline package.
Integration tests to show how the compiler, change_detection and DI work
together:
core/test/compiler/integration_spec.js
2014-11-11 17:55:50 -08:00
9448d78aa8
refactor(ProtoElementInjector): change instantiate
to take positional args
2014-11-06 10:13:07 -08:00
b5f6417635
refactor(ElementInjector): use index
instead of the elementInjector
field to instantiate element injectors
2014-11-06 10:03:20 -08:00
0a766f4654
feat(Change Detection): Implement map changes
2014-11-05 14:02:03 -08:00
965fa1a985
feat(parser): adds basic expressions to the parser.
...
Mostly copy pasta from angular.dart.
Remove GetterFactory in favor for ClosureMap (which has basically the same
implementation).
2014-10-31 14:32:12 -07:00
8c566dcfb5
feat(elementBinder): introduce element binder.
...
It is a plain-old-data class to seperate the protoInjector from the
textNodes and elementBinding data.
2014-10-30 14:59:32 -07:00
91f50b67b7
feat(view): hook watch group instantiation in the view.
2014-10-29 17:04:56 -07:00
9bd65abb32
feat(ElementInjector): throw when encounter a cyclic dependency
2014-10-29 17:52:51 -04:00
b0c9d05ea7
feat(view): add onChange implementation to view.
2014-10-29 13:32:20 -07:00
08d4a37c06
feat(selector): initial version of the selector
2014-10-28 14:46:55 -07:00