Martin Probst
be7ac9fd41
feat: remove MapWrapper.create()/get()/set().
...
Better dart2js code, better Angular code.
2015-06-18 14:55:12 -07:00
vsavkin
b0e2ebda70
feat(query): added support for querying by var bindings
2015-06-17 16:36:55 -07:00
Martin Probst
c7e48350d3
chore: kill ListWrapper.create() and .push().
...
These wrappers are not natively understood by
ts2dart. Removing them will improve Dart2JS
compilation due to fewer megamorphic calls to List
functions.
It also makes Angular code more succinct and
improves type safety in Angular due to better type
inference of the Array component type.
This change exposed several bugs in Angular.
2015-06-17 16:21:55 -07:00
Tobias Bosch
5dee8e26cc
fix(views): remove dynamic component views, free host views, free embedded views
...
Closes #2472
Closes #2339
BREAKING CHANGE
- `Compiler.compile` has been removed, the only way to compile
components dynamically is via `Compiler.compileInHost`
- `DynamicComponentLoader.loadIntoExistingLocation` has changed:
* renamed into `loadIntoLocation`
* will always create the host element as well
* requires an element with a variable inside of the host component view
next to which it will load new component.
- `DynamicComponentLoader.loadNextToExistingLocation` was renamed into
`DynamicComponentLoader.loadNextToLocation`
- `DynamicComponentLoader.loadIntoNewLocation` is removed
* use `DynamicComponentLoader.loadNextToLocation` instead
and then move the view nodes
manually around via `DomRenderer.getRootNodes()`
- `AppViewManager.{create,destroy}Free{Host,Embedded}View` was removed
* use `AppViewManager.createViewInContainer` and then move the view nodes
manually around via `DomRenderer.getRootNodes()`
- `Renderer.detachFreeView` was removed. Use `DomRenderer.getRootNodes()`
to get the root nodes of a view and detach them manually.
2015-06-17 11:33:51 -07:00
Misko Hevery
b2c66949b2
feat: allow Type.annotations = Component(...).View(...)
...
Closes #2577
2015-06-16 16:36:46 -07:00
vsavkin
d8e2795368
fix(view): local variables override local variables set by ng-for
2015-06-16 07:48:26 -07:00
vsavkin
5bfcca2d5b
feat(query): notify on changes
2015-06-15 11:10:21 -07:00
Victor Berchet
ac3e624d0f
feat(View): add support for styleUrls and styles
...
fixes #2382
2015-06-15 19:35:16 +02:00
Misko Hevery
c3ae34f066
feat: support decorator chaining and class creation in ES5
...
Closes #2534
2015-06-14 16:54:08 -07:00
Martin Probst
4ae7df27d2
fix: improve type safety by typing `refs`.
2015-06-12 18:02:07 -07:00
vsavkin
c51aef9f7d
fix(element_injector): changed visibility rules to expose hostInjector of the component to its shadow dom
2015-06-12 17:17:31 -07:00
Tim Blasi
bbfb4e1dcc
fix(dynamic_component_loader): Fix for ts2dart issue
...
Fix a build break by declaring a type for `locals`.
See https://github.com/angular/ts2dart/wiki/Builtin-fa%C3%A7ade-methods#fixing-untyped-property-access-errors
for some context.
2015-06-12 16:55:08 -07:00
vsavkin
21dcfc89e9
fix(dynamic_component_loader): implemented dispose for dynamically-loaded components
2015-06-12 15:47:09 -07:00
Martin Probst
f3d741854a
fix: add types for ts2dart's façade handling.
...
... in many, many places.
2015-06-12 15:41:08 -07:00
Martin Probst
c4ecbf0a7f
fix: rename FORWARD_REF to forwardRef in the Angular code base.
...
Now that ts2dart understands forwardRef, there's
no need to maintain the old syntax.
2015-06-12 15:41:08 -07:00
Martin Probst
a6e7123995
feat: adjust formatting for clang-format v1.0.19.
2015-06-12 09:51:57 -07:00
Victor Berchet
7648bb8ee3
doc(Lifecycle events): Document the call order
2015-06-12 18:51:04 +02:00
Rado Kirov
355ab5b3a6
feat(query): adds support for descendants and more list apis.
...
Additional clean up of query code.
Closes : #1935
BREAKING CHANGE:
By default Query only queries direct children.
2015-06-11 16:05:06 -07:00
Victor Berchet
f3b49378e4
feat(Directive): Have a single Directive.host which mimics HTML
...
fixes #2268
BREAKING CHANGE:
Before
@Directive({
hostListeners: {'event': 'statement'},
hostProperties: {'expression': 'hostProp'},
hostAttributes: {'attr': 'value'},
hostActions: {'action': 'statement'}
})
After
@Directive({
host: {
'(event)': 'statement',
'[hostProp]': 'expression' // k & v swapped
'attr': 'value',
'@action': 'statement'
}
})
2015-06-11 13:11:09 -07:00
Victor Berchet
6ca81fb98c
refactor(ProtoViewDto): switch to enum
2015-06-11 17:11:34 +02:00
vsavkin
af35ab56a3
fix(life_cycle): throw when recursively reentering LifeCycle.tick
2015-06-11 07:43:14 -07:00
vsavkin
15dab7c5b2
fix(ng_zone): updated zone not to run onTurnDown when invoking run synchronously from onTurnDone
2015-06-11 07:43:13 -07:00
Victor Berchet
4d338a4f5c
test(ElementInjector): test that hostInjector has priority over viewInjector
2015-06-08 20:34:44 +02:00
Victor Berchet
6a6b43de07
feat(ElementInjector): throw if multiple directives define the same host injectable
...
relates to #2015
2015-06-08 20:34:44 +02:00
Victor Berchet
29c72abcc4
feat(Events): allow a different event vs field name
...
closes #2272
closes #2344
2015-06-08 19:29:49 +02:00
vsavkin
69b75b7fd8
feat(view): added support for exportAs, so any directive can be assigned to a variable
2015-06-04 14:14:03 -07:00
Rado Kirov
552985e305
fix(types): parametrize QueryList.
2015-06-03 17:08:55 -07:00
Martin Probst
f999d5a156
chore: move to clang-format 1.0.17.
...
clang-format 1.0.17 substantially improves formatting for fat arrow functions
and array literal detection. It also fixes a number of minor formatting issues.
2015-06-03 15:27:27 -07:00
Tobias Bosch
5030ffb01c
feat(view): introduce free embedded views
...
Free embedded views are view instances that are created
logically in the same was as views of a ViewContainer,
but their dom nodes are not attached.
BREAKING CHANGE:
- `Renderer.detachFreeHostView` was renamed to
`Renderer.detachFreeView`
- `DomRenderer.getHostElement()` was generalized into
`DomRenderer.getRootNodes()`
2015-06-03 14:42:00 -07:00
vsavkin
d523613329
test(di): added a test verifying hierarchical injection
2015-05-29 15:52:46 -07:00
Tobias Bosch
f9908cd436
feat(test): add element probe
...
Usage: bootstrap the app with the special binding
`ELEMENT_PROBE_CONFIG` from `angular2/debug`.
This will provide a global method `ngProbe(element)` that
will expose a `DebugElement` with directive instances, ... on it.
During tests that use Angular's test injector, the probe is
enabled by default. The `DebugElement ` can be retrieved via the
function `inspectDomElement` of `angular2/debug`. Note
that the `TestComponentBuilder` already returns `DebugElement `s.
Closes #1992
2015-05-29 12:44:21 -07:00
Tobias Bosch
75578f41e7
feat(view): add `AppViewListener` interface
...
Basic functionality how element probe is hooked into
the system.
2015-05-29 11:33:22 -07:00
Tim Blasi
ffb219fb91
style(dart): Format Dart source with dart_style 0.1.8
2015-05-29 10:42:47 -07:00
Victor Berchet
d7df853bde
feat(Directive): convert properties to an array
...
fixes #2013
BREAKING CHANGE:
Before
@Directive(properties: {
'sameName': 'sameName',
'directiveProp': 'elProp | pipe'
})
After
@Directive(properties: [
'sameName',
'directiveProp: elProp | pipe'
])
2015-05-29 11:44:43 +02:00
vsavkin
c39c8ebcd0
feat(change_detection): added onInit and onCheck hooks
2015-05-28 16:46:22 -07:00
vsavkin
34cfc9f474
feat(di): added optional self parameter to Parent, Ancestor, and Unbounded
2015-05-28 09:53:06 -07:00
vsavkin
30b6542fc8
feat(core): added support for detecting lifecycle events based on interfaces
2015-05-27 16:23:42 -07:00
Marc Laval
c6335c128e
feat(test_lib): add method to compare stringified DOM element
...
Closes #2106
2015-05-27 16:19:39 +02:00
Tobias Bosch
79f564be46
refactor(core): ts’ify tests
2015-05-26 17:01:31 -07:00
yjbanov
d48fae3566
fix(core): resurrect OnChange interface
2015-05-22 16:48:00 -07:00
Martin Probst
15f1eb28a2
fix(deps): Update clang-format to 1.0.14.
2015-05-22 09:39:15 -07:00
Victor Berchet
b1c9bf14b2
feat(ElementInjector): support an arbitrary number of bindings
...
fixes #1853
2015-05-22 13:42:53 +02:00
Marc Laval
661a04798e
fix(test): adds longer timers for NgZone and PromisePipe tests (IE11)
...
Closes #2055
2015-05-22 13:30:49 +02:00
Tobias Bosch
cc2c8f6b00
refactor(test): ts’if compiler integration tests.
2015-05-21 17:53:53 -07:00
yjbanov
c5996529c3
chore(expressions): add explicit test for map vs property access
2015-05-21 14:41:26 -07:00
vsavkin
705ee46f31
fix(di): changed host and view injector to respect visibility
2015-05-21 09:17:56 -07:00
vsavkin
b6b52e62b2
fix(element_injector): fixed element injector to inject view dependencies into its components
2015-05-20 17:48:04 -07:00
vsavkin
28c2b8f432
fix(element_injector): fixed element injector to resolve dependencies of regular services
2015-05-20 10:56:33 -07:00
Victor Berchet
6ec5d5daaf
refactor(async): extract timer related functions into a TimerWrapper
2015-05-20 07:47:46 +02:00
vsavkin
62b1a08f06
refactor(reflection): improved error message
2015-05-19 21:17:52 -07:00
Yegor Jbanov
8ab773538b
fix(errors): require passing stack traces explicitly in ng2 own code
2015-05-19 12:48:00 -07:00
vsavkin
b066b8d15a
feat(di): added hostInjector and viewInjector to the Directive annotation
2015-05-18 18:30:53 -07:00
vsavkin
7b511462af
refactor(core): renamed injectables into appInjector
...
BREAKING CHANGES
Before:
@Component({injectables: [Type]} class MyCmp{}
After:
@Component({appInjector: [Type]} class MyCmp{}
2015-05-18 18:30:52 -07:00
vsavkin
3a53f67911
feat(di): removed publishAs
...
BREAKING CHANGES
Removes the publishAs property from the Component annotation.
2015-05-18 18:30:52 -07:00
Jeremy Elbourn
bb2eda2d15
feat(element_injector): allow @Optional for ProtoViewRef
2015-05-18 12:48:33 -07:00
Tim Blasi
3644036693
refactor(proto_view_factory): Move getChangeDetectorDefinitions out of ProtoViewFactory
...
Move `getChangeDetectorDefinitions` out of `ProtoViewFactory` since it
does not depend on any state in that object.
2015-05-18 08:45:59 -07:00
Misko Hevery
1eea2b254e
feat: allow for forward references in injection
...
It is possible for a class defined first to be referencing a class defined later,
and as a result at the time of the definition it is not possible to access the later's
class reference. This allows to refer to the later defined class through
a closure.Closes #1891
2015-05-15 21:12:57 -07:00
Yegor Jbanov
b6f29b4448
feat(errors): preserve stack traces of user exceptions in Dart
2015-05-15 15:03:31 -07:00
Tobias Bosch
421d8916a6
refactor(view_manager): split `inPlace` views into root and free host views.
...
BREAKING CHANGE:
`AppViewManager.createInPlaceHostView` is replaced by
`AppViewManager.createRootHostView` (for bootstrap) and
`AppViewManager.createFreeHostView` (for imperative components).
The later creates new host elements that are not attached anywhere.
To attach them, use `DomRenderer.getHostElement(hostviewRef)`
to get the host element.
Closes #1920
2015-05-15 13:24:53 -07:00
Victor Berchet
25cd6e4321
fix(Compiler): add an error when a directive is null or undefined
...
fixes #1908
2015-05-15 19:26:06 +02:00
Tobias Bosch
ecb068019b
refactor(proto_view_factory): expose data for generating change detectors
...
Also consolidates metadata handling in `ElementInjector`
BREAKING CHANGE:
- renames `DirectiveMetadataReader` into `DirectiveResolver`
and removes `src/core/compiler/directive_metadata`.
Fixes #1712
Fixes #1713
2015-05-13 17:11:59 -07:00
vsavkin
685a6507b6
feat(compiler): added support for [()] syntax
2015-05-13 16:08:59 -07:00
Victor Berchet
c20060d259
fix(directives): fix import path
2015-05-13 11:56:50 +02:00
Misko Hevery
111fa60a93
chore: rename for to ng-for
...
Closes #1598
Closes #1295
Closes #1827
Closes #1827
2015-05-12 15:32:44 -07:00
Misko Hevery
d310a9c0b4
chore: rename if to ng-if
2015-05-12 15:32:44 -07:00
Victor Berchet
e11c20541a
refactor(VmTurnZone): renamed to NgZone
...
BREAKING CHANGE:
VmTurnZone has been renamed to NgZone.
- The public API has not chnanged,
- The "outer" zone is now named "mount" zone (private to NgZone).
2015-05-12 21:03:24 +02:00
Victor Berchet
c75e216871
refactor(VmTurnZone): outer zone = root zone
2015-05-12 21:03:24 +02:00
Victor Berchet
e8a6c95e2a
feat(VmTurnZone): Rework the implementation to minimize change detection runs
...
Before this PR there were only 2 zones: root zone = outer zone > inner
zone.
This PR creates the outer zone as a fork of the root zone: root > outer
> inner.
By doing this it is possible to detected microtasks scheduling in the
outer zone and run the change detection less often (no more than one
time per VM turn).
The PR also introduce a Promise monkey patch for the JS implementation.
It makes Promises aware of microtasks and again allow running the change
detection only once per turn.
2015-05-12 21:03:24 +02:00
yjbanov
358a6750ed
feat(di): support type literals in DI
2015-05-12 10:57:53 -07:00
vsavkin
7f976381d5
fix(view): fixed ProtoViewFactory to get all property bindings
2015-05-11 17:38:34 -07:00
vsavkin
f9c1de46b3
feat(compiler): added support for host actions
2015-05-11 13:28:19 -07: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
1a0da11e55
feat(di): components can self-publish via publishAs
2015-05-08 16:13:00 -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
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
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
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
Tobias Bosch
0856516ae9
refactor(renderer): separate compiler from renderer
...
Part of #1675
Closes #1702
2015-05-06 10:50:15 -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
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
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
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
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
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
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
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
Tobias Bosch
a801da6f7c
fix(ViewManager): dehydrate views recursively over ViewContainers
...
Closes #1560
2015-04-27 17:39:20 -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
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
Pawel Kozlowski
4bab25b366
feat: alllow specifying directives as bindings
...
Related to #709
Closes #1498
2015-04-24 11:02:17 -07:00
vsavkin
8ccafb0524
feat(view): reimplemented property setters using change detection
2015-04-23 11:55:27 -07:00
Marc Laval
22c6c09daf
chore(build): run event tests in Node
...
Closes #1476
2015-04-21 16:21:39 -07:00
Tobias Bosch
ada1e642c5
feat(view): add imperative views
2015-04-20 17:18:44 -07:00
vsavkin
681d06386d
feat(view): implemented loading component next to existing location
2015-04-20 13:41:10 -07:00
Tobias Bosch
02997f473a
fix(viewFactory): allow empty view cache
2015-04-20 11:36:39 -07:00
Marc Laval
883e1c1541
feat(events): support preventdefault
...
Fixes #1039
Closes #1397
2015-04-20 15:20:52 +02: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
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
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
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
Kevin Moore
957384ceeb
fix: Fix issues found by Dart analyzer
2015-04-15 20:58:29 -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
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
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
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
Marc Laval
b96e560c8d
feat(events): add support for global events
...
Fixes #1098
Closes #1255
2015-04-13 22:35:36 +02:00
vsavkin
6f8fef4f13
feat(bootstrap): changed bootstrap to return ComponentRef
2015-04-10 18:14:59 -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
Pawel Kozlowski
bf7933714a
chore(rename): rename View and Template concepts for #1244
2015-04-10 12:00:37 -07: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
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
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
Pawel Kozlowski
a3387b7f48
fix(di): allow injecting static attrs without type annotations
...
Closes #1226
2015-04-06 12:33:37 +02:00
Victor Berchet
438c2b31e4
test(TestBed): initial implementation
2015-04-06 10:30:16 +02:00
Tobias Bosch
1d4d18d9db
refactor(render): user render compiler
2015-04-03 23:41:00 -07:00
vsavkin
abea92af59
refactor(change_detection): call onChange from the change detector
2015-04-02 21:22:42 -07: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
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
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
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
vsavkin
514ba54282
feat(change_detection): added changeDetection to Component
2015-03-31 20:54:44 -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
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
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
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
8d85b839b6
feat(change_detection): pass binding propagation config to pipe registry
2015-03-26 16:57:04 -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
Marc Laval
b1dc6239ef
feat(core): @Attribute annotation
...
Closes #1091
Fixes #622
2015-03-26 10:51:44 +01: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
Victor Berchet
101a4aa3cf
feat(PrivateComponentLoader): Explicit error message when loading a non-component
...
fixes #1062
2015-03-24 22:11:41 +01: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
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
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
Marc Laval
2ff2ce3c6c
refactor(test_lib): remove IS_NODEJS
...
Closes #1015
2015-03-20 15:50:05 +01: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
Pawel Kozlowski
59a1f836a2
fix: allow creation of var with camelCased names
...
Closes #957
2015-03-17 21:39:26 -07:00
vsavkin
99f2d7faf6
removed circular deps so tests run on node
2015-03-17 16:31:37 -07:00
vsavkin
2041860a21
feat: added an ability to dynamically load components
2015-03-17 15:23:59 -07:00
vsavkin
7488456d68
feat(element_injector): added PrivateComponentLocation
2015-03-17 15:23:58 -07:00
vsavkin
b69f3043e0
feat(compiler): added the DynamicComponent annotation
2015-03-17 15:23:58 -07:00
vsavkin
a16954d3a5
refactor(view): separate context and locals
2015-03-17 14:25:57 -07:00
Yegor Jbanov
70c875ee14
refactor(shadow dom): do not use injectors nor directives
...
This prepares us for the app/render split in the compiler.
2015-03-16 16:58:38 -07:00
vsavkin
33bff17f33
refactor(tests): refactor tests to clarify the behavior of onChange
2015-03-13 18:09:31 -07:00
vsavkin
3273adade5
refactor(view): change view to pass all bindings to proto change detector at once
2015-03-13 14:03:57 -07:00
Pawel Kozlowski
b39d2c0101
fix: properly bind to camelCased properties
...
Fixes #866
Closes #941
2015-03-13 19:50:47 +01:00
Victor Berchet
7322ed721e
refactor: remove reference to the FIELD class
2015-03-13 18:59:51 +01:00
Marc Laval
8d2ee6bbda
feat(selector): add support for :not
...
Fixes #609
Closes #948
2015-03-13 18:26:10 +01:00
Victor Berchet
30253592ff
refactor(tests): refactor some tests to use the test injector
2015-03-13 18:20:02 +01:00
Victor Berchet
33b5ba863e
feat(tests): add a test injector
...
fixes #614
Asynchronous test should inject an AsyncTestCompleter:
Before:
it("async test", (done) => {
// ...
done();
});
After:
it("async test", inject([AsyncTestCompleter], (async) => {
// ...
async.done();
}));
Note: inject() is currently a function and the first parameter is the
array of DI tokens to inject as the test function parameters. This
construct is linked to Traceur limitations. The planned syntax is:
it("async test", @Inject (async: AsyncTestCompleter) => {
// ...
async.done();
});
2015-03-13 18:20:02 +01:00
Pawel Kozlowski
5926d2e2f7
refactor: use attributes for directives matching
...
Closes #940
2015-03-13 17:24:14 +01:00
Rado Kirov
f7963e1ea6
fix(shadowdom): allow conditional content tags.
...
Distribution is triggered on the host element injector after each new
view creation.
2015-03-12 12:06:47 -07:00
Victor Berchet
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
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
5acde20c7d
refactor(compiler): remove direct accesses to DOM in tests
...
Closes #899
2015-03-10 22:08:27 +01:00
Victor Berchet
370643539f
refactor(EventHandler): have a single instance of event handlers per ProtoView
2015-03-10 15:26:06 +01:00
Victor Berchet
bfa18ffd9b
feat(Directives): add the ability to declaratively bind events
...
relates to #621
2015-03-10 08:14:24 +01:00
Victor Berchet
b349c35678
feat(ElementInjector): implement @PropertySetter
...
relates to #621
2015-03-09 18:28:39 +01:00
Victor Berchet
c3873be295
fix(Compiler): asynchronous error reporting
2015-03-09 16:42:37 +01:00
Victor Berchet
03793d0714
feat(CssProcessor): add support for CssTransformers
...
Closes #860
2015-03-03 11:24:08 -08:00
Victor Berchet
9982520a23
refactor(Compiler): make shadow DOM stragegy support more flexible
2015-03-03 11:24:08 -08:00
vsavkin
ba0a1ec459
feat(di): add support for optional dependencies
2015-03-02 14:38:02 -08:00
Bertrand Laporte
3059104e8d
add compilation error test for dart
...
Closes #812
2015-03-02 14:38:02 -08:00
vsavkin
21f24d19dd
feat(change_detection): implement hydration/dehydration
2015-03-02 13:28:39 -08:00
Richard Harrington
f30e3e59b5
fix(docs): fix typo in compiler integration_spec.js
...
Closes #834
2015-02-28 12:00:49 +01:00
Yegor Jbanov
757eae8ad3
feat(compiler): DOM adapters + html5lib implementation; misc fixes
2015-02-27 16:49:14 -08:00
Pawel Kozlowski
7e6f536cf5
fix(compiler): properly bind to properties that don't have matching attr name
...
Fixes #619
Closes #783
2015-02-27 16:10:16 +01:00
Victor Berchet
8541cfd26d
feat(ShadowDomStrategy): implemented EmulatedUnscopedShadowDomStrategy
...
- The new strategy do not scope component styles but make them global,
- The former EmulatedShadowStrategy has been renamed to
EmulatedScopedShadowDomStrategy. It does scope the styles.
2015-02-26 20:00:23 +01:00
Victor Berchet
9f181f39e9
fix(StyleUrlResolver): add support for media query in import rules
2015-02-26 20:00:23 +01:00
Victor Berchet
4d8d17ce3d
fix(StyleInliner): add support for url(url) format
2015-02-26 20:00:23 +01:00
Victor Berchet
929fc65493
refactor(template loading): add support for base URLs, css rewriting
...
fixes #654
2015-02-26 09:36:04 +01:00
Victor Berchet
9250cd6a78
fix(ShimShadowCss): preserve attribute on style elements
2015-02-26 09:04:00 +01:00
Victor Berchet
edb797e191
feat(StyleUrlResolver): rewrite url in styles
2015-02-26 09:04:00 +01:00
Victor Berchet
ff406e65dc
feat(UrlResolver): combine a base URL with an URL
2015-02-26 09:04:00 +01:00
Victor Berchet
e0cf1c7ab5
feat(StyleInliner): StyleInliner inlines @import css rules
2015-02-26 09:04:00 +01:00
Victor Berchet
41c61e5bc7
refactor(Completer): rename complete() to resolve()
2015-02-26 08:46:32 +01:00
Rado Kirov
6ad2c18277
feat(events): adds support for bubbling native events (^event).
...
Refactor - move DomEventManager into its own plugin.
2015-02-25 19:08:16 -08:00
Rado Kirov
2f015cc336
fix(view_container): fixes injection on dynamically added views.
...
Closes #777
2015-02-25 18:05:57 -08:00
Bertrand Laporte
94e203b9df
feat(DirectiveParser): throw errors when expected directives are not present
...
closes #527
Closes #570
2015-02-24 20:57:21 -08:00
Pawel Kozlowski
908a0aa7dc
test: introduce TemplateResolver mock
...
Closes #768
2015-02-24 10:34:52 -08:00
vsavkin
987a5fdf56
feat(change_detection): add support for pipes in the template
2015-02-20 17:16:57 -08:00
vsavkin
29f5ee0c29
fix(shadow_dom_emulation): handle the case when the array of element injectors has nulls
2015-02-20 15:52:15 -08:00
vsavkin
58ba700b14
feat(change_detection): change binding syntax to explicitly specify pipes
2015-02-20 10:59:46 -08:00
Victor Berchet
69e02ee76f
feat(ViewSplitter): Change template shorthand syntax from '!' to '*'
...
fixes #717
Closes #727
2015-02-20 10:36:30 -08:00
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
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
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
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
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
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
Victor Berchet
6d23d00057
refactor(ViewPort): @Template -> @Viewport, ViewPort -> ViewContainer
...
fixes #595
2015-02-13 17:48:27 +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
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
Rado Kirov
6e923cbf84
fix(compiler): elements with events only create binders but not protoElementInjectors.
...
Closes #577
2015-02-10 15:29:34 -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
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
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
Bertrand Laporte
63f23ec0b6
fix(life_cycle): remove cyclic dependency
...
fixes #477
Closes #530
2015-02-06 09:23:59 -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
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