Tobias Bosch
79f564be46
refactor(core): ts’ify tests
2015-05-26 17:01:31 -07:00
Tobias Bosch
23d59df81a
feat(test_lib): add `containsRegex`
2015-05-26 17:01:31 -07:00
Ian Riley
ef3e12e803
refactor (test/directives): ts'ify test/directives
...
Translate all of the AtScript code in .../test/directives to TypeScript.
Closes #2167
2015-05-26 16:51:38 -07:00
Victor Berchet
bb7ffce7eb
test(ShadowCss): add tests for keyframe rules
2015-05-26 19:42:17 +02:00
Victor Berchet
551586ced0
feat(RegExpWrapper): implement a test method
2015-05-26 19:42:17 +02:00
Tobias Bosch
1dc8ba6920
refactor(render): ts’ify tests
2015-05-26 09:38:26 -07:00
vsavkin
df59e969cf
chore(di): moved tests to typescript
2015-05-22 17:32:21 -07:00
vsavkin
d27e5512c0
chore(reflection): tsfy tests
2015-05-22 17:03:40 -07:00
yjbanov
d48fae3566
fix(core): resurrect OnChange interface
2015-05-22 16:48:00 -07:00
vsavkin
3525c9c074
chore(forms): moved tests/forms to typescript
2015-05-22 14:44:57 -07:00
Martin Probst
15f1eb28a2
fix(deps): Update clang-format to 1.0.14.
2015-05-22 09:39:15 -07:00
Victor Berchet
10bc7e948c
feat(key_event): alias esc to escape
...
fixes #2010
2015-05-22 15:39:21 +02:00
Victor Berchet
9988471fb8
test(fakeAsync): renable a test blocked on jasmine 2.3.3
2015-05-22 15:36:12 +02:00
Victor Berchet
b1c9bf14b2
feat(ElementInjector): support an arbitrary number of bindings
...
fixes #1853
2015-05-22 13:42:53 +02:00
Marc Laval
588fbfd848
fix(test): use a not expandable CSS rule in ShadowCSS spec (Firefox)
...
Closes #2061
2015-05-22 13:32:24 +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
Marc Laval
9802debf71
fix(test): native shadow DOM is required (IE11, Firefox)
2015-05-22 13:30:45 +02:00
Marc Laval
2287938f5a
fix(router): event.defaultPrevented is not reliable (IE11)
2015-05-22 13:30:44 +02:00
gdi2290
d61a0dfa22
test(ObservablePipe): onDestroy shouldn't throw
2015-05-22 12:31:46 +02:00
Tobias Bosch
cc2c8f6b00
refactor(test): ts’if compiler integration tests.
2015-05-21 17:53:53 -07:00
vsavkin
30c3e5a84e
fix(forms): changed forms to create only one value accessor instead of always creating DefaultValueAccessor
2015-05-21 17:31:25 -07:00
yjbanov
c5996529c3
chore(expressions): add explicit test for map vs property access
2015-05-21 14:41:26 -07:00
vsavkin
00c3693daa
feat(forms): migrated forms to typescript
2015-05-21 13:55:15 -07:00
vsavkin
fed86fc8ac
feat(injector): support forwardRef in toAlias
2015-05-21 09:52:43 -07:00
vsavkin
705ee46f31
fix(di): changed host and view injector to respect visibility
2015-05-21 09:17:56 -07:00
vsavkin
f210c41c1f
feat(di): changed toFactory to support dependency annotations
2015-05-21 08:34:48 -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
Tobias Bosch
e61d82b9be
refactor(core): ts’ify core
2015-05-20 16:30:41 -07:00
gdi2290
4afd2b4138
feat(PromisePipe): remove ref onDestroy
2015-05-20 14:00:57 -07:00
Rado Kirov
c45283216f
fix(router): router link should navigate to non-base Url.
...
While still displaying full base + custom part of url in the href.
2015-05-20 11:01:09 -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
91ccc9af98
fix(XHRImpl): fix errors, add a spec
...
fixes #1715
2015-05-20 08:31:50 +02:00
Misko Hevery
a664f5a6de
fix: don't call onAllChangesDone on checkNoChanges
2015-05-20 08:27:48 +02:00
Victor Berchet
0ae89ac096
feat(CD): add support for === and !==
...
relates to #1500
2015-05-20 07:50:43 +02: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
Tobias Bosch
1beadb8607
refactor(render): ts’ify render api
2015-05-19 15:12:59 -07:00
Brian Ford
791caf0037
fix(router): use appRootComponentToken to get root route configs
...
Closes #1947
2015-05-19 14:36:45 -07:00
Yegor Jbanov
8ab773538b
fix(errors): require passing stack traces explicitly in ng2 own code
2015-05-19 12:48:00 -07:00
Victor Berchet
0f002a5b18
feat(fakeAsync): allow simulating the passage of time
2015-05-19 06:51:15 +02: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
Brian Ford
5db89071d4
fix(router): improve route matching priorities
2015-05-18 15:57:08 -07:00
Brian Ford
c29ab86d85
refactor(router): improve control flow of descendant route activation
2015-05-18 15:57:08 -07:00
Brian Ford
6b02cb9b44
test(router): rename helpers in test
2015-05-18 15:57:08 -07:00
gdi2290
986038242a
feat(change_detection): json pipe
...
Closes #1957
2015-05-18 14:34:37 -07:00
Pawel Kozlowski
3011cd86bd
feat(compiler): special-case class attribute in hostAttributes
...
Closes #1774
Closes #1841
2015-05-18 14:34:36 -07:00
vsavkin
11e4385173
feat(forms): improved error messages
...
Closes #1839
2015-05-18 14:34:36 -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
gdi2290
7a4a635399
feat(change_detection): uppercase and lowercase pipes
...
because the world needs more uppercase madness
[✔] clang-format
[✔] tests
2015-05-15 19:46:52 +02:00
gdi2290
557d54b3de
feat(facade): toUpperCase and toLowerCase
2015-05-15 19:46:52 +02: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
08f21dbf51
feat(change_detection): implemented change detection that can be configured with pregenerated change detectors
2015-05-13 16:23:22 -07:00
vsavkin
d8c7c274e4
refactor(change_detector): extracted ChangeDetectorDefinition
2015-05-13 16:23:22 -07:00
vsavkin
685a6507b6
feat(compiler): added support for [()] syntax
2015-05-13 16:08:59 -07:00
Jacob MacDonald
846354473d
chore(cleanup): Remove some unused files.
2015-05-13 13:56:54 -07:00
Brian Ford
390cfb793b
fix(router): generate links for router-link with baseHref
2015-05-13 12:22:45 -07:00
Brian Ford
17392f663f
fix(router): sort possible routes by cost
2015-05-13 11:57:57 -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
e9f236b70f
chore: rename switch to ng-switch
2015-05-12 15:32:44 -07:00
Misko Hevery
78d3f62b6a
chore: rename non-bindable to ng-non-bindable
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
vsavkin
032f8b7840
fix(test): fixed a test
2015-05-12 14:40:20 -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
Tim Blasi
97d24563f4
feat(dart/transform): Inline `templateUrl` values
...
Modify DirectiveProcessor to inline `templateUrl` values to avoid making
additional browser requests.
Closes #1035
2015-05-12 09:08:56 -07:00
Rado Kirov
a574154108
fix(router): add baseUrl to relative paths, but not absolute.
...
Closes #1783
2015-05-11 18:55:24 -07:00
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
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
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
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
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
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
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
Jacob MacDonald
0e2047f9ca
chore(benchmarks): add transform benchmark runner and clean up benchmark output
2015-05-07 10:36:04 -07:00
vsavkin
cb87fa0970
chore(build): migrated di to TypeScript
2015-05-06 19:00:56 -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
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
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
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
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
68ed8f1b6b
refactor(router): rename LocationMock to LocationSpy
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
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
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
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
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
Pawel Kozlowski
ee1b574baf
fix(di): improve error messages for invalid bindings
...
Fixes #1515
Closes #1573
2015-04-28 23:42:36 +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
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
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
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
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
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
Tobias Bosch
f78406392b
fix(test_lib): support multi matches with deep equality for function calls
2015-04-24 17:53:41 -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
Pawel Kozlowski
d0059b5d75
refactor(PipeRegistry): improve error messages
...
Closes #1504
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
Marc Laval
22c6c09daf
chore(build): run event tests in Node
...
Closes #1476
2015-04-21 16:21:39 -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
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
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
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
Yegor Jbanov
526c51d1a6
fix(facades): fix splice semantics; add test
2015-04-17 13:52:03 -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
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
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
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
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
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
Yegor Jbanov
6c8398df9b
fix(di): refactor bindings to support Dart annotations
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
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
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
Victor Berchet
678d541da7
refactor(compiler): add control.ignoreCurrentElement() to skip the current element
...
relates to #808
2015-04-10 23:34:05 +00: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
Pawel Kozlowski
bf7933714a
chore(rename): rename View and Template concepts for #1244
2015-04-10 12:00:37 -07: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
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
Pawel Kozlowski
a3387b7f48
fix(di): allow injecting static attrs without type annotations
...
Closes #1226
2015-04-06 12:33:37 +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
Tobias Bosch
1d4d18d9db
refactor(render): user render compiler
2015-04-03 23:41:00 -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
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
be5ccf6957
refactor(render): delete copies files so we add them via moves
2015-04-02 14:24:55 -07: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
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
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
vsavkin
514ba54282
feat(change_detection): added changeDetection to Component
2015-03-31 20:54:44 -07:00
vsavkin
b65b145122
refactor(view): refactored DirectiveMemento to expose properties in a consistent way
2015-03-31 18:26:58 -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
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
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
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
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
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
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
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
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
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