diff --git a/ionic/components/alert/alert.js b/ionic/components/alert/alert.js
index 6ff66f0a70..e75e7bce5e 100644
--- a/ionic/components/alert/alert.js
+++ b/ionic/components/alert/alert.js
@@ -1,5 +1,3 @@
-// import {NgElement, Component, View, Parent} from 'angular2/angular2'
-
/*
@Component({
@@ -22,16 +20,5 @@
`
})
-export class Alert {
- constructor(
- @NgElement() ngElement:NgElement
- ) {
- this.domElement = ngElement.domElement
- this.config = Alert.config.invoke(this)
- }
-
- static open(opts) {
- let alert = new Alert();
- }
-}
+export class Alert {}
*/
diff --git a/ionic/components/app/test/music/index.js b/ionic/components/app/test/music/index.js
index f037a40794..df2a489ebd 100644
--- a/ionic/components/app/test/music/index.js
+++ b/ionic/components/app/test/music/index.js
@@ -75,7 +75,7 @@ export class ParallaxEffect {
constructor(
elementRef: ElementRef
) {
- this.domElement = elementRef.domElement;
+ this.ele = elementRef.nativeElement;
setTimeout(() => {
Object.observe(this, (changes) => {
@@ -88,7 +88,7 @@ export class ParallaxEffect {
});
}
parallaxItems() {
- let list = this.domElement;
+ let list = this.ele;
console.log('Moving items', this.parallax);
var x = Math.max(0, (1 - this.parallax) * 20);
var y = 0;//Math.max(0, (1 - this.parallax) * 10);
diff --git a/ionic/components/app/test/profile/index.js b/ionic/components/app/test/profile/index.js
index bbb8039057..6e0fc15c73 100644
--- a/ionic/components/app/test/profile/index.js
+++ b/ionic/components/app/test/profile/index.js
@@ -37,8 +37,8 @@ export class ParallaxEffect {
content: Content,
elementRef: ElementRef
) {
- this.domElement = elementRef.domElement;
- this.scroller = this.domElement.querySelector('.scroll-content');
+ this.ele = elementRef.nativeElement;
+ this.scroller = this.ele.querySelector('.scroll-content');
this.scroller.addEventListener('scroll', (e) => {
//this.counter.innerHTML = e.target.scrollTop;
dom.raf(() => {
diff --git a/ionic/components/aside/aside.js b/ionic/components/aside/aside.js
index 938c13abbd..3e529af258 100644
--- a/ionic/components/aside/aside.js
+++ b/ionic/components/aside/aside.js
@@ -46,19 +46,19 @@ export class Aside {
}
constructor(elementRef: ElementRef) {
- this.domElement = elementRef.domElement
+ this.ele = elementRef.nativeElement
this.opening = new EventEmitter('opening');
// TODO: Use Animation Class
- this.domElement.addEventListener('transitionend', ev => {
+ this.ele.addEventListener('transitionend', ev => {
this.setChanging(false)
})
}
onInit() {
console.log('Aside content', this.content);
- this.contentElement = (this.content instanceof Node) ? this.content : this.content.domElement;
+ this.contentElement = (this.content instanceof Node) ? this.content : this.content.ele;
Aside.applyConfig(this);
this.gestureDelegate = Aside.getDelegate(this, 'gesture');
@@ -86,7 +86,7 @@ export class Aside {
setChanging(isChanging) {
if (isChanging !== this.isChanging) {
this.isChanging = isChanging
- this.domElement.classList[isChanging ? 'add' : 'remove']('changing');
+ this.ele.classList[isChanging ? 'add' : 'remove']('changing');
}
}
diff --git a/ionic/components/aside/extensions/gestures.js b/ionic/components/aside/extensions/gestures.js
index 9ea5f9116c..144d2bf35e 100644
--- a/ionic/components/aside/extensions/gestures.js
+++ b/ionic/components/aside/extensions/gestures.js
@@ -47,7 +47,7 @@ class AsideGesture extends SlideEdgeGesture {
getSlideBoundaries() {
return {
min: 0,
- max: this.aside.domElement.offsetWidth
+ max: this.aside.ele.offsetWidth
};
}
}
@@ -60,7 +60,7 @@ export class RightAsideGesture extends LeftAsideGesture {
}
getSlideBoundaries() {
return {
- min: -this.aside.domElement.offsetWidth,
+ min: -this.aside.ele.offsetWidth,
max: 0
};
}
@@ -74,7 +74,7 @@ export class TopAsideGesture extends AsideGesture {
getSlideBoundaries() {
return {
min: 0,
- max: this.aside.domElement.offsetHeight
+ max: this.aside.ele.offsetHeight
};
}
}
@@ -85,7 +85,7 @@ export class BottomAsideGesture extends TopAsideGesture {
}
getSlideBoundaries() {
return {
- min: -this.aside.domElement.offsetHeight,
+ min: -this.aside.ele.offsetHeight,
max: 0
};
}
diff --git a/ionic/components/aside/extensions/types.js b/ionic/components/aside/extensions/types.js
index 1fcd765f98..6f0b61d0d0 100644
--- a/ionic/components/aside/extensions/types.js
+++ b/ionic/components/aside/extensions/types.js
@@ -4,13 +4,13 @@ import {CSS} from 'ionic/util/dom'
// TODO use setters instead of direct dom manipulation
const asideManipulator = {
setSliding(sliding) {
- this.aside.domElement.classList[sliding ? 'add' : 'remove']('no-transition');
+ this.aside.ele.classList[sliding ? 'add' : 'remove']('no-transition');
},
setOpen(open) {
- this.aside.domElement.classList[open ? 'add' : 'remove']('open');
+ this.aside.ele.classList[open ? 'add' : 'remove']('open');
},
setTransform(t) {
- this.aside.domElement.style[CSS.transform] = t;
+ this.aside.ele.style[CSS.transform] = t;
}
}
const contentManipulator = {
diff --git a/ionic/components/content/content.js b/ionic/components/content/content.js
index 8015fd88cb..dcc7b4de8d 100644
--- a/ionic/components/content/content.js
+++ b/ionic/components/content/content.js
@@ -11,13 +11,13 @@ import {View} from 'angular2/src/core/annotations_impl/view';
})
export class Content {
constructor(elementRef: ElementRef) {
- // TODO(maxlynch): we need this domElement for things like aside, etc.
+ // TODO(maxlynch): we need this nativeElement for things like aside, etc.
// but we should be able to stamp out this behavior with a base IonicComponent
- // or something, so all elements have a domElement reference or a getElement() method
- this.domElement = elementRef.domElement;
+ // or something, so all elements have a nativeElement reference or a getElement() method
+ this.ele = elementRef.nativeElement;
setTimeout(() => {
- this.scrollElement = this.domElement.children[0];
+ this.scrollElement = this.ele.children[0];
});
}
diff --git a/ionic/components/icon/icon.js b/ionic/components/icon/icon.js
index 7e92f8fafa..2d0a2cb1cb 100644
--- a/ionic/components/icon/icon.js
+++ b/ionic/components/icon/icon.js
@@ -15,11 +15,11 @@ import {ElementRef} from 'angular2/src/core/compiler/element_ref';
})
export class Icon {
constructor(elementRef: ElementRef) {
- this.domElement = elementRef.domElement;
+ this.ele = elementRef.nativeElement;
}
onInit() {
if (this.name) {
- this.domElement.classList.add(this.name);
+ this.ele.classList.add(this.name);
this.label = this.name;
}
}
diff --git a/ionic/components/item/item-swipe-buttons.js b/ionic/components/item/item-swipe-buttons.js
index 7fa18e32ea..1cf30a0d96 100644
--- a/ionic/components/item/item-swipe-buttons.js
+++ b/ionic/components/item/item-swipe-buttons.js
@@ -12,7 +12,7 @@ export class ItemPrimarySwipeButtons {
@Parent() item: Item
) {
item.primarySwipeButtons = this
- this.domElement = elementRef.domElement
+ this.ele = elementRef.nativeElement
this.parentItem = item
this.gesture = new ItemSlideGesture(this)
this.gesture.listen()
@@ -22,7 +22,7 @@ export class ItemPrimarySwipeButtons {
if (isOpen !== this.isOpen) {
this.isOpen = isOpen
requestAnimationFrame(() => {
- this.domElement.classList[isOpen?'add':'remove'](isOpen)
+ this.ele.classList[isOpen?'add':'remove'](isOpen)
})
}
}
@@ -36,13 +36,13 @@ export class ItemSecondarySwipeButtons {
class ItemSlideGesture extends SlideGesture {
constructor(buttons) {
- super(buttons.parentItem.domElement)
+ super(buttons.parentItem.ele)
this.buttons = buttons
}
getSlideBoundaries() {
return {
- min: -this.buttons.domElement.offsetWidth,
+ min: -this.buttons.ele.offsetWidth,
max: 0,
};
}
@@ -52,18 +52,18 @@ class ItemSlideGesture extends SlideGesture {
}
onSlideBeforeStart() {
- this.buttons.domElement.classList.add('changing')
- this.buttons.domElement.classList.add('no-transition')
+ this.buttons.ele.classList.add('changing')
+ this.buttons.ele.classList.add('no-transition')
return new Promise(resolve => {
requestAnimationFrame(resolve)
})
}
onSlide(slide, ev) {
- this.buttons.domElement.style.transform = 'translate3d(' + slide.distance + 'px,0,0)';
+ this.buttons.ele.style.transform = 'translate3d(' + slide.distance + 'px,0,0)';
}
onSlideEnd(slide, ev) {
- this.buttons.domElement.style.transform = ''
- this.buttons.domElement.classList.remove('no-transition')
+ this.buttons.ele.style.transform = ''
+ this.buttons.ele.classList.remove('no-transition')
if (Math.abs(ev.velocityX) > 0.2 || Math.abs(slide.delta) > Math.abs(slide.max) * 0.5) {
this.buttons.setOpen(!this.buttons.isOpen);
}
diff --git a/ionic/components/item/item.js b/ionic/components/item/item.js
index 5251a997e6..89e1ffceae 100644
--- a/ionic/components/item/item.js
+++ b/ionic/components/item/item.js
@@ -58,7 +58,7 @@ export class Item {
this._isTransitioning = false;
this._transform = '';
- this.domElement = elementRef.domElement;
+ this.ele = elementRef.nativeElement;
this.swipeButtons = {};
this.optionButtons = {};
}
diff --git a/ionic/components/layout/layout.js b/ionic/components/layout/layout.js
index 1dafdf9bd4..5a019505d3 100644
--- a/ionic/components/layout/layout.js
+++ b/ionic/components/layout/layout.js
@@ -1,4 +1,4 @@
-import {NgElement, Component, View, Parent} from 'angular2/angular2'
+import {ElementRef, Component, View, Parent} from 'angular2/angular2'
@Component({
@@ -12,10 +12,10 @@ import {NgElement, Component, View, Parent} from 'angular2/angular2'
})
export class Layout {
constructor(
- @NgElement() ngElement:NgElement
+ @ElementRef() elementRef:ElementRef
) {
- this.domElement = ngElement.domElement
- this.eqEle = this.domElement.lastElementChild
+ this.ele = ngElement.nativeElement
+ this.eqEle = this.ele.lastElementChild
window.requestAnimationFrame(() => {
this.initLayout()
@@ -26,8 +26,8 @@ export class Layout {
this.mqs = {}
- for (let x = 0; x < this.domElement.attributes.length; x++) {
- let attr = this.domElement.attributes[x]
+ for (let x = 0; x < this.ele.attributes.length; x++) {
+ let attr = this.ele.attributes[x]
let val = attr.nodeValue
let mqClassname = attr.nodeName
@@ -38,7 +38,7 @@ export class Layout {
this.mqs[mql.media] = (mql) => {
console.log(mql.media, mql.matches, mqClassname)
window.requestAnimationFrame(() => {
- this.domElement.classList[mql.matches ? 'add' : 'remove'](mqClassname)
+ this.ele.classList[mql.matches ? 'add' : 'remove'](mqClassname)
})
}
diff --git a/ionic/components/list/list.js b/ionic/components/list/list.js
index e7b11a35bd..dcb04433f4 100644
--- a/ionic/components/list/list.js
+++ b/ionic/components/list/list.js
@@ -22,7 +22,7 @@ export class List {
}
constructor(elementRef: ElementRef) {
- this.domElement = elementRef.domElement;
+ this.ele = elementRef.nativeElement;
}
onInit() {
diff --git a/ionic/components/list/virtual.js b/ionic/components/list/virtual.js
index 129b3b9c12..0bc3ca62de 100644
--- a/ionic/components/list/virtual.js
+++ b/ionic/components/list/virtual.js
@@ -5,7 +5,7 @@ export class ListVirtualScroll {
this.list = list;
this.content = this.list.content;
- this.viewportHeight = this.content.domElement.offsetHeight;
+ this.viewportHeight = this.content.ele.offsetHeight;
this.viewContainer = this.list.itemTemplate.viewContainer;
@@ -31,7 +31,7 @@ export class ListVirtualScroll {
}
resize() {
- this.viewportHeight = this.content.domElement.offsetHeight;
+ this.viewportHeight = this.content.ele.offsetHeight;
this.viewportScrollHeight = this.content.scrollElement.scrollHeight;
this.virtualHeight = this.list.items.length * this.itemHeight;
@@ -100,7 +100,7 @@ export class ListVirtualScroll {
}
console.log('VIRTUAL SCROLL: scroll(scrollTop:', st, 'topIndex:', topIndex, 'bottomIndex:', bottomIndex, ')');
- console.log('Container has', this.list.domElement.children.length, 'children');
+ console.log('Container has', this.list.ele.children.length, 'children');
}
cellAtIndex(index) {
diff --git a/ionic/components/nav-bar/nav-bar.js b/ionic/components/nav-bar/nav-bar.js
index 4465a590ea..6b1bb791c6 100644
--- a/ionic/components/nav-bar/nav-bar.js
+++ b/ionic/components/nav-bar/nav-bar.js
@@ -39,8 +39,8 @@ import * as dom from '../../util/dom';
})
export class Navbar {
constructor(item: ViewItem, elementRef: ElementRef) {
- this._ele = elementRef.domElement;
- this._itmEles = [];
+ this.ele = elementRef.nativeElement;
+ this.itemEles = [];
item.navbarView(this);
this.bbDefault = 'Back';
@@ -48,40 +48,40 @@ export class Navbar {
}
element() {
- return this._ele;
+ return this.ele;
}
- backButtonElement() {
+ backButtonElement(ele) {
if (arguments.length) {
- this._bbEle = arguments[0];
+ this._bbEle = ele;
}
return this._bbEle;
}
- backButtonTextElement() {
+ backButtonTextElement(ele) {
if (arguments.length) {
- this._bbTxEle = arguments[0];
+ this._bbTxEle = ele;
}
return this._bbTxEle;
}
- titleElement() {
+ titleElement(ele) {
if (arguments.length) {
- this._nbTlEle = arguments[0];
+ this._nbTlEle = ele;
}
return this._nbTlEle;
}
- itemElements() {
+ itemElements(ele) {
if (arguments.length) {
- this._itmEles.push(arguments[0]);
+ this.itemEles.push(ele);
}
- return this._itmEles;
+ return this.itemEles;
}
- titleText() {
+ titleText(ele) {
if (arguments.length) {
- this._ttTxt.push(arguments[0]);
+ this._ttTxt.push(ele);
}
return this._ttTxt;
}
@@ -89,7 +89,7 @@ export class Navbar {
alignTitle() {
// called after the navbar/title has had a moment to
// finish rendering in their correct locations
- const navbarEle = this._ele;
+ const navbarEle = this.ele;
const titleEle = this._ttEle || (this._ttEle = navbarEle.querySelector('ion-title'));
// don't bother if there's no title element
@@ -125,7 +125,7 @@ export class Navbar {
didEnter() {
setTimeout(() => {
- const titleEle = this._ttEle || (this._ttEle = this._ele.querySelector('ion-title'));
+ const titleEle = this._ttEle || (this._ttEle = this.ele.querySelector('ion-title'));
//this.titleText((titleEle && titleEle.textContent) || '');
}, 32);
}
@@ -140,7 +140,7 @@ export class Navbar {
class BackButton {
constructor(@Parent() navbar: Navbar, item: ViewItem, elementRef: ElementRef) {
this.item = item;
- navbar.backButtonElement(elementRef.domElement);
+ navbar.backButtonElement(elementRef.nativeElement);
}
goBack(ev) {
@@ -155,7 +155,7 @@ class BackButton {
})
class BackButtonText {
constructor(@Parent() navbar: Navbar, elementRef: ElementRef) {
- navbar.backButtonTextElement(elementRef.domElement);
+ navbar.backButtonTextElement(elementRef.nativeElement);
}
}
@@ -164,7 +164,7 @@ class BackButtonText {
})
class Title {
constructor(@Parent() navbar: Navbar, elementRef: ElementRef) {
- navbar.titleElement(elementRef.domElement);
+ navbar.titleElement(elementRef.nativeElement);
}
}
@@ -173,7 +173,7 @@ class Title {
})
class NavbarItem {
constructor(@Parent() navbar: Navbar, elementRef: ElementRef) {
- navbar.itemElements(elementRef.domElement);
+ navbar.itemElements(elementRef.nativeElement);
}
}
diff --git a/ionic/components/nav/pane.js b/ionic/components/nav/pane.js
index 2302b9a311..95b3270868 100644
--- a/ionic/components/nav/pane.js
+++ b/ionic/components/nav/pane.js
@@ -39,7 +39,10 @@ export class PaneController {
// add a Pane element
// when the Pane is added, it'll also add its reference to the panes object
- viewCtrl.loader.loadNextToExistingLocation(Pane, viewCtrl.anchorElementRef(), injector).then(() => {
+ // viewCtrl.compiler.compileInHost(this.ComponentType).then(componentProtoViewRef => {
+
+ // });
+ viewCtrl.loader.loadNextToLocation(Pane, viewCtrl.anchorElementRef(), injector).then(() => {
// get the pane reference by name
pane = this.panes[key];
@@ -62,7 +65,7 @@ export class PaneController {
// as each section is compiled and added to the Pane
// the section will add a reference to itself in the Pane's sections object
promises.push(
- viewCtrl.loader.loadNextToExistingLocation(SectionClass, sectionAnchorElementRef)
+ viewCtrl.loader.loadNextToLocation(SectionClass, sectionAnchorElementRef)
);
});
@@ -108,16 +111,16 @@ export class Pane {
}
constructor(viewCtrl: ViewController, elementRef: ElementRef) {
- this.domElement = elementRef.domElement;
+ this.ele = elementRef.nativeElement;
viewCtrl.panes.add(this);
}
width() {
- return this.domElement.offsetWidth;
+ return this.ele.offsetWidth;
}
showPane(val) {
- this.domElement.classList[val ? 'add' : 'remove']('show-pane');
+ this.ele.classList[val ? 'add' : 'remove']('show-pane');
}
}
diff --git a/ionic/components/nav/swipe-handle.js b/ionic/components/nav/swipe-handle.js
index f8e3fa8356..e74a4094ec 100644
--- a/ionic/components/nav/swipe-handle.js
+++ b/ionic/components/nav/swipe-handle.js
@@ -11,7 +11,7 @@ import {Gesture} from 'ionic/gestures/gesture';
@Directive({
selector: '.swipe-handle',
host: {
- '[class.show-handle]': 'showHandle()'
+ '[class.show-handle]': 'showHandle'
}
})
export class SwipeHandle {
@@ -27,7 +27,7 @@ export class SwipeHandle {
self.pane = pane;
self.viewCtrl = viewCtrl;
- let gesture = self.gesture = new Gesture(elementRef.domElement);
+ let gesture = self.gesture = new Gesture(elementRef.nativeElement);
gesture.listen();
function dragHorizontal(ev) {
@@ -92,7 +92,7 @@ export class SwipeHandle {
this.viewCtrl.swipeBackProgress( (ev.gesture.center.x - this.startX) / this.width );
}
- showHandle() {
+ get showHandle() {
return (this.viewCtrl ? this.viewCtrl.swipeBackEnabled() : false);
}
diff --git a/ionic/components/overlay/overlay.js b/ionic/components/overlay/overlay.js
index 80492e7332..b84799eed0 100644
--- a/ionic/components/overlay/overlay.js
+++ b/ionic/components/overlay/overlay.js
@@ -24,7 +24,7 @@ export class Overlay {
overlay.setApp(app);
overlay._type = overlayType;
overlay._handle = opts && opts.handle;
- overlay._domElement = ref.elementRef.domElement;
+ overlay._ele = ref.elementRef.nativeElement;
overlay.extendOptions(opts);
overlay.zIndex = ROOT_Z_INDEX;
@@ -49,7 +49,7 @@ export class Overlay {
_open(opts) {
let animationName = (opts && opts.animation) || this.options.enterAnimation;
- let enterAnimation = Animation.create(this._domElement, animationName);
+ let enterAnimation = Animation.create(this._ele, animationName);
enterAnimation.before.addClass('ion-app');
enterAnimation.before.addClass('show-overlay');
ClickBlock(true, enterAnimation.duration() + 200);
@@ -66,7 +66,7 @@ export class Overlay {
close(opts) {
return new Promise(resolve => {
let animationName = (opts && opts.animation) || this.options.leaveAnimation;
- let leavingAnimation = Animation.create(this._domElement, animationName);
+ let leavingAnimation = Animation.create(this._ele, animationName);
leavingAnimation.after.removeClass('show-overlay');
ClickBlock(true, leavingAnimation.duration() + 200);
diff --git a/ionic/components/radio/radio.js b/ionic/components/radio/radio.js
index a8f0af42b6..4138d1ea07 100644
--- a/ionic/components/radio/radio.js
+++ b/ionic/components/radio/radio.js
@@ -20,12 +20,12 @@ export class RadioGroup {
elementRef: ElementRef//,
//cd:ControlDirective
) {
- this.domElement = elementRef.domElement
+ this.ele = elementRef.nativeElement
// this.config = RadioGroup.config.invoke(this)
// this.controlDirective = cd;
// cd.valueAccessor = this; //ControlDirective should inject CheckboxControlDirective
- this.domElement.classList.add('list');
+ this.ele.classList.add('list');
this.buttons = [];
}
@@ -122,10 +122,10 @@ export class RadioButton {
@Ancestor() group: RadioGroup,
elementRef: ElementRef
) {
- this.domElement = elementRef.domElement;
+ this.ele = elementRef.ele;
- this.domElement.classList.add('item')
- this.domElement.setAttribute('aria-checked', true)
+ this.ele.classList.add('item')
+ this.ele.setAttribute('aria-checked', true)
this.group = group;
@@ -133,13 +133,13 @@ export class RadioButton {
}
setActive(isActive) {
- // TODO: No domElement
+ // TODO: No ele
if(isActive) {
- this.domElement.classList.add('active');
- this.domElement.setAttribute('aria-checked', true)
+ this.ele.classList.add('active');
+ this.ele.setAttribute('aria-checked', true)
} else {
- this.domElement.classList.remove('active');
- this.domElement.setAttribute('aria-checked', false)
+ this.ele.classList.remove('active');
+ this.ele.setAttribute('aria-checked', false)
}
}
diff --git a/ionic/components/scroll/pull-to-refresh.js b/ionic/components/scroll/pull-to-refresh.js
index 575045fb1e..9e31fde806 100644
--- a/ionic/components/scroll/pull-to-refresh.js
+++ b/ionic/components/scroll/pull-to-refresh.js
@@ -17,8 +17,8 @@ export class Refresher {
@Parent() content: Content,
element: ElementRef
) {
- this.domElement = element.domElement;
- this.domElement.classList.add('content');
+ this.ele = element.nativeElement;
+ this.ele.classList.add('content');
this.refresh = new EventEmitter('refresh');
diff --git a/ionic/components/search-bar/search-bar.js b/ionic/components/search-bar/search-bar.js
index b98d6d5885..8d976444f5 100644
--- a/ionic/components/search-bar/search-bar.js
+++ b/ionic/components/search-bar/search-bar.js
@@ -37,7 +37,7 @@ export class SearchBar {
elementRef: ElementRef//,
//cd:ControlDirective
) {
- this.domElement = elementRef.domElement;
+ this.ele = elementRef.nativeElement;
// this.controlDirective = cd;
// cd.valueAccessor = this; //ControlDirective should inject CheckboxControlDirective
diff --git a/ionic/components/segment/segment.js b/ionic/components/segment/segment.js
index 8f14388d9d..a468555c0b 100644
--- a/ionic/components/segment/segment.js
+++ b/ionic/components/segment/segment.js
@@ -89,7 +89,7 @@ export class Segment {
elementRef: ElementRef,
renderer: Renderer
) {
- this.domElement = elementRef.domElement
+ this.ele = elementRef.nativeElement
this.elementRef = elementRef;
this.renderer = renderer;
@@ -177,7 +177,7 @@ export class SegmentButton {
@Ancestor() segment: Segment,
elementRef: ElementRef
) {
- this.domElement = elementRef.domElement
+ this.ele = elementRef.ele
this.segment = segment;
}
diff --git a/ionic/components/slides/slides.js b/ionic/components/slides/slides.js
index 7028aaa9e4..1401aee362 100644
--- a/ionic/components/slides/slides.js
+++ b/ionic/components/slides/slides.js
@@ -49,7 +49,7 @@ export class Slides {
constructor(elementRef: ElementRef) {
// Grab the main container, and the slides-view wrapper
- this.domElement = elementRef.domElement;
+ this.ele = elementRef.nativeElement;
this.slides = [];
this.currentIndex = 0;
@@ -72,7 +72,7 @@ export class Slides {
this.continuous = util.isDefined(this.loop) && (this.slides.length > 1 ? true : false);
// Grab the wrapper element that contains the slides
- this.wrapperElement = this.domElement.children[0];
+ this.wrapperElement = this.ele.children[0];
this.resize();
@@ -115,7 +115,7 @@ export class Slides {
resize() {
// Get the width of the container, which is the viewport
// that the user will actually see.
- this.containerWidth = this.domElement.offsetWidth || this.domElement.getBoundingClientRect().width;
+ this.containerWidth = this.ele.offsetWidth || this.ele.getBoundingClientRect().width;
// Set the wrapper element to the total width of the child elements
this.wrapperElement.style.width = ((this.containerWidth * this.slides.length)) + 'px';
@@ -467,7 +467,7 @@ export class Slide {
@Ancestor() slides: Slides,
elementRef: ElementRef
) {
- this.domElement = elementRef.domElement;
+ this.ele = elementRef.nativeElement;
slides.add(this);
}
@@ -484,8 +484,8 @@ export class Slide {
duration = duration || 0;
- this.domElement.style[dom.CSS.transition + 'Duration'] = duration + 'ms';
- this.domElement.style[dom.CSS.transform] = 'translate3d(' + x + 'px, 0, 0)';
+ this.ele.style[dom.CSS.transition + 'Duration'] = duration + 'ms';
+ this.ele.style[dom.CSS.transform] = 'translate3d(' + x + 'px, 0, 0)';
}
get translateX() {
@@ -494,7 +494,7 @@ export class Slide {
set left(x) {
this._left = x;
- this.domElement.style.left = x + 'px';
+ this.ele.style.left = x + 'px';
}
get left() {
return this._left;
@@ -502,7 +502,7 @@ export class Slide {
set width(width) {
this._width = width;
- this.domElement.style.width = width + 'px';
+ this.ele.style.width = width + 'px';
}
get width() {
@@ -524,7 +524,7 @@ export class SlidePager {
@Ancestor() slides: Slides,
elementRef: ElementRef
) {
- this.domElement = elementRef.domElement;
+ this.ele = elementRef.nativeElement;
this.slides = slides;
@@ -545,7 +545,7 @@ export class SlidePager {
export class SlidesGesture extends DragGesture {
constructor(slides) {
- super(slides.domElement);
+ super(slides.ele);
this.slides = slides;
}
onDrag(event) {
diff --git a/ionic/components/split-view/split-view.js b/ionic/components/split-view/split-view.js
index 8234350b49..b07d3bdfc0 100644
--- a/ionic/components/split-view/split-view.js
+++ b/ionic/components/split-view/split-view.js
@@ -1,4 +1,4 @@
-import {Component, Parent, Decorator, View, NgElement} from 'angular2/angular2'
+import {Component, Parent, Decorator, View, ElementRef} from 'angular2/angular2'
import {Nav} from 'ionic/components/nav/nav'
import * as util from 'ionic/util'
@@ -59,10 +59,10 @@ ion-split-view > [split-viewport] {
})
export class SplitView {
constructor(
- element: NgElement,
+ elementRef: ElementRef,
@Parent() navPane: NavPane
) {
- this.domElement = element.domElement
+ this.ele = elementRef.nativeElement
this.navPane = navPane
// TODO mq.addEventListener() doesn't work with zone.js
diff --git a/ionic/components/switch/switch.js b/ionic/components/switch/switch.js
index 4bb14245bb..462686098f 100644
--- a/ionic/components/switch/switch.js
+++ b/ionic/components/switch/switch.js
@@ -36,21 +36,21 @@ export class Switch {
elementRef: ElementRef,
cd: ControlDirective
) {
- this.domElement = elementRef.domElement
+ this.ele = elementRef.nativeElement
this.config = Switch.config.invoke(this)
this.controlDirective = cd;
cd.valueAccessor = this;
// TODO: These are temporary until we figure out what to do
// with @PropertSetter
- let setAriaRole = (v) => this.domElement.setAttribute('aria-role', v)
- let setAriaChecked = (v) => this.domElement.setAttribute('aria-checked', v)
- let setAriaInvalid = (v) => this.domElement.setAttribute('aria-invalid', v)
- let setAriaDisabled = (v) => this.domElement.setAttribute('aria-disabled', v)
+ let setAriaRole = (v) => this.ele.setAttribute('aria-role', v)
+ let setAriaChecked = (v) => this.ele.setAttribute('aria-checked', v)
+ let setAriaInvalid = (v) => this.ele.setAttribute('aria-invalid', v)
+ let setAriaDisabled = (v) => this.ele.setAttribute('aria-disabled', v)
- //let setChecked = (v) => this.domElement.setAttribute('checked', v);
+ //let setChecked = (v) => this.ele.setAttribute('checked', v);
- this.domElement.classList.add('item')
+ this.ele.classList.add('item')
// TODO: These rely on the commented-out PropertySetter's above
//setAriaRole('checkbox')
diff --git a/ionic/components/tabs/tab.js b/ionic/components/tabs/tab.js
index e4ba7b4906..9db9e81c25 100644
--- a/ionic/components/tabs/tab.js
+++ b/ionic/components/tabs/tab.js
@@ -23,7 +23,7 @@ import {Content} from '../content/content';
host: {
'[attr.id]': 'panelId',
'[attr.aria-labelledby]': 'labeledBy',
- '[attr.aria-hidden]': '!isSelected',
+ '[attr.aria-hidden]': 'isNotSelected',
'[class.tab-selected]': 'isSelected',
'role': 'tabpanel'
}
@@ -51,7 +51,7 @@ export class Tab extends ViewController {
let item = this.item = new ViewItem(tabs.parent);
item.setInstance(this);
- item.viewElement(elementRef.domElement);
+ item.viewElement(elementRef.nativeElement);
tabs.addTab(this);
this.navbarView = item.navbarView = () => {
@@ -97,6 +97,10 @@ export class Tab extends ViewController {
return this.tabs.isActive(this.item);
}
+ get isNotSelected() {
+ return !this.tabs.isActive(this.item);
+ }
+
}
diff --git a/ionic/components/toolbar/toolbar.js b/ionic/components/toolbar/toolbar.js
index f5af456b8d..62d66ff15a 100644
--- a/ionic/components/toolbar/toolbar.js
+++ b/ionic/components/toolbar/toolbar.js
@@ -20,7 +20,7 @@ import * as dom from '../../util/dom';
})
export class Toolbar {
constructor(elementRef:ElementRef, ngZone:NgZone) {
- this.domElement = elementRef.domElement;
+ this.ele = elementRef.nativeElement;
Toolbar.config.invoke(this);
/*
@@ -34,7 +34,7 @@ export class Toolbar {
}
alignTitle() {
- const toolbarEle = this.domElement;
+ const toolbarEle = this.ele;
const innerTitleEle = this._innerTitleEle || (this._innerTitleEle = toolbarEle.querySelector('.toolbar-inner-title'));
const titleEle = this._titleEle || (this._titleEle = innerTitleEle.querySelector('ion-title'));
const style = this._style || (this._style = window.getComputedStyle(titleEle));
diff --git a/ionic/components/view/view-controller.js b/ionic/components/view/view-controller.js
index 9f5fa178e5..79dc08bed1 100644
--- a/ionic/components/view/view-controller.js
+++ b/ionic/components/view/view-controller.js
@@ -28,7 +28,7 @@ export class ViewController {
this.injector = injector;
// TODO: Make this generic?
- this.domElement = elementRef.domElement;
+ this.ele = elementRef.nativeElement;
this.items = [];
this.navCtrl = new NavController(this);
diff --git a/ionic/components/view/view.js b/ionic/components/view/view.js
index 8b28f80414..24b090d655 100644
--- a/ionic/components/view/view.js
+++ b/ionic/components/view/view.js
@@ -10,7 +10,6 @@ import {ViewItem} from './view-item';
})
export class IonView {
constructor(@Optional() item: ViewItem, elementRef: ElementRef) {
- console.log('View constructor', item)
- this.domElement = elementRef.domElement;
+ this.ele = elementRef.nativeElement;
}
}
diff --git a/ionic/transitions/transition.js b/ionic/transitions/transition.js
index 89f247849f..99717ad6d3 100644
--- a/ionic/transitions/transition.js
+++ b/ionic/transitions/transition.js
@@ -67,7 +67,7 @@ export class Transition extends Animation {
this.leavingTitle = new Animation(leavingItem.titleElement());
leavingNavbar.add(this.leavingTitle);
- this.leavingNavbarItems = new Animation(leavingItem.navbarItemElements())
+ this.leavingNavbarItems = new Animation(leavingItem.navbarItemElements());
this.leavingNavbarItems.fadeOut();
leavingNavbar.add(this.leavingNavbarItems);
diff --git a/scripts/resources/angular2.dev.js b/scripts/resources/angular2.dev.js
index c3e92bef13..ccbd005585 100644
--- a/scripts/resources/angular2.dev.js
+++ b/scripts/resources/angular2.dev.js
@@ -7496,8 +7496,38 @@ System.register("angular2/src/facade/collection", ["angular2/src/facade/lang"],
}
}
}
+ function iterableToList(ii) {
+ var res = [];
+ var $__4 = true;
+ var $__5 = false;
+ var $__6 = undefined;
+ try {
+ for (var $__2 = void 0,
+ $__1 = (ii)[$traceurRuntime.toProperty(Symbol.iterator)](); !($__4 = ($__2 = $__1.next()).done); $__4 = true) {
+ var i = $__2.value;
+ {
+ res.push(i);
+ }
+ }
+ } catch ($__7) {
+ $__5 = true;
+ $__6 = $__7;
+ } finally {
+ try {
+ if (!$__4 && $__1.return != null) {
+ $__1.return();
+ }
+ } finally {
+ if ($__5) {
+ throw $__6;
+ }
+ }
+ }
+ return res;
+ }
$__export("isListLikeIterable", isListLikeIterable);
$__export("iterateListLike", iterateListLike);
+ $__export("iterableToList", iterableToList);
return {
setters: [function($__m) {
isJsObject = $__m.isJsObject;
@@ -7567,31 +7597,19 @@ System.register("angular2/src/facade/collection", ["angular2/src/facade/lang"],
MapWrapper = (function() {
function MapWrapper() {}
return ($traceurRuntime.createClass)(MapWrapper, {}, {
- create: function() {
- return new Map();
- },
clone: function(m) {
return createMapFromMap(m);
},
createFromStringMap: function(stringMap) {
- var result = MapWrapper.create();
+ var result = new Map();
for (var prop in stringMap) {
- MapWrapper.set(result, prop, stringMap[prop]);
+ result.set(prop, stringMap[prop]);
}
return result;
},
createFromPairs: function(pairs) {
return createMapFromPairs(pairs);
},
- get: function(m, k) {
- return m.get(k);
- },
- set: function(m, k, v) {
- m.set(k, v);
- },
- contains: function(m, k) {
- return m.has(k);
- },
forEach: function(m, fn) {
m.forEach(fn);
},
@@ -7601,9 +7619,6 @@ System.register("angular2/src/facade/collection", ["angular2/src/facade/lang"],
delete: function(m, k) {
m.delete(k);
},
- clear: function(m) {
- m.clear();
- },
clearValues: function(m) {
_clearValues(m);
},
@@ -7611,10 +7626,10 @@ System.register("angular2/src/facade/collection", ["angular2/src/facade/lang"],
return m;
},
keys: function(m) {
- return m.keys();
+ return Array.from(m.keys());
},
values: function(m) {
- return m.values();
+ return Array.from(m.values());
}
});
}());
@@ -7688,12 +7703,12 @@ System.register("angular2/src/facade/collection", ["angular2/src/facade/lang"],
ListWrapper = (function() {
function ListWrapper() {}
return ($traceurRuntime.createClass)(ListWrapper, {}, {
- create: function() {
- return new List();
- },
createFixedSize: function(size) {
return new List(size);
},
+ createGrowableSize: function(size) {
+ return new List(size);
+ },
get: function(m, k) {
return m[k];
},
@@ -7711,9 +7726,6 @@ System.register("angular2/src/facade/collection", ["angular2/src/facade/lang"],
fn(array[i]);
}
},
- push: function(array, el) {
- array.push(el);
- },
first: function(array) {
if (!array)
return null;
@@ -8047,21 +8059,21 @@ System.register("angular2/src/util/decorators", ["angular2/src/facade/lang"], fu
if (this instanceof annotationCls) {
return annotationInstance;
} else {
- var ParamDecorator = function(cls, unusedKey, index) {
- var parameters = Reflect.getMetadata('parameters', cls);
- parameters = parameters || [];
- while (parameters.length <= index) {
- parameters.push(null);
- }
- parameters[index] = parameters[index] || [];
- var annotationsForParam = parameters[index];
- annotationsForParam.push(annotationInstance);
- Reflect.defineMetadata('parameters', parameters, cls);
- return cls;
- };
ParamDecorator.annotation = annotationInstance;
return ParamDecorator;
}
+ function ParamDecorator(cls, unusedKey, index) {
+ var parameters = Reflect.getMetadata('parameters', cls);
+ parameters = parameters || [];
+ while (parameters.length <= index) {
+ parameters.push(null);
+ }
+ parameters[index] = parameters[index] || [];
+ var annotationsForParam = parameters[index];
+ annotationsForParam.push(annotationInstance);
+ Reflect.defineMetadata('parameters', parameters, cls);
+ return cls;
+ }
}
ParamDecoratorFactory.prototype = Object.create(annotationCls.prototype);
return ParamDecoratorFactory;
@@ -8304,7 +8316,7 @@ System.register("angular2/src/change_detection/parser/locals", ["angular2/src/fa
}
return ($traceurRuntime.createClass)(Locals, {
contains: function(name) {
- if (MapWrapper.contains(this.current, name)) {
+ if (this.current.has(name)) {
return true;
}
if (isPresent(this.parent)) {
@@ -8313,8 +8325,8 @@ System.register("angular2/src/change_detection/parser/locals", ["angular2/src/fa
return false;
},
get: function(name) {
- if (MapWrapper.contains(this.current, name)) {
- return MapWrapper.get(this.current, name);
+ if (this.current.has(name)) {
+ return this.current.get(name);
}
if (isPresent(this.parent)) {
return this.parent.get(name);
@@ -8322,8 +8334,8 @@ System.register("angular2/src/change_detection/parser/locals", ["angular2/src/fa
throw new BaseException(("Cannot find '" + name + "'"));
},
set: function(name, value) {
- if (MapWrapper.contains(this.current, name)) {
- MapWrapper.set(this.current, name, value);
+ if (this.current.has(name)) {
+ this.current.set(name, value);
} else {
throw new BaseException(("Setting of new keys post-construction is not supported. Key: " + name + "."));
}
@@ -8386,21 +8398,11 @@ System.register("angular2/src/change_detection/exceptions", ["angular2/src/facad
System.register("angular2/src/change_detection/interfaces", [], function($__export) {
"use strict";
var __moduleName = "angular2/src/change_detection/interfaces";
- var ProtoChangeDetector,
- ChangeDetection,
- ChangeDispatcher,
- ChangeDetector,
+ var ChangeDetection,
ChangeDetectorDefinition;
return {
setters: [],
execute: function() {
- ProtoChangeDetector = (function() {
- function ProtoChangeDetector() {}
- return ($traceurRuntime.createClass)(ProtoChangeDetector, {instantiate: function(dispatcher) {
- return null;
- }}, {});
- }());
- $__export("ProtoChangeDetector", ProtoChangeDetector);
ChangeDetection = (function() {
function ChangeDetection() {}
return ($traceurRuntime.createClass)(ChangeDetection, {createProtoChangeDetector: function(definition) {
@@ -8408,27 +8410,6 @@ System.register("angular2/src/change_detection/interfaces", [], function($__expo
}}, {});
}());
$__export("ChangeDetection", ChangeDetection);
- ChangeDispatcher = (function() {
- function ChangeDispatcher() {}
- return ($traceurRuntime.createClass)(ChangeDispatcher, {notifyOnBinding: function(bindingRecord, value) {}}, {});
- }());
- $__export("ChangeDispatcher", ChangeDispatcher);
- ChangeDetector = (function() {
- function ChangeDetector() {}
- return ($traceurRuntime.createClass)(ChangeDetector, {
- addChild: function(cd) {},
- addShadowDomChild: function(cd) {},
- removeChild: function(cd) {},
- removeShadowDomChild: function(cd) {},
- remove: function() {},
- hydrate: function(context, locals, directives) {},
- dehydrate: function() {},
- markPathToRootAsCheckOnce: function() {},
- detectChanges: function() {},
- checkNoChanges: function() {}
- }, {});
- }());
- $__export("ChangeDetector", ChangeDetector);
ChangeDetectorDefinition = (function() {
function ChangeDetectorDefinition(id, strategy, variableNames, bindingRecords, directiveRecords) {
this.id = id;
@@ -8475,46 +8456,19 @@ System.register("angular2/src/change_detection/constants", [], function($__expor
System.register("angular2/src/change_detection/pipes/pipe", ["angular2/src/facade/lang"], function($__export) {
"use strict";
var __moduleName = "angular2/src/change_detection/pipes/pipe";
- var __decorate,
- __metadata,
- BaseException,
- CONST,
+ var BaseException,
WrappedValue,
_wrappedValues,
_wrappedIndex,
- Pipe,
- PipeFactory;
+ BasePipe;
function _abstract() {
throw new BaseException('This method is abstract');
}
return {
setters: [function($__m) {
BaseException = $__m.BaseException;
- CONST = $__m.CONST;
}],
execute: function() {
- __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
- return Reflect.decorate(decorators, target, key, desc);
- switch (arguments.length) {
- case 2:
- return decorators.reduceRight(function(o, d) {
- return (d && d(o)) || o;
- }, target);
- case 3:
- return decorators.reduceRight(function(o, d) {
- return (d && d(target, key)), void 0;
- }, void 0);
- case 4:
- return decorators.reduceRight(function(o, d) {
- return (d && d(target, key, o)) || o;
- }, desc);
- }
- };
- __metadata = (this && this.__metadata) || function(k, v) {
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
- return Reflect.metadata(k, v);
- };
WrappedValue = (function() {
function WrappedValue(wrapped) {
this.wrapped = wrapped;
@@ -8528,31 +8482,19 @@ System.register("angular2/src/change_detection/pipes/pipe", ["angular2/src/facad
$__export("WrappedValue", WrappedValue);
_wrappedValues = [new WrappedValue(null), new WrappedValue(null), new WrappedValue(null), new WrappedValue(null), new WrappedValue(null)];
_wrappedIndex = 0;
- Pipe = (function() {
- function Pipe() {}
- return ($traceurRuntime.createClass)(Pipe, {
+ BasePipe = (function() {
+ function BasePipe() {}
+ return ($traceurRuntime.createClass)(BasePipe, {
supports: function(obj) {
- return false;
+ return true;
},
onDestroy: function() {},
transform: function(value) {
- return null;
+ return _abstract();
}
}, {});
}());
- $__export("Pipe", Pipe);
- PipeFactory = (($traceurRuntime.createClass)(function() {}, {
- supports: function(obs) {
- _abstract();
- return false;
- },
- create: function(cdRef) {
- _abstract();
- return null;
- }
- }, {}));
- $__export("PipeFactory", PipeFactory);
- $__export("PipeFactory", PipeFactory = __decorate([CONST(), __metadata('design:paramtypes', [])], PipeFactory));
+ $__export("BasePipe", BasePipe);
}
};
});
@@ -8610,11 +8552,10 @@ System.register("angular2/src/change_detection/proto_record", [], function($__ex
RecordType[RecordType["INVOKE_CLOSURE"] = 6] = "INVOKE_CLOSURE";
RecordType[RecordType["KEYED_ACCESS"] = 7] = "KEYED_ACCESS";
RecordType[RecordType["PIPE"] = 8] = "PIPE";
- RecordType[RecordType["BINDING_PIPE"] = 9] = "BINDING_PIPE";
- RecordType[RecordType["INTERPOLATE"] = 10] = "INTERPOLATE";
- RecordType[RecordType["SAFE_PROPERTY"] = 11] = "SAFE_PROPERTY";
- RecordType[RecordType["SAFE_INVOKE_METHOD"] = 12] = "SAFE_INVOKE_METHOD";
- RecordType[RecordType["DIRECTIVE_LIFECYCLE"] = 13] = "DIRECTIVE_LIFECYCLE";
+ RecordType[RecordType["INTERPOLATE"] = 9] = "INTERPOLATE";
+ RecordType[RecordType["SAFE_PROPERTY"] = 10] = "SAFE_PROPERTY";
+ RecordType[RecordType["SAFE_INVOKE_METHOD"] = 11] = "SAFE_INVOKE_METHOD";
+ RecordType[RecordType["DIRECTIVE_LIFECYCLE"] = 12] = "DIRECTIVE_LIFECYCLE";
})(RecordType || ($__export("RecordType", RecordType = {})));
ProtoRecord = (function() {
function ProtoRecord(mode, name, funcOrValue, args, fixedArgs, contextIndex, directiveIndex, selfIndex, bindingRecord, expressionAsString, lastInBinding, lastInDirective) {
@@ -8636,7 +8577,7 @@ System.register("angular2/src/change_detection/proto_record", [], function($__ex
return this.mode === RecordType.INTERPOLATE || this.mode === RecordType.PRIMITIVE_OP;
},
isPipeRecord: function() {
- return this.mode === RecordType.PIPE || this.mode === RecordType.BINDING_PIPE;
+ return this.mode === RecordType.PIPE;
},
isLifeCycleRecord: function() {
return this.mode === RecordType.DIRECTIVE_LIFECYCLE;
@@ -8704,24 +8645,24 @@ System.register("angular2/src/change_detection/coalesce", ["angular2/src/facade/
var __moduleName = "angular2/src/change_detection/coalesce";
var isPresent,
ListWrapper,
- MapWrapper,
+ Map,
RecordType,
ProtoRecord;
function coalesce(records) {
- var res = ListWrapper.create();
- var indexMap = MapWrapper.create();
+ var res = [];
+ var indexMap = new Map();
for (var i = 0; i < records.length; ++i) {
var r = records[i];
var record = _replaceIndices(r, res.length + 1, indexMap);
var matchingRecord = _findMatching(record, res);
if (isPresent(matchingRecord) && record.lastInBinding) {
- ListWrapper.push(res, _selfRecord(record, matchingRecord.selfIndex, res.length + 1));
- MapWrapper.set(indexMap, r.selfIndex, matchingRecord.selfIndex);
+ res.push(_selfRecord(record, matchingRecord.selfIndex, res.length + 1));
+ indexMap.set(r.selfIndex, matchingRecord.selfIndex);
} else if (isPresent(matchingRecord) && !record.lastInBinding) {
- MapWrapper.set(indexMap, r.selfIndex, matchingRecord.selfIndex);
+ indexMap.set(r.selfIndex, matchingRecord.selfIndex);
} else {
- ListWrapper.push(res, record);
- MapWrapper.set(indexMap, r.selfIndex, record.selfIndex);
+ res.push(record);
+ indexMap.set(r.selfIndex, record.selfIndex);
}
}
return res;
@@ -8742,7 +8683,7 @@ System.register("angular2/src/change_detection/coalesce", ["angular2/src/facade/
return new ProtoRecord(r.mode, r.name, r.funcOrValue, args, r.fixedArgs, contextIndex, r.directiveIndex, selfIndex, r.bindingRecord, r.expressionAsString, r.lastInBinding, r.lastInDirective);
}
function _map(indexMap, value) {
- var r = MapWrapper.get(indexMap, value);
+ var r = indexMap.get(value);
return isPresent(r) ? r : value;
}
$__export("coalesce", coalesce);
@@ -8751,7 +8692,7 @@ System.register("angular2/src/change_detection/coalesce", ["angular2/src/facade/
isPresent = $__m.isPresent;
}, function($__m) {
ListWrapper = $__m.ListWrapper;
- MapWrapper = $__m.MapWrapper;
+ Map = $__m.Map;
}, function($__m) {
RecordType = $__m.RecordType;
ProtoRecord = $__m.ProtoRecord;
@@ -8767,7 +8708,10 @@ System.register("angular2/src/change_detection/binding_record", ["angular2/src/f
var isPresent,
DIRECTIVE,
DIRECTIVE_LIFECYCLE,
- ELEMENT,
+ ELEMENT_PROPERTY,
+ ELEMENT_ATTRIBUTE,
+ ELEMENT_CLASS,
+ ELEMENT_STYLE,
TEXT_NODE,
BindingRecord;
return {
@@ -8777,15 +8721,19 @@ System.register("angular2/src/change_detection/binding_record", ["angular2/src/f
execute: function() {
DIRECTIVE = "directive";
DIRECTIVE_LIFECYCLE = "directiveLifecycle";
- ELEMENT = "element";
+ ELEMENT_PROPERTY = "elementProperty";
+ ELEMENT_ATTRIBUTE = "elementAttribute";
+ ELEMENT_CLASS = "elementClass";
+ ELEMENT_STYLE = "elementStyle";
TEXT_NODE = "textNode";
BindingRecord = (function() {
- function BindingRecord(mode, implicitReceiver, ast, elementIndex, propertyName, setter, lifecycleEvent, directiveRecord) {
+ function BindingRecord(mode, implicitReceiver, ast, elementIndex, propertyName, propertyUnit, setter, lifecycleEvent, directiveRecord) {
this.mode = mode;
this.implicitReceiver = implicitReceiver;
this.ast = ast;
this.elementIndex = elementIndex;
this.propertyName = propertyName;
+ this.propertyUnit = propertyUnit;
this.setter = setter;
this.lifecycleEvent = lifecycleEvent;
this.directiveRecord = directiveRecord;
@@ -8803,33 +8751,60 @@ System.register("angular2/src/change_detection/binding_record", ["angular2/src/f
isDirectiveLifecycle: function() {
return this.mode === DIRECTIVE_LIFECYCLE;
},
- isElement: function() {
- return this.mode === ELEMENT;
+ isElementProperty: function() {
+ return this.mode === ELEMENT_PROPERTY;
+ },
+ isElementAttribute: function() {
+ return this.mode === ELEMENT_ATTRIBUTE;
+ },
+ isElementClass: function() {
+ return this.mode === ELEMENT_CLASS;
+ },
+ isElementStyle: function() {
+ return this.mode === ELEMENT_STYLE;
},
isTextNode: function() {
return this.mode === TEXT_NODE;
}
}, {
createForDirective: function(ast, propertyName, setter, directiveRecord) {
- return new BindingRecord(DIRECTIVE, 0, ast, 0, propertyName, setter, null, directiveRecord);
+ return new BindingRecord(DIRECTIVE, 0, ast, 0, propertyName, null, setter, null, directiveRecord);
},
createDirectiveOnCheck: function(directiveRecord) {
- return new BindingRecord(DIRECTIVE_LIFECYCLE, 0, null, 0, null, null, "onCheck", directiveRecord);
+ return new BindingRecord(DIRECTIVE_LIFECYCLE, 0, null, 0, null, null, null, "onCheck", directiveRecord);
},
createDirectiveOnInit: function(directiveRecord) {
- return new BindingRecord(DIRECTIVE_LIFECYCLE, 0, null, 0, null, null, "onInit", directiveRecord);
+ return new BindingRecord(DIRECTIVE_LIFECYCLE, 0, null, 0, null, null, null, "onInit", directiveRecord);
},
createDirectiveOnChange: function(directiveRecord) {
- return new BindingRecord(DIRECTIVE_LIFECYCLE, 0, null, 0, null, null, "onChange", directiveRecord);
+ return new BindingRecord(DIRECTIVE_LIFECYCLE, 0, null, 0, null, null, null, "onChange", directiveRecord);
},
- createForElement: function(ast, elementIndex, propertyName) {
- return new BindingRecord(ELEMENT, 0, ast, elementIndex, propertyName, null, null, null);
+ createForElementProperty: function(ast, elementIndex, propertyName) {
+ return new BindingRecord(ELEMENT_PROPERTY, 0, ast, elementIndex, propertyName, null, null, null, null);
+ },
+ createForElementAttribute: function(ast, elementIndex, attributeName) {
+ return new BindingRecord(ELEMENT_ATTRIBUTE, 0, ast, elementIndex, attributeName, null, null, null, null);
+ },
+ createForElementClass: function(ast, elementIndex, className) {
+ return new BindingRecord(ELEMENT_CLASS, 0, ast, elementIndex, className, null, null, null, null);
+ },
+ createForElementStyle: function(ast, elementIndex, styleName, unit) {
+ return new BindingRecord(ELEMENT_STYLE, 0, ast, elementIndex, styleName, unit, null, null, null);
},
createForHostProperty: function(directiveIndex, ast, propertyName) {
- return new BindingRecord(ELEMENT, directiveIndex, ast, directiveIndex.elementIndex, propertyName, null, null, null);
+ return new BindingRecord(ELEMENT_PROPERTY, directiveIndex, ast, directiveIndex.elementIndex, propertyName, null, null, null, null);
+ },
+ createForHostAttribute: function(directiveIndex, ast, attributeName) {
+ return new BindingRecord(ELEMENT_ATTRIBUTE, directiveIndex, ast, directiveIndex.elementIndex, attributeName, null, null, null, null);
+ },
+ createForHostClass: function(directiveIndex, ast, className) {
+ return new BindingRecord(ELEMENT_CLASS, directiveIndex, ast, directiveIndex.elementIndex, className, null, null, null, null);
+ },
+ createForHostStyle: function(directiveIndex, ast, styleName, unit) {
+ return new BindingRecord(ELEMENT_STYLE, directiveIndex, ast, directiveIndex.elementIndex, styleName, unit, null, null, null);
},
createForTextNode: function(ast, elementIndex) {
- return new BindingRecord(TEXT_NODE, 0, ast, elementIndex, null, null, null, null);
+ return new BindingRecord(TEXT_NODE, 0, ast, elementIndex, null, null, null, null, null);
}
});
}());
@@ -8845,6 +8820,7 @@ System.register("angular2/src/change_detection/pipes/pipe_registry", ["angular2/
__metadata,
ListWrapper,
isBlank,
+ isPresent,
BaseException,
Injectable,
PipeRegistry;
@@ -8853,6 +8829,7 @@ System.register("angular2/src/change_detection/pipes/pipe_registry", ["angular2/
ListWrapper = $__m.ListWrapper;
}, function($__m) {
isBlank = $__m.isBlank;
+ isPresent = $__m.isPresent;
BaseException = $__m.BaseException;
}, function($__m) {
Injectable = $__m.Injectable;
@@ -8882,19 +8859,33 @@ System.register("angular2/src/change_detection/pipes/pipe_registry", ["angular2/
};
PipeRegistry = (($traceurRuntime.createClass)(function(config) {
this.config = config;
- }, {get: function(type, obj, cdRef) {
- var listOfConfigs = this.config[type];
- if (isBlank(listOfConfigs)) {
+ }, {
+ get: function(type, obj, cdRef, existingPipe) {
+ if (isPresent(existingPipe) && existingPipe.supports(obj))
+ return existingPipe;
+ if (isPresent(existingPipe))
+ existingPipe.onDestroy();
+ var factories = this._getListOfFactories(type, obj);
+ var factory = this._getMatchingFactory(factories, type, obj);
+ return factory.create(cdRef);
+ },
+ _getListOfFactories: function(type, obj) {
+ var listOfFactories = this.config[type];
+ if (isBlank(listOfFactories)) {
throw new BaseException(("Cannot find '" + type + "' pipe supporting object '" + obj + "'"));
}
- var matchingConfig = ListWrapper.find(listOfConfigs, (function(pipeConfig) {
- return pipeConfig.supports(obj);
+ return listOfFactories;
+ },
+ _getMatchingFactory: function(listOfFactories, type, obj) {
+ var matchingFactory = ListWrapper.find(listOfFactories, (function(pipeFactory) {
+ return pipeFactory.supports(obj);
}));
- if (isBlank(matchingConfig)) {
+ if (isBlank(matchingFactory)) {
throw new BaseException(("Cannot find '" + type + "' pipe supporting object '" + obj + "'"));
}
- return matchingConfig.create(cdRef);
- }}, {}));
+ return matchingFactory;
+ }
+ }, {}));
$__export("PipeRegistry", PipeRegistry);
$__export("PipeRegistry", PipeRegistry = __decorate([Injectable(), __metadata('design:paramtypes', [Object])], PipeRegistry));
}
@@ -8908,9 +8899,8 @@ System.register("angular2/src/change_detection/pipes/null_pipe", ["angular2/src/
__metadata,
isBlank,
CONST,
- Pipe,
+ BasePipe,
WrappedValue,
- PipeFactory,
NullPipeFactory,
NullPipe;
return {
@@ -8918,9 +8908,8 @@ System.register("angular2/src/change_detection/pipes/null_pipe", ["angular2/src/
isBlank = $__m.isBlank;
CONST = $__m.CONST;
}, function($__m) {
- Pipe = $__m.Pipe;
+ BasePipe = $__m.BasePipe;
WrappedValue = $__m.WrappedValue;
- PipeFactory = $__m.PipeFactory;
}],
execute: function() {
__decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
@@ -8945,19 +8934,14 @@ System.register("angular2/src/change_detection/pipes/null_pipe", ["angular2/src/
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
return Reflect.metadata(k, v);
};
- NullPipeFactory = (function($__super) {
- function $__0() {
- $traceurRuntime.superConstructor($__0).call(this);
+ NullPipeFactory = (($traceurRuntime.createClass)(function() {}, {
+ supports: function(obj) {
+ return NullPipe.supportsObj(obj);
+ },
+ create: function(cdRef) {
+ return new NullPipe();
}
- return ($traceurRuntime.createClass)($__0, {
- supports: function(obj) {
- return NullPipe.supportsObj(obj);
- },
- create: function(cdRef) {
- return new NullPipe();
- }
- }, {}, $__super);
- }(PipeFactory));
+ }, {}));
$__export("NullPipeFactory", NullPipeFactory);
$__export("NullPipeFactory", NullPipeFactory = __decorate([CONST(), __metadata('design:paramtypes', [])], NullPipeFactory));
NullPipe = (function($__super) {
@@ -8984,7 +8968,7 @@ System.register("angular2/src/change_detection/pipes/null_pipe", ["angular2/src/
}, {supportsObj: function(obj) {
return isBlank(obj);
}}, $__super);
- }(Pipe));
+ }(BasePipe));
$__export("NullPipe", NullPipe);
}
};
@@ -9012,6 +8996,9 @@ System.register("angular2/src/change_detection/change_detection_jit_generator",
CURRENT_PROTO,
ALREADY_CHECKED_ACCESSOR,
ChangeDetectorJITGenerator;
+ function _sanitizeName(s) {
+ return s.replace(new RegExp("\\W", "g"), '');
+ }
return {
setters: [function($__m) {
BaseException = $__m.BaseException;
@@ -9039,8 +9026,8 @@ System.register("angular2/src/change_detection/change_detection_jit_generator",
CURRENT_PROTO = "currentProto";
ALREADY_CHECKED_ACCESSOR = "this.alreadyChecked";
ChangeDetectorJITGenerator = (function() {
- function ChangeDetectorJITGenerator(typeName, changeDetectionStrategy, records, directiveRecords) {
- this.typeName = typeName;
+ function ChangeDetectorJITGenerator(id, changeDetectionStrategy, records, directiveRecords) {
+ this.id = id;
this.changeDetectionStrategy = changeDetectionStrategy;
this.records = records;
this.directiveRecords = directiveRecords;
@@ -9053,8 +9040,7 @@ System.register("angular2/src/change_detection/change_detection_jit_generator",
_getLocalNames: function(records) {
var index = 0;
var names = records.map((function(r) {
- var sanitizedName = r.name.replace(new RegExp("\\W", "g"), '');
- return ("" + sanitizedName + index++);
+ return _sanitizeName(("" + r.name + index++));
}));
return ["context"].concat(names);
},
@@ -9075,9 +9061,10 @@ System.register("angular2/src/change_detection/change_detection_jit_generator",
},
generate: function() {
var $__0 = this;
- var classDefinition = ("\n var " + this.typeName + " = function " + this.typeName + "(dispatcher, pipeRegistry, protos, directiveRecords) {\n " + ABSTRACT_CHANGE_DETECTOR + ".call(this);\n " + DISPATCHER_ACCESSOR + " = dispatcher;\n " + PIPE_REGISTRY_ACCESSOR + " = pipeRegistry;\n " + PROTOS_ACCESSOR + " = protos;\n " + DIRECTIVES_ACCESSOR + " = directiveRecords;\n " + LOCALS_ACCESSOR + " = null;\n " + ALREADY_CHECKED_ACCESSOR + " = false;\n " + this._genFieldDefinitions() + "\n }\n\n " + this.typeName + ".prototype = Object.create(" + ABSTRACT_CHANGE_DETECTOR + ".prototype);\n\n " + this.typeName + ".prototype.detectChangesInRecords = function(throwOnChange) {\n if (!this.hydrated()) {\n " + UTIL + ".throwDehydrated();\n }\n " + this._genLocalDefinitions() + "\n " + this._genChangeDefinitions() + "\n var " + IS_CHANGED_LOCAL + " = false;\n var " + CURRENT_PROTO + ";\n var " + CHANGES_LOCAL + " = null;\n\n context = " + CONTEXT_ACCESSOR + ";\n\n " + this.records.map((function(r) {
+ var typeName = _sanitizeName(("ChangeDetector_" + this.id));
+ var classDefinition = ("\n var " + typeName + " = function " + typeName + "(dispatcher, pipeRegistry, protos, directiveRecords) {\n " + ABSTRACT_CHANGE_DETECTOR + ".call(this, " + JSON.stringify(this.id) + ");\n " + DISPATCHER_ACCESSOR + " = dispatcher;\n " + PIPE_REGISTRY_ACCESSOR + " = pipeRegistry;\n " + PROTOS_ACCESSOR + " = protos;\n " + DIRECTIVES_ACCESSOR + " = directiveRecords;\n " + LOCALS_ACCESSOR + " = null;\n " + ALREADY_CHECKED_ACCESSOR + " = false;\n " + this._genFieldDefinitions() + "\n }\n\n " + typeName + ".prototype = Object.create(" + ABSTRACT_CHANGE_DETECTOR + ".prototype);\n\n " + typeName + ".prototype.detectChangesInRecords = function(throwOnChange) {\n if (!this.hydrated()) {\n " + UTIL + ".throwDehydrated();\n }\n " + this._genLocalDefinitions() + "\n " + this._genChangeDefinitions() + "\n var " + IS_CHANGED_LOCAL + " = false;\n var " + CURRENT_PROTO + ";\n var " + CHANGES_LOCAL + " = null;\n\n context = " + CONTEXT_ACCESSOR + ";\n\n " + this.records.map((function(r) {
return $__0._genRecord(r);
- })).join("\n") + "\n\n " + ALREADY_CHECKED_ACCESSOR + " = true;\n }\n\n " + this.typeName + ".prototype.callOnAllChangesDone = function() {\n " + this._genCallOnAllChangesDoneBody() + "\n }\n\n " + this.typeName + ".prototype.hydrate = function(context, locals, directives) {\n " + MODE_ACCESSOR + " = \"" + ChangeDetectionUtil.changeDetectionMode(this.changeDetectionStrategy) + "\";\n " + CONTEXT_ACCESSOR + " = context;\n " + LOCALS_ACCESSOR + " = locals;\n " + this._genHydrateDirectives() + "\n " + this._genHydrateDetectors() + "\n " + ALREADY_CHECKED_ACCESSOR + " = false;\n }\n\n " + this.typeName + ".prototype.dehydrate = function() {\n " + this._genPipeOnDestroy() + "\n " + this._genFieldDefinitions() + "\n " + LOCALS_ACCESSOR + " = null;\n }\n\n " + this.typeName + ".prototype.hydrated = function() {\n return " + CONTEXT_ACCESSOR + " !== null;\n }\n\n return function(dispatcher, pipeRegistry) {\n return new " + this.typeName + "(dispatcher, pipeRegistry, protos, directiveRecords);\n }\n ");
+ })).join("\n") + "\n\n " + ALREADY_CHECKED_ACCESSOR + " = true;\n }\n\n " + typeName + ".prototype.callOnAllChangesDone = function() {\n " + this._genCallOnAllChangesDoneBody() + "\n }\n\n " + typeName + ".prototype.hydrate = function(context, locals, directives) {\n " + MODE_ACCESSOR + " = \"" + ChangeDetectionUtil.changeDetectionMode(this.changeDetectionStrategy) + "\";\n " + CONTEXT_ACCESSOR + " = context;\n " + LOCALS_ACCESSOR + " = locals;\n " + this._genHydrateDirectives() + "\n " + this._genHydrateDetectors() + "\n " + ALREADY_CHECKED_ACCESSOR + " = false;\n }\n\n " + typeName + ".prototype.dehydrate = function() {\n " + this._genPipeOnDestroy() + "\n " + this._genFieldDefinitions() + "\n " + LOCALS_ACCESSOR + " = null;\n }\n\n " + typeName + ".prototype.hydrated = function() {\n return " + CONTEXT_ACCESSOR + " !== null;\n }\n\n return function(dispatcher, pipeRegistry) {\n return new " + typeName + "(dispatcher, pipeRegistry, protos, directiveRecords);\n }\n ");
return new Function('AbstractChangeDetector', 'ChangeDetectionUtil', 'protos', 'directiveRecords', classDefinition)(AbstractChangeDetector, ChangeDetectionUtil, this.records, this.directiveRecords);
},
_genGetDirectiveFieldNames: function() {
@@ -9104,7 +9091,7 @@ System.register("angular2/src/change_detection/change_detection_jit_generator",
var $__0 = this;
var pipes = [];
this.records.forEach((function(r) {
- if (r.mode === RecordType.PIPE || r.mode === RecordType.BINDING_PIPE) {
+ if (r.isPipeRecord()) {
pipes.push($__0._pipeNames[r.selfIndex]);
}
}));
@@ -9193,7 +9180,7 @@ System.register("angular2/src/change_detection/change_detection_jit_generator",
var newValue = this._localNames[r.selfIndex];
var change = this._changeNames[r.selfIndex];
var pipe = this._pipeNames[r.selfIndex];
- var cdRef = r.mode === RecordType.BINDING_PIPE ? "this.ref" : "null";
+ var cdRef = "this.ref";
var protoIndex = r.selfIndex - 1;
var pipeType = r.name;
return ("\n " + CURRENT_PROTO + " = " + PROTOS_ACCESSOR + "[" + protoIndex + "];\n if (" + pipe + " === " + UTIL + ".uninitialized()) {\n " + pipe + " = " + PIPE_REGISTRY_ACCESSOR + ".get('" + pipeType + "', " + context + ", " + cdRef + ");\n } else if (!" + pipe + ".supports(" + context + ")) {\n " + pipe + ".onDestroy();\n " + pipe + " = " + PIPE_REGISTRY_ACCESSOR + ".get('" + pipeType + "', " + context + ", " + cdRef + ");\n }\n\n " + newValue + " = " + pipe + ".transform(" + context + ");\n if (" + oldValue + " !== " + newValue + ") {\n " + newValue + " = " + UTIL + ".unwrapValue(" + newValue + ");\n " + change + " = true;\n " + this._genUpdateDirectiveOrElement(r) + "\n " + this._genAddToChanges(r) + "\n " + oldValue + " = " + newValue + ";\n }\n ");
@@ -9208,7 +9195,7 @@ System.register("angular2/src/change_detection/change_detection_jit_generator",
var condition = r.args.map((function(a) {
return $__0._changeNames[a];
})).join(" || ");
- return ("if (" + condition + ") { " + check + " }");
+ return ("if (" + condition + ") { " + check + " } else { " + newValue + " = " + oldValue + "; }");
} else {
return check;
}
@@ -9325,30 +9312,25 @@ System.register("angular2/src/change_detection/change_detection_jit_generator",
};
});
-System.register("angular2/src/change_detection/pregen_proto_change_detector", ["angular2/src/facade/lang", "angular2/src/change_detection/interfaces"], function($__export) {
+System.register("angular2/src/change_detection/pregen_proto_change_detector", ["angular2/src/facade/lang"], function($__export) {
"use strict";
var __moduleName = "angular2/src/change_detection/pregen_proto_change_detector";
var BaseException,
- ProtoChangeDetector,
PregenProtoChangeDetector;
return {
setters: [function($__m) {
BaseException = $__m.BaseException;
- }, function($__m) {
- ProtoChangeDetector = $__m.ProtoChangeDetector;
}],
execute: function() {
$__export("PregenProtoChangeDetectorFactory", Function);
- PregenProtoChangeDetector = (function($__super) {
- function PregenProtoChangeDetector() {
- $traceurRuntime.superConstructor(PregenProtoChangeDetector).apply(this, arguments);
- }
+ PregenProtoChangeDetector = (function() {
+ function PregenProtoChangeDetector() {}
return ($traceurRuntime.createClass)(PregenProtoChangeDetector, {instantiate: function(dispatcher) {
throw new BaseException('Pregen change detection not supported in Js');
}}, {isSupported: function() {
return false;
- }}, $__super);
- }(ProtoChangeDetector));
+ }});
+ }());
$__export("PregenProtoChangeDetector", PregenProtoChangeDetector);
}
};
@@ -9362,7 +9344,6 @@ System.register("angular2/src/change_detection/pipes/iterable_changes", ["angula
CONST,
isListLikeIterable,
iterateListLike,
- ListWrapper,
MapWrapper,
isBlank,
isPresent,
@@ -9371,8 +9352,7 @@ System.register("angular2/src/change_detection/pipes/iterable_changes", ["angula
looseIdentical,
isArray,
WrappedValue,
- Pipe,
- PipeFactory,
+ BasePipe,
IterableChangesFactory,
IterableChanges,
CollectionChangeRecord,
@@ -9390,12 +9370,10 @@ System.register("angular2/src/change_detection/pipes/iterable_changes", ["angula
}, function($__m) {
isListLikeIterable = $__m.isListLikeIterable;
iterateListLike = $__m.iterateListLike;
- ListWrapper = $__m.ListWrapper;
MapWrapper = $__m.MapWrapper;
}, function($__m) {
WrappedValue = $__m.WrappedValue;
- Pipe = $__m.Pipe;
- PipeFactory = $__m.PipeFactory;
+ BasePipe = $__m.BasePipe;
}],
execute: function() {
__decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
@@ -9420,19 +9398,14 @@ System.register("angular2/src/change_detection/pipes/iterable_changes", ["angula
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
return Reflect.metadata(k, v);
};
- IterableChangesFactory = (function($__super) {
- function $__1() {
- $traceurRuntime.superConstructor($__1).call(this);
+ IterableChangesFactory = (($traceurRuntime.createClass)(function() {}, {
+ supports: function(obj) {
+ return IterableChanges.supportsObj(obj);
+ },
+ create: function(cdRef) {
+ return new IterableChanges();
}
- return ($traceurRuntime.createClass)($__1, {
- supports: function(obj) {
- return IterableChanges.supportsObj(obj);
- },
- create: function(cdRef) {
- return new IterableChanges();
- }
- }, {}, $__super);
- }(PipeFactory));
+ }, {}));
$__export("IterableChangesFactory", IterableChangesFactory);
$__export("IterableChangesFactory", IterableChangesFactory = __decorate([CONST(), __metadata('design:paramtypes', [])], IterableChangesFactory));
IterableChanges = (function($__super) {
@@ -9496,7 +9469,7 @@ System.register("angular2/src/change_detection/pipes/iterable_changes", ["angula
if (this.check(collection)) {
return WrappedValue.wrap(this);
} else {
- return this;
+ return null;
}
},
check: function(collection) {
@@ -9720,30 +9693,30 @@ System.register("angular2/src/change_detection/pipes/iterable_changes", ["angula
var record;
var list = [];
for (record = this._itHead; record !== null; record = record._next) {
- ListWrapper.push(list, record);
+ list.push(record);
}
var previous = [];
for (record = this._previousItHead; record !== null; record = record._nextPrevious) {
- ListWrapper.push(previous, record);
+ previous.push(record);
}
var additions = [];
for (record = this._additionsHead; record !== null; record = record._nextAdded) {
- ListWrapper.push(additions, record);
+ additions.push(record);
}
var moves = [];
for (record = this._movesHead; record !== null; record = record._nextMoved) {
- ListWrapper.push(moves, record);
+ moves.push(record);
}
var removals = [];
for (record = this._removalsHead; record !== null; record = record._nextRemoved) {
- ListWrapper.push(removals, record);
+ removals.push(record);
}
return "collection: " + list.join(', ') + "\n" + "previous: " + previous.join(', ') + "\n" + "additions: " + additions.join(', ') + "\n" + "moves: " + moves.join(', ') + "\n" + "removals: " + removals.join(', ') + "\n";
}
}, {supportsObj: function(obj) {
return isListLikeIterable(obj);
}}, $__super);
- }(Pipe));
+ }(BasePipe));
$__export("IterableChanges", IterableChanges);
CollectionChangeRecord = (function() {
function CollectionChangeRecord(item) {
@@ -9811,27 +9784,27 @@ System.register("angular2/src/change_detection/pipes/iterable_changes", ["angula
}());
_DuplicateMap = (function() {
function _DuplicateMap() {
- this.map = MapWrapper.create();
+ this.map = new Map();
}
return ($traceurRuntime.createClass)(_DuplicateMap, {
put: function(record) {
var key = getMapKey(record.item);
- var duplicates = MapWrapper.get(this.map, key);
+ var duplicates = this.map.get(key);
if (!isPresent(duplicates)) {
duplicates = new _DuplicateItemRecordList();
- MapWrapper.set(this.map, key, duplicates);
+ this.map.set(key, duplicates);
}
duplicates.add(record);
},
get: function(value) {
var afterIndex = arguments[1] !== (void 0) ? arguments[1] : null;
var key = getMapKey(value);
- var recordList = MapWrapper.get(this.map, key);
+ var recordList = this.map.get(key);
return isBlank(recordList) ? null : recordList.get(value, afterIndex);
},
remove: function(record) {
var key = getMapKey(record.item);
- var recordList = MapWrapper.get(this.map, key);
+ var recordList = this.map.get(key);
if (recordList.remove(record)) {
MapWrapper.delete(this.map, key);
}
@@ -9841,7 +9814,7 @@ System.register("angular2/src/change_detection/pipes/iterable_changes", ["angula
return MapWrapper.size(this.map) === 0;
},
clear: function() {
- MapWrapper.clear(this.map);
+ this.map.clear();
},
toString: function() {
return '_DuplicateMap(' + stringify(this.map) + ')';
@@ -9857,7 +9830,6 @@ System.register("angular2/src/change_detection/pipes/keyvalue_changes", ["angula
var __moduleName = "angular2/src/change_detection/pipes/keyvalue_changes";
var __decorate,
__metadata,
- ListWrapper,
MapWrapper,
StringMapWrapper,
stringify,
@@ -9865,14 +9837,12 @@ System.register("angular2/src/change_detection/pipes/keyvalue_changes", ["angula
isJsObject,
CONST,
WrappedValue,
- Pipe,
- PipeFactory,
+ BasePipe,
KeyValueChangesFactory,
KeyValueChanges,
KVChangeRecord;
return {
setters: [function($__m) {
- ListWrapper = $__m.ListWrapper;
MapWrapper = $__m.MapWrapper;
StringMapWrapper = $__m.StringMapWrapper;
}, function($__m) {
@@ -9882,8 +9852,7 @@ System.register("angular2/src/change_detection/pipes/keyvalue_changes", ["angula
CONST = $__m.CONST;
}, function($__m) {
WrappedValue = $__m.WrappedValue;
- Pipe = $__m.Pipe;
- PipeFactory = $__m.PipeFactory;
+ BasePipe = $__m.BasePipe;
}],
execute: function() {
__decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
@@ -9908,19 +9877,14 @@ System.register("angular2/src/change_detection/pipes/keyvalue_changes", ["angula
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
return Reflect.metadata(k, v);
};
- KeyValueChangesFactory = (function($__super) {
- function $__1() {
- $traceurRuntime.superConstructor($__1).call(this);
+ KeyValueChangesFactory = (($traceurRuntime.createClass)(function() {}, {
+ supports: function(obj) {
+ return KeyValueChanges.supportsObj(obj);
+ },
+ create: function(cdRef) {
+ return new KeyValueChanges();
}
- return ($traceurRuntime.createClass)($__1, {
- supports: function(obj) {
- return KeyValueChanges.supportsObj(obj);
- },
- create: function(cdRef) {
- return new KeyValueChanges();
- }
- }, {}, $__super);
- }(PipeFactory));
+ }, {}));
$__export("KeyValueChangesFactory", KeyValueChangesFactory);
$__export("KeyValueChangesFactory", KeyValueChangesFactory = __decorate([CONST(), __metadata('design:paramtypes', [])], KeyValueChangesFactory));
KeyValueChanges = (function($__super) {
@@ -9930,7 +9894,7 @@ System.register("angular2/src/change_detection/pipes/keyvalue_changes", ["angula
$__3 = 0; $__3 < arguments.length; $__3++)
args[$__3] = arguments[$__3];
($__4 = $traceurRuntime.superConstructor(KeyValueChanges)).call.apply($__4, $traceurRuntime.spread([this], args));
- this._records = MapWrapper.create();
+ this._records = new Map();
this._mapHead = null;
this._previousMapHead = null;
this._changesHead = null;
@@ -9948,7 +9912,7 @@ System.register("angular2/src/change_detection/pipes/keyvalue_changes", ["angula
if (this.check(map)) {
return WrappedValue.wrap(this);
} else {
- return this;
+ return null;
}
},
get isDirty() {
@@ -10008,11 +9972,11 @@ System.register("angular2/src/change_detection/pipes/keyvalue_changes", ["angula
$__0._removeFromSeq(lastOldSeqRecord, oldSeqRecord);
$__0._addToRemovals(oldSeqRecord);
}
- if (MapWrapper.contains(records, key)) {
- newSeqRecord = MapWrapper.get(records, key);
+ if (records.has(key)) {
+ newSeqRecord = records.get(key);
} else {
newSeqRecord = new KVChangeRecord(key);
- MapWrapper.set(records, key, newSeqRecord);
+ records.set(key, newSeqRecord);
newSeqRecord.currentValue = value;
$__0._addToAdditions(newSeqRecord);
}
@@ -10128,19 +10092,19 @@ System.register("angular2/src/change_detection/pipes/keyvalue_changes", ["angula
var removals = [];
var record;
for (record = this._mapHead; record !== null; record = record._next) {
- ListWrapper.push(items, stringify(record));
+ items.push(stringify(record));
}
for (record = this._previousMapHead; record !== null; record = record._nextPrevious) {
- ListWrapper.push(previous, stringify(record));
+ previous.push(stringify(record));
}
for (record = this._changesHead; record !== null; record = record._nextChanged) {
- ListWrapper.push(changes, stringify(record));
+ changes.push(stringify(record));
}
for (record = this._additionsHead; record !== null; record = record._nextAdded) {
- ListWrapper.push(additions, stringify(record));
+ additions.push(stringify(record));
}
for (record = this._removalsHead; record !== null; record = record._nextRemoved) {
- ListWrapper.push(removals, stringify(record));
+ removals.push(stringify(record));
}
return "map: " + items.join(', ') + "\n" + "previous: " + previous.join(', ') + "\n" + "additions: " + additions.join(', ') + "\n" + "changes: " + changes.join(', ') + "\n" + "removals: " + removals.join(', ') + "\n";
},
@@ -10154,7 +10118,7 @@ System.register("angular2/src/change_detection/pipes/keyvalue_changes", ["angula
}, {supportsObj: function(obj) {
return obj instanceof Map || isJsObject(obj);
}}, $__super);
- }(Pipe));
+ }(BasePipe));
$__export("KeyValueChanges", KeyValueChanges);
KVChangeRecord = (function() {
function KVChangeRecord(key) {
@@ -10183,7 +10147,6 @@ System.register("angular2/src/change_detection/pipes/promise_pipe", ["angular2/s
var isBlank,
isPresent,
isPromise,
- Pipe,
WrappedValue,
PromisePipe,
PromisePipeFactory;
@@ -10193,13 +10156,11 @@ System.register("angular2/src/change_detection/pipes/promise_pipe", ["angular2/s
isPresent = $__m.isPresent;
isPromise = $__m.isPromise;
}, function($__m) {
- Pipe = $__m.Pipe;
WrappedValue = $__m.WrappedValue;
}],
execute: function() {
- PromisePipe = (function($__super) {
+ PromisePipe = (function() {
function PromisePipe(_ref) {
- $traceurRuntime.superConstructor(PromisePipe).call(this);
this._ref = _ref;
this._latestValue = null;
this._latestReturnedValue = null;
@@ -10241,8 +10202,8 @@ System.register("angular2/src/change_detection/pipes/promise_pipe", ["angular2/s
this._latestValue = value;
this._ref.requestCheck();
}
- }, {}, $__super);
- }(Pipe));
+ }, {});
+ }());
$__export("PromisePipe", PromisePipe);
PromisePipeFactory = (function() {
function PromisePipeFactory() {}
@@ -10260,29 +10221,21 @@ System.register("angular2/src/change_detection/pipes/promise_pipe", ["angular2/s
};
});
-System.register("angular2/src/change_detection/pipes/uppercase_pipe", ["angular2/src/facade/lang", "angular2/src/change_detection/pipes/pipe"], function($__export) {
+System.register("angular2/src/change_detection/pipes/uppercase_pipe", ["angular2/src/facade/lang"], function($__export) {
"use strict";
var __moduleName = "angular2/src/change_detection/pipes/uppercase_pipe";
var isString,
StringWrapper,
- Pipe,
UpperCasePipe,
UpperCaseFactory;
return {
setters: [function($__m) {
isString = $__m.isString;
StringWrapper = $__m.StringWrapper;
- }, function($__m) {
- Pipe = $__m.Pipe;
}],
execute: function() {
- UpperCasePipe = (function($__super) {
+ UpperCasePipe = (function() {
function UpperCasePipe() {
- var $__2;
- for (var args = [],
- $__1 = 0; $__1 < arguments.length; $__1++)
- args[$__1] = arguments[$__1];
- ($__2 = $traceurRuntime.superConstructor(UpperCasePipe)).call.apply($__2, $traceurRuntime.spread([this], args));
this._latestValue = null;
}
return ($traceurRuntime.createClass)(UpperCasePipe, {
@@ -10300,8 +10253,8 @@ System.register("angular2/src/change_detection/pipes/uppercase_pipe", ["angular2
return this._latestValue;
}
}
- }, {}, $__super);
- }(Pipe));
+ }, {});
+ }());
$__export("UpperCasePipe", UpperCasePipe);
UpperCaseFactory = (function() {
function UpperCaseFactory() {}
@@ -10319,29 +10272,21 @@ System.register("angular2/src/change_detection/pipes/uppercase_pipe", ["angular2
};
});
-System.register("angular2/src/change_detection/pipes/lowercase_pipe", ["angular2/src/facade/lang", "angular2/src/change_detection/pipes/pipe"], function($__export) {
+System.register("angular2/src/change_detection/pipes/lowercase_pipe", ["angular2/src/facade/lang"], function($__export) {
"use strict";
var __moduleName = "angular2/src/change_detection/pipes/lowercase_pipe";
var isString,
StringWrapper,
- Pipe,
LowerCasePipe,
LowerCaseFactory;
return {
setters: [function($__m) {
isString = $__m.isString;
StringWrapper = $__m.StringWrapper;
- }, function($__m) {
- Pipe = $__m.Pipe;
}],
execute: function() {
- LowerCasePipe = (function($__super) {
+ LowerCasePipe = (function() {
function LowerCasePipe() {
- var $__2;
- for (var args = [],
- $__1 = 0; $__1 < arguments.length; $__1++)
- args[$__1] = arguments[$__1];
- ($__2 = $traceurRuntime.superConstructor(LowerCasePipe)).call.apply($__2, $traceurRuntime.spread([this], args));
this._latestValue = null;
}
return ($traceurRuntime.createClass)(LowerCasePipe, {
@@ -10359,8 +10304,8 @@ System.register("angular2/src/change_detection/pipes/lowercase_pipe", ["angular2
return this._latestValue;
}
}
- }, {}, $__super);
- }(Pipe));
+ }, {});
+ }());
$__export("LowerCasePipe", LowerCasePipe);
LowerCaseFactory = (function() {
function LowerCaseFactory() {}
@@ -10382,13 +10327,13 @@ System.register("angular2/src/change_detection/pipes/json_pipe", ["angular2/src/
"use strict";
var __moduleName = "angular2/src/change_detection/pipes/json_pipe";
var Json,
- Pipe,
+ BasePipe,
JsonPipe;
return {
setters: [function($__m) {
Json = $__m.Json;
}, function($__m) {
- Pipe = $__m.Pipe;
+ BasePipe = $__m.BasePipe;
}],
execute: function() {
JsonPipe = (function($__super) {
@@ -10396,9 +10341,6 @@ System.register("angular2/src/change_detection/pipes/json_pipe", ["angular2/src/
$traceurRuntime.superConstructor(JsonPipe).apply(this, arguments);
}
return ($traceurRuntime.createClass)(JsonPipe, {
- supports: function(obj) {
- return true;
- },
transform: function(value) {
return Json.stringify(value);
},
@@ -10406,7 +10348,7 @@ System.register("angular2/src/change_detection/pipes/json_pipe", ["angular2/src/
return this;
}
}, {}, $__super);
- }(Pipe));
+ }(BasePipe));
$__export("JsonPipe", JsonPipe);
}
};
@@ -10415,7 +10357,8 @@ System.register("angular2/src/change_detection/pipes/json_pipe", ["angular2/src/
System.register("angular2/src/di/forward_ref", ["angular2/src/facade/lang"], function($__export) {
"use strict";
var __moduleName = "angular2/src/di/forward_ref";
- var stringify;
+ var stringify,
+ isFunction;
function forwardRef(forwardRefFn) {
forwardRefFn.__forward_ref__ = forwardRef;
forwardRefFn.toString = function() {
@@ -10424,7 +10367,7 @@ System.register("angular2/src/di/forward_ref", ["angular2/src/facade/lang"], fun
return forwardRefFn;
}
function resolveForwardRef(type) {
- if (typeof type == 'function' && type.hasOwnProperty('__forward_ref__') && type.__forward_ref__ === forwardRef) {
+ if (isFunction(type) && type.hasOwnProperty('__forward_ref__') && type.__forward_ref__ === forwardRef) {
return type();
} else {
return type;
@@ -10435,6 +10378,7 @@ System.register("angular2/src/di/forward_ref", ["angular2/src/facade/lang"], fun
return {
setters: [function($__m) {
stringify = $__m.stringify;
+ isFunction = $__m.isFunction;
}],
execute: function() {
}
@@ -10477,10 +10421,10 @@ System.register("angular2/src/di/exceptions", ["angular2/src/facade/collection",
var res = [];
for (var i = 0; i < keys.length; ++i) {
if (ListWrapper.contains(res, keys[i])) {
- ListWrapper.push(res, keys[i]);
+ res.push(keys[i]);
return res;
} else {
- ListWrapper.push(res, keys[i]);
+ res.push(keys[i]);
}
}
return res;
@@ -10514,7 +10458,7 @@ System.register("angular2/src/di/exceptions", ["angular2/src/facade/collection",
}
return ($traceurRuntime.createClass)(AbstractBindingError, {
addKey: function(key) {
- ListWrapper.push(this.keys, key);
+ this.keys.push(key);
this.message = this.constructResolvingMessage(this.keys);
},
toString: function() {
@@ -10577,14 +10521,14 @@ System.register("angular2/src/di/exceptions", ["angular2/src/facade/collection",
NoAnnotationError = (function($__super) {
function NoAnnotationError(typeOrFunc, params) {
$traceurRuntime.superConstructor(NoAnnotationError).call(this);
- var signature = ListWrapper.create();
+ var signature = [];
for (var i = 0,
ii = params.length; i < ii; i++) {
var parameter = params[i];
if (isBlank(parameter) || parameter.length == 0) {
- ListWrapper.push(signature, '?');
+ signature.push('?');
} else {
- ListWrapper.push(signature, ListWrapper.map(parameter, stringify).join(' '));
+ signature.push(ListWrapper.map(parameter, stringify).join(' '));
}
}
this.message = "Cannot resolve all parameters for " + stringify(typeOrFunc) + "(" + signature.join(', ') + "). " + 'Make sure they all have valid type or annotations.';
@@ -10835,6 +10779,18 @@ System.register("angular2/src/dom/dom_adapter", ["angular2/src/facade/lang"], fu
DomAdapter = (function() {
function DomAdapter() {}
return ($traceurRuntime.createClass)(DomAdapter, {
+ hasProperty: function(element, name) {
+ throw _abstract();
+ },
+ setProperty: function(el, name, value) {
+ throw _abstract();
+ },
+ getProperty: function(el, name) {
+ throw _abstract();
+ },
+ invoke: function(el, methodName, args) {
+ throw _abstract();
+ },
logError: function(error) {
throw _abstract();
},
@@ -10983,9 +10939,6 @@ System.register("angular2/src/dom/dom_adapter", ["angular2/src/facade/lang"], fu
clone: function(node) {
throw _abstract();
},
- hasProperty: function(element, name) {
- throw _abstract();
- },
getElementsByClassName: function(element, name) {
throw _abstract();
},
@@ -11166,7 +11119,7 @@ System.register("angular2/src/dom/generic_browser_adapter", ["angular2/src/facad
cssToRules: function(css) {
var style = this.createStyleElement(css);
this.appendChild(this.defaultDoc().head, style);
- var rules = ListWrapper.create();
+ var rules = [];
if (isPresent(style.sheet)) {
try {
var rawRules = style.sheet.cssRules;
@@ -11371,6 +11324,8 @@ System.register("angular2/src/core/annotations_impl/di", ["angular2/src/facade/l
__metadata,
CONST,
stringify,
+ StringWrapper,
+ isString,
DependencyAnnotation,
resolveForwardRef,
Attribute,
@@ -11379,6 +11334,8 @@ System.register("angular2/src/core/annotations_impl/di", ["angular2/src/facade/l
setters: [function($__m) {
CONST = $__m.CONST;
stringify = $__m.stringify;
+ StringWrapper = $__m.StringWrapper;
+ isString = $__m.isString;
}, function($__m) {
DependencyAnnotation = $__m.DependencyAnnotation;
}, function($__m) {
@@ -11424,20 +11381,26 @@ System.register("angular2/src/core/annotations_impl/di", ["angular2/src/facade/l
$__export("Attribute", Attribute);
$__export("Attribute", Attribute = __decorate([CONST(), __metadata('design:paramtypes', [String])], Attribute));
Query = (function($__super) {
- function $__0(_directive) {
+ function $__0(_selector) {
var $__3;
var $__2 = arguments[1] !== (void 0) ? arguments[1] : {},
descendants = ($__3 = $__2.descendants) === void 0 ? false : $__3;
$traceurRuntime.superConstructor($__0).call(this);
- this._directive = _directive;
+ this._selector = _selector;
this.descendants = descendants;
}
return ($traceurRuntime.createClass)($__0, {
- get directive() {
- return resolveForwardRef(this._directive);
+ get selector() {
+ return resolveForwardRef(this._selector);
+ },
+ get isVarBindingQuery() {
+ return isString(this.selector);
+ },
+ get varBindings() {
+ return StringWrapper.split(this.selector, new RegExp(","));
},
toString: function() {
- return ("@Query(" + stringify(this.directive) + ")");
+ return ("@Query(" + stringify(this.selector) + ")");
}
}, {}, $__super);
}(DependencyAnnotation));
@@ -11453,8 +11416,11 @@ System.register("angular2/src/render/api", ["angular2/src/facade/lang", "angular
var isPresent,
isBlank,
RegExpWrapper,
+ Map,
MapWrapper,
EventBinding,
+ PropertyBindingType,
+ ElementPropertyBinding,
ElementBinder,
DirectiveBinder,
ViewType,
@@ -11472,6 +11438,7 @@ System.register("angular2/src/render/api", ["angular2/src/facade/lang", "angular
isBlank = $__m.isBlank;
RegExpWrapper = $__m.RegExpWrapper;
}, function($__m) {
+ Map = $__m.Map;
MapWrapper = $__m.MapWrapper;
}],
execute: function() {
@@ -11483,6 +11450,24 @@ System.register("angular2/src/render/api", ["angular2/src/facade/lang", "angular
return ($traceurRuntime.createClass)(EventBinding, {}, {});
}());
$__export("EventBinding", EventBinding);
+ $__export("PropertyBindingType", PropertyBindingType);
+ (function(PropertyBindingType) {
+ PropertyBindingType[PropertyBindingType["PROPERTY"] = 0] = "PROPERTY";
+ PropertyBindingType[PropertyBindingType["ATTRIBUTE"] = 1] = "ATTRIBUTE";
+ PropertyBindingType[PropertyBindingType["CLASS"] = 2] = "CLASS";
+ PropertyBindingType[PropertyBindingType["STYLE"] = 3] = "STYLE";
+ })(PropertyBindingType || ($__export("PropertyBindingType", PropertyBindingType = {})));
+ ElementPropertyBinding = (function() {
+ function ElementPropertyBinding(type, astWithSource, property) {
+ var unit = arguments[3] !== (void 0) ? arguments[3] : null;
+ this.type = type;
+ this.astWithSource = astWithSource;
+ this.property = property;
+ this.unit = unit;
+ }
+ return ($traceurRuntime.createClass)(ElementPropertyBinding, {}, {});
+ }());
+ $__export("ElementPropertyBinding", ElementPropertyBinding);
ElementBinder = (function() {
function ElementBinder() {
var $__1 = arguments[0] !== (void 0) ? arguments[0] : {},
@@ -11611,21 +11596,21 @@ System.register("angular2/src/render/api", ["angular2/src/facade/lang", "angular
callOnAllChangesDone = $__2.callOnAllChangesDone,
changeDetection = $__2.changeDetection,
exportAs = $__2.exportAs;
- var hostListeners = MapWrapper.create();
- var hostProperties = MapWrapper.create();
- var hostAttributes = MapWrapper.create();
- var hostActions = MapWrapper.create();
+ var hostListeners = new Map();
+ var hostProperties = new Map();
+ var hostAttributes = new Map();
+ var hostActions = new Map();
if (isPresent(host)) {
MapWrapper.forEach(host, (function(value, key) {
var matches = RegExpWrapper.firstMatch(hostRegExp, key);
if (isBlank(matches)) {
- MapWrapper.set(hostAttributes, key, value);
+ hostAttributes.set(key, value);
} else if (isPresent(matches[1])) {
- MapWrapper.set(hostProperties, matches[1], value);
+ hostProperties.set(matches[1], value);
} else if (isPresent(matches[2])) {
- MapWrapper.set(hostListeners, matches[2], value);
+ hostListeners.set(matches[2], value);
} else if (isPresent(matches[3])) {
- MapWrapper.set(hostActions, matches[3], value);
+ hostActions.set(matches[3], value);
}
}));
}
@@ -11688,7 +11673,7 @@ System.register("angular2/src/render/api", ["angular2/src/facade/lang", "angular
compileHost: function(directiveMetadata) {
return null;
},
- compile: function(template) {
+ compile: function(view) {
return null;
}
}, {});
@@ -11700,19 +11685,24 @@ System.register("angular2/src/render/api", ["angular2/src/facade/lang", "angular
createRootHostView: function(hostProtoViewRef, hostElementSelector) {
return null;
},
- detachFreeView: function(view) {},
createView: function(protoViewRef) {
return null;
},
destroyView: function(viewRef) {},
- attachComponentView: function(hostViewRef, elementIndex, componentViewRef) {},
- detachComponentView: function(hostViewRef, boundElementIndex, componentViewRef) {},
- attachViewInContainer: function(parentViewRef, boundElementIndex, atIndex, viewRef) {},
- detachViewInContainer: function(parentViewRef, boundElementIndex, atIndex, viewRef) {},
+ attachComponentView: function(location, componentViewRef) {},
+ detachComponentView: function(location, componentViewRef) {},
+ attachViewInContainer: function(location, atIndex, viewRef) {},
+ detachViewInContainer: function(location, atIndex, viewRef) {},
hydrateView: function(viewRef) {},
dehydrateView: function(viewRef) {},
- setElementProperty: function(viewRef, elementIndex, propertyName, propertyValue) {},
- callAction: function(viewRef, elementIndex, actionExpression, actionArgs) {},
+ getNativeElementSync: function(location) {
+ return null;
+ },
+ setElementProperty: function(location, propertyName, propertyValue) {},
+ setElementAttribute: function(location, attributeName, attributeValue) {},
+ setElementClass: function(location, className, isAdd) {},
+ setElementStyle: function(location, styleName, styleValue) {},
+ invokeElementMethod: function(location, methodName, args) {},
setText: function(viewRef, textNodeIndex, text) {},
setEventDispatcher: function(viewRef, dispatcher) {}
}, {});
@@ -11737,12 +11727,11 @@ System.register("angular2/src/core/compiler/element_binder", ["angular2/src/faca
}],
execute: function() {
ElementBinder = (function() {
- function ElementBinder(index, parent, distanceToParent, protoElementInjector, directiveVariableBindings, componentDirective) {
+ function ElementBinder(index, parent, distanceToParent, protoElementInjector, componentDirective) {
this.index = index;
this.parent = parent;
this.distanceToParent = distanceToParent;
this.protoElementInjector = protoElementInjector;
- this.directiveVariableBindings = directiveVariableBindings;
this.componentDirective = componentDirective;
this.nestedProtoView = null;
this.hostListeners = null;
@@ -11754,9 +11743,6 @@ System.register("angular2/src/core/compiler/element_binder", ["angular2/src/faca
hasStaticComponent: function() {
return isPresent(this.componentDirective) && isPresent(this.nestedProtoView);
},
- hasDynamicComponent: function() {
- return isPresent(this.componentDirective) && isBlank(this.nestedProtoView);
- },
hasEmbeddedProtoView: function() {
return !isPresent(this.componentDirective) && isPresent(this.nestedProtoView);
}
@@ -11767,6 +11753,39 @@ System.register("angular2/src/core/compiler/element_binder", ["angular2/src/faca
};
});
+System.register("angular2/src/core/compiler/element_ref", ["angular2/src/facade/lang"], function($__export) {
+ "use strict";
+ var __moduleName = "angular2/src/core/compiler/element_ref";
+ var BaseException,
+ ElementRef;
+ return {
+ setters: [function($__m) {
+ BaseException = $__m.BaseException;
+ }],
+ execute: function() {
+ ElementRef = (function() {
+ function ElementRef(parentView, boundElementIndex, _renderer) {
+ this.parentView = parentView;
+ this.boundElementIndex = boundElementIndex;
+ this._renderer = _renderer;
+ }
+ return ($traceurRuntime.createClass)(ElementRef, {
+ get renderView() {
+ return this.parentView.render;
+ },
+ set renderView(viewRef) {
+ throw new BaseException('Abstract setter');
+ },
+ get nativeElement() {
+ return this._renderer.getNativeElementSync(this);
+ }
+ }, {});
+ }());
+ $__export("ElementRef", ElementRef);
+ }
+ };
+});
+
System.register("angular2/src/core/compiler/view_pool", ["angular2/di", "angular2/src/facade/collection", "angular2/src/facade/lang"], function($__export) {
"use strict";
var __moduleName = "angular2/src/core/compiler/view_pool";
@@ -11777,7 +11796,7 @@ System.register("angular2/src/core/compiler/view_pool", ["angular2/di", "angular
Injectable,
OpaqueToken,
ListWrapper,
- MapWrapper,
+ Map,
isPresent,
isBlank,
CONST_EXPR,
@@ -11790,7 +11809,7 @@ System.register("angular2/src/core/compiler/view_pool", ["angular2/di", "angular
OpaqueToken = $__m.OpaqueToken;
}, function($__m) {
ListWrapper = $__m.ListWrapper;
- MapWrapper = $__m.MapWrapper;
+ Map = $__m.Map;
}, function($__m) {
isPresent = $__m.isPresent;
isBlank = $__m.isBlank;
@@ -11827,11 +11846,11 @@ System.register("angular2/src/core/compiler/view_pool", ["angular2/di", "angular
APP_VIEW_POOL_CAPACITY = CONST_EXPR(new OpaqueToken('AppViewPool.viewPoolCapacity'));
$__export("APP_VIEW_POOL_CAPACITY", APP_VIEW_POOL_CAPACITY);
AppViewPool = (($traceurRuntime.createClass)(function(poolCapacityPerProtoView) {
- this._pooledViewsPerProtoView = MapWrapper.create();
+ this._pooledViewsPerProtoView = new Map();
this._poolCapacityPerProtoView = poolCapacityPerProtoView;
}, {
getView: function(protoView) {
- var pooledViews = MapWrapper.get(this._pooledViewsPerProtoView, protoView);
+ var pooledViews = this._pooledViewsPerProtoView.get(protoView);
if (isPresent(pooledViews) && pooledViews.length > 0) {
return ListWrapper.removeLast(pooledViews);
}
@@ -11839,14 +11858,14 @@ System.register("angular2/src/core/compiler/view_pool", ["angular2/di", "angular
},
returnView: function(view) {
var protoView = view.proto;
- var pooledViews = MapWrapper.get(this._pooledViewsPerProtoView, protoView);
+ var pooledViews = this._pooledViewsPerProtoView.get(protoView);
if (isBlank(pooledViews)) {
pooledViews = [];
- MapWrapper.set(this._pooledViewsPerProtoView, protoView, pooledViews);
+ this._pooledViewsPerProtoView.set(protoView, pooledViews);
}
var haveRemainingCapacity = pooledViews.length < this._poolCapacityPerProtoView;
if (haveRemainingCapacity) {
- ListWrapper.push(pooledViews, view);
+ pooledViews.push(view);
}
return haveRemainingCapacity;
}
@@ -11906,7 +11925,6 @@ System.register("angular2/src/core/compiler/view_container_ref", ["angular2/src/
var __moduleName = "angular2/src/core/compiler/view_container_ref";
var ListWrapper,
isPresent,
- ViewRef,
internalView,
ViewContainerRef;
return {
@@ -11915,7 +11933,6 @@ System.register("angular2/src/core/compiler/view_container_ref", ["angular2/src/
}, function($__m) {
isPresent = $__m.isPresent;
}, function($__m) {
- ViewRef = $__m.ViewRef;
internalView = $__m.internalView;
}],
execute: function() {
@@ -11935,7 +11952,7 @@ System.register("angular2/src/core/compiler/view_container_ref", ["angular2/src/
}
},
get: function(index) {
- return new ViewRef(this._getViews()[index]);
+ return this._getViews()[index].ref;
},
get length() {
return this._getViews().length;
@@ -11977,98 +11994,6 @@ System.register("angular2/src/core/compiler/view_container_ref", ["angular2/src/
};
});
-System.register("angular2/src/render/dom/view/view", ["angular2/src/dom/dom_adapter", "angular2/src/facade/collection", "angular2/change_detection", "angular2/src/facade/lang", "angular2/src/render/api"], function($__export) {
- "use strict";
- var __moduleName = "angular2/src/render/dom/view/view";
- var DOM,
- MapWrapper,
- Locals,
- isPresent,
- RenderViewRef,
- DomViewRef,
- DomView;
- function resolveInternalDomView(viewRef) {
- return viewRef._view;
- }
- $__export("resolveInternalDomView", resolveInternalDomView);
- return {
- setters: [function($__m) {
- DOM = $__m.DOM;
- }, function($__m) {
- MapWrapper = $__m.MapWrapper;
- }, function($__m) {
- Locals = $__m.Locals;
- }, function($__m) {
- isPresent = $__m.isPresent;
- }, function($__m) {
- RenderViewRef = $__m.RenderViewRef;
- }],
- execute: function() {
- DomViewRef = (function($__super) {
- function DomViewRef(_view) {
- $traceurRuntime.superConstructor(DomViewRef).call(this);
- this._view = _view;
- }
- return ($traceurRuntime.createClass)(DomViewRef, {}, {}, $__super);
- }(RenderViewRef));
- $__export("DomViewRef", DomViewRef);
- DomView = (function() {
- function DomView(proto, rootNodes, boundTextNodes, boundElements) {
- this.proto = proto;
- this.rootNodes = rootNodes;
- this.boundTextNodes = boundTextNodes;
- this.boundElements = boundElements;
- this.hostLightDom = null;
- this.shadowRoot = null;
- this.hydrated = false;
- this.eventDispatcher = null;
- this.eventHandlerRemovers = [];
- }
- return ($traceurRuntime.createClass)(DomView, {
- getDirectParentElement: function(boundElementIndex) {
- var binder = this.proto.elementBinders[boundElementIndex];
- var parent = null;
- if (binder.parentIndex !== -1 && binder.distanceToParent === 1) {
- parent = this.boundElements[binder.parentIndex];
- }
- return parent;
- },
- setElementProperty: function(elementIndex, propertyName, value) {
- var setter = MapWrapper.get(this.proto.elementBinders[elementIndex].propertySetters, propertyName);
- setter(this.boundElements[elementIndex].element, value);
- },
- callAction: function(elementIndex, actionExpression, actionArgs) {
- var binder = this.proto.elementBinders[elementIndex];
- var hostAction = MapWrapper.get(binder.hostActions, actionExpression);
- hostAction.eval(this.boundElements[elementIndex].element, this._localsWithAction(actionArgs));
- },
- _localsWithAction: function(action) {
- var map = MapWrapper.create();
- MapWrapper.set(map, '$action', action);
- return new Locals(null, map);
- },
- setText: function(textIndex, value) {
- DOM.setText(this.boundTextNodes[textIndex], value);
- },
- dispatchEvent: function(elementIndex, eventName, event) {
- var allowDefaultBehavior = true;
- if (isPresent(this.eventDispatcher)) {
- var evalLocals = MapWrapper.create();
- MapWrapper.set(evalLocals, '$event', event);
- allowDefaultBehavior = this.eventDispatcher.dispatchEvent(elementIndex, eventName, evalLocals);
- if (!allowDefaultBehavior) {
- event.preventDefault();
- }
- }
- return allowDefaultBehavior;
- }
- }, {});
- }());
- $__export("DomView", DomView);
- }
- };
-});
-
System.register("angular2/src/core/compiler/directive_lifecycle_reflector", ["angular2/src/facade/lang"], function($__export) {
"use strict";
var __moduleName = "angular2/src/core/compiler/directive_lifecycle_reflector";
@@ -12128,7 +12053,7 @@ System.register("angular2/src/core/compiler/base_query_list", ["angular2/src/fac
writable: true
}), Object.defineProperty($__1, "add", {
value: function(obj) {
- ListWrapper.push(this._results, obj);
+ this._results.push(obj);
this._dirty = true;
},
configurable: true,
@@ -12148,7 +12073,7 @@ System.register("angular2/src/core/compiler/base_query_list", ["angular2/src/fac
writable: true
}), Object.defineProperty($__1, "onChange", {
value: function(callback) {
- ListWrapper.push(this._callbacks, callback);
+ this._callbacks.push(callback);
},
configurable: true,
enumerable: true,
@@ -12185,26 +12110,30 @@ System.register("angular2/src/core/compiler/base_query_list", ["angular2/src/fac
};
});
-System.register("angular2/src/core/compiler/template_resolver", ["angular2/di", "angular2/src/core/annotations_impl/view", "angular2/src/facade/lang", "angular2/src/facade/collection", "angular2/src/reflection/reflection"], function($__export) {
+System.register("angular2/src/core/compiler/view_resolver", ["angular2/di", "angular2/src/core/annotations_impl/view", "angular2/src/facade/lang", "angular2/src/facade/collection", "angular2/src/reflection/reflection"], function($__export) {
"use strict";
- var __moduleName = "angular2/src/core/compiler/template_resolver";
+ var __moduleName = "angular2/src/core/compiler/view_resolver";
var __decorate,
__metadata,
Injectable,
View,
+ stringify,
isBlank,
- MapWrapper,
+ BaseException,
+ Map,
reflector,
- TemplateResolver;
+ ViewResolver;
return {
setters: [function($__m) {
Injectable = $__m.Injectable;
}, function($__m) {
View = $__m.View;
}, function($__m) {
+ stringify = $__m.stringify;
isBlank = $__m.isBlank;
+ BaseException = $__m.BaseException;
}, function($__m) {
- MapWrapper = $__m.MapWrapper;
+ Map = $__m.Map;
}, function($__m) {
reflector = $__m.reflector;
}],
@@ -12231,14 +12160,14 @@ System.register("angular2/src/core/compiler/template_resolver", ["angular2/di",
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
return Reflect.metadata(k, v);
};
- TemplateResolver = (($traceurRuntime.createClass)(function() {
- this._cache = MapWrapper.create();
+ ViewResolver = (($traceurRuntime.createClass)(function() {
+ this._cache = new Map();
}, {
resolve: function(component) {
- var view = MapWrapper.get(this._cache, component);
+ var view = this._cache.get(component);
if (isBlank(view)) {
view = this._resolve(component);
- MapWrapper.set(this._cache, component, view);
+ this._cache.set(component, view);
}
return view;
},
@@ -12250,11 +12179,11 @@ System.register("angular2/src/core/compiler/template_resolver", ["angular2/di",
return annotation;
}
}
- return null;
+ throw new BaseException(("No View annotation found on component " + stringify(component)));
}
}, {}));
- $__export("TemplateResolver", TemplateResolver);
- $__export("TemplateResolver", TemplateResolver = __decorate([Injectable(), __metadata('design:paramtypes', [])], TemplateResolver));
+ $__export("ViewResolver", ViewResolver);
+ $__export("ViewResolver", ViewResolver = __decorate([Injectable(), __metadata('design:paramtypes', [])], ViewResolver));
}
};
});
@@ -12266,7 +12195,7 @@ System.register("angular2/src/core/compiler/component_url_mapper", ["angular2/di
__metadata,
Injectable,
isPresent,
- MapWrapper,
+ Map,
ComponentUrlMapper,
RuntimeComponentUrlMapper;
return {
@@ -12275,7 +12204,7 @@ System.register("angular2/src/core/compiler/component_url_mapper", ["angular2/di
}, function($__m) {
isPresent = $__m.isPresent;
}, function($__m) {
- MapWrapper = $__m.MapWrapper;
+ Map = $__m.Map;
}],
execute: function() {
__decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
@@ -12308,14 +12237,14 @@ System.register("angular2/src/core/compiler/component_url_mapper", ["angular2/di
RuntimeComponentUrlMapper = (function($__super) {
function RuntimeComponentUrlMapper() {
$traceurRuntime.superConstructor(RuntimeComponentUrlMapper).call(this);
- this._componentUrls = MapWrapper.create();
+ this._componentUrls = new Map();
}
return ($traceurRuntime.createClass)(RuntimeComponentUrlMapper, {
setComponentUrl: function(component, url) {
- MapWrapper.set(this._componentUrls, component, url);
+ this._componentUrls.set(component, url);
},
getUrl: function(component) {
- var url = MapWrapper.get(this._componentUrls, component);
+ var url = this._componentUrls.get(component);
if (isPresent(url))
return url;
return $traceurRuntime.superGet(this, RuntimeComponentUrlMapper.prototype, "getUrl").call(this, component);
@@ -12364,7 +12293,7 @@ System.register("angular2/src/core/compiler/proto_view_factory", ["angular2/di",
if (isBlank(result)) {
result = [];
}
- ListWrapper.push(result, new RenderProtoViewWithIndex(renderProtoView, result.length, parentIndex, boundElementIndex));
+ result.push(new RenderProtoViewWithIndex(renderProtoView, result.length, parentIndex, boundElementIndex));
var currentIndex = result.length - 1;
var childBoundElementIndex = 0;
ListWrapper.forEach(renderProtoView.elementBinders, (function(elementBinder) {
@@ -12398,7 +12327,7 @@ System.register("angular2/src/core/compiler/proto_view_factory", ["angular2/di",
}
function _createAppProtoView(renderProtoView, protoChangeDetector, variableBindings, allDirectives) {
var elementBinders = renderProtoView.elementBinders;
- var protoView = new AppProtoView(renderProtoView.render, protoChangeDetector, variableBindings);
+ var protoView = new AppProtoView(renderProtoView.render, protoChangeDetector, variableBindings, createVariableLocations(elementBinders));
_createElementBinders(protoView, elementBinders, allDirectives);
_bindDirectiveEvents(protoView, elementBinders);
return protoView;
@@ -12409,9 +12338,9 @@ System.register("angular2/src/core/compiler/proto_view_factory", ["angular2/di",
}));
}
function _createVariableBindings(renderProtoView) {
- var variableBindings = MapWrapper.create();
+ var variableBindings = new Map();
MapWrapper.forEach(renderProtoView.variableBindings, (function(mappedName, varName) {
- MapWrapper.set(variableBindings, varName, mappedName);
+ variableBindings.set(varName, mappedName);
}));
return variableBindings;
}
@@ -12435,6 +12364,16 @@ System.register("angular2/src/core/compiler/proto_view_factory", ["angular2/di",
}));
return res;
}
+ function createVariableLocations(elementBinders) {
+ var variableLocations = new Map();
+ for (var i = 0; i < elementBinders.length; i++) {
+ var binder = elementBinders[i];
+ MapWrapper.forEach(binder.variableBindings, (function(mappedName, varName) {
+ variableLocations.set(mappedName, i);
+ }));
+ }
+ return variableLocations;
+ }
function _createElementBinders(protoView, elementBinders, allDirectiveBindings) {
for (var i = 0; i < elementBinders.length; i++) {
var renderElementBinder = elementBinders[i];
@@ -12472,7 +12411,8 @@ System.register("angular2/src/core/compiler/proto_view_factory", ["angular2/di",
var protoElementInjector = null;
var hasVariables = MapWrapper.size(renderElementBinder.variableBindings) > 0;
if (directiveBindings.length > 0 || hasVariables) {
- protoElementInjector = ProtoElementInjector.create(parentPeiWithDistance.protoElementInjector, binderIndex, directiveBindings, isPresent(componentDirectiveBinding), parentPeiWithDistance.distance);
+ var directiveVariableBindings = createDirectiveVariableBindings(renderElementBinder, directiveBindings);
+ protoElementInjector = ProtoElementInjector.create(parentPeiWithDistance.protoElementInjector, binderIndex, directiveBindings, isPresent(componentDirectiveBinding), parentPeiWithDistance.distance, directiveVariableBindings);
protoElementInjector.attributes = renderElementBinder.readAttributes;
}
return protoElementInjector;
@@ -12482,19 +12422,18 @@ System.register("angular2/src/core/compiler/proto_view_factory", ["angular2/di",
if (renderElementBinder.parentIndex !== -1) {
parent = protoView.elementBinders[renderElementBinder.parentIndex];
}
- var directiveVariableBindings = createDirectiveVariableBindings(renderElementBinder, directiveBindings);
- var elBinder = protoView.bindElement(parent, renderElementBinder.distanceToParent, protoElementInjector, directiveVariableBindings, componentDirectiveBinding);
+ var elBinder = protoView.bindElement(parent, renderElementBinder.distanceToParent, protoElementInjector, componentDirectiveBinding);
protoView.bindEvent(renderElementBinder.eventBindings, boundElementIndex, -1);
MapWrapper.forEach(renderElementBinder.variableBindings, (function(mappedName, varName) {
- MapWrapper.set(protoView.protoLocals, mappedName, null);
+ protoView.protoLocals.set(mappedName, null);
}));
return elBinder;
}
function createDirectiveVariableBindings(renderElementBinder, directiveBindings) {
- var directiveVariableBindings = MapWrapper.create();
+ var directiveVariableBindings = new Map();
MapWrapper.forEach(renderElementBinder.variableBindings, (function(templateName, exportAs) {
var dirIndex = _findDirectiveIndexByExportAs(renderElementBinder, directiveBindings, exportAs);
- MapWrapper.set(directiveVariableBindings, templateName, dirIndex);
+ directiveVariableBindings.set(templateName, dirIndex);
}));
return directiveVariableBindings;
}
@@ -12534,6 +12473,7 @@ System.register("angular2/src/core/compiler/proto_view_factory", ["angular2/di",
}
}
$__export("getChangeDetectorDefinitions", getChangeDetectorDefinitions);
+ $__export("createVariableLocations", createVariableLocations);
$__export("createDirectiveVariableBindings", createDirectiveVariableBindings);
return {
setters: [function($__m) {
@@ -12586,7 +12526,7 @@ System.register("angular2/src/core/compiler/proto_view_factory", ["angular2/di",
};
BindingRecordsCreator = (function() {
function BindingRecordsCreator() {
- this._directiveRecordsMap = MapWrapper.create();
+ this._directiveRecordsMap = new Map();
this._textNodeIndex = 0;
}
return ($traceurRuntime.createClass)(BindingRecordsCreator, {
@@ -12605,7 +12545,7 @@ System.register("angular2/src/core/compiler/proto_view_factory", ["angular2/di",
for (var elementIndex = 0; elementIndex < elementBinders.length; ++elementIndex) {
var dirs = elementBinders[elementIndex].directives;
for (var dirIndex = 0; dirIndex < dirs.length; ++dirIndex) {
- ListWrapper.push(directiveRecords, this._getDirectiveRecord(elementIndex, dirIndex, allDirectiveMetadatas[dirs[dirIndex].directiveIndex]));
+ directiveRecords.push(this._getDirectiveRecord(elementIndex, dirIndex, allDirectiveMetadatas[dirs[dirIndex].directiveIndex]));
}
}
return directiveRecords;
@@ -12615,12 +12555,20 @@ System.register("angular2/src/core/compiler/proto_view_factory", ["angular2/di",
if (isBlank(renderElementBinder.textBindings))
return ;
ListWrapper.forEach(renderElementBinder.textBindings, (function(b) {
- ListWrapper.push(bindings, BindingRecord.createForTextNode(b, $__0._textNodeIndex++));
+ bindings.push(BindingRecord.createForTextNode(b, $__0._textNodeIndex++));
}));
},
_createElementPropertyRecords: function(bindings, boundElementIndex, renderElementBinder) {
- MapWrapper.forEach(renderElementBinder.propertyBindings, (function(astWithSource, propertyName) {
- ListWrapper.push(bindings, BindingRecord.createForElement(astWithSource, boundElementIndex, propertyName));
+ ListWrapper.forEach(renderElementBinder.propertyBindings, (function(binding) {
+ if (binding.type === renderApi.PropertyBindingType.PROPERTY) {
+ bindings.push(BindingRecord.createForElementProperty(binding.astWithSource, boundElementIndex, binding.property));
+ } else if (binding.type === renderApi.PropertyBindingType.ATTRIBUTE) {
+ bindings.push(BindingRecord.createForElementAttribute(binding.astWithSource, boundElementIndex, binding.property));
+ } else if (binding.type === renderApi.PropertyBindingType.CLASS) {
+ bindings.push(BindingRecord.createForElementClass(binding.astWithSource, boundElementIndex, binding.property));
+ } else if (binding.type === renderApi.PropertyBindingType.STYLE) {
+ bindings.push(BindingRecord.createForElementStyle(binding.astWithSource, boundElementIndex, binding.property, binding.unit));
+ }
}));
},
_createDirectiveRecords: function(bindings, boundElementIndex, directiveBinders, allDirectiveMetadatas) {
@@ -12630,30 +12578,38 @@ System.register("angular2/src/core/compiler/proto_view_factory", ["angular2/di",
var directiveRecord = this._getDirectiveRecord(boundElementIndex, i, directiveMetadata);
MapWrapper.forEach(directiveBinder.propertyBindings, (function(astWithSource, propertyName) {
var setter = reflector.setter(propertyName);
- ListWrapper.push(bindings, BindingRecord.createForDirective(astWithSource, propertyName, setter, directiveRecord));
+ bindings.push(BindingRecord.createForDirective(astWithSource, propertyName, setter, directiveRecord));
}));
if (directiveRecord.callOnChange) {
- ListWrapper.push(bindings, BindingRecord.createDirectiveOnChange(directiveRecord));
+ bindings.push(BindingRecord.createDirectiveOnChange(directiveRecord));
}
if (directiveRecord.callOnInit) {
- ListWrapper.push(bindings, BindingRecord.createDirectiveOnInit(directiveRecord));
+ bindings.push(BindingRecord.createDirectiveOnInit(directiveRecord));
}
if (directiveRecord.callOnCheck) {
- ListWrapper.push(bindings, BindingRecord.createDirectiveOnCheck(directiveRecord));
+ bindings.push(BindingRecord.createDirectiveOnCheck(directiveRecord));
}
}
for (var i = 0; i < directiveBinders.length; i++) {
var directiveBinder = directiveBinders[i];
- MapWrapper.forEach(directiveBinder.hostPropertyBindings, (function(astWithSource, propertyName) {
+ ListWrapper.forEach(directiveBinder.hostPropertyBindings, (function(binding) {
var dirIndex = new DirectiveIndex(boundElementIndex, i);
- ListWrapper.push(bindings, BindingRecord.createForHostProperty(dirIndex, astWithSource, propertyName));
+ if (binding.type === renderApi.PropertyBindingType.PROPERTY) {
+ bindings.push(BindingRecord.createForHostProperty(dirIndex, binding.astWithSource, binding.property));
+ } else if (binding.type === renderApi.PropertyBindingType.ATTRIBUTE) {
+ bindings.push(BindingRecord.createForHostAttribute(dirIndex, binding.astWithSource, binding.property));
+ } else if (binding.type === renderApi.PropertyBindingType.CLASS) {
+ bindings.push(BindingRecord.createForHostClass(dirIndex, binding.astWithSource, binding.property));
+ } else if (binding.type === renderApi.PropertyBindingType.STYLE) {
+ bindings.push(BindingRecord.createForHostStyle(dirIndex, binding.astWithSource, binding.property, binding.unit));
+ }
}));
}
},
_getDirectiveRecord: function(boundElementIndex, directiveIndex, directiveMetadata) {
var id = boundElementIndex * 100 + directiveIndex;
- if (!MapWrapper.contains(this._directiveRecordsMap, id)) {
- MapWrapper.set(this._directiveRecordsMap, id, new DirectiveRecord({
+ if (!this._directiveRecordsMap.has(id)) {
+ this._directiveRecordsMap.set(id, new DirectiveRecord({
directiveIndex: new DirectiveIndex(boundElementIndex, directiveIndex),
callOnAllChangesDone: directiveMetadata.callOnAllChangesDone,
callOnChange: directiveMetadata.callOnChange,
@@ -12662,7 +12618,7 @@ System.register("angular2/src/core/compiler/proto_view_factory", ["angular2/di",
changeDetection: directiveMetadata.changeDetection
}));
}
- return MapWrapper.get(this._directiveRecordsMap, id);
+ return this._directiveRecordsMap.get(id);
}
}, {});
}());
@@ -12713,7 +12669,7 @@ System.register("angular2/src/core/compiler/proto_view_factory", ["angular2/di",
};
});
-System.register("angular2/src/services/url_resolver", ["angular2/di", "angular2/src/facade/lang", "angular2/src/dom/dom_adapter"], function($__export) {
+System.register("angular2/src/services/url_resolver", ["angular2/di", "angular2/src/facade/lang", "angular2/src/facade/collection"], function($__export) {
"use strict";
var __moduleName = "angular2/src/services/url_resolver";
var __decorate,
@@ -12722,10 +12678,103 @@ System.register("angular2/src/services/url_resolver", ["angular2/di", "angular2/
isPresent,
isBlank,
RegExpWrapper,
- BaseException,
- DOM,
+ ListWrapper,
UrlResolver,
- _schemeRe;
+ _splitRe,
+ _ComponentIndex;
+ function _buildFromEncodedParts(opt_scheme, opt_userInfo, opt_domain, opt_port, opt_path, opt_queryData, opt_fragment) {
+ var out = [];
+ if (isPresent(opt_scheme)) {
+ out.push(opt_scheme + ':');
+ }
+ if (isPresent(opt_domain)) {
+ out.push('//');
+ if (isPresent(opt_userInfo)) {
+ out.push(opt_userInfo + '@');
+ }
+ out.push(opt_domain);
+ if (isPresent(opt_port)) {
+ out.push(':' + opt_port);
+ }
+ }
+ if (isPresent(opt_path)) {
+ out.push(opt_path);
+ }
+ if (isPresent(opt_queryData)) {
+ out.push('?' + opt_queryData);
+ }
+ if (isPresent(opt_fragment)) {
+ out.push('#' + opt_fragment);
+ }
+ return out.join('');
+ }
+ function _split(uri) {
+ return RegExpWrapper.firstMatch(_splitRe, uri);
+ }
+ function _removeDotSegments(path) {
+ if (path == '/')
+ return '/';
+ var leadingSlash = path[0] == '/' ? '/' : '';
+ var trailingSlash = path[path.length - 1] === '/' ? '/' : '';
+ var segments = path.split('/');
+ var out = [];
+ var up = 0;
+ for (var pos = 0; pos < segments.length; pos++) {
+ var segment = segments[pos];
+ switch (segment) {
+ case '':
+ case '.':
+ break;
+ case '..':
+ if (out.length > 0) {
+ ListWrapper.removeAt(out, out.length - 1);
+ } else {
+ up++;
+ }
+ break;
+ default:
+ out.push(segment);
+ }
+ }
+ if (leadingSlash == '') {
+ while (up-- > 0) {
+ ListWrapper.insert(out, 0, '..');
+ }
+ if (out.length === 0)
+ out.push('.');
+ }
+ return leadingSlash + out.join('/') + trailingSlash;
+ }
+ function _joinAndCanonicalizePath(parts) {
+ var path = parts[_ComponentIndex.PATH];
+ path = isBlank(path) ? '' : _removeDotSegments(path);
+ parts[_ComponentIndex.PATH] = path;
+ return _buildFromEncodedParts(parts[_ComponentIndex.SCHEME], parts[_ComponentIndex.USER_INFO], parts[_ComponentIndex.DOMAIN], parts[_ComponentIndex.PORT], path, parts[_ComponentIndex.QUERY_DATA], parts[_ComponentIndex.FRAGMENT]);
+ }
+ function _resolveUrl(base, url) {
+ var parts = _split(url);
+ var baseParts = _split(base);
+ if (isPresent(parts[_ComponentIndex.SCHEME])) {
+ return _joinAndCanonicalizePath(parts);
+ } else {
+ parts[_ComponentIndex.SCHEME] = baseParts[_ComponentIndex.SCHEME];
+ }
+ for (var i = _ComponentIndex.SCHEME; i <= _ComponentIndex.PORT; i++) {
+ if (isBlank(parts[i])) {
+ parts[i] = baseParts[i];
+ }
+ }
+ if (parts[_ComponentIndex.PATH][0] == '/') {
+ return _joinAndCanonicalizePath(parts);
+ }
+ var path = baseParts[_ComponentIndex.PATH];
+ if (isBlank(path))
+ path = '/';
+ var index = path.lastIndexOf('/');
+ path = path.substring(0, index + 1) + parts[_ComponentIndex.PATH];
+ parts[_ComponentIndex.PATH] = path;
+ return _joinAndCanonicalizePath(parts);
+ }
return {
setters: [function($__m) {
Injectable = $__m.Injectable;
@@ -12733,7 +12782,65 @@ System.register("angular2/src/services/url_resolver", ["angular2/di", "angular2/
isPresent = $__m.isPresent;
isBlank = $__m.isBlank;
RegExpWrapper = $__m.RegExpWrapper;
- BaseException = $__m.BaseException;
+ }, function($__m) {
+ ListWrapper = $__m.ListWrapper;
+ }],
+ execute: function() {
+ __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
+ return Reflect.decorate(decorators, target, key, desc);
+ switch (arguments.length) {
+ case 2:
+ return decorators.reduceRight(function(o, d) {
+ return (d && d(o)) || o;
+ }, target);
+ case 3:
+ return decorators.reduceRight(function(o, d) {
+ return (d && d(target, key)), void 0;
+ }, void 0);
+ case 4:
+ return decorators.reduceRight(function(o, d) {
+ return (d && d(target, key, o)) || o;
+ }, desc);
+ }
+ };
+ __metadata = (this && this.__metadata) || function(k, v) {
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
+ return Reflect.metadata(k, v);
+ };
+ UrlResolver = (($traceurRuntime.createClass)(function() {}, {resolve: function(baseUrl, url) {
+ return _resolveUrl(baseUrl, url);
+ }}, {}));
+ $__export("UrlResolver", UrlResolver);
+ $__export("UrlResolver", UrlResolver = __decorate([Injectable(), __metadata('design:paramtypes', [])], UrlResolver));
+ _splitRe = RegExpWrapper.create('^' + '(?:' + '([^:/?#.]+)' + ':)?' + '(?://' + '(?:([^/?#]*)@)?' + '([\\w\\d\\-\\u0100-\\uffff.%]*)' + '(?::([0-9]+))?' + ')?' + '([^?#]+)?' + '(?:\\?([^#]*))?' + '(?:#(.*))?' + '$');
+ (function(_ComponentIndex) {
+ _ComponentIndex[_ComponentIndex["SCHEME"] = 1] = "SCHEME";
+ _ComponentIndex[_ComponentIndex["USER_INFO"] = 2] = "USER_INFO";
+ _ComponentIndex[_ComponentIndex["DOMAIN"] = 3] = "DOMAIN";
+ _ComponentIndex[_ComponentIndex["PORT"] = 4] = "PORT";
+ _ComponentIndex[_ComponentIndex["PATH"] = 5] = "PATH";
+ _ComponentIndex[_ComponentIndex["QUERY_DATA"] = 6] = "QUERY_DATA";
+ _ComponentIndex[_ComponentIndex["FRAGMENT"] = 7] = "FRAGMENT";
+ })(_ComponentIndex || (_ComponentIndex = {}));
+ }
+ };
+});
+
+System.register("angular2/src/services/app_root_url", ["angular2/di", "angular2/src/facade/lang", "angular2/src/dom/dom_adapter"], function($__export) {
+ "use strict";
+ var __moduleName = "angular2/src/services/app_root_url";
+ var __decorate,
+ __metadata,
+ Injectable,
+ isBlank,
+ DOM,
+ AppRootUrl;
+ return {
+ setters: [function($__m) {
+ Injectable = $__m.Injectable;
+ }, function($__m) {
+ isBlank = $__m.isBlank;
}, function($__m) {
DOM = $__m.DOM;
}],
@@ -12760,30 +12867,16 @@ System.register("angular2/src/services/url_resolver", ["angular2/di", "angular2/
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
return Reflect.metadata(k, v);
};
- UrlResolver = (($traceurRuntime.createClass)(function() {
- if (isBlank(UrlResolver.a)) {
- UrlResolver.a = DOM.createElement('a');
- }
- }, {resolve: function(baseUrl, url) {
- if (isBlank(baseUrl)) {
- DOM.resolveAndSetHref(UrlResolver.a, url, null);
- return DOM.getHref(UrlResolver.a);
+ AppRootUrl = (($traceurRuntime.createClass)(function() {}, {get value() {
+ if (isBlank(this._value)) {
+ var a = DOM.createElement('a');
+ DOM.resolveAndSetHref(a, './', null);
+ this._value = DOM.getHref(a);
}
- if (isBlank(url) || url == '')
- return baseUrl;
- if (url[0] == '/') {
- throw new BaseException(("Could not resolve the url " + url + " from " + baseUrl));
- }
- var m = RegExpWrapper.firstMatch(_schemeRe, url);
- if (isPresent(m[1])) {
- return url;
- }
- DOM.resolveAndSetHref(UrlResolver.a, baseUrl, url);
- return DOM.getHref(UrlResolver.a);
+ return this._value;
}}, {}));
- $__export("UrlResolver", UrlResolver);
- $__export("UrlResolver", UrlResolver = __decorate([Injectable(), __metadata('design:paramtypes', [])], UrlResolver));
- _schemeRe = RegExpWrapper.create('^([^:/?#]+:)?');
+ $__export("AppRootUrl", AppRootUrl);
+ $__export("AppRootUrl", AppRootUrl = __decorate([Injectable(), __metadata('design:paramtypes', [])], AppRootUrl));
}
};
});
@@ -12864,6 +12957,79 @@ System.register("angular2/src/render/xhr", [], function($__export) {
};
});
+System.register("angular2/src/render/dom/compiler/style_url_resolver", ["angular2/di", "angular2/src/facade/lang", "angular2/src/services/url_resolver"], function($__export) {
+ "use strict";
+ var __moduleName = "angular2/src/render/dom/compiler/style_url_resolver";
+ var __decorate,
+ __metadata,
+ Injectable,
+ RegExpWrapper,
+ StringWrapper,
+ UrlResolver,
+ StyleUrlResolver,
+ _cssUrlRe,
+ _cssImportRe,
+ _quoteRe;
+ return {
+ setters: [function($__m) {
+ Injectable = $__m.Injectable;
+ }, function($__m) {
+ RegExpWrapper = $__m.RegExpWrapper;
+ StringWrapper = $__m.StringWrapper;
+ }, function($__m) {
+ UrlResolver = $__m.UrlResolver;
+ }],
+ execute: function() {
+ __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
+ return Reflect.decorate(decorators, target, key, desc);
+ switch (arguments.length) {
+ case 2:
+ return decorators.reduceRight(function(o, d) {
+ return (d && d(o)) || o;
+ }, target);
+ case 3:
+ return decorators.reduceRight(function(o, d) {
+ return (d && d(target, key)), void 0;
+ }, void 0);
+ case 4:
+ return decorators.reduceRight(function(o, d) {
+ return (d && d(target, key, o)) || o;
+ }, desc);
+ }
+ };
+ __metadata = (this && this.__metadata) || function(k, v) {
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
+ return Reflect.metadata(k, v);
+ };
+ StyleUrlResolver = (($traceurRuntime.createClass)(function(_resolver) {
+ this._resolver = _resolver;
+ }, {
+ resolveUrls: function(cssText, baseUrl) {
+ cssText = this._replaceUrls(cssText, _cssUrlRe, baseUrl);
+ cssText = this._replaceUrls(cssText, _cssImportRe, baseUrl);
+ return cssText;
+ },
+ _replaceUrls: function(cssText, re, baseUrl) {
+ var $__0 = this;
+ return StringWrapper.replaceAllMapped(cssText, re, (function(m) {
+ var pre = m[1];
+ var url = StringWrapper.replaceAll(m[2], _quoteRe, '');
+ var post = m[3];
+ var resolvedUrl = $__0._resolver.resolve(baseUrl, url);
+ return pre + "'" + resolvedUrl + "'" + post;
+ }));
+ }
+ }, {}));
+ $__export("StyleUrlResolver", StyleUrlResolver);
+ $__export("StyleUrlResolver", StyleUrlResolver = __decorate([Injectable(), __metadata('design:paramtypes', [UrlResolver])], StyleUrlResolver));
+ _cssUrlRe = RegExpWrapper.create('(url\\()([^)]*)(\\))');
+ _cssImportRe = RegExpWrapper.create('(@import[\\s]+(?!url\\())[\'"]([^\'"]*)[\'"](.*;)');
+ _quoteRe = RegExpWrapper.create('[\'"]');
+ }
+ };
+});
+
System.register("angular2/src/core/zone/ng_zone", ["angular2/src/facade/collection", "angular2/src/facade/lang"], function($__export) {
"use strict";
var __moduleName = "angular2/src/core/zone/ng_zone";
@@ -13001,13 +13167,12 @@ System.register("angular2/src/core/zone/ng_zone", ["angular2/src/facade/collecti
};
});
-System.register("angular2/src/core/life_cycle/life_cycle", ["angular2/di", "angular2/change_detection", "angular2/src/core/exception_handler", "angular2/src/facade/lang"], function($__export) {
+System.register("angular2/src/core/life_cycle/life_cycle", ["angular2/di", "angular2/src/core/exception_handler", "angular2/src/facade/lang"], function($__export) {
"use strict";
var __moduleName = "angular2/src/core/life_cycle/life_cycle";
var __decorate,
__metadata,
Injectable,
- ChangeDetector,
ExceptionHandler,
isPresent,
BaseException,
@@ -13015,8 +13180,6 @@ System.register("angular2/src/core/life_cycle/life_cycle", ["angular2/di", "angu
return {
setters: [function($__m) {
Injectable = $__m.Injectable;
- }, function($__m) {
- ChangeDetector = $__m.ChangeDetector;
}, function($__m) {
ExceptionHandler = $__m.ExceptionHandler;
}, function($__m) {
@@ -13086,7 +13249,7 @@ System.register("angular2/src/core/life_cycle/life_cycle", ["angular2/di", "angu
}
}, {}));
$__export("LifeCycle", LifeCycle);
- $__export("LifeCycle", LifeCycle = __decorate([Injectable(), __metadata('design:paramtypes', [ExceptionHandler, ChangeDetector, Boolean])], LifeCycle));
+ $__export("LifeCycle", LifeCycle = __decorate([Injectable(), __metadata('design:paramtypes', [ExceptionHandler, Object, Boolean])], LifeCycle));
}
};
});
@@ -13110,9 +13273,7 @@ System.register("angular2/src/render/dom/shadow_dom/shadow_dom_strategy", [], fu
constructLightDom: function(lightDomView, el) {
return null;
},
- processStyleElement: function(hostComponentId, templateUrl, styleElement) {
- return null;
- },
+ processStyleElement: function(hostComponentId, templateUrl, styleElement) {},
processElement: function(hostComponentId, elementComponentId, element) {}
}, {});
}());
@@ -13207,7 +13368,7 @@ System.register("angular2/src/render/dom/shadow_dom/light_dom", ["angular2/src/d
for (var i = 0; i < els.length; i++) {
var el = els[i];
if (isPresent(el.contentTag)) {
- ListWrapper.push(acc, el.contentTag);
+ acc.push(el.contentTag);
}
if (isPresent(el.viewContainer)) {
ListWrapper.forEach(el.viewContainer.contentTagContainers(), (function(view) {
@@ -13230,10 +13391,10 @@ System.register("angular2/src/render/dom/shadow_dom/light_dom", ["angular2/src/d
} else if (isPresent(content)) {
res = ListWrapper.concat(res, content.nodes());
} else {
- ListWrapper.push(res, root.node);
+ res.push(root.node);
}
} else {
- ListWrapper.push(res, root.node);
+ res.push(root.node);
}
}
return res;
@@ -13384,7 +13545,7 @@ System.register("angular2/src/render/dom/shadow_dom/shadow_css", ["angular2/src/
if (isBlank(p))
break;
p = p.trim();
- ListWrapper.push(r, partReplacer(_polyfillHostNoCombinator, p, m[3]));
+ r.push(partReplacer(_polyfillHostNoCombinator, p, m[3]));
}
return r.join(',');
} else {
@@ -13453,7 +13614,7 @@ System.register("angular2/src/render/dom/shadow_dom/shadow_css", ["angular2/src/
if (this._selectorNeedsScoping(p, scopeSelector)) {
p = strict && !StringWrapper.contains(p, _polyfillHostNoCombinator) ? this._applyStrictSelectorScope(p, scopeSelector) : this._applySelectorScope(p, scopeSelector, hostSelector);
}
- ListWrapper.push(r, p);
+ r.push(p);
}
return r.join(', ');
},
@@ -13590,9 +13751,13 @@ System.register("angular2/src/render/xhr_impl", ["angular2/di", "angular2/src/fa
xhr.open('GET', url, true);
xhr.responseType = 'text';
xhr.onload = function() {
- var status = xhr.status;
+ var response = ('response' in xhr) ? xhr.response : xhr.responseText;
+ var status = xhr.status === 1223 ? 204 : xhr.status;
+ if (status === 0) {
+ status = response ? 200 : 0;
+ }
if (200 <= status && status <= 300) {
- completer.resolve(xhr.responseText);
+ completer.resolve(response);
} else {
completer.reject(("Failed to load " + url), null);
}
@@ -13913,251 +14078,23 @@ System.register("angular2/src/render/dom/events/hammer_common", ["angular2/src/r
};
});
-System.register("angular2/src/render/dom/shadow_dom/style_url_resolver", ["angular2/di", "angular2/src/facade/lang", "angular2/src/services/url_resolver"], function($__export) {
- "use strict";
- var __moduleName = "angular2/src/render/dom/shadow_dom/style_url_resolver";
- var __decorate,
- __metadata,
- Injectable,
- RegExpWrapper,
- StringWrapper,
- UrlResolver,
- StyleUrlResolver,
- _cssUrlRe,
- _cssImportRe,
- _quoteRe;
- return {
- setters: [function($__m) {
- Injectable = $__m.Injectable;
- }, function($__m) {
- RegExpWrapper = $__m.RegExpWrapper;
- StringWrapper = $__m.StringWrapper;
- }, function($__m) {
- UrlResolver = $__m.UrlResolver;
- }],
- execute: function() {
- __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
- return Reflect.decorate(decorators, target, key, desc);
- switch (arguments.length) {
- case 2:
- return decorators.reduceRight(function(o, d) {
- return (d && d(o)) || o;
- }, target);
- case 3:
- return decorators.reduceRight(function(o, d) {
- return (d && d(target, key)), void 0;
- }, void 0);
- case 4:
- return decorators.reduceRight(function(o, d) {
- return (d && d(target, key, o)) || o;
- }, desc);
- }
- };
- __metadata = (this && this.__metadata) || function(k, v) {
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
- return Reflect.metadata(k, v);
- };
- StyleUrlResolver = (($traceurRuntime.createClass)(function(_resolver) {
- this._resolver = _resolver;
- }, {
- resolveUrls: function(cssText, baseUrl) {
- cssText = this._replaceUrls(cssText, _cssUrlRe, baseUrl);
- cssText = this._replaceUrls(cssText, _cssImportRe, baseUrl);
- return cssText;
- },
- _replaceUrls: function(cssText, re, baseUrl) {
- var $__0 = this;
- return StringWrapper.replaceAllMapped(cssText, re, (function(m) {
- var pre = m[1];
- var url = StringWrapper.replaceAll(m[2], _quoteRe, '');
- var post = m[3];
- var resolvedUrl = $__0._resolver.resolve(baseUrl, url);
- return pre + "'" + resolvedUrl + "'" + post;
- }));
- }
- }, {}));
- $__export("StyleUrlResolver", StyleUrlResolver);
- $__export("StyleUrlResolver", StyleUrlResolver = __decorate([Injectable(), __metadata('design:paramtypes', [UrlResolver])], StyleUrlResolver));
- _cssUrlRe = RegExpWrapper.create('(url\\()([^)]*)(\\))');
- _cssImportRe = RegExpWrapper.create('(@import[\\s]+(?!url\\())[\'"]([^\'"]*)[\'"](.*;)');
- _quoteRe = RegExpWrapper.create('[\'"]');
- }
- };
-});
-
-System.register("angular2/src/render/dom/shadow_dom/style_inliner", ["angular2/di", "angular2/src/render/xhr", "angular2/src/facade/collection", "angular2/src/services/url_resolver", "angular2/src/render/dom/shadow_dom/style_url_resolver", "angular2/src/facade/lang", "angular2/src/facade/async"], function($__export) {
- "use strict";
- var __moduleName = "angular2/src/render/dom/shadow_dom/style_inliner";
- var __decorate,
- __metadata,
- Injectable,
- XHR,
- ListWrapper,
- UrlResolver,
- StyleUrlResolver,
- isBlank,
- isPresent,
- RegExpWrapper,
- StringWrapper,
- isPromise,
- PromiseWrapper,
- StyleInliner,
- _importRe,
- _urlRe,
- _mediaQueryRe;
- function _extractUrl(importRule) {
- var match = RegExpWrapper.firstMatch(_urlRe, importRule);
- if (isBlank(match))
- return null;
- return isPresent(match[1]) ? match[1] : match[2];
- }
- function _extractMediaQuery(importRule) {
- var match = RegExpWrapper.firstMatch(_mediaQueryRe, importRule);
- if (isBlank(match))
- return null;
- var mediaQuery = match[1].trim();
- return (mediaQuery.length > 0) ? mediaQuery : null;
- }
- function _wrapInMediaRule(css, query) {
- return (isBlank(query)) ? css : ("@media " + query + " {\n" + css + "\n}");
- }
- return {
- setters: [function($__m) {
- Injectable = $__m.Injectable;
- }, function($__m) {
- XHR = $__m.XHR;
- }, function($__m) {
- ListWrapper = $__m.ListWrapper;
- }, function($__m) {
- UrlResolver = $__m.UrlResolver;
- }, function($__m) {
- StyleUrlResolver = $__m.StyleUrlResolver;
- }, function($__m) {
- isBlank = $__m.isBlank;
- isPresent = $__m.isPresent;
- RegExpWrapper = $__m.RegExpWrapper;
- StringWrapper = $__m.StringWrapper;
- isPromise = $__m.isPromise;
- }, function($__m) {
- PromiseWrapper = $__m.PromiseWrapper;
- }],
- execute: function() {
- __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
- return Reflect.decorate(decorators, target, key, desc);
- switch (arguments.length) {
- case 2:
- return decorators.reduceRight(function(o, d) {
- return (d && d(o)) || o;
- }, target);
- case 3:
- return decorators.reduceRight(function(o, d) {
- return (d && d(target, key)), void 0;
- }, void 0);
- case 4:
- return decorators.reduceRight(function(o, d) {
- return (d && d(target, key, o)) || o;
- }, desc);
- }
- };
- __metadata = (this && this.__metadata) || function(k, v) {
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
- return Reflect.metadata(k, v);
- };
- StyleInliner = (($traceurRuntime.createClass)(function(_xhr, _styleUrlResolver, _urlResolver) {
- this._xhr = _xhr;
- this._styleUrlResolver = _styleUrlResolver;
- this._urlResolver = _urlResolver;
- }, {
- inlineImports: function(cssText, baseUrl) {
- return this._inlineImports(cssText, baseUrl, []);
- },
- _inlineImports: function(cssText, baseUrl, inlinedUrls) {
- var $__0 = this;
- var partIndex = 0;
- var parts = StringWrapper.split(cssText, _importRe);
- if (parts.length === 1) {
- return cssText;
- }
- var promises = [];
- while (partIndex < parts.length - 1) {
- var prefix = parts[partIndex];
- var rule = parts[partIndex + 1];
- var url = _extractUrl(rule);
- if (isPresent(url)) {
- url = this._urlResolver.resolve(baseUrl, url);
- }
- var mediaQuery = _extractMediaQuery(rule);
- var promise = void 0;
- if (isBlank(url)) {
- promise = PromiseWrapper.resolve(("/* Invalid import rule: \"@import " + rule + ";\" */"));
- } else if (ListWrapper.contains(inlinedUrls, url)) {
- promise = PromiseWrapper.resolve(prefix);
- } else {
- ListWrapper.push(inlinedUrls, url);
- promise = PromiseWrapper.then(this._xhr.get(url), (function(rawCss) {
- var inlinedCss = $__0._inlineImports(rawCss, url, inlinedUrls);
- if (isPromise(inlinedCss)) {
- return inlinedCss.then((function(css) {
- return prefix + $__0._transformImportedCss(css, mediaQuery, url) + '\n';
- }));
- } else {
- return prefix + $__0._transformImportedCss(inlinedCss, mediaQuery, url) + '\n';
- }
- }), (function(error) {
- return ("/* failed to import " + url + " */\n");
- }));
- }
- ListWrapper.push(promises, promise);
- partIndex += 2;
- }
- return PromiseWrapper.all(promises).then(function(cssParts) {
- var cssText = cssParts.join('');
- if (partIndex < parts.length) {
- cssText += parts[partIndex];
- }
- return cssText;
- });
- },
- _transformImportedCss: function(css, mediaQuery, url) {
- css = this._styleUrlResolver.resolveUrls(css, url);
- return _wrapInMediaRule(css, mediaQuery);
- }
- }, {}));
- $__export("StyleInliner", StyleInliner);
- $__export("StyleInliner", StyleInliner = __decorate([Injectable(), __metadata('design:paramtypes', [XHR, StyleUrlResolver, UrlResolver])], StyleInliner));
- _importRe = RegExpWrapper.create('@import\\s+([^;]+);');
- _urlRe = RegExpWrapper.create('url\\(\\s*?[\'"]?([^\'")]+)[\'"]?|' + '[\'"]([^\'")]+)[\'"]');
- _mediaQueryRe = RegExpWrapper.create('[\'"][^\'"]+[\'"]\\s*\\)?\\s*(.*)');
- }
- };
-});
-
-System.register("angular2/src/core/compiler/dynamic_component_loader", ["angular2/di", "angular2/src/core/compiler/compiler", "angular2/src/core/compiler/view_manager", "angular2/src/core/compiler/element_ref"], function($__export) {
+System.register("angular2/src/core/compiler/dynamic_component_loader", ["angular2/di", "angular2/src/core/compiler/compiler", "angular2/src/core/compiler/view_manager"], function($__export) {
"use strict";
var __moduleName = "angular2/src/core/compiler/dynamic_component_loader";
var __decorate,
__metadata,
- Binding,
- bind,
Injectable,
Compiler,
AppViewManager,
- ElementRef,
ComponentRef,
DynamicComponentLoader;
return {
setters: [function($__m) {
- Binding = $__m.Binding;
- bind = $__m.bind;
Injectable = $__m.Injectable;
}, function($__m) {
Compiler = $__m.Compiler;
}, function($__m) {
AppViewManager = $__m.AppViewManager;
- }, function($__m) {
- ElementRef = $__m.ElementRef;
}],
execute: function() {
__decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
@@ -14197,26 +14134,13 @@ System.register("angular2/src/core/compiler/dynamic_component_loader", ["angular
this._compiler = _compiler;
this._viewManager = _viewManager;
}, {
- loadIntoExistingLocation: function(typeOrBinding, location) {
- var injector = arguments[2] !== (void 0) ? arguments[2] : null;
- var $__0 = this;
- var binding = this._getBinding(typeOrBinding);
- return this._compiler.compile(binding.token).then((function(componentProtoViewRef) {
- $__0._viewManager.createDynamicComponentView(location, componentProtoViewRef, binding, injector);
- var component = $__0._viewManager.getComponent(location);
- var dispose = (function() {
- $__0._viewManager.destroyDynamicComponent(location);
- });
- return new ComponentRef(location, component, dispose);
- }));
- },
loadAsRoot: function(typeOrBinding) {
var overrideSelector = arguments[1] !== (void 0) ? arguments[1] : null;
var injector = arguments[2] !== (void 0) ? arguments[2] : null;
var $__0 = this;
- return this._compiler.compileInHost(this._getBinding(typeOrBinding)).then((function(hostProtoViewRef) {
+ return this._compiler.compileInHost(typeOrBinding).then((function(hostProtoViewRef) {
var hostViewRef = $__0._viewManager.createRootHostView(hostProtoViewRef, overrideSelector, injector);
- var newLocation = new ElementRef(hostViewRef, 0);
+ var newLocation = $__0._viewManager.getHostElement(hostViewRef);
var component = $__0._viewManager.getComponent(newLocation);
var dispose = (function() {
$__0._viewManager.destroyRootHostView(hostViewRef);
@@ -14224,27 +14148,17 @@ System.register("angular2/src/core/compiler/dynamic_component_loader", ["angular
return new ComponentRef(newLocation, component, dispose);
}));
},
- loadIntoNewLocation: function(typeOrBinding, parentComponentLocation) {
- var injector = arguments[2] !== (void 0) ? arguments[2] : null;
- var $__0 = this;
- return this._compiler.compileInHost(this._getBinding(typeOrBinding)).then((function(hostProtoViewRef) {
- var hostViewRef = $__0._viewManager.createFreeHostView(parentComponentLocation, hostProtoViewRef, injector);
- var newLocation = new ElementRef(hostViewRef, 0);
- var component = $__0._viewManager.getComponent(newLocation);
- var dispose = (function() {
- $__0._viewManager.destroyFreeHostView(parentComponentLocation, hostViewRef);
- });
- return new ComponentRef(newLocation, component, dispose);
- }));
+ loadIntoLocation: function(typeOrBinding, hostLocation, anchorName) {
+ var injector = arguments[3] !== (void 0) ? arguments[3] : null;
+ return this.loadNextToLocation(typeOrBinding, this._viewManager.getNamedElementInComponentView(hostLocation, anchorName), injector);
},
- loadNextToExistingLocation: function(typeOrBinding, location) {
+ loadNextToLocation: function(typeOrBinding, location) {
var injector = arguments[2] !== (void 0) ? arguments[2] : null;
var $__0 = this;
- var binding = this._getBinding(typeOrBinding);
- return this._compiler.compileInHost(binding).then((function(hostProtoViewRef) {
+ return this._compiler.compileInHost(typeOrBinding).then((function(hostProtoViewRef) {
var viewContainer = $__0._viewManager.getViewContainer(location);
var hostViewRef = viewContainer.create(hostProtoViewRef, viewContainer.length, null, injector);
- var newLocation = new ElementRef(hostViewRef, 0);
+ var newLocation = $__0._viewManager.getHostElement(hostViewRef);
var component = $__0._viewManager.getComponent(newLocation);
var dispose = (function() {
var index = viewContainer.indexOf(hostViewRef);
@@ -14252,15 +14166,6 @@ System.register("angular2/src/core/compiler/dynamic_component_loader", ["angular
});
return new ComponentRef(newLocation, component, dispose);
}));
- },
- _getBinding: function(typeOrBinding) {
- var binding;
- if (typeOrBinding instanceof Binding) {
- binding = typeOrBinding;
- } else {
- binding = bind(typeOrBinding).toClass(typeOrBinding);
- }
- return binding;
}
}, {}));
$__export("DynamicComponentLoader", DynamicComponentLoader);
@@ -14310,12 +14215,12 @@ System.register("angular2/src/core/testability/get_testability", ["angular2/src/
};
});
-System.register("angular2/src/render/dom/shadow_dom/content_tag", ["angular2/src/dom/dom_adapter", "angular2/src/facade/lang"], function($__export) {
+System.register("angular2/src/render/dom/shadow_dom/content_tag", ["angular2/src/dom/dom_adapter", "angular2/src/facade/lang", "angular2/src/facade/collection"], function($__export) {
"use strict";
var __moduleName = "angular2/src/render/dom/shadow_dom/content_tag";
var DOM,
isPresent,
- isBlank,
+ ListWrapper,
ContentStrategy,
RenderedContent,
IntermediateContent,
@@ -14325,7 +14230,8 @@ System.register("angular2/src/render/dom/shadow_dom/content_tag", ["angular2/src
DOM = $__m.DOM;
}, function($__m) {
isPresent = $__m.isPresent;
- isBlank = $__m.isBlank;
+ }, function($__m) {
+ ListWrapper = $__m.ListWrapper;
}],
execute: function() {
ContentStrategy = (function() {
@@ -14336,22 +14242,19 @@ System.register("angular2/src/render/dom/shadow_dom/content_tag", ["angular2/src
function RenderedContent(contentEl) {
$traceurRuntime.superConstructor(RenderedContent).call(this);
this.beginScript = contentEl;
+ this.endScript = DOM.nextSibling(this.beginScript);
this.nodes = [];
}
return ($traceurRuntime.createClass)(RenderedContent, {
insert: function(nodes) {
this.nodes = nodes;
- if (isBlank(this.endScript)) {
- this.endScript = DOM.createScriptTag('type', 'ng/contentEnd');
- DOM.insertAfter(this.beginScript, this.endScript);
- } else {
- this._removeNodes();
- }
DOM.insertAllBefore(this.endScript, nodes);
+ this._removeNodesUntil(ListWrapper.isEmpty(nodes) ? this.endScript : nodes[0]);
},
- _removeNodes: function() {
- for (var node = DOM.nextSibling(this.beginScript); node !== this.endScript; node = DOM.nextSibling(this.beginScript)) {
- DOM.remove(node);
+ _removeNodesUntil: function(node) {
+ var p = DOM.parentElement(this.beginScript);
+ for (var next = DOM.nextSibling(this.beginScript); next !== node; next = DOM.nextSibling(this.beginScript)) {
+ DOM.removeChild(p, next);
}
}
}, {}, $__super);
@@ -14430,6 +14333,120 @@ System.register("angular2/src/render/dom/util", ["angular2/src/facade/lang"], fu
};
});
+System.register("angular2/src/render/dom/view/view", ["angular2/src/dom/dom_adapter", "angular2/src/facade/collection", "angular2/src/facade/lang", "angular2/src/render/api", "angular2/src/render/dom/util"], function($__export) {
+ "use strict";
+ var __moduleName = "angular2/src/render/dom/view/view";
+ var DOM,
+ Map,
+ isPresent,
+ stringify,
+ RenderViewRef,
+ camelCaseToDashCase,
+ DomViewRef,
+ DomView;
+ function resolveInternalDomView(viewRef) {
+ return viewRef._view;
+ }
+ $__export("resolveInternalDomView", resolveInternalDomView);
+ return {
+ setters: [function($__m) {
+ DOM = $__m.DOM;
+ }, function($__m) {
+ Map = $__m.Map;
+ }, function($__m) {
+ isPresent = $__m.isPresent;
+ stringify = $__m.stringify;
+ }, function($__m) {
+ RenderViewRef = $__m.RenderViewRef;
+ }, function($__m) {
+ camelCaseToDashCase = $__m.camelCaseToDashCase;
+ }],
+ execute: function() {
+ DomViewRef = (function($__super) {
+ function DomViewRef(_view) {
+ $traceurRuntime.superConstructor(DomViewRef).call(this);
+ this._view = _view;
+ }
+ return ($traceurRuntime.createClass)(DomViewRef, {}, {}, $__super);
+ }(RenderViewRef));
+ $__export("DomViewRef", DomViewRef);
+ DomView = (function() {
+ function DomView(proto, rootNodes, boundTextNodes, boundElements) {
+ this.proto = proto;
+ this.rootNodes = rootNodes;
+ this.boundTextNodes = boundTextNodes;
+ this.boundElements = boundElements;
+ this.hostLightDom = null;
+ this.shadowRoot = null;
+ this.hydrated = false;
+ this.eventDispatcher = null;
+ this.eventHandlerRemovers = [];
+ }
+ return ($traceurRuntime.createClass)(DomView, {
+ getDirectParentElement: function(boundElementIndex) {
+ var binder = this.proto.elementBinders[boundElementIndex];
+ var parent = null;
+ if (binder.parentIndex !== -1 && binder.distanceToParent === 1) {
+ parent = this.boundElements[binder.parentIndex];
+ }
+ return parent;
+ },
+ setElementProperty: function(elementIndex, propertyName, value) {
+ DOM.setProperty(this.boundElements[elementIndex].element, propertyName, value);
+ },
+ setElementAttribute: function(elementIndex, attributeName, value) {
+ var element = this.boundElements[elementIndex].element;
+ var dashCasedAttributeName = camelCaseToDashCase(attributeName);
+ if (isPresent(value)) {
+ DOM.setAttribute(element, dashCasedAttributeName, stringify(value));
+ } else {
+ DOM.removeAttribute(element, dashCasedAttributeName);
+ }
+ },
+ setElementClass: function(elementIndex, className, isAdd) {
+ var element = this.boundElements[elementIndex].element;
+ var dashCasedClassName = camelCaseToDashCase(className);
+ if (isAdd) {
+ DOM.addClass(element, dashCasedClassName);
+ } else {
+ DOM.removeClass(element, dashCasedClassName);
+ }
+ },
+ setElementStyle: function(elementIndex, styleName, value) {
+ var element = this.boundElements[elementIndex].element;
+ var dashCasedStyleName = camelCaseToDashCase(styleName);
+ if (isPresent(value)) {
+ DOM.setStyle(element, dashCasedStyleName, stringify(value));
+ } else {
+ DOM.removeStyle(element, dashCasedStyleName);
+ }
+ },
+ invokeElementMethod: function(elementIndex, methodName, args) {
+ var element = this.boundElements[elementIndex].element;
+ DOM.invoke(element, methodName, args);
+ },
+ setText: function(textIndex, value) {
+ DOM.setText(this.boundTextNodes[textIndex], value);
+ },
+ dispatchEvent: function(elementIndex, eventName, event) {
+ var allowDefaultBehavior = true;
+ if (isPresent(this.eventDispatcher)) {
+ var evalLocals = new Map();
+ evalLocals.set('$event', event);
+ allowDefaultBehavior = this.eventDispatcher.dispatchEvent(elementIndex, eventName, evalLocals);
+ if (!allowDefaultBehavior) {
+ event.preventDefault();
+ }
+ }
+ return allowDefaultBehavior;
+ }
+ }, {});
+ }());
+ $__export("DomView", DomView);
+ }
+ };
+});
+
System.register("angular2/src/render/dom/view/element", [], function($__export) {
"use strict";
var __moduleName = "angular2/src/render/dom/view/element";
@@ -14485,8 +14502,7 @@ System.register("angular2/src/render/dom/view/view_container", ["angular2/src/fa
System.register("angular2/src/render/dom/compiler/compile_element", ["angular2/src/facade/collection", "angular2/src/dom/dom_adapter", "angular2/src/facade/lang"], function($__export) {
"use strict";
var __moduleName = "angular2/src/render/dom/compiler/compile_element";
- var ListWrapper,
- MapWrapper,
+ var MapWrapper,
DOM,
isBlank,
isPresent,
@@ -14498,8 +14514,8 @@ System.register("angular2/src/render/dom/compiler/compile_element", ["angular2/s
var atts = DOM.attributeMap(domElement);
buf.add("<");
buf.add(DOM.tagName(domElement).toLowerCase());
- addDescriptionAttribute(buf, "id", MapWrapper.get(atts, "id"));
- addDescriptionAttribute(buf, "class", MapWrapper.get(atts, "class"));
+ addDescriptionAttribute(buf, "id", atts.get("id"));
+ addDescriptionAttribute(buf, "class", atts.get("class"));
MapWrapper.forEach(atts, (function(attValue, attName) {
if (attName !== "id" && attName !== "class") {
addDescriptionAttribute(buf, attName, attValue);
@@ -14519,7 +14535,6 @@ System.register("angular2/src/render/dom/compiler/compile_element", ["angular2/s
}
return {
setters: [function($__m) {
- ListWrapper = $__m.ListWrapper;
MapWrapper = $__m.MapWrapper;
}, function($__m) {
DOM = $__m.DOM;
@@ -14579,10 +14594,10 @@ System.register("angular2/src/render/dom/compiler/compile_element", ["angular2/s
},
classList: function() {
if (isBlank(this._classList)) {
- this._classList = ListWrapper.create();
+ this._classList = [];
var elClassList = DOM.classList(this.element);
for (var i = 0; i < elClassList.length; i++) {
- ListWrapper.push(this._classList, elClassList[i]);
+ this._classList.push(elClassList[i]);
}
}
return this._classList;
@@ -14594,17 +14609,14 @@ System.register("angular2/src/render/dom/compiler/compile_element", ["angular2/s
};
});
-System.register("angular2/src/render/dom/compiler/compile_control", ["angular2/src/facade/lang", "angular2/src/facade/collection"], function($__export) {
+System.register("angular2/src/render/dom/compiler/compile_control", ["angular2/src/facade/lang"], function($__export) {
"use strict";
var __moduleName = "angular2/src/render/dom/compiler/compile_control";
var isBlank,
- ListWrapper,
CompileControl;
return {
setters: [function($__m) {
isBlank = $__m.isBlank;
- }, function($__m) {
- ListWrapper = $__m.ListWrapper;
}],
execute: function() {
CompileControl = (function() {
@@ -14629,7 +14641,7 @@ System.register("angular2/src/render/dom/compiler/compile_control", ["angular2/s
parent = this._parent;
}
if (!this._ignoreCurrentElement) {
- ListWrapper.push(results, current);
+ results.push(current);
}
this._currentStepIndex = previousStepIndex;
this._parent = previousParent;
@@ -14643,9 +14655,9 @@ System.register("angular2/src/render/dom/compiler/compile_control", ["angular2/s
},
addChild: function(element) {
if (isBlank(this._additionalChildren)) {
- this._additionalChildren = ListWrapper.create();
+ this._additionalChildren = [];
}
- ListWrapper.push(this._additionalChildren, element);
+ this._additionalChildren.push(element);
},
ignoreCurrentElement: function() {
this._ignoreCurrentElement = true;
@@ -14676,10 +14688,8 @@ System.register("angular2/src/render/dom/view/element_binder", [], function($__e
eventLocals = $__1.eventLocals,
localEvents = $__1.localEvents,
globalEvents = $__1.globalEvents,
- hostActions = $__1.hostActions,
parentIndex = $__1.parentIndex,
distanceToParent = $__1.distanceToParent,
- propertySetters = $__1.propertySetters,
elementIsEmpty = $__1.elementIsEmpty;
this.textNodeIndices = textNodeIndices;
this.contentTagSelector = contentTagSelector;
@@ -14688,10 +14698,8 @@ System.register("angular2/src/render/dom/view/element_binder", [], function($__e
this.eventLocals = eventLocals;
this.localEvents = localEvents;
this.globalEvents = globalEvents;
- this.hostActions = hostActions;
this.parentIndex = parentIndex;
this.distanceToParent = distanceToParent;
- this.propertySetters = propertySetters;
this.elementIsEmpty = elementIsEmpty;
}
return ($traceurRuntime.createClass)(ElementBinder, {}, {});
@@ -14747,7 +14755,7 @@ System.register("angular2/src/render/dom/compiler/property_binding_parser", ["an
process: function(parent, current, control) {
var $__0 = this;
var attrs = current.attrs();
- var newAttrs = MapWrapper.create();
+ var newAttrs = new Map();
MapWrapper.forEach(attrs, (function(attrValue, attrName) {
var bindParts = RegExpWrapper.firstMatch(BIND_NAME_REGEXP, attrName);
if (isPresent(bindParts)) {
@@ -14778,21 +14786,20 @@ System.register("angular2/src/render/dom/compiler/property_binding_parser", ["an
}
}));
MapWrapper.forEach(newAttrs, (function(attrValue, attrName) {
- MapWrapper.set(attrs, attrName, attrValue);
+ attrs.set(attrName, attrValue);
}));
},
_bindVariable: function(identifier, value, current, newAttrs) {
current.bindElement().bindVariable(dashCaseToCamelCase(identifier), value);
- MapWrapper.set(newAttrs, identifier, value);
+ newAttrs.set(identifier, value);
},
_bindProperty: function(name, expression, current, newAttrs) {
this._bindPropertyAst(name, this._parser.parseBinding(expression, current.elementDescription), current, newAttrs);
},
_bindPropertyAst: function(name, ast, current, newAttrs) {
var binder = current.bindElement();
- var camelCaseName = dashCaseToCamelCase(name);
- binder.bindProperty(camelCaseName, ast);
- MapWrapper.set(newAttrs, name, ast.source);
+ binder.bindProperty(dashCaseToCamelCase(name), ast);
+ newAttrs.set(name, ast.source);
},
_bindAssignmentEvent: function(name, expression, current, newAttrs) {
this._bindEvent(name, (expression + "=$event"), current, newAttrs);
@@ -14837,7 +14844,7 @@ System.register("angular2/src/render/dom/compiler/text_interpolation_parser", ["
var expr = this._parser.parseInterpolation(text, current.elementDescription);
if (isPresent(expr)) {
DOM.setText(node, ' ');
- current.bindElement().bindText(i, expr);
+ current.bindElement().bindText(node, expr);
}
}
}
@@ -14851,8 +14858,8 @@ System.register("angular2/src/render/dom/compiler/text_interpolation_parser", ["
System.register("angular2/src/render/dom/compiler/selector", ["angular2/src/facade/collection", "angular2/src/facade/lang"], function($__export) {
"use strict";
var __moduleName = "angular2/src/render/dom/compiler/selector";
- var ListWrapper,
- MapWrapper,
+ var Map,
+ ListWrapper,
isPresent,
isBlank,
RegExpWrapper,
@@ -14867,8 +14874,8 @@ System.register("angular2/src/render/dom/compiler/selector", ["angular2/src/faca
SelectorContext;
return {
setters: [function($__m) {
+ Map = $__m.Map;
ListWrapper = $__m.ListWrapper;
- MapWrapper = $__m.MapWrapper;
}, function($__m) {
isPresent = $__m.isPresent;
isBlank = $__m.isBlank;
@@ -14900,16 +14907,16 @@ System.register("angular2/src/render/dom/compiler/selector", ["angular2/src/faca
},
addAttribute: function(name) {
var value = arguments[1] !== (void 0) ? arguments[1] : _EMPTY_ATTR_VALUE;
- ListWrapper.push(this.attrs, name.toLowerCase());
+ this.attrs.push(name.toLowerCase());
if (isPresent(value)) {
value = value.toLowerCase();
} else {
value = _EMPTY_ATTR_VALUE;
}
- ListWrapper.push(this.attrs, value);
+ this.attrs.push(value);
},
addClassName: function(name) {
- ListWrapper.push(this.classNames, name.toLowerCase());
+ this.classNames.push(name.toLowerCase());
},
toString: function() {
var res = '';
@@ -14938,12 +14945,12 @@ System.register("angular2/src/render/dom/compiler/selector", ["angular2/src/faca
return res;
}
}, {parse: function(selector) {
- var results = ListWrapper.create();
+ var results = [];
var _addResult = (function(res, cssSel) {
if (cssSel.notSelectors.length > 0 && isBlank(cssSel.element) && ListWrapper.isEmpty(cssSel.classNames) && ListWrapper.isEmpty(cssSel.attrs)) {
cssSel.element = "*";
}
- ListWrapper.push(res, cssSel);
+ res.push(cssSel);
});
var cssSelector = new CssSelector();
var matcher = RegExpWrapper.matcher(_SELECTOR_REGEXP, selector);
@@ -14957,7 +14964,7 @@ System.register("angular2/src/render/dom/compiler/selector", ["angular2/src/faca
}
inNot = true;
current = new CssSelector();
- ListWrapper.push(cssSelector.notSelectors, current);
+ cssSelector.notSelectors.push(current);
}
if (isPresent(match[2])) {
current.setElement(match[2]);
@@ -14987,12 +14994,12 @@ System.register("angular2/src/render/dom/compiler/selector", ["angular2/src/faca
$__export("CssSelector", CssSelector);
SelectorMatcher = (function() {
function SelectorMatcher() {
- this._elementMap = MapWrapper.create();
- this._elementPartialMap = MapWrapper.create();
- this._classMap = MapWrapper.create();
- this._classPartialMap = MapWrapper.create();
- this._attrValueMap = MapWrapper.create();
- this._attrValuePartialMap = MapWrapper.create();
+ this._elementMap = new Map();
+ this._elementPartialMap = new Map();
+ this._classMap = new Map();
+ this._classPartialMap = new Map();
+ this._attrValueMap = new Map();
+ this._attrValuePartialMap = new Map();
this._listContexts = [];
}
return ($traceurRuntime.createClass)(SelectorMatcher, {
@@ -15000,7 +15007,7 @@ System.register("angular2/src/render/dom/compiler/selector", ["angular2/src/faca
var listContext = null;
if (cssSelectors.length > 1) {
listContext = new SelectorListContext(cssSelectors);
- ListWrapper.push(this._listContexts, listContext);
+ this._listContexts.push(listContext);
}
for (var i = 0; i < cssSelectors.length; i++) {
this._addSelectable(cssSelectors[i], callbackCtxt, listContext);
@@ -15038,18 +15045,18 @@ System.register("angular2/src/render/dom/compiler/selector", ["angular2/src/faca
var attrValue = attrs[index++];
if (isTerminal) {
var terminalMap = matcher._attrValueMap;
- var terminalValuesMap = MapWrapper.get(terminalMap, attrName);
+ var terminalValuesMap = terminalMap.get(attrName);
if (isBlank(terminalValuesMap)) {
- terminalValuesMap = MapWrapper.create();
- MapWrapper.set(terminalMap, attrName, terminalValuesMap);
+ terminalValuesMap = new Map();
+ terminalMap.set(attrName, terminalValuesMap);
}
this._addTerminal(terminalValuesMap, attrValue, selectable);
} else {
var parttialMap = matcher._attrValuePartialMap;
- var partialValuesMap = MapWrapper.get(parttialMap, attrName);
+ var partialValuesMap = parttialMap.get(attrName);
if (isBlank(partialValuesMap)) {
- partialValuesMap = MapWrapper.create();
- MapWrapper.set(parttialMap, attrName, partialValuesMap);
+ partialValuesMap = new Map();
+ parttialMap.set(attrName, partialValuesMap);
}
matcher = this._addPartial(partialValuesMap, attrValue);
}
@@ -15057,18 +15064,18 @@ System.register("angular2/src/render/dom/compiler/selector", ["angular2/src/faca
}
},
_addTerminal: function(map, name, selectable) {
- var terminalList = MapWrapper.get(map, name);
+ var terminalList = map.get(name);
if (isBlank(terminalList)) {
- terminalList = ListWrapper.create();
- MapWrapper.set(map, name, terminalList);
+ terminalList = [];
+ map.set(name, terminalList);
}
- ListWrapper.push(terminalList, selectable);
+ terminalList.push(selectable);
},
_addPartial: function(map, name) {
- var matcher = MapWrapper.get(map, name);
+ var matcher = map.get(name);
if (isBlank(matcher)) {
matcher = new SelectorMatcher();
- MapWrapper.set(map, name, matcher);
+ map.set(name, matcher);
}
return matcher;
},
@@ -15093,12 +15100,12 @@ System.register("angular2/src/render/dom/compiler/selector", ["angular2/src/faca
for (var index = 0; index < attrs.length; ) {
var attrName = attrs[index++];
var attrValue = attrs[index++];
- var terminalValuesMap = MapWrapper.get(this._attrValueMap, attrName);
+ var terminalValuesMap = this._attrValueMap.get(attrName);
if (!StringWrapper.equals(attrValue, _EMPTY_ATTR_VALUE)) {
result = this._matchTerminal(terminalValuesMap, _EMPTY_ATTR_VALUE, cssSelector, matchedCallback) || result;
}
result = this._matchTerminal(terminalValuesMap, attrValue, cssSelector, matchedCallback) || result;
- var partialValuesMap = MapWrapper.get(this._attrValuePartialMap, attrName);
+ var partialValuesMap = this._attrValuePartialMap.get(attrName);
if (!StringWrapper.equals(attrValue, _EMPTY_ATTR_VALUE)) {
result = this._matchPartial(partialValuesMap, _EMPTY_ATTR_VALUE, cssSelector, matchedCallback) || result;
}
@@ -15111,8 +15118,8 @@ System.register("angular2/src/render/dom/compiler/selector", ["angular2/src/faca
if (isBlank(map) || isBlank(name)) {
return false;
}
- var selectables = MapWrapper.get(map, name);
- var starSelectables = MapWrapper.get(map, "*");
+ var selectables = map.get(name);
+ var starSelectables = map.get("*");
if (isPresent(starSelectables)) {
selectables = ListWrapper.concat(selectables, starSelectables);
}
@@ -15131,7 +15138,7 @@ System.register("angular2/src/render/dom/compiler/selector", ["angular2/src/faca
if (isBlank(map) || isBlank(name)) {
return false;
}
- var nestedSelector = MapWrapper.get(map, name);
+ var nestedSelector = map.get(name);
if (isBlank(nestedSelector)) {
return false;
}
@@ -15210,7 +15217,7 @@ System.register("angular2/src/render/dom/compiler/view_splitter", ["angular2/src
return ($traceurRuntime.createClass)(ViewSplitter, {
process: function(parent, current, control) {
var attrs = current.attrs();
- var templateBindings = MapWrapper.get(attrs, 'template');
+ var templateBindings = attrs.get('template');
var hasTemplateBinding = isPresent(templateBindings);
MapWrapper.forEach(attrs, (function(attrValue, attrName) {
if (StringWrapper.startsWith(attrName, '*')) {
@@ -15268,10 +15275,10 @@ System.register("angular2/src/render/dom/compiler/view_splitter", ["angular2/src
var binding = bindings[i];
if (binding.keyIsVar) {
compileElement.bindElement().bindVariable(dashCaseToCamelCase(binding.key), binding.name);
- MapWrapper.set(compileElement.attrs(), binding.key, binding.name);
+ compileElement.attrs().set(binding.key, binding.name);
} else if (isPresent(binding.expression)) {
compileElement.bindElement().bindProperty(dashCaseToCamelCase(binding.key), binding.expression);
- MapWrapper.set(compileElement.attrs(), binding.key, binding.expression.source);
+ compileElement.attrs().set(binding.key, binding.expression.source);
} else {
DOM.setAttribute(compileElement.element, binding.key, '');
}
@@ -15284,33 +15291,25 @@ System.register("angular2/src/render/dom/compiler/view_splitter", ["angular2/src
};
});
-System.register("angular2/src/render/dom/shadow_dom/shadow_dom_compile_step", ["angular2/src/facade/lang", "angular2/src/facade/collection", "angular2/src/dom/dom_adapter"], function($__export) {
+System.register("angular2/src/render/dom/shadow_dom/shadow_dom_compile_step", ["angular2/src/facade/lang", "angular2/src/dom/dom_adapter"], function($__export) {
"use strict";
var __moduleName = "angular2/src/render/dom/shadow_dom/shadow_dom_compile_step";
var isPresent,
assertionsEnabled,
- isPromise,
- MapWrapper,
- ListWrapper,
DOM,
ShadowDomCompileStep;
return {
setters: [function($__m) {
isPresent = $__m.isPresent;
assertionsEnabled = $__m.assertionsEnabled;
- isPromise = $__m.isPromise;
- }, function($__m) {
- MapWrapper = $__m.MapWrapper;
- ListWrapper = $__m.ListWrapper;
}, function($__m) {
DOM = $__m.DOM;
}],
execute: function() {
ShadowDomCompileStep = (function() {
- function ShadowDomCompileStep(_shadowDomStrategy, _template, _subTaskPromises) {
+ function ShadowDomCompileStep(_shadowDomStrategy, _view) {
this._shadowDomStrategy = _shadowDomStrategy;
- this._template = _template;
- this._subTaskPromises = _subTaskPromises;
+ this._view = _view;
}
return ($traceurRuntime.createClass)(ShadowDomCompileStep, {
process: function(parent, current, control) {
@@ -15321,14 +15320,11 @@ System.register("angular2/src/render/dom/shadow_dom/shadow_dom_compile_step", ["
this._processContentElement(current);
} else {
var componentId = current.isBound() ? current.inheritedElementBinder.componentId : null;
- this._shadowDomStrategy.processElement(this._template.componentId, componentId, current.element);
+ this._shadowDomStrategy.processElement(this._view.componentId, componentId, current.element);
}
},
_processStyleElement: function(current, control) {
- var stylePromise = this._shadowDomStrategy.processStyleElement(this._template.componentId, this._template.templateAbsUrl, current.element);
- if (isPresent(stylePromise) && isPromise(stylePromise)) {
- ListWrapper.push(this._subTaskPromises, stylePromise);
- }
+ this._shadowDomStrategy.processStyleElement(this._view.componentId, this._view.templateAbsUrl, current.element);
control.ignoreCurrentElement();
},
_processContentElement: function(current) {
@@ -15336,13 +15332,15 @@ System.register("angular2/src/render/dom/shadow_dom/shadow_dom_compile_step", ["
return ;
}
var attrs = current.attrs();
- var selector = MapWrapper.get(attrs, 'select');
+ var selector = attrs.get('select');
selector = isPresent(selector) ? selector : '';
var contentStart = DOM.createScriptTag('type', 'ng/contentStart');
if (assertionsEnabled()) {
DOM.setAttribute(contentStart, 'select', selector);
}
+ var contentEnd = DOM.createScriptTag('type', 'ng/contentEnd');
DOM.insertBefore(current.element, contentStart);
+ DOM.insertBefore(current.element, contentEnd);
DOM.remove(current.element);
current.element = contentStart;
current.bindElement().setContentTagSelector(selector);
@@ -15354,181 +15352,6 @@ System.register("angular2/src/render/dom/shadow_dom/shadow_dom_compile_step", ["
};
});
-System.register("angular2/src/render/dom/view/property_setter_factory", ["angular2/src/facade/lang", "angular2/src/facade/collection", "angular2/src/dom/dom_adapter", "angular2/src/render/dom/util", "angular2/src/reflection/reflection"], function($__export) {
- "use strict";
- var __moduleName = "angular2/src/render/dom/view/property_setter_factory";
- var StringWrapper,
- BaseException,
- isPresent,
- isBlank,
- isString,
- stringify,
- ListWrapper,
- StringMapWrapper,
- DOM,
- camelCaseToDashCase,
- reflector,
- STYLE_SEPARATOR,
- ATTRIBUTE_PREFIX,
- CLASS_PREFIX,
- STYLE_PREFIX,
- PropertySetterFactory;
- return {
- setters: [function($__m) {
- StringWrapper = $__m.StringWrapper;
- BaseException = $__m.BaseException;
- isPresent = $__m.isPresent;
- isBlank = $__m.isBlank;
- isString = $__m.isString;
- stringify = $__m.stringify;
- }, function($__m) {
- ListWrapper = $__m.ListWrapper;
- StringMapWrapper = $__m.StringMapWrapper;
- }, function($__m) {
- DOM = $__m.DOM;
- }, function($__m) {
- camelCaseToDashCase = $__m.camelCaseToDashCase;
- }, function($__m) {
- reflector = $__m.reflector;
- }],
- execute: function() {
- STYLE_SEPARATOR = '.';
- ATTRIBUTE_PREFIX = 'attr.';
- CLASS_PREFIX = 'class.';
- STYLE_PREFIX = 'style.';
- PropertySetterFactory = (function() {
- function PropertySetterFactory() {
- this._lazyPropertySettersCache = StringMapWrapper.create();
- this._eagerPropertySettersCache = StringMapWrapper.create();
- this._innerHTMLSetterCache = (function(el, value) {
- return DOM.setInnerHTML(el, value);
- });
- this._attributeSettersCache = StringMapWrapper.create();
- this._classSettersCache = StringMapWrapper.create();
- this._styleSettersCache = StringMapWrapper.create();
- }
- return ($traceurRuntime.createClass)(PropertySetterFactory, {
- createSetter: function(protoElement, isNgComponent, property) {
- var setterFn,
- styleParts,
- styleSuffix;
- if (StringWrapper.startsWith(property, ATTRIBUTE_PREFIX)) {
- setterFn = this._attributeSetterFactory(StringWrapper.substring(property, ATTRIBUTE_PREFIX.length));
- } else if (StringWrapper.startsWith(property, CLASS_PREFIX)) {
- setterFn = this._classSetterFactory(StringWrapper.substring(property, CLASS_PREFIX.length));
- } else if (StringWrapper.startsWith(property, STYLE_PREFIX)) {
- styleParts = property.split(STYLE_SEPARATOR);
- styleSuffix = styleParts.length > 2 ? ListWrapper.get(styleParts, 2) : '';
- setterFn = this._styleSetterFactory(ListWrapper.get(styleParts, 1), styleSuffix);
- } else if (StringWrapper.equals(property, 'innerHtml')) {
- setterFn = this._innerHTMLSetterCache;
- } else {
- property = this._resolvePropertyName(property);
- setterFn = this._propertySetterFactory(protoElement, isNgComponent, property);
- }
- return setterFn;
- },
- _propertySetterFactory: function(protoElement, isNgComponent, property) {
- var setterFn;
- var tagName = DOM.tagName(protoElement);
- var possibleCustomElement = tagName.indexOf('-') !== -1;
- if (possibleCustomElement && !isNgComponent) {
- setterFn = StringMapWrapper.get(this._lazyPropertySettersCache, property);
- if (isBlank(setterFn)) {
- var propertySetterFn = reflector.setter(property);
- setterFn = (function(receiver, value) {
- if (DOM.hasProperty(receiver, property)) {
- return propertySetterFn(receiver, value);
- }
- });
- StringMapWrapper.set(this._lazyPropertySettersCache, property, setterFn);
- }
- } else {
- setterFn = StringMapWrapper.get(this._eagerPropertySettersCache, property);
- if (isBlank(setterFn)) {
- if (DOM.hasProperty(protoElement, property)) {
- setterFn = reflector.setter(property);
- } else {
- setterFn = PropertySetterFactory._noopSetter;
- }
- StringMapWrapper.set(this._eagerPropertySettersCache, property, setterFn);
- }
- }
- return setterFn;
- },
- _isValidAttributeValue: function(attrName, value) {
- if (attrName == "role") {
- return isString(value);
- } else {
- return isPresent(value);
- }
- },
- _attributeSetterFactory: function(attrName) {
- var $__0 = this;
- var setterFn = StringMapWrapper.get(this._attributeSettersCache, attrName);
- var dashCasedAttributeName;
- if (isBlank(setterFn)) {
- dashCasedAttributeName = camelCaseToDashCase(attrName);
- setterFn = (function(element, value) {
- if ($__0._isValidAttributeValue(dashCasedAttributeName, value)) {
- DOM.setAttribute(element, dashCasedAttributeName, stringify(value));
- } else {
- if (isPresent(value)) {
- throw new BaseException("Invalid " + dashCasedAttributeName + " attribute, only string values are allowed, got '" + stringify(value) + "'");
- }
- DOM.removeAttribute(element, dashCasedAttributeName);
- }
- });
- StringMapWrapper.set(this._attributeSettersCache, attrName, setterFn);
- }
- return setterFn;
- },
- _classSetterFactory: function(className) {
- var setterFn = StringMapWrapper.get(this._classSettersCache, className);
- var dashCasedClassName;
- if (isBlank(setterFn)) {
- dashCasedClassName = camelCaseToDashCase(className);
- setterFn = (function(element, isAdd) {
- if (isAdd) {
- DOM.addClass(element, dashCasedClassName);
- } else {
- DOM.removeClass(element, dashCasedClassName);
- }
- });
- StringMapWrapper.set(this._classSettersCache, className, setterFn);
- }
- return setterFn;
- },
- _styleSetterFactory: function(styleName, styleSuffix) {
- var cacheKey = styleName + styleSuffix;
- var setterFn = StringMapWrapper.get(this._styleSettersCache, cacheKey);
- var dashCasedStyleName;
- if (isBlank(setterFn)) {
- dashCasedStyleName = camelCaseToDashCase(styleName);
- setterFn = (function(element, value) {
- var valAsStr;
- if (isPresent(value)) {
- valAsStr = stringify(value);
- DOM.setStyle(element, dashCasedStyleName, valAsStr + styleSuffix);
- } else {
- DOM.removeStyle(element, dashCasedStyleName);
- }
- });
- StringMapWrapper.set(this._styleSettersCache, cacheKey, setterFn);
- }
- return setterFn;
- },
- _resolvePropertyName: function(attrName) {
- var mappedPropName = StringMapWrapper.get(DOM.attrToPropMap, attrName);
- return isPresent(mappedPropName) ? mappedPropName : attrName;
- }
- }, {_noopSetter: function(el, value) {}});
- }());
- $__export("PropertySetterFactory", PropertySetterFactory);
- }
- };
-});
-
System.register("angular2/src/core/application_tokens", ["angular2/di"], function($__export) {
"use strict";
var __moduleName = "angular2/src/core/application_tokens";
@@ -15660,7 +15483,7 @@ System.register("angular2/src/core/annotations/decorators", ["angular2/src/core/
};
});
-System.register("angular2/src/directives/ng_for", ["angular2/annotations", "angular2/core", "angular2/src/facade/lang", "angular2/src/facade/collection"], function($__export) {
+System.register("angular2/src/directives/ng_for", ["angular2/annotations", "angular2/angular2", "angular2/src/facade/lang"], function($__export) {
"use strict";
var __moduleName = "angular2/src/directives/ng_for";
var __decorate,
@@ -15668,9 +15491,10 @@ System.register("angular2/src/directives/ng_for", ["angular2/annotations", "angu
Directive,
ViewContainerRef,
ProtoViewRef,
+ PipeRegistry,
+ onCheck,
isPresent,
isBlank,
- ListWrapper,
NgFor,
RecordViewTuple;
return {
@@ -15679,11 +15503,11 @@ System.register("angular2/src/directives/ng_for", ["angular2/annotations", "angu
}, function($__m) {
ViewContainerRef = $__m.ViewContainerRef;
ProtoViewRef = $__m.ProtoViewRef;
+ PipeRegistry = $__m.PipeRegistry;
+ onCheck = $__m.onCheck;
}, function($__m) {
isPresent = $__m.isPresent;
isBlank = $__m.isBlank;
- }, function($__m) {
- ListWrapper = $__m.ListWrapper;
}],
execute: function() {
__decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
@@ -15708,32 +15532,42 @@ System.register("angular2/src/directives/ng_for", ["angular2/annotations", "angu
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
return Reflect.metadata(k, v);
};
- NgFor = (($traceurRuntime.createClass)(function(viewContainer, protoViewRef) {
+ NgFor = (($traceurRuntime.createClass)(function(viewContainer, protoViewRef, pipes) {
this.viewContainer = viewContainer;
this.protoViewRef = protoViewRef;
+ this.pipes = pipes;
}, {
- set iterableChanges(changes) {
+ set ngForOf(value) {
+ this._ngForOf = value;
+ this._pipe = this.pipes.get("iterableDiff", value, null, this._pipe);
+ },
+ onCheck: function() {
+ var diff = this._pipe.transform(this._ngForOf);
+ if (isPresent(diff))
+ this._applyChanges(diff.wrapped);
+ },
+ _applyChanges: function(changes) {
if (isBlank(changes)) {
this.viewContainer.clear();
return ;
}
var recordViewTuples = [];
changes.forEachRemovedItem((function(removedRecord) {
- return ListWrapper.push(recordViewTuples, new RecordViewTuple(removedRecord, null));
+ return recordViewTuples.push(new RecordViewTuple(removedRecord, null));
}));
changes.forEachMovedItem((function(movedRecord) {
- return ListWrapper.push(recordViewTuples, new RecordViewTuple(movedRecord, null));
+ return recordViewTuples.push(new RecordViewTuple(movedRecord, null));
}));
var insertTuples = NgFor.bulkRemove(recordViewTuples, this.viewContainer);
changes.forEachAddedItem((function(addedRecord) {
- return ListWrapper.push(insertTuples, new RecordViewTuple(addedRecord, null));
+ return insertTuples.push(new RecordViewTuple(addedRecord, null));
}));
NgFor.bulkInsert(insertTuples, this.viewContainer, this.protoViewRef);
for (var i = 0; i < insertTuples.length; i++) {
- this.perViewChange(insertTuples[i].view, insertTuples[i].record);
+ this._perViewChange(insertTuples[i].view, insertTuples[i].record);
}
},
- perViewChange: function(view, record) {
+ _perViewChange: function(view, record) {
view.setLocal('\$implicit', record.item);
view.setLocal('index', record.currentIndex);
}
@@ -15747,7 +15581,7 @@ System.register("angular2/src/directives/ng_for", ["angular2/annotations", "angu
var tuple = tuples[i];
if (isPresent(tuple.record.currentIndex)) {
tuple.view = viewContainer.detach(tuple.record.previousIndex);
- ListWrapper.push(movedTuples, tuple);
+ movedTuples.push(tuple);
} else {
viewContainer.remove(tuple.record.previousIndex);
}
@@ -15772,8 +15606,9 @@ System.register("angular2/src/directives/ng_for", ["angular2/annotations", "angu
$__export("NgFor", NgFor);
$__export("NgFor", NgFor = __decorate([Directive({
selector: '[ng-for][ng-for-of]',
- properties: ['iterableChanges: ngForOf | iterableDiff']
- }), __metadata('design:paramtypes', [ViewContainerRef, ProtoViewRef])], NgFor));
+ properties: ['ngForOf'],
+ lifecycle: [onCheck]
+ }), __metadata('design:paramtypes', [ViewContainerRef, ProtoViewRef, PipeRegistry])], NgFor));
RecordViewTuple = (function() {
function RecordViewTuple(record, view) {
this.record = record;
@@ -15908,6 +15743,7 @@ System.register("angular2/src/directives/ng_switch", ["angular2/annotations", "a
normalizeBlank,
ListWrapper,
MapWrapper,
+ Map,
SwitchView,
NgSwitch,
NgSwitchWhen,
@@ -15927,6 +15763,7 @@ System.register("angular2/src/directives/ng_switch", ["angular2/annotations", "a
}, function($__m) {
ListWrapper = $__m.ListWrapper;
MapWrapper = $__m.MapWrapper;
+ Map = $__m.Map;
}],
execute: function() {
__decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
@@ -15972,17 +15809,17 @@ System.register("angular2/src/directives/ng_switch", ["angular2/annotations", "a
}());
$__export("SwitchView", SwitchView);
NgSwitch = (($traceurRuntime.createClass)(function() {
- this._valueViews = MapWrapper.create();
- this._activeViews = ListWrapper.create();
+ this._valueViews = new Map();
+ this._activeViews = [];
this._useDefault = false;
}, {
set ngSwitch(value) {
this._emptyAllActiveViews();
this._useDefault = false;
- var views = MapWrapper.get(this._valueViews, value);
+ var views = this._valueViews.get(value);
if (isBlank(views)) {
this._useDefault = true;
- views = normalizeBlank(MapWrapper.get(this._valueViews, _whenDefault));
+ views = normalizeBlank(this._valueViews.get(_whenDefault));
}
this._activateViews(views);
this._switchValue = value;
@@ -15999,11 +15836,11 @@ System.register("angular2/src/directives/ng_switch", ["angular2/annotations", "a
this._emptyAllActiveViews();
}
view.create();
- ListWrapper.push(this._activeViews, view);
+ this._activeViews.push(view);
}
if (this._activeViews.length === 0 && !this._useDefault) {
this._useDefault = true;
- this._activateViews(MapWrapper.get(this._valueViews, _whenDefault));
+ this._activateViews(this._valueViews.get(_whenDefault));
}
},
_emptyAllActiveViews: function() {
@@ -16011,7 +15848,7 @@ System.register("angular2/src/directives/ng_switch", ["angular2/annotations", "a
for (var i = 0; i < activeContainers.length; i++) {
activeContainers[i].destroy();
}
- this._activeViews = ListWrapper.create();
+ this._activeViews = [];
},
_activateViews: function(views) {
if (isPresent(views)) {
@@ -16022,17 +15859,17 @@ System.register("angular2/src/directives/ng_switch", ["angular2/annotations", "a
}
},
_registerView: function(value, view) {
- var views = MapWrapper.get(this._valueViews, value);
+ var views = this._valueViews.get(value);
if (isBlank(views)) {
- views = ListWrapper.create();
- MapWrapper.set(this._valueViews, value, views);
+ views = [];
+ this._valueViews.set(value, views);
}
- ListWrapper.push(views, view);
+ views.push(view);
},
_deregisterView: function(value, view) {
if (value == _whenDefault)
return ;
- var views = MapWrapper.get(this._valueViews, value);
+ var views = this._valueViews.get(value);
if (views.length == 1) {
MapWrapper.delete(this._valueViews, value);
} else {
@@ -16073,25 +15910,42 @@ System.register("angular2/src/directives/ng_switch", ["angular2/annotations", "a
};
});
-System.register("angular2/src/directives/class", ["angular2/annotations", "angular2/core", "angular2/src/facade/lang", "angular2/src/dom/dom_adapter"], function($__export) {
+System.register("angular2/src/directives/class", ["angular2/annotations", "angular2/core", "angular2/src/change_detection/pipes/pipe_registry", "angular2/src/render/api", "angular2/src/change_detection/pipes/iterable_changes", "angular2/src/facade/lang", "angular2/src/facade/collection"], function($__export) {
"use strict";
var __moduleName = "angular2/src/directives/class";
var __decorate,
__metadata,
Directive,
+ onCheck,
ElementRef,
+ PipeRegistry,
+ Renderer,
+ IterableChanges,
isPresent,
- DOM,
+ isString,
+ ListWrapper,
+ StringMapWrapper,
+ isListLikeIterable,
CSSClass;
return {
setters: [function($__m) {
Directive = $__m.Directive;
+ onCheck = $__m.onCheck;
}, function($__m) {
ElementRef = $__m.ElementRef;
}, function($__m) {
- isPresent = $__m.isPresent;
+ PipeRegistry = $__m.PipeRegistry;
}, function($__m) {
- DOM = $__m.DOM;
+ Renderer = $__m.Renderer;
+ }, function($__m) {
+ IterableChanges = $__m.IterableChanges;
+ }, function($__m) {
+ isPresent = $__m.isPresent;
+ isString = $__m.isString;
+ }, function($__m) {
+ ListWrapper = $__m.ListWrapper;
+ StringMapWrapper = $__m.StringMapWrapper;
+ isListLikeIterable = $__m.isListLikeIterable;
}],
execute: function() {
__decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
@@ -16116,38 +15970,77 @@ System.register("angular2/src/directives/class", ["angular2/annotations", "angul
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
return Reflect.metadata(k, v);
};
- CSSClass = (($traceurRuntime.createClass)(function(ngEl) {
- this._domEl = ngEl.domElement;
+ CSSClass = (($traceurRuntime.createClass)(function(_pipeRegistry, _ngEl, _renderer) {
+ this._pipeRegistry = _pipeRegistry;
+ this._ngEl = _ngEl;
+ this._renderer = _renderer;
}, {
- _toggleClass: function(className, enabled) {
- if (enabled) {
- DOM.addClass(this._domEl, className);
- } else {
- DOM.removeClass(this._domEl, className);
+ set rawClass(v) {
+ this._cleanupClasses(this._rawClass);
+ if (isString(v)) {
+ v = v.split(' ');
+ }
+ this._rawClass = v;
+ this._pipe = this._pipeRegistry.get(isListLikeIterable(v) ? 'iterableDiff' : 'keyValDiff', v);
+ },
+ onCheck: function() {
+ var diff = this._pipe.transform(this._rawClass);
+ if (isPresent(diff) && isPresent(diff.wrapped)) {
+ if (diff.wrapped instanceof IterableChanges) {
+ this._applyArrayChanges(diff.wrapped);
+ } else {
+ this._applyObjectChanges(diff.wrapped);
+ }
}
},
- set iterableChanges(changes) {
+ _cleanupClasses: function(rawClassVal) {
var $__0 = this;
- if (isPresent(changes)) {
- changes.forEachAddedItem((function(record) {
- $__0._toggleClass(record.key, record.currentValue);
- }));
- changes.forEachChangedItem((function(record) {
- $__0._toggleClass(record.key, record.currentValue);
- }));
- changes.forEachRemovedItem((function(record) {
- if (record.previousValue) {
- DOM.removeClass($__0._domEl, record.key);
- }
- }));
+ if (isPresent(rawClassVal)) {
+ if (isListLikeIterable(rawClassVal)) {
+ ListWrapper.forEach(rawClassVal, (function(className) {
+ $__0._toggleClass(className, false);
+ }));
+ } else {
+ StringMapWrapper.forEach(rawClassVal, (function(expVal, className) {
+ if (expVal)
+ $__0._toggleClass(className, false);
+ }));
+ }
}
+ },
+ _applyObjectChanges: function(diff) {
+ var $__0 = this;
+ diff.forEachAddedItem((function(record) {
+ $__0._toggleClass(record.key, record.currentValue);
+ }));
+ diff.forEachChangedItem((function(record) {
+ $__0._toggleClass(record.key, record.currentValue);
+ }));
+ diff.forEachRemovedItem((function(record) {
+ if (record.previousValue) {
+ $__0._toggleClass(record.key, false);
+ }
+ }));
+ },
+ _applyArrayChanges: function(diff) {
+ var $__0 = this;
+ diff.forEachAddedItem((function(record) {
+ $__0._toggleClass(record.item, true);
+ }));
+ diff.forEachRemovedItem((function(record) {
+ $__0._toggleClass(record.item, false);
+ }));
+ },
+ _toggleClass: function(className, enabled) {
+ this._renderer.setElementClass(this._ngEl, className, enabled);
}
}, {}));
$__export("CSSClass", CSSClass);
$__export("CSSClass", CSSClass = __decorate([Directive({
selector: '[class]',
- properties: ['iterableChanges: class | keyValDiff']
- }), __metadata('design:paramtypes', [ElementRef])], CSSClass));
+ lifecycle: [onCheck],
+ properties: ['rawClass: class']
+ }), __metadata('design:paramtypes', [PipeRegistry, ElementRef, Renderer])], CSSClass));
}
};
});
@@ -16210,7 +16103,8 @@ System.register("angular2/src/forms/validators", ["angular2/src/facade/lang", "a
if (!StringMapWrapper.contains(res, error)) {
res[error] = [];
}
- ListWrapper.push(res[error], control);
+ var current = res[error];
+ current.push(control);
}));
}
});
@@ -16243,23 +16137,22 @@ System.register("angular2/src/forms/directives/control_container", [], function(
};
});
-System.register("angular2/src/forms/directives/ng_control", ["angular2/src/forms/validators"], function($__export) {
+System.register("angular2/src/forms/directives/ng_control", [], function($__export) {
"use strict";
var __moduleName = "angular2/src/forms/directives/ng_control";
- var Validators,
- NgControl;
+ var NgControl;
return {
- setters: [function($__m) {
- Validators = $__m.Validators;
- }],
+ setters: [],
execute: function() {
NgControl = (function() {
function NgControl() {
this.name = null;
this.valueAccessor = null;
- this.validator = Validators.nullValidator;
}
return ($traceurRuntime.createClass)(NgControl, {
+ get validator() {
+ return null;
+ },
get path() {
return null;
},
@@ -16274,16 +16167,91 @@ System.register("angular2/src/forms/directives/ng_control", ["angular2/src/forms
};
});
+System.register("angular2/src/forms/directives/validators", ["angular2/di", "angular2/src/facade/lang", "angular2/angular2", "angular2/src/forms/validators"], function($__export) {
+ "use strict";
+ var __moduleName = "angular2/src/forms/directives/validators";
+ var __decorate,
+ __metadata,
+ forwardRef,
+ Binding,
+ CONST_EXPR,
+ Directive,
+ Validators,
+ NgValidator,
+ requiredValidatorBinding,
+ NgRequiredValidator;
+ return {
+ setters: [function($__m) {
+ forwardRef = $__m.forwardRef;
+ Binding = $__m.Binding;
+ }, function($__m) {
+ CONST_EXPR = $__m.CONST_EXPR;
+ }, function($__m) {
+ Directive = $__m.Directive;
+ }, function($__m) {
+ Validators = $__m.Validators;
+ }],
+ execute: function() {
+ __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
+ return Reflect.decorate(decorators, target, key, desc);
+ switch (arguments.length) {
+ case 2:
+ return decorators.reduceRight(function(o, d) {
+ return (d && d(o)) || o;
+ }, target);
+ case 3:
+ return decorators.reduceRight(function(o, d) {
+ return (d && d(target, key)), void 0;
+ }, void 0);
+ case 4:
+ return decorators.reduceRight(function(o, d) {
+ return (d && d(target, key, o)) || o;
+ }, desc);
+ }
+ };
+ __metadata = (this && this.__metadata) || function(k, v) {
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
+ return Reflect.metadata(k, v);
+ };
+ NgValidator = (function() {
+ function NgValidator() {}
+ return ($traceurRuntime.createClass)(NgValidator, {get validator() {
+ throw "Is not implemented";
+ }}, {});
+ }());
+ $__export("NgValidator", NgValidator);
+ requiredValidatorBinding = CONST_EXPR(new Binding(NgValidator, {toAlias: forwardRef((function() {
+ return NgRequiredValidator;
+ }))}));
+ NgRequiredValidator = (function($__super) {
+ function $__0() {
+ $traceurRuntime.superConstructor($__0).apply(this, arguments);
+ }
+ return ($traceurRuntime.createClass)($__0, {get validator() {
+ return Validators.required;
+ }}, {}, $__super);
+ }(NgValidator));
+ $__export("NgRequiredValidator", NgRequiredValidator);
+ $__export("NgRequiredValidator", NgRequiredValidator = __decorate([Directive({
+ selector: '[required][ng-control],[required][ng-form-control],[required][ng-model]',
+ hostInjector: [requiredValidatorBinding]
+ }), __metadata('design:paramtypes', [])], NgRequiredValidator));
+ }
+ };
+});
+
System.register("angular2/src/forms/directives/shared", ["angular2/src/facade/collection", "angular2/src/facade/lang", "angular2/src/forms/validators"], function($__export) {
"use strict";
var __moduleName = "angular2/src/forms/directives/shared";
var ListWrapper,
+ iterableToList,
isBlank,
BaseException,
Validators;
function controlPath(name, parent) {
var p = ListWrapper.clone(parent.path);
- ListWrapper.push(p, name);
+ p.push(name);
return p;
}
function setUpControl(c, dir) {
@@ -16305,19 +16273,28 @@ System.register("angular2/src/forms/directives/shared", ["angular2/src/facade/co
return c.markAsTouched();
}));
}
+ function composeNgValidator(ngValidators) {
+ if (isBlank(ngValidators))
+ return Validators.nullValidator;
+ return Validators.compose(iterableToList(ngValidators).map((function(v) {
+ return v.validator;
+ })));
+ }
function _throwError(dir, message) {
var path = ListWrapper.join(dir.path, " -> ");
throw new BaseException((message + " '" + path + "'"));
}
function setProperty(renderer, elementRef, propName, propValue) {
- renderer.setElementProperty(elementRef.parentView.render, elementRef.boundElementIndex, propName, propValue);
+ renderer.setElementProperty(elementRef, propName, propValue);
}
$__export("controlPath", controlPath);
$__export("setUpControl", setUpControl);
+ $__export("composeNgValidator", composeNgValidator);
$__export("setProperty", setProperty);
return {
setters: [function($__m) {
ListWrapper = $__m.ListWrapper;
+ iterableToList = $__m.iterableToList;
}, function($__m) {
isBlank = $__m.isBlank;
BaseException = $__m.BaseException;
@@ -16329,21 +16306,26 @@ System.register("angular2/src/forms/directives/shared", ["angular2/src/facade/co
};
});
-System.register("angular2/src/forms/directives/ng_form_control", ["angular2/src/facade/lang", "angular2/src/facade/collection", "angular2/src/facade/async", "angular2/angular2", "angular2/di", "angular2/src/forms/directives/ng_control", "angular2/src/forms/directives/shared"], function($__export) {
+System.register("angular2/src/forms/directives/ng_form_control", ["angular2/src/facade/lang", "angular2/src/facade/collection", "angular2/src/facade/async", "angular2/angular2", "angular2/di", "angular2/src/forms/directives/ng_control", "angular2/src/forms/directives/validators", "angular2/src/forms/directives/shared"], function($__export) {
"use strict";
var __moduleName = "angular2/src/forms/directives/ng_form_control";
var __decorate,
__metadata,
+ __param,
CONST_EXPR,
StringMapWrapper,
EventEmitter,
ObservableWrapper,
Directive,
onChange,
+ Query,
+ QueryList,
forwardRef,
Binding,
NgControl,
+ NgValidator,
setUpControl,
+ composeNgValidator,
formControlBinding,
NgFormControl;
return {
@@ -16357,13 +16339,18 @@ System.register("angular2/src/forms/directives/ng_form_control", ["angular2/src/
}, function($__m) {
Directive = $__m.Directive;
onChange = $__m.onChange;
+ Query = $__m.Query;
+ QueryList = $__m.QueryList;
}, function($__m) {
forwardRef = $__m.forwardRef;
Binding = $__m.Binding;
}, function($__m) {
NgControl = $__m.NgControl;
+ }, function($__m) {
+ NgValidator = $__m.NgValidator;
}, function($__m) {
setUpControl = $__m.setUpControl;
+ composeNgValidator = $__m.composeNgValidator;
}],
execute: function() {
__decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
@@ -16388,14 +16375,20 @@ System.register("angular2/src/forms/directives/ng_form_control", ["angular2/src/
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
return Reflect.metadata(k, v);
};
+ __param = (this && this.__param) || function(paramIndex, decorator) {
+ return function(target, key) {
+ decorator(target, key, paramIndex);
+ };
+ };
formControlBinding = CONST_EXPR(new Binding(NgControl, {toAlias: forwardRef((function() {
return NgFormControl;
}))}));
NgFormControl = (function($__super) {
- function $__0() {
+ function $__0(ngValidators) {
$traceurRuntime.superConstructor($__0).call(this);
- this.ngModel = new EventEmitter();
+ this.update = new EventEmitter();
this._added = false;
+ this.ngValidators = ngValidators;
}
return ($traceurRuntime.createClass)($__0, {
onChange: function(c) {
@@ -16408,14 +16401,17 @@ System.register("angular2/src/forms/directives/ng_form_control", ["angular2/src/
this.form.updateValue(this.model);
}
},
- get control() {
- return this.form;
- },
get path() {
return [];
},
+ get control() {
+ return this.form;
+ },
+ get validator() {
+ return composeNgValidator(this.ngValidators);
+ },
viewToModelUpdate: function(newValue) {
- ObservableWrapper.callNext(this.ngModel, newValue);
+ ObservableWrapper.callNext(this.update, newValue);
}
}, {}, $__super);
}(NgControl));
@@ -16423,31 +16419,36 @@ System.register("angular2/src/forms/directives/ng_form_control", ["angular2/src/
$__export("NgFormControl", NgFormControl = __decorate([Directive({
selector: '[ng-form-control]',
hostInjector: [formControlBinding],
- properties: ['form: ng-form-control', 'model: ng-model'],
- events: ['ngModel'],
+ properties: ['form: ngFormControl', 'model: ngModel'],
+ events: ['update: ngModel'],
lifecycle: [onChange],
exportAs: 'form'
- }), __metadata('design:paramtypes', [])], NgFormControl));
+ }), __param(0, Query(NgValidator)), __metadata('design:paramtypes', [QueryList])], NgFormControl));
}
};
});
-System.register("angular2/src/forms/directives/ng_model", ["angular2/src/facade/lang", "angular2/src/facade/async", "angular2/src/facade/collection", "angular2/angular2", "angular2/di", "angular2/src/forms/directives/ng_control", "angular2/src/forms/model", "angular2/src/forms/directives/shared"], function($__export) {
+System.register("angular2/src/forms/directives/ng_model", ["angular2/src/facade/lang", "angular2/src/facade/async", "angular2/src/facade/collection", "angular2/angular2", "angular2/di", "angular2/src/forms/directives/ng_control", "angular2/src/forms/model", "angular2/src/forms/directives/validators", "angular2/src/forms/directives/shared"], function($__export) {
"use strict";
var __moduleName = "angular2/src/forms/directives/ng_model";
var __decorate,
__metadata,
+ __param,
CONST_EXPR,
EventEmitter,
ObservableWrapper,
StringMapWrapper,
Directive,
onChange,
+ QueryList,
+ Query,
forwardRef,
Binding,
NgControl,
Control,
+ NgValidator,
setUpControl,
+ composeNgValidator,
formControlBinding,
NgModel;
return {
@@ -16461,6 +16462,8 @@ System.register("angular2/src/forms/directives/ng_model", ["angular2/src/facade/
}, function($__m) {
Directive = $__m.Directive;
onChange = $__m.onChange;
+ QueryList = $__m.QueryList;
+ Query = $__m.Query;
}, function($__m) {
forwardRef = $__m.forwardRef;
Binding = $__m.Binding;
@@ -16468,8 +16471,11 @@ System.register("angular2/src/forms/directives/ng_model", ["angular2/src/facade/
NgControl = $__m.NgControl;
}, function($__m) {
Control = $__m.Control;
+ }, function($__m) {
+ NgValidator = $__m.NgValidator;
}, function($__m) {
setUpControl = $__m.setUpControl;
+ composeNgValidator = $__m.composeNgValidator;
}],
execute: function() {
__decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
@@ -16494,28 +16500,29 @@ System.register("angular2/src/forms/directives/ng_model", ["angular2/src/facade/
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
return Reflect.metadata(k, v);
};
+ __param = (this && this.__param) || function(paramIndex, decorator) {
+ return function(target, key) {
+ decorator(target, key, paramIndex);
+ };
+ };
formControlBinding = CONST_EXPR(new Binding(NgControl, {toAlias: forwardRef((function() {
return NgModel;
}))}));
NgModel = (function($__super) {
- function $__0() {
- var $__3;
- for (var args = [],
- $__2 = 0; $__2 < arguments.length; $__2++)
- args[$__2] = arguments[$__2];
- ($__3 = $traceurRuntime.superConstructor($__0)).call.apply($__3, $traceurRuntime.spread([this], args));
+ function $__0(ngValidators) {
+ $traceurRuntime.superConstructor($__0).call(this);
this._control = new Control("");
this._added = false;
- this.ngModel = new EventEmitter();
+ this.update = new EventEmitter();
+ this.ngValidators = ngValidators;
}
return ($traceurRuntime.createClass)($__0, {
onChange: function(c) {
if (!this._added) {
setUpControl(this._control, this);
- this.control.updateValidity();
+ this._control.updateValidity();
this._added = true;
}
- ;
if (StringMapWrapper.contains(c, "model")) {
this._control.updateValue(this.model);
}
@@ -16526,8 +16533,11 @@ System.register("angular2/src/forms/directives/ng_model", ["angular2/src/facade/
get path() {
return [];
},
+ get validator() {
+ return composeNgValidator(this.ngValidators);
+ },
viewToModelUpdate: function(newValue) {
- ObservableWrapper.callNext(this.ngModel, newValue);
+ ObservableWrapper.callNext(this.update, newValue);
}
}, {}, $__super);
}(NgControl));
@@ -16535,11 +16545,11 @@ System.register("angular2/src/forms/directives/ng_model", ["angular2/src/facade/
$__export("NgModel", NgModel = __decorate([Directive({
selector: '[ng-model]:not([ng-control]):not([ng-form-control])',
hostInjector: [formControlBinding],
- properties: ['model: ng-model'],
- events: ['ngModel'],
+ properties: ['model: ngModel'],
+ events: ['update: ngModel'],
lifecycle: [onChange],
exportAs: 'form'
- }), __metadata('design:paramtypes', [])], NgModel));
+ }), __param(0, Query(NgValidator)), __metadata('design:paramtypes', [QueryList])], NgModel));
}
};
});
@@ -16704,10 +16714,14 @@ System.register("angular2/src/forms/directives/ng_form_model", ["angular2/src/fa
}))}));
NgFormModel = (function($__super) {
function $__1() {
- $traceurRuntime.superConstructor($__1).call(this);
+ var $__4;
+ for (var args = [],
+ $__3 = 0; $__3 < arguments.length; $__3++)
+ args[$__3] = arguments[$__3];
+ ($__4 = $traceurRuntime.superConstructor($__1)).call.apply($__4, $traceurRuntime.spread([this], args));
this.form = null;
- this.ngSubmit = new EventEmitter();
this.directives = [];
+ this.ngSubmit = new EventEmitter();
}
return ($traceurRuntime.createClass)($__1, {
onChange: function(_) {
@@ -16723,7 +16737,7 @@ System.register("angular2/src/forms/directives/ng_form_model", ["angular2/src/fa
var c = this.form.find(dir.path);
setUpControl(c, dir);
c.updateValidity();
- ListWrapper.push(this.directives, dir);
+ this.directives.push(dir);
},
getControl: function(dir) {
return this.form.find(dir.path);
@@ -16941,6 +16955,7 @@ System.register("angular2/src/forms/directives/default_value_accessor", ["angula
ElementRef,
NgControl,
isBlank,
+ isPresent,
setProperty,
DefaultValueAccessor;
return {
@@ -16952,6 +16967,7 @@ System.register("angular2/src/forms/directives/default_value_accessor", ["angula
NgControl = $__m.NgControl;
}, function($__m) {
isBlank = $__m.isBlank;
+ isPresent = $__m.isPresent;
}, function($__m) {
setProperty = $__m.setProperty;
}],
@@ -16984,13 +17000,31 @@ System.register("angular2/src/forms/directives/default_value_accessor", ["angula
this.elementRef = elementRef;
this.value = null;
this.onChange = (function(_) {});
- this.onTouched = (function(_) {});
+ this.onTouched = (function() {});
cd.valueAccessor = this;
}, {
writeValue: function(value) {
this.value = isBlank(value) ? '' : value;
setProperty(this.renderer, this.elementRef, 'value', this.value);
},
+ get ngClassUntouched() {
+ return isPresent(this.cd.control) ? this.cd.control.untouched : false;
+ },
+ get ngClassTouched() {
+ return isPresent(this.cd.control) ? this.cd.control.touched : false;
+ },
+ get ngClassPristine() {
+ return isPresent(this.cd.control) ? this.cd.control.pristine : false;
+ },
+ get ngClassDirty() {
+ return isPresent(this.cd.control) ? this.cd.control.dirty : false;
+ },
+ get ngClassValid() {
+ return isPresent(this.cd.control) ? this.cd.control.valid : false;
+ },
+ get ngClassInvalid() {
+ return isPresent(this.cd.control) ? !this.cd.control.valid : false;
+ },
registerOnChange: function(fn) {
this.onChange = fn;
},
@@ -17006,19 +17040,19 @@ System.register("angular2/src/forms/directives/default_value_accessor", ["angula
'(input)': 'onChange($event.target.value)',
'(blur)': 'onTouched()',
'[value]': 'value',
- '[class.ng-untouched]': 'cd.control?.untouched == true',
- '[class.ng-touched]': 'cd.control?.touched == true',
- '[class.ng-pristine]': 'cd.control?.pristine == true',
- '[class.ng-dirty]': 'cd.control?.dirty == true',
- '[class.ng-valid]': 'cd.control?.valid == true',
- '[class.ng-invalid]': 'cd.control?.valid == false'
+ '[class.ng-untouched]': 'ngClassUntouched',
+ '[class.ng-touched]': 'ngClassTouched',
+ '[class.ng-pristine]': 'ngClassPristine',
+ '[class.ng-dirty]': 'ngClassDirty',
+ '[class.ng-valid]': 'ngClassValid',
+ '[class.ng-invalid]': 'ngClassInvalid'
}
}), __metadata('design:paramtypes', [NgControl, Renderer, ElementRef])], DefaultValueAccessor));
}
};
});
-System.register("angular2/src/forms/directives/checkbox_value_accessor", ["angular2/angular2", "angular2/src/forms/directives/ng_control", "angular2/src/forms/directives/shared"], function($__export) {
+System.register("angular2/src/forms/directives/checkbox_value_accessor", ["angular2/angular2", "angular2/src/forms/directives/ng_control", "angular2/src/facade/lang", "angular2/src/forms/directives/shared"], function($__export) {
"use strict";
var __moduleName = "angular2/src/forms/directives/checkbox_value_accessor";
var __decorate,
@@ -17027,6 +17061,7 @@ System.register("angular2/src/forms/directives/checkbox_value_accessor", ["angul
Renderer,
ElementRef,
NgControl,
+ isPresent,
setProperty,
CheckboxControlValueAccessor;
return {
@@ -17036,6 +17071,8 @@ System.register("angular2/src/forms/directives/checkbox_value_accessor", ["angul
ElementRef = $__m.ElementRef;
}, function($__m) {
NgControl = $__m.NgControl;
+ }, function($__m) {
+ isPresent = $__m.isPresent;
}, function($__m) {
setProperty = $__m.setProperty;
}],
@@ -17067,13 +17104,31 @@ System.register("angular2/src/forms/directives/checkbox_value_accessor", ["angul
this.renderer = renderer;
this.elementRef = elementRef;
this.onChange = (function(_) {});
- this.onTouched = (function(_) {});
+ this.onTouched = (function() {});
cd.valueAccessor = this;
}, {
writeValue: function(value) {
this.checked = value;
setProperty(this.renderer, this.elementRef, "checked", value);
},
+ get ngClassUntouched() {
+ return isPresent(this.cd.control) ? this.cd.control.untouched : false;
+ },
+ get ngClassTouched() {
+ return isPresent(this.cd.control) ? this.cd.control.touched : false;
+ },
+ get ngClassPristine() {
+ return isPresent(this.cd.control) ? this.cd.control.pristine : false;
+ },
+ get ngClassDirty() {
+ return isPresent(this.cd.control) ? this.cd.control.dirty : false;
+ },
+ get ngClassValid() {
+ return isPresent(this.cd.control) ? this.cd.control.valid : false;
+ },
+ get ngClassInvalid() {
+ return isPresent(this.cd.control) ? !this.cd.control.valid : false;
+ },
registerOnChange: function(fn) {
this.onChange = fn;
},
@@ -17088,19 +17143,19 @@ System.register("angular2/src/forms/directives/checkbox_value_accessor", ["angul
'(change)': 'onChange($event.target.checked)',
'(blur)': 'onTouched()',
'[checked]': 'checked',
- '[class.ng-untouched]': 'cd.control?.untouched == true',
- '[class.ng-touched]': 'cd.control?.touched == true',
- '[class.ng-pristine]': 'cd.control?.pristine == true',
- '[class.ng-dirty]': 'cd.control?.dirty == true',
- '[class.ng-valid]': 'cd.control?.valid == true',
- '[class.ng-invalid]': 'cd.control?.valid == false'
+ '[class.ng-untouched]': 'ngClassUntouched',
+ '[class.ng-touched]': 'ngClassTouched',
+ '[class.ng-pristine]': 'ngClassPristine',
+ '[class.ng-dirty]': 'ngClassDirty',
+ '[class.ng-valid]': 'ngClassValid',
+ '[class.ng-invalid]': 'ngClassInvalid'
}
}), __metadata('design:paramtypes', [NgControl, Renderer, ElementRef])], CheckboxControlValueAccessor));
}
};
});
-System.register("angular2/src/forms/directives/select_control_value_accessor", ["angular2/angular2", "angular2/src/forms/directives/ng_control", "angular2/src/forms/directives/shared"], function($__export) {
+System.register("angular2/src/forms/directives/select_control_value_accessor", ["angular2/angular2", "angular2/src/forms/directives/ng_control", "angular2/src/facade/lang", "angular2/src/forms/directives/shared"], function($__export) {
"use strict";
var __moduleName = "angular2/src/forms/directives/select_control_value_accessor";
var __decorate,
@@ -17112,6 +17167,7 @@ System.register("angular2/src/forms/directives/select_control_value_accessor", [
Renderer,
ElementRef,
NgControl,
+ isPresent,
setProperty,
NgSelectOption,
SelectControlValueAccessor;
@@ -17124,6 +17180,8 @@ System.register("angular2/src/forms/directives/select_control_value_accessor", [
ElementRef = $__m.ElementRef;
}, function($__m) {
NgControl = $__m.NgControl;
+ }, function($__m) {
+ isPresent = $__m.isPresent;
}, function($__m) {
setProperty = $__m.setProperty;
}],
@@ -17164,7 +17222,7 @@ System.register("angular2/src/forms/directives/select_control_value_accessor", [
this.elementRef = elementRef;
this.value = '';
this.onChange = (function(_) {});
- this.onTouched = (function(_) {});
+ this.onTouched = (function() {});
cd.valueAccessor = this;
this._updateValueWhenListOfOptionsChanges(query);
}, {
@@ -17172,6 +17230,24 @@ System.register("angular2/src/forms/directives/select_control_value_accessor", [
this.value = value;
setProperty(this.renderer, this.elementRef, "value", value);
},
+ get ngClassUntouched() {
+ return isPresent(this.cd.control) ? this.cd.control.untouched : false;
+ },
+ get ngClassTouched() {
+ return isPresent(this.cd.control) ? this.cd.control.touched : false;
+ },
+ get ngClassPristine() {
+ return isPresent(this.cd.control) ? this.cd.control.pristine : false;
+ },
+ get ngClassDirty() {
+ return isPresent(this.cd.control) ? this.cd.control.dirty : false;
+ },
+ get ngClassValid() {
+ return isPresent(this.cd.control) ? this.cd.control.valid : false;
+ },
+ get ngClassInvalid() {
+ return isPresent(this.cd.control) ? !this.cd.control.valid : false;
+ },
registerOnChange: function(fn) {
this.onChange = fn;
},
@@ -17193,63 +17269,75 @@ System.register("angular2/src/forms/directives/select_control_value_accessor", [
'(input)': 'onChange($event.target.value)',
'(blur)': 'onTouched()',
'[value]': 'value',
- '[class.ng-untouched]': 'cd.control?.untouched == true',
- '[class.ng-touched]': 'cd.control?.touched == true',
- '[class.ng-pristine]': 'cd.control?.pristine == true',
- '[class.ng-dirty]': 'cd.control?.dirty == true',
- '[class.ng-valid]': 'cd.control?.valid == true',
- '[class.ng-invalid]': 'cd.control?.valid == false'
+ '[class.ng-untouched]': 'ngClassUntouched',
+ '[class.ng-touched]': 'ngClassTouched',
+ '[class.ng-pristine]': 'ngClassPristine',
+ '[class.ng-dirty]': 'ngClassDirty',
+ '[class.ng-valid]': 'ngClassValid',
+ '[class.ng-invalid]': 'ngClassInvalid'
}
}), __param(3, Query(NgSelectOption, {descendants: true})), __metadata('design:paramtypes', [NgControl, Renderer, ElementRef, QueryList])], SelectControlValueAccessor));
}
};
});
-System.register("angular2/src/forms/directives/validators", ["angular2/angular2", "angular2/src/forms/validators", "angular2/src/forms/directives"], function($__export) {
+System.register("angular2/src/forms/directives", ["angular2/src/facade/lang", "angular2/src/forms/directives/ng_control_name", "angular2/src/forms/directives/ng_form_control", "angular2/src/forms/directives/ng_model", "angular2/src/forms/directives/ng_control_group", "angular2/src/forms/directives/ng_form_model", "angular2/src/forms/directives/ng_form", "angular2/src/forms/directives/default_value_accessor", "angular2/src/forms/directives/checkbox_value_accessor", "angular2/src/forms/directives/select_control_value_accessor", "angular2/src/forms/directives/validators", "angular2/src/forms/directives/ng_control"], function($__export) {
"use strict";
- var __moduleName = "angular2/src/forms/directives/validators";
- var __decorate,
- __metadata,
- Directive,
- Validators,
- NgControl,
- NgRequiredValidator;
+ var __moduleName = "angular2/src/forms/directives";
+ var CONST_EXPR,
+ NgControlName,
+ NgFormControl,
+ NgModel,
+ NgControlGroup,
+ NgFormModel,
+ NgForm,
+ DefaultValueAccessor,
+ CheckboxControlValueAccessor,
+ SelectControlValueAccessor,
+ NgSelectOption,
+ NgRequiredValidator,
+ formDirectives;
return {
setters: [function($__m) {
- Directive = $__m.Directive;
+ CONST_EXPR = $__m.CONST_EXPR;
}, function($__m) {
- Validators = $__m.Validators;
+ NgControlName = $__m.NgControlName;
+ $__export("NgControlName", $__m.NgControlName);
}, function($__m) {
- NgControl = $__m.NgControl;
+ NgFormControl = $__m.NgFormControl;
+ $__export("NgFormControl", $__m.NgFormControl);
+ }, function($__m) {
+ NgModel = $__m.NgModel;
+ $__export("NgModel", $__m.NgModel);
+ }, function($__m) {
+ NgControlGroup = $__m.NgControlGroup;
+ $__export("NgControlGroup", $__m.NgControlGroup);
+ }, function($__m) {
+ NgFormModel = $__m.NgFormModel;
+ $__export("NgFormModel", $__m.NgFormModel);
+ }, function($__m) {
+ NgForm = $__m.NgForm;
+ $__export("NgForm", $__m.NgForm);
+ }, function($__m) {
+ DefaultValueAccessor = $__m.DefaultValueAccessor;
+ $__export("DefaultValueAccessor", $__m.DefaultValueAccessor);
+ }, function($__m) {
+ CheckboxControlValueAccessor = $__m.CheckboxControlValueAccessor;
+ $__export("CheckboxControlValueAccessor", $__m.CheckboxControlValueAccessor);
+ }, function($__m) {
+ SelectControlValueAccessor = $__m.SelectControlValueAccessor;
+ NgSelectOption = $__m.NgSelectOption;
+ $__export("SelectControlValueAccessor", $__m.SelectControlValueAccessor);
+ }, function($__m) {
+ NgRequiredValidator = $__m.NgRequiredValidator;
+ $__export("NgValidator", $__m.NgValidator);
+ $__export("NgRequiredValidator", $__m.NgRequiredValidator);
+ }, function($__m) {
+ $__export("NgControl", $__m.NgControl);
}],
execute: function() {
- __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
- return Reflect.decorate(decorators, target, key, desc);
- switch (arguments.length) {
- case 2:
- return decorators.reduceRight(function(o, d) {
- return (d && d(o)) || o;
- }, target);
- case 3:
- return decorators.reduceRight(function(o, d) {
- return (d && d(target, key)), void 0;
- }, void 0);
- case 4:
- return decorators.reduceRight(function(o, d) {
- return (d && d(target, key, o)) || o;
- }, desc);
- }
- };
- __metadata = (this && this.__metadata) || function(k, v) {
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
- return Reflect.metadata(k, v);
- };
- NgRequiredValidator = (($traceurRuntime.createClass)(function(c) {
- c.validator = Validators.compose([c.validator, Validators.required]);
- }, {}, {}));
- $__export("NgRequiredValidator", NgRequiredValidator);
- $__export("NgRequiredValidator", NgRequiredValidator = __decorate([Directive({selector: '[required][ng-control],[required][ng-form-control],[required][ng-model]'}), __metadata('design:paramtypes', [NgControl])], NgRequiredValidator));
+ formDirectives = CONST_EXPR([NgControlName, NgControlGroup, NgFormControl, NgModel, NgFormModel, NgForm, NgSelectOption, DefaultValueAccessor, CheckboxControlValueAccessor, SelectControlValueAccessor, NgRequiredValidator]);
+ $__export("formDirectives", formDirectives);
}
};
});
@@ -17352,7 +17440,6 @@ System.register("angular2/src/http/enums", [], function($__export) {
RequestModesOpts[RequestModesOpts["NoCors"] = 1] = "NoCors";
RequestModesOpts[RequestModesOpts["SameOrigin"] = 2] = "SameOrigin";
})(RequestModesOpts || ($__export("RequestModesOpts", RequestModesOpts = {})));
- ;
$__export("RequestCacheOpts", RequestCacheOpts);
(function(RequestCacheOpts) {
RequestCacheOpts[RequestCacheOpts["Default"] = 0] = "Default";
@@ -17362,14 +17449,12 @@ System.register("angular2/src/http/enums", [], function($__export) {
RequestCacheOpts[RequestCacheOpts["ForceCache"] = 4] = "ForceCache";
RequestCacheOpts[RequestCacheOpts["OnlyIfCached"] = 5] = "OnlyIfCached";
})(RequestCacheOpts || ($__export("RequestCacheOpts", RequestCacheOpts = {})));
- ;
$__export("RequestCredentialsOpts", RequestCredentialsOpts);
(function(RequestCredentialsOpts) {
RequestCredentialsOpts[RequestCredentialsOpts["Omit"] = 0] = "Omit";
RequestCredentialsOpts[RequestCredentialsOpts["SameOrigin"] = 1] = "SameOrigin";
RequestCredentialsOpts[RequestCredentialsOpts["Include"] = 2] = "Include";
})(RequestCredentialsOpts || ($__export("RequestCredentialsOpts", RequestCredentialsOpts = {})));
- ;
$__export("RequestMethods", RequestMethods);
(function(RequestMethods) {
RequestMethods[RequestMethods["GET"] = 0] = "GET";
@@ -17380,7 +17465,6 @@ System.register("angular2/src/http/enums", [], function($__export) {
RequestMethods[RequestMethods["HEAD"] = 5] = "HEAD";
RequestMethods[RequestMethods["PATCH"] = 6] = "PATCH";
})(RequestMethods || ($__export("RequestMethods", RequestMethods = {})));
- ;
$__export("ReadyStates", ReadyStates);
(function(ReadyStates) {
ReadyStates[ReadyStates["UNSENT"] = 0] = "UNSENT";
@@ -17390,7 +17474,6 @@ System.register("angular2/src/http/enums", [], function($__export) {
ReadyStates[ReadyStates["DONE"] = 4] = "DONE";
ReadyStates[ReadyStates["CANCELLED"] = 5] = "CANCELLED";
})(ReadyStates || ($__export("ReadyStates", ReadyStates = {})));
- ;
$__export("ResponseTypes", ResponseTypes);
(function(ResponseTypes) {
ResponseTypes[ResponseTypes["Basic"] = 0] = "Basic";
@@ -17411,6 +17494,7 @@ System.register("angular2/src/http/headers", ["angular2/src/facade/lang", "angul
isJsObject,
BaseException,
isListLikeIterable,
+ Map,
MapWrapper,
ListWrapper,
Headers;
@@ -17422,6 +17506,7 @@ System.register("angular2/src/http/headers", ["angular2/src/facade/lang", "angul
BaseException = $__m.BaseException;
}, function($__m) {
isListLikeIterable = $__m.isListLikeIterable;
+ Map = $__m.Map;
MapWrapper = $__m.MapWrapper;
ListWrapper = $__m.ListWrapper;
}],
@@ -17430,7 +17515,7 @@ System.register("angular2/src/http/headers", ["angular2/src/facade/lang", "angul
function Headers(headers) {
var $__0 = this;
if (isBlank(headers)) {
- this._headersMap = MapWrapper.create();
+ this._headersMap = new Map();
return ;
}
if (isPresent(headers._headersMap)) {
@@ -17439,18 +17524,18 @@ System.register("angular2/src/http/headers", ["angular2/src/facade/lang", "angul
this._headersMap = MapWrapper.createFromStringMap(headers);
MapWrapper.forEach(this._headersMap, (function(v, k) {
if (!isListLikeIterable(v)) {
- var list = ListWrapper.create();
- ListWrapper.push(list, v);
- MapWrapper.set($__0._headersMap, k, list);
+ var list = [];
+ list.push(v);
+ $__0._headersMap.set(k, list);
}
}));
}
}
return ($traceurRuntime.createClass)(Headers, {
append: function(name, value) {
- var list = MapWrapper.get(this._headersMap, name) || ListWrapper.create();
- ListWrapper.push(list, value);
- MapWrapper.set(this._headersMap, name, list);
+ var list = this._headersMap.get(name) || [];
+ list.push(value);
+ this._headersMap.set(name, list);
},
delete: function(name) {
MapWrapper.delete(this._headersMap, name);
@@ -17459,28 +17544,28 @@ System.register("angular2/src/http/headers", ["angular2/src/facade/lang", "angul
return MapWrapper.forEach(this._headersMap, fn);
},
get: function(header) {
- return ListWrapper.first(MapWrapper.get(this._headersMap, header));
+ return ListWrapper.first(this._headersMap.get(header));
},
has: function(header) {
- return MapWrapper.contains(this._headersMap, header);
+ return this._headersMap.has(header);
},
keys: function() {
return MapWrapper.keys(this._headersMap);
},
set: function(header, value) {
- var list = ListWrapper.create();
+ var list = [];
if (!isListLikeIterable(value)) {
- ListWrapper.push(list, value);
+ list.push(value);
} else {
- ListWrapper.push(list, ListWrapper.toString(value));
+ list.push(ListWrapper.toString(value));
}
- MapWrapper.set(this._headersMap, header, list);
+ this._headersMap.set(header, list);
},
values: function() {
return MapWrapper.values(this._headersMap);
},
getAll: function(header) {
- return MapWrapper.get(this._headersMap, header) || ListWrapper.create();
+ return this._headersMap.get(header) || [];
},
entries: function() {
throw new BaseException('"entries" method is not implemented on Headers class');
@@ -17784,6 +17869,75 @@ System.register("angular2/src/http/backends/mock_backend", ["angular2/di", "angu
};
});
+System.register("angular2/src/http/url_search_params", ["angular2/src/facade/lang", "angular2/src/facade/collection"], function($__export) {
+ "use strict";
+ var __moduleName = "angular2/src/http/url_search_params";
+ var StringWrapper,
+ Map,
+ MapWrapper,
+ ListWrapper,
+ URLSearchParams;
+ function paramParser(rawParams) {
+ var map = new Map();
+ var params = StringWrapper.split(rawParams, '&');
+ ListWrapper.forEach(params, (function(param) {
+ var split = StringWrapper.split(param, '=');
+ var key = ListWrapper.get(split, 0);
+ var val = ListWrapper.get(split, 1);
+ var list = map.get(key) || [];
+ list.push(val);
+ map.set(key, list);
+ }));
+ return map;
+ }
+ return {
+ setters: [function($__m) {
+ StringWrapper = $__m.StringWrapper;
+ }, function($__m) {
+ Map = $__m.Map;
+ MapWrapper = $__m.MapWrapper;
+ ListWrapper = $__m.ListWrapper;
+ }],
+ execute: function() {
+ URLSearchParams = (function() {
+ function URLSearchParams(rawParams) {
+ this.rawParams = rawParams;
+ this.paramsMap = paramParser(rawParams);
+ }
+ return ($traceurRuntime.createClass)(URLSearchParams, {
+ has: function(param) {
+ return this.paramsMap.has(param);
+ },
+ get: function(param) {
+ return ListWrapper.first(this.paramsMap.get(param));
+ },
+ getAll: function(param) {
+ return this.paramsMap.get(param) || [];
+ },
+ append: function(param, val) {
+ var list = this.paramsMap.get(param) || [];
+ list.push(val);
+ this.paramsMap.set(param, list);
+ },
+ toString: function() {
+ var paramsList = [];
+ MapWrapper.forEach(this.paramsMap, (function(values, k) {
+ ListWrapper.forEach(values, (function(v) {
+ paramsList.push(k + '=' + v);
+ }));
+ }));
+ return ListWrapper.join(paramsList, '&');
+ },
+ delete: function(param) {
+ MapWrapper.delete(this.paramsMap, param);
+ }
+ }, {});
+ }());
+ $__export("URLSearchParams", URLSearchParams);
+ }
+ };
+});
+
System.register("angular2/src/change_detection/parser/ast", ["angular2/src/facade/lang", "angular2/src/facade/collection"], function($__export) {
"use strict";
var __moduleName = "angular2/src/change_detection/parser/ast";
@@ -17802,7 +17956,7 @@ System.register("angular2/src/change_detection/parser/ast", ["angular2/src/facad
AccessMember,
SafeAccessMember,
KeyedAccess,
- Pipe,
+ BindingPipe,
LiteralPrimitive,
LiteralArray,
LiteralMap,
@@ -18029,19 +18183,18 @@ System.register("angular2/src/change_detection/parser/ast", ["angular2/src/facad
}, {}, $__super);
}(AST));
$__export("KeyedAccess", KeyedAccess);
- Pipe = (function($__super) {
- function Pipe(exp, name, args, inBinding) {
- $traceurRuntime.superConstructor(Pipe).call(this);
+ BindingPipe = (function($__super) {
+ function BindingPipe(exp, name, args) {
+ $traceurRuntime.superConstructor(BindingPipe).call(this);
this.exp = exp;
this.name = name;
this.args = args;
- this.inBinding = inBinding;
}
- return ($traceurRuntime.createClass)(Pipe, {visit: function(visitor) {
+ return ($traceurRuntime.createClass)(BindingPipe, {visit: function(visitor) {
return visitor.visitPipe(this);
}}, {}, $__super);
}(AST));
- $__export("Pipe", Pipe);
+ $__export("BindingPipe", BindingPipe);
LiteralPrimitive = (function($__super) {
function LiteralPrimitive(value) {
$traceurRuntime.superConstructor(LiteralPrimitive).call(this);
@@ -18344,7 +18497,7 @@ System.register("angular2/src/change_detection/parser/ast", ["angular2/src/facad
return new Conditional(ast.condition.visit(this), ast.trueExp.visit(this), ast.falseExp.visit(this));
},
visitPipe: function(ast) {
- return new Pipe(ast.exp.visit(this), ast.name, this.visitAll(ast.args), ast.inBinding);
+ return new BindingPipe(ast.exp.visit(this), ast.name, this.visitAll(ast.args));
},
visitKeyedAccess: function(ast) {
return new KeyedAccess(ast.obj.visit(this), ast.key.visit(this));
@@ -18394,19 +18547,19 @@ System.register("angular2/src/reflection/reflector", ["angular2/src/facade/lang"
"use strict";
var __moduleName = "angular2/src/reflection/reflector";
var isPresent,
- MapWrapper,
+ Map,
StringMapWrapper,
Reflector;
function _mergeMaps(target, config) {
StringMapWrapper.forEach(config, (function(v, k) {
- return MapWrapper.set(target, k, v);
+ return target.set(k, v);
}));
}
return {
setters: [function($__m) {
isPresent = $__m.isPresent;
}, function($__m) {
- MapWrapper = $__m.MapWrapper;
+ Map = $__m.Map;
StringMapWrapper = $__m.StringMapWrapper;
}, function($__m) {
$__export("SetterFn", $__m.SetterFn);
@@ -18416,15 +18569,15 @@ System.register("angular2/src/reflection/reflector", ["angular2/src/facade/lang"
execute: function() {
Reflector = (function() {
function Reflector(reflectionCapabilities) {
- this._typeInfo = MapWrapper.create();
- this._getters = MapWrapper.create();
- this._setters = MapWrapper.create();
- this._methods = MapWrapper.create();
+ this._typeInfo = new Map();
+ this._getters = new Map();
+ this._setters = new Map();
+ this._methods = new Map();
this.reflectionCapabilities = reflectionCapabilities;
}
return ($traceurRuntime.createClass)(Reflector, {
registerType: function(type, typeInfo) {
- MapWrapper.set(this._typeInfo, type, typeInfo);
+ this._typeInfo.set(type, typeInfo);
},
registerGetters: function(getters) {
_mergeMaps(this._getters, getters);
@@ -18443,53 +18596,53 @@ System.register("angular2/src/reflection/reflector", ["angular2/src/facade/lang"
}
},
parameters: function(typeOrFunc) {
- if (MapWrapper.contains(this._typeInfo, typeOrFunc)) {
+ if (this._typeInfo.has(typeOrFunc)) {
return this._getTypeInfoField(typeOrFunc, "parameters", []);
} else {
return this.reflectionCapabilities.parameters(typeOrFunc);
}
},
annotations: function(typeOrFunc) {
- if (MapWrapper.contains(this._typeInfo, typeOrFunc)) {
+ if (this._typeInfo.has(typeOrFunc)) {
return this._getTypeInfoField(typeOrFunc, "annotations", []);
} else {
return this.reflectionCapabilities.annotations(typeOrFunc);
}
},
interfaces: function(type) {
- if (MapWrapper.contains(this._typeInfo, type)) {
+ if (this._typeInfo.has(type)) {
return this._getTypeInfoField(type, "interfaces", []);
} else {
return this.reflectionCapabilities.interfaces(type);
}
},
getter: function(name) {
- if (MapWrapper.contains(this._getters, name)) {
- return MapWrapper.get(this._getters, name);
+ if (this._getters.has(name)) {
+ return this._getters.get(name);
} else {
return this.reflectionCapabilities.getter(name);
}
},
setter: function(name) {
- if (MapWrapper.contains(this._setters, name)) {
- return MapWrapper.get(this._setters, name);
+ if (this._setters.has(name)) {
+ return this._setters.get(name);
} else {
return this.reflectionCapabilities.setter(name);
}
},
method: function(name) {
- if (MapWrapper.contains(this._methods, name)) {
- return MapWrapper.get(this._methods, name);
+ if (this._methods.has(name)) {
+ return this._methods.get(name);
} else {
return this.reflectionCapabilities.method(name);
}
},
_getTypeInfoField: function(typeOrFunc, key, defaultValue) {
- var res = MapWrapper.get(this._typeInfo, typeOrFunc)[key];
+ var res = this._typeInfo.get(typeOrFunc)[key];
return isPresent(res) ? res : defaultValue;
},
_containsTypeInfo: function(typeOrFunc) {
- return MapWrapper.contains(this._typeInfo, typeOrFunc);
+ return this._typeInfo.has(typeOrFunc);
}
}, {});
}());
@@ -18730,13 +18883,12 @@ System.register("angular2/src/change_detection/change_detection_util", ["angular
};
});
-System.register("angular2/src/change_detection/abstract_change_detector", ["angular2/src/facade/lang", "angular2/src/facade/collection", "angular2/src/change_detection/change_detector_ref", "angular2/src/change_detection/interfaces", "angular2/src/change_detection/constants"], function($__export) {
+System.register("angular2/src/change_detection/abstract_change_detector", ["angular2/src/facade/lang", "angular2/src/facade/collection", "angular2/src/change_detection/change_detector_ref", "angular2/src/change_detection/constants"], function($__export) {
"use strict";
var __moduleName = "angular2/src/change_detection/abstract_change_detector";
var isPresent,
ListWrapper,
ChangeDetectorRef,
- ChangeDetector,
CHECK_ONCE,
CHECKED,
DETACHED,
@@ -18748,17 +18900,15 @@ System.register("angular2/src/change_detection/abstract_change_detector", ["angu
ListWrapper = $__m.ListWrapper;
}, function($__m) {
ChangeDetectorRef = $__m.ChangeDetectorRef;
- }, function($__m) {
- ChangeDetector = $__m.ChangeDetector;
}, function($__m) {
CHECK_ONCE = $__m.CHECK_ONCE;
CHECKED = $__m.CHECKED;
DETACHED = $__m.DETACHED;
}],
execute: function() {
- AbstractChangeDetector = (function($__super) {
- function AbstractChangeDetector() {
- $traceurRuntime.superConstructor(AbstractChangeDetector).call(this);
+ AbstractChangeDetector = (function() {
+ function AbstractChangeDetector(id) {
+ this.id = id;
this.lightDomChildren = [];
this.shadowDomChildren = [];
this.mode = null;
@@ -18766,14 +18916,14 @@ System.register("angular2/src/change_detection/abstract_change_detector", ["angu
}
return ($traceurRuntime.createClass)(AbstractChangeDetector, {
addChild: function(cd) {
- ListWrapper.push(this.lightDomChildren, cd);
+ this.lightDomChildren.push(cd);
cd.parent = this;
},
removeChild: function(cd) {
ListWrapper.remove(this.lightDomChildren, cd);
},
addShadowDomChild: function(cd) {
- ListWrapper.push(this.shadowDomChildren, cd);
+ this.shadowDomChildren.push(cd);
cd.parent = this;
},
removeShadowDomChild: function(cd) {
@@ -18800,6 +18950,8 @@ System.register("angular2/src/change_detection/abstract_change_detector", ["angu
this.mode = CHECKED;
},
detectChangesInRecords: function(throwOnChange) {},
+ hydrate: function(context, locals, directives) {},
+ dehydrate: function() {},
callOnAllChangesDone: function() {},
_detectChangesInLightDomChildren: function(throwOnChange) {
var c = this.lightDomChildren;
@@ -18824,28 +18976,24 @@ System.register("angular2/src/change_detection/abstract_change_detector", ["angu
c = c.parent;
}
}
- }, {}, $__super);
- }(ChangeDetector));
+ }, {});
+ }());
$__export("AbstractChangeDetector", AbstractChangeDetector);
}
};
});
-System.register("angular2/src/change_detection/jit_proto_change_detector", ["angular2/src/facade/collection", "angular2/src/change_detection/interfaces", "angular2/src/change_detection/change_detection_jit_generator", "angular2/src/change_detection/coalesce", "angular2/src/change_detection/proto_change_detector"], function($__export) {
+System.register("angular2/src/change_detection/jit_proto_change_detector", ["angular2/src/facade/collection", "angular2/src/change_detection/change_detection_jit_generator", "angular2/src/change_detection/coalesce", "angular2/src/change_detection/proto_change_detector"], function($__export) {
"use strict";
var __moduleName = "angular2/src/change_detection/jit_proto_change_detector";
var ListWrapper,
- ProtoChangeDetector,
ChangeDetectorJITGenerator,
coalesce,
ProtoRecordBuilder,
- _jitProtoChangeDetectorClassCounter,
JitProtoChangeDetector;
return {
setters: [function($__m) {
ListWrapper = $__m.ListWrapper;
- }, function($__m) {
- ProtoChangeDetector = $__m.ProtoChangeDetector;
}, function($__m) {
ChangeDetectorJITGenerator = $__m.ChangeDetectorJITGenerator;
}, function($__m) {
@@ -18854,10 +19002,8 @@ System.register("angular2/src/change_detection/jit_proto_change_detector", ["ang
ProtoRecordBuilder = $__m.ProtoRecordBuilder;
}],
execute: function() {
- _jitProtoChangeDetectorClassCounter = 0;
- JitProtoChangeDetector = (function($__super) {
+ JitProtoChangeDetector = (function() {
function JitProtoChangeDetector(_pipeRegistry, definition) {
- $traceurRuntime.superConstructor(JitProtoChangeDetector).call(this);
this._pipeRegistry = _pipeRegistry;
this.definition = definition;
this._factory = this._createFactory(definition);
@@ -18871,15 +19017,13 @@ System.register("angular2/src/change_detection/jit_proto_change_detector", ["ang
ListWrapper.forEach(definition.bindingRecords, (function(b) {
recordBuilder.add(b, definition.variableNames);
}));
- var c = _jitProtoChangeDetectorClassCounter++;
var records = coalesce(recordBuilder.records);
- var typeName = ("ChangeDetector" + c);
- return new ChangeDetectorJITGenerator(typeName, definition.strategy, records, this.definition.directiveRecords).generate();
+ return new ChangeDetectorJITGenerator(definition.id, definition.strategy, records, this.definition.directiveRecords).generate();
}
}, {isSupported: function() {
return true;
- }}, $__super);
- }(ProtoChangeDetector));
+ }});
+ }());
$__export("JitProtoChangeDetector", JitProtoChangeDetector);
}
};
@@ -19066,11 +19210,11 @@ System.register("angular2/src/di/key", ["angular2/src/facade/collection", "angul
execute: function() {
Key = (function() {
function Key(token, id) {
+ this.token = token;
+ this.id = id;
if (isBlank(token)) {
throw new BaseException('Token must be defined!');
}
- this.token = token;
- this.id = id;
}
return ($traceurRuntime.createClass)(Key, {get displayName() {
return stringify(this.token);
@@ -19086,7 +19230,7 @@ System.register("angular2/src/di/key", ["angular2/src/facade/collection", "angul
$__export("Key", Key);
KeyRegistry = (function() {
function KeyRegistry() {
- this._allKeys = MapWrapper.create();
+ this._allKeys = new Map();
}
return ($traceurRuntime.createClass)(KeyRegistry, {
get: function(token) {
@@ -19097,11 +19241,11 @@ System.register("angular2/src/di/key", ["angular2/src/facade/collection", "angul
theToken = token.type;
}
token = theToken;
- if (MapWrapper.contains(this._allKeys, token)) {
- return MapWrapper.get(this._allKeys, token);
+ if (this._allKeys.has(token)) {
+ return this._allKeys.get(token);
}
var newKey = new Key(token, Key.numberOfKeys);
- MapWrapper.set(this._allKeys, token, newKey);
+ this._allKeys.set(token, newKey);
return newKey;
},
get numberOfKeys() {
@@ -19143,8 +19287,7 @@ System.register("angular2/src/core/annotations/view", ["angular2/src/core/annota
System.register("angular2/src/dom/browser_adapter", ["angular2/src/facade/collection", "angular2/src/facade/lang", "angular2/src/dom/dom_adapter", "angular2/src/dom/generic_browser_adapter"], function($__export) {
"use strict";
var __moduleName = "angular2/src/dom/browser_adapter";
- var MapWrapper,
- ListWrapper,
+ var ListWrapper,
isBlank,
isPresent,
global,
@@ -19165,7 +19308,6 @@ System.register("angular2/src/dom/browser_adapter", ["angular2/src/facade/collec
}
return {
setters: [function($__m) {
- MapWrapper = $__m.MapWrapper;
ListWrapper = $__m.ListWrapper;
}, function($__m) {
isBlank = $__m.isBlank;
@@ -19221,6 +19363,18 @@ System.register("angular2/src/dom/browser_adapter", ["angular2/src/facade/collec
$traceurRuntime.superConstructor(BrowserDomAdapter).apply(this, arguments);
}
return ($traceurRuntime.createClass)(BrowserDomAdapter, {
+ hasProperty: function(element, name) {
+ return name in element;
+ },
+ setProperty: function(el, name, value) {
+ el[name] = value;
+ },
+ getProperty: function(el, name) {
+ return el[name];
+ },
+ invoke: function(el, methodName, args) {
+ el[methodName].apply(el, args);
+ },
logError: function(error) {
window.console.error(error);
},
@@ -19392,9 +19546,6 @@ System.register("angular2/src/dom/browser_adapter", ["angular2/src/facade/collec
clone: function(node) {
return node.cloneNode(true);
},
- hasProperty: function(element, name) {
- return name in element;
- },
getElementsByClassName: function(element, name) {
return element.getElementsByClassName(name);
},
@@ -19426,11 +19577,11 @@ System.register("angular2/src/dom/browser_adapter", ["angular2/src/facade/collec
return element.tagName;
},
attributeMap: function(element) {
- var res = MapWrapper.create();
+ var res = new Map();
var elAttrs = element.attributes;
for (var i = 0; i < elAttrs.length; i++) {
var attrib = elAttrs[i];
- MapWrapper.set(res, attrib.name, attrib.value);
+ res.set(attrib.name, attrib.value);
}
return res;
},
@@ -19644,17 +19795,20 @@ System.register("angular2/src/core/compiler/directive_resolver", ["angular2/di",
};
});
-System.register("angular2/src/core/compiler/view", ["angular2/src/facade/collection", "angular2/change_detection", "angular2/src/core/compiler/element_binder", "angular2/src/facade/lang"], function($__export) {
+System.register("angular2/src/core/compiler/view", ["angular2/src/facade/collection", "angular2/change_detection", "angular2/src/core/compiler/element_binder", "angular2/src/facade/lang", "angular2/src/core/compiler/view_ref", "angular2/src/core/compiler/element_ref"], function($__export) {
"use strict";
var __moduleName = "angular2/src/core/compiler/view";
var ListWrapper,
MapWrapper,
+ Map,
StringMapWrapper,
Locals,
ElementBinder,
isPresent,
isBlank,
BaseException,
+ ViewRef,
+ ElementRef,
AppViewContainer,
AppView,
AppProtoView;
@@ -19662,6 +19816,7 @@ System.register("angular2/src/core/compiler/view", ["angular2/src/facade/collect
setters: [function($__m) {
ListWrapper = $__m.ListWrapper;
MapWrapper = $__m.MapWrapper;
+ Map = $__m.Map;
StringMapWrapper = $__m.StringMapWrapper;
}, function($__m) {
Locals = $__m.Locals;
@@ -19671,12 +19826,15 @@ System.register("angular2/src/core/compiler/view", ["angular2/src/facade/collect
isPresent = $__m.isPresent;
isBlank = $__m.isBlank;
BaseException = $__m.BaseException;
+ }, function($__m) {
+ ViewRef = $__m.ViewRef;
+ }, function($__m) {
+ ElementRef = $__m.ElementRef;
}],
execute: function() {
AppViewContainer = (function() {
function AppViewContainer() {
this.views = [];
- this.freeViews = [];
}
return ($traceurRuntime.createClass)(AppViewContainer, {}, {});
}());
@@ -19689,10 +19847,14 @@ System.register("angular2/src/core/compiler/view", ["angular2/src/facade/collect
this.elementInjectors = null;
this.changeDetector = null;
this.componentChildViews = null;
- this.freeHostViews = [];
this.preBuiltObjects = null;
this.context = null;
this.viewContainers = ListWrapper.createFixedSize(this.proto.elementBinders.length);
+ this.elementRefs = ListWrapper.createFixedSize(this.proto.elementBinders.length);
+ this.ref = new ViewRef(this);
+ for (var i = 0; i < this.elementRefs.length; i++) {
+ this.elementRefs[i] = new ElementRef(this.ref, i, renderer);
+ }
this.locals = new Locals(null, MapWrapper.clone(protoLocals));
}
return ($traceurRuntime.createClass)(AppView, {
@@ -19706,25 +19868,34 @@ System.register("angular2/src/core/compiler/view", ["angular2/src/facade/collect
setLocal: function(contextName, value) {
if (!this.hydrated())
throw new BaseException('Cannot set locals on dehydrated view.');
- if (!MapWrapper.contains(this.proto.variableBindings, contextName)) {
+ if (!this.proto.variableBindings.has(contextName)) {
return ;
}
- var templateName = MapWrapper.get(this.proto.variableBindings, contextName);
+ var templateName = this.proto.variableBindings.get(contextName);
this.locals.set(templateName, value);
},
hydrated: function() {
return isPresent(this.context);
},
triggerEventHandlers: function(eventName, eventObj, binderIndex) {
- var locals = MapWrapper.create();
- MapWrapper.set(locals, '$event', eventObj);
+ var locals = new Map();
+ locals.set('$event', eventObj);
this.dispatchEvent(binderIndex, eventName, locals);
},
notifyOnBinding: function(b, currentValue) {
- if (b.isElement()) {
- this.renderer.setElementProperty(this.render, b.elementIndex, b.propertyName, currentValue);
- } else {
+ if (b.isElementProperty()) {
+ this.renderer.setElementProperty(this.elementRefs[b.elementIndex], b.propertyName, currentValue);
+ } else if (b.isElementAttribute()) {
+ this.renderer.setElementAttribute(this.elementRefs[b.elementIndex], b.propertyName, currentValue);
+ } else if (b.isElementClass()) {
+ this.renderer.setElementClass(this.elementRefs[b.elementIndex], b.propertyName, currentValue);
+ } else if (b.isElementStyle()) {
+ var unit = isPresent(b.propertyUnit) ? b.propertyUnit : '';
+ this.renderer.setElementStyle(this.elementRefs[b.elementIndex], b.propertyName, ("" + currentValue + unit));
+ } else if (b.isTextNode()) {
this.renderer.setText(this.render, b.elementIndex, currentValue);
+ } else {
+ throw new BaseException('Unsupported directive record');
}
},
notifyOnAllChangesDone: function() {
@@ -19742,8 +19913,8 @@ System.register("angular2/src/core/compiler/view", ["angular2/src/facade/collect
var childView = this.componentChildViews[directive.elementIndex];
return isPresent(childView) ? childView.changeDetector : null;
},
- callAction: function(elementIndex, actionExpression, action) {
- this.renderer.callAction(this.render, elementIndex, actionExpression, action);
+ invokeElementMethod: function(elementIndex, methodName, args) {
+ this.renderer.invokeElementMethod(this.elementRefs[elementIndex], methodName, args);
},
dispatchEvent: function(elementIndex, eventName, locals) {
var $__0 = this;
@@ -19774,24 +19945,25 @@ System.register("angular2/src/core/compiler/view", ["angular2/src/facade/collect
}());
$__export("AppView", AppView);
AppProtoView = (function() {
- function AppProtoView(render, protoChangeDetector, variableBindings) {
+ function AppProtoView(render, protoChangeDetector, variableBindings, variableLocations) {
var $__0 = this;
this.render = render;
this.protoChangeDetector = protoChangeDetector;
this.variableBindings = variableBindings;
+ this.variableLocations = variableLocations;
this.elementBinders = [];
- this.protoLocals = MapWrapper.create();
+ this.protoLocals = new Map();
if (isPresent(variableBindings)) {
MapWrapper.forEach(variableBindings, (function(templateName, _) {
- MapWrapper.set($__0.protoLocals, templateName, null);
+ $__0.protoLocals.set(templateName, null);
}));
}
}
return ($traceurRuntime.createClass)(AppProtoView, {
- bindElement: function(parent, distanceToParent, protoElementInjector, directiveVariableBindings) {
- var componentDirective = arguments[4] !== (void 0) ? arguments[4] : null;
- var elBinder = new ElementBinder(this.elementBinders.length, parent, distanceToParent, protoElementInjector, directiveVariableBindings, componentDirective);
- ListWrapper.push(this.elementBinders, elBinder);
+ bindElement: function(parent, distanceToParent, protoElementInjector) {
+ var componentDirective = arguments[3] !== (void 0) ? arguments[3] : null;
+ var elBinder = new ElementBinder(this.elementBinders.length, parent, distanceToParent, protoElementInjector, componentDirective);
+ this.elementBinders.push(elBinder);
return elBinder;
},
bindEvent: function(eventBindings, boundElementIndex) {
@@ -19807,10 +19979,10 @@ System.register("angular2/src/core/compiler/view", ["angular2/src/facade/collect
var eventName = eventBinding.fullName;
var event = StringMapWrapper.get(events, eventName);
if (isBlank(event)) {
- event = MapWrapper.create();
+ event = new Map();
StringMapWrapper.set(events, eventName, event);
}
- MapWrapper.set(event, directiveIndex, eventBinding.source);
+ event.set(directiveIndex, eventBinding.source);
}
}
}, {});
@@ -19820,41 +19992,6 @@ System.register("angular2/src/core/compiler/view", ["angular2/src/facade/collect
};
});
-System.register("angular2/src/core/compiler/element_ref", ["angular2/src/dom/dom_adapter", "angular2/src/facade/lang", "angular2/src/render/dom/view/view"], function($__export) {
- "use strict";
- var __moduleName = "angular2/src/core/compiler/element_ref";
- var DOM,
- normalizeBlank,
- resolveInternalDomView,
- ElementRef;
- return {
- setters: [function($__m) {
- DOM = $__m.DOM;
- }, function($__m) {
- normalizeBlank = $__m.normalizeBlank;
- }, function($__m) {
- resolveInternalDomView = $__m.resolveInternalDomView;
- }],
- execute: function() {
- ElementRef = (function() {
- function ElementRef(parentView, boundElementIndex) {
- this.parentView = parentView;
- this.boundElementIndex = boundElementIndex;
- }
- return ($traceurRuntime.createClass)(ElementRef, {
- get domElement() {
- return resolveInternalDomView(this.parentView.render).boundElements[this.boundElementIndex].element;
- },
- getAttribute: function(name) {
- return normalizeBlank(DOM.getAttribute(this.domElement, name));
- }
- }, {});
- }());
- $__export("ElementRef", ElementRef);
- }
- };
-});
-
System.register("angular2/src/core/compiler/query_list", ["angular2/src/core/compiler/base_query_list"], function($__export) {
"use strict";
var __moduleName = "angular2/src/core/compiler/query_list";
@@ -19883,45 +20020,61 @@ System.register("angular2/src/core/compiler/query_list", ["angular2/src/core/com
};
});
-System.register("angular2/src/render/dom/compiler/template_loader", ["angular2/di", "angular2/src/facade/lang", "angular2/src/facade/collection", "angular2/src/facade/async", "angular2/src/dom/dom_adapter", "angular2/src/render/xhr", "angular2/src/services/url_resolver"], function($__export) {
+System.register("angular2/src/render/dom/compiler/style_inliner", ["angular2/di", "angular2/src/render/xhr", "angular2/src/facade/collection", "angular2/src/services/url_resolver", "angular2/src/render/dom/compiler/style_url_resolver", "angular2/src/facade/lang", "angular2/src/facade/async"], function($__export) {
"use strict";
- var __moduleName = "angular2/src/render/dom/compiler/template_loader";
+ var __moduleName = "angular2/src/render/dom/compiler/style_inliner";
var __decorate,
__metadata,
Injectable,
+ XHR,
+ ListWrapper,
+ UrlResolver,
+ StyleUrlResolver,
isBlank,
isPresent,
- BaseException,
- MapWrapper,
- ListWrapper,
+ RegExpWrapper,
+ StringWrapper,
+ isPromise,
PromiseWrapper,
- DOM,
- XHR,
- UrlResolver,
- TemplateLoader;
- function _createStyleTags(styles) {
- return isBlank(styles) ? '' : ListWrapper.map(styles, (function(css) {
- return ("");
- })).join('');
+ StyleInliner,
+ _importRe,
+ _urlRe,
+ _mediaQueryRe;
+ function _extractUrl(importRule) {
+ var match = RegExpWrapper.firstMatch(_urlRe, importRule);
+ if (isBlank(match))
+ return null;
+ return isPresent(match[1]) ? match[1] : match[2];
+ }
+ function _extractMediaQuery(importRule) {
+ var match = RegExpWrapper.firstMatch(_mediaQueryRe, importRule);
+ if (isBlank(match))
+ return null;
+ var mediaQuery = match[1].trim();
+ return (mediaQuery.length > 0) ? mediaQuery : null;
+ }
+ function _wrapInMediaRule(css, query) {
+ return (isBlank(query)) ? css : ("@media " + query + " {\n" + css + "\n}");
}
return {
setters: [function($__m) {
Injectable = $__m.Injectable;
- }, function($__m) {
- isBlank = $__m.isBlank;
- isPresent = $__m.isPresent;
- BaseException = $__m.BaseException;
- }, function($__m) {
- MapWrapper = $__m.MapWrapper;
- ListWrapper = $__m.ListWrapper;
- }, function($__m) {
- PromiseWrapper = $__m.PromiseWrapper;
- }, function($__m) {
- DOM = $__m.DOM;
}, function($__m) {
XHR = $__m.XHR;
+ }, function($__m) {
+ ListWrapper = $__m.ListWrapper;
}, function($__m) {
UrlResolver = $__m.UrlResolver;
+ }, function($__m) {
+ StyleUrlResolver = $__m.StyleUrlResolver;
+ }, function($__m) {
+ isBlank = $__m.isBlank;
+ isPresent = $__m.isPresent;
+ RegExpWrapper = $__m.RegExpWrapper;
+ StringWrapper = $__m.StringWrapper;
+ isPromise = $__m.isPromise;
+ }, function($__m) {
+ PromiseWrapper = $__m.PromiseWrapper;
}],
execute: function() {
__decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
@@ -19946,48 +20099,71 @@ System.register("angular2/src/render/dom/compiler/template_loader", ["angular2/d
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
return Reflect.metadata(k, v);
};
- TemplateLoader = (($traceurRuntime.createClass)(function(_xhr, urlResolver) {
+ StyleInliner = (($traceurRuntime.createClass)(function(_xhr, _styleUrlResolver, _urlResolver) {
this._xhr = _xhr;
- this._cache = MapWrapper.create();
+ this._styleUrlResolver = _styleUrlResolver;
+ this._urlResolver = _urlResolver;
}, {
- load: function(view) {
- var $__0 = this;
- var html;
- var fetchedStyles;
- if (isPresent(view.template)) {
- html = PromiseWrapper.resolve(view.template);
- } else if (isPresent(view.templateAbsUrl)) {
- html = this._loadText(view.templateAbsUrl);
- } else {
- throw new BaseException('View should have either the templateUrl or template property set');
- }
- if (isPresent(view.styleAbsUrls) && view.styleAbsUrls.length > 0) {
- fetchedStyles = ListWrapper.map(view.styleAbsUrls, (function(url) {
- return $__0._loadText(url);
- }));
- } else {
- fetchedStyles = [];
- }
- return PromiseWrapper.all(ListWrapper.concat([html], fetchedStyles)).then((function(res) {
- var html = res[0];
- var fetchedStyles = ListWrapper.slice(res, 1);
- html = _createStyleTags(view.styles) + _createStyleTags(fetchedStyles) + html;
- return DOM.createTemplate(html);
- }));
+ inlineImports: function(cssText, baseUrl) {
+ return this._inlineImports(cssText, baseUrl, []);
},
- _loadText: function(url) {
- var response = MapWrapper.get(this._cache, url);
- if (isBlank(response)) {
- response = PromiseWrapper.catchError(this._xhr.get(url), (function(_) {
- return PromiseWrapper.reject(new BaseException(("Failed to fetch url \"" + url + "\"")), null);
- }));
- MapWrapper.set(this._cache, url, response);
+ _inlineImports: function(cssText, baseUrl, inlinedUrls) {
+ var $__0 = this;
+ var partIndex = 0;
+ var parts = StringWrapper.split(cssText, _importRe);
+ if (parts.length === 1) {
+ return cssText;
}
- return response;
+ var promises = [];
+ while (partIndex < parts.length - 1) {
+ var prefix = parts[partIndex];
+ var rule = parts[partIndex + 1];
+ var url = _extractUrl(rule);
+ if (isPresent(url)) {
+ url = this._urlResolver.resolve(baseUrl, url);
+ }
+ var mediaQuery = _extractMediaQuery(rule);
+ var promise = void 0;
+ if (isBlank(url)) {
+ promise = PromiseWrapper.resolve(("/* Invalid import rule: \"@import " + rule + ";\" */"));
+ } else if (ListWrapper.contains(inlinedUrls, url)) {
+ promise = PromiseWrapper.resolve(prefix);
+ } else {
+ inlinedUrls.push(url);
+ promise = PromiseWrapper.then(this._xhr.get(url), (function(rawCss) {
+ var inlinedCss = $__0._inlineImports(rawCss, url, inlinedUrls);
+ if (isPromise(inlinedCss)) {
+ return inlinedCss.then((function(css) {
+ return prefix + $__0._transformImportedCss(css, mediaQuery, url) + '\n';
+ }));
+ } else {
+ return prefix + $__0._transformImportedCss(inlinedCss, mediaQuery, url) + '\n';
+ }
+ }), (function(error) {
+ return ("/* failed to import " + url + " */\n");
+ }));
+ }
+ promises.push(promise);
+ partIndex += 2;
+ }
+ return PromiseWrapper.all(promises).then(function(cssParts) {
+ var cssText = cssParts.join('');
+ if (partIndex < parts.length) {
+ cssText += parts[partIndex];
+ }
+ return cssText;
+ });
+ },
+ _transformImportedCss: function(css, mediaQuery, url) {
+ css = this._styleUrlResolver.resolveUrls(css, url);
+ return _wrapInMediaRule(css, mediaQuery);
}
}, {}));
- $__export("TemplateLoader", TemplateLoader);
- $__export("TemplateLoader", TemplateLoader = __decorate([Injectable(), __metadata('design:paramtypes', [XHR, UrlResolver])], TemplateLoader));
+ $__export("StyleInliner", StyleInliner);
+ $__export("StyleInliner", StyleInliner = __decorate([Injectable(), __metadata('design:paramtypes', [XHR, StyleUrlResolver, UrlResolver])], StyleInliner));
+ _importRe = RegExpWrapper.create('@import\\s+([^;]+);');
+ _urlRe = RegExpWrapper.create('url\\(\\s*?[\'"]?([^\'")]+)[\'"]?|' + '[\'"]([^\'")]+)[\'"]');
+ _mediaQueryRe = RegExpWrapper.create('[\'"][^\'"]+[\'"]\\s*\\)?\\s*(.*)');
}
};
});
@@ -19997,7 +20173,7 @@ System.register("angular2/src/render/dom/shadow_dom/util", ["angular2/src/facade
var __moduleName = "angular2/src/render/dom/shadow_dom/util";
var isBlank,
isPresent,
- MapWrapper,
+ Map,
DOM,
ShadowCss,
_componentUIDs,
@@ -20005,16 +20181,16 @@ System.register("angular2/src/render/dom/shadow_dom/util", ["angular2/src/facade
_sharedStyleTexts,
_lastInsertedStyleEl;
function getComponentId(componentStringId) {
- var id = MapWrapper.get(_componentUIDs, componentStringId);
+ var id = _componentUIDs.get(componentStringId);
if (isBlank(id)) {
id = _nextComponentUID++;
- MapWrapper.set(_componentUIDs, componentStringId, id);
+ _componentUIDs.set(componentStringId, id);
}
return id;
}
function insertSharedStyleText(cssText, styleHost, styleEl) {
- if (!MapWrapper.contains(_sharedStyleTexts, cssText)) {
- MapWrapper.set(_sharedStyleTexts, cssText, true);
+ if (!_sharedStyleTexts.has(cssText)) {
+ _sharedStyleTexts.set(cssText, true);
insertStyleElement(styleHost, styleEl);
}
}
@@ -20043,9 +20219,9 @@ System.register("angular2/src/render/dom/shadow_dom/util", ["angular2/src/facade
return shadowCss.shimCssText(cssText, getContentAttribute(id), getHostAttribute(id));
}
function resetShadowDomCache() {
- MapWrapper.clear(_componentUIDs);
+ _componentUIDs.clear();
_nextComponentUID = 0;
- MapWrapper.clear(_sharedStyleTexts);
+ _sharedStyleTexts.clear();
_lastInsertedStyleEl = null;
}
$__export("getComponentId", getComponentId);
@@ -20060,16 +20236,16 @@ System.register("angular2/src/render/dom/shadow_dom/util", ["angular2/src/facade
isBlank = $__m.isBlank;
isPresent = $__m.isPresent;
}, function($__m) {
- MapWrapper = $__m.MapWrapper;
+ Map = $__m.Map;
}, function($__m) {
DOM = $__m.DOM;
}, function($__m) {
ShadowCss = $__m.ShadowCss;
}],
execute: function() {
- _componentUIDs = MapWrapper.create();
+ _componentUIDs = new Map();
_nextComponentUID = 0;
- _sharedStyleTexts = MapWrapper.create();
+ _sharedStyleTexts = new Map();
}
};
});
@@ -20132,7 +20308,7 @@ System.register("angular2/src/core/testability/testability", ["angular2/di", "an
__metadata,
Injectable,
DOM,
- MapWrapper,
+ Map,
ListWrapper,
BaseException,
getTestabilityModule,
@@ -20144,7 +20320,7 @@ System.register("angular2/src/core/testability/testability", ["angular2/di", "an
}, function($__m) {
DOM = $__m.DOM;
}, function($__m) {
- MapWrapper = $__m.MapWrapper;
+ Map = $__m.Map;
ListWrapper = $__m.ListWrapper;
}, function($__m) {
BaseException = $__m.BaseException;
@@ -20176,7 +20352,7 @@ System.register("angular2/src/core/testability/testability", ["angular2/di", "an
};
Testability = (($traceurRuntime.createClass)(function() {
this._pendingCount = 0;
- this._callbacks = ListWrapper.create();
+ this._callbacks = [];
}, {
increaseCount: function() {
var delta = arguments[0] !== (void 0) ? arguments[0] : 1;
@@ -20194,7 +20370,7 @@ System.register("angular2/src/core/testability/testability", ["angular2/di", "an
}
},
whenStable: function(callback) {
- ListWrapper.push(this._callbacks, callback);
+ this._callbacks.push(callback);
if (this._pendingCount === 0) {
this._runCallbacks();
}
@@ -20209,18 +20385,18 @@ System.register("angular2/src/core/testability/testability", ["angular2/di", "an
$__export("Testability", Testability);
$__export("Testability", Testability = __decorate([Injectable(), __metadata('design:paramtypes', [])], Testability));
TestabilityRegistry = (($traceurRuntime.createClass)(function() {
- this._applications = MapWrapper.create();
+ this._applications = new Map();
getTestabilityModule.GetTestability.addToWindow(this);
}, {
registerApplication: function(token, testability) {
- MapWrapper.set(this._applications, token, testability);
+ this._applications.set(token, testability);
},
findTestabilityInTree: function(elem) {
if (elem == null) {
return null;
}
- if (MapWrapper.contains(this._applications, elem)) {
- return MapWrapper.get(this._applications, elem);
+ if (this._applications.has(elem)) {
+ return this._applications.get(elem);
}
if (DOM.isShadowRoot(elem)) {
return this.findTestabilityInTree(DOM.getHost(elem));
@@ -20234,12 +20410,11 @@ System.register("angular2/src/core/testability/testability", ["angular2/di", "an
};
});
-System.register("angular2/src/render/dom/view/proto_view", ["angular2/src/facade/lang", "angular2/src/dom/dom_adapter", "angular2/src/facade/collection", "angular2/src/render/dom/util", "angular2/src/render/api"], function($__export) {
+System.register("angular2/src/render/dom/view/proto_view", ["angular2/src/facade/lang", "angular2/src/dom/dom_adapter", "angular2/src/render/dom/util", "angular2/src/render/api"], function($__export) {
"use strict";
var __moduleName = "angular2/src/render/dom/view/proto_view";
var isPresent,
DOM,
- ListWrapper,
NG_BINDING_CLASS,
RenderProtoViewRef,
DomProtoViewRef,
@@ -20253,8 +20428,6 @@ System.register("angular2/src/render/dom/view/proto_view", ["angular2/src/facade
isPresent = $__m.isPresent;
}, function($__m) {
DOM = $__m.DOM;
- }, function($__m) {
- ListWrapper = $__m.ListWrapper;
}, function($__m) {
NG_BINDING_CLASS = $__m.NG_BINDING_CLASS;
}, function($__m) {
@@ -20274,15 +20447,14 @@ System.register("angular2/src/render/dom/view/proto_view", ["angular2/src/facade
var $__2 = $__1,
elementBinders = $__2.elementBinders,
element = $__2.element,
- transitiveContentTagCount = $__2.transitiveContentTagCount;
+ transitiveContentTagCount = $__2.transitiveContentTagCount,
+ boundTextNodeCount = $__2.boundTextNodeCount;
this.element = element;
this.elementBinders = elementBinders;
this.transitiveContentTagCount = transitiveContentTagCount;
this.isTemplateElement = DOM.isTemplateElement(this.element);
this.rootBindingOffset = (isPresent(this.element) && DOM.hasClass(this.element, NG_BINDING_CLASS)) ? 1 : 0;
- this.boundTextNodeCount = ListWrapper.reduce(elementBinders, (function(prevCount, elementBinder) {
- return prevCount + elementBinder.textNodeIndices.length;
- }), 0);
+ this.boundTextNodeCount = boundTextNodeCount;
this.rootNodeCount = this.isTemplateElement ? DOM.childNodes(DOM.content(this.element)).length : 1;
}
return ($traceurRuntime.createClass)(DomProtoView, {}, {});
@@ -20298,8 +20470,12 @@ System.register("angular2/src/render/dom/view/proto_view_builder", ["angular2/sr
var isPresent,
isBlank,
BaseException,
+ StringWrapper,
ListWrapper,
MapWrapper,
+ Set,
+ SetWrapper,
+ StringMapWrapper,
DOM,
ASTWithSource,
AstTransformer,
@@ -20311,22 +20487,72 @@ System.register("angular2/src/render/dom/view/proto_view_builder", ["angular2/sr
resolveInternalDomProtoView,
ElementBinder,
Event,
- HostAction,
api,
NG_BINDING_CLASS,
EVENT_TARGET_SEPARATOR,
ProtoViewBuilder,
+ _ChildNodesInfo,
ElementBinderBuilder,
DirectiveBuilder,
- EventBuilder;
+ EventBuilder,
+ PROPERTY_PARTS_SEPARATOR,
+ ATTRIBUTE_PREFIX,
+ CLASS_PREFIX,
+ STYLE_PREFIX;
+ function buildElementPropertyBindings(protoElement, isNgComponent, bindingsInTemplate, directiveTempaltePropertyNames) {
+ var propertyBindings = [];
+ MapWrapper.forEach(bindingsInTemplate, (function(ast, propertyNameInTemplate) {
+ var propertyBinding = createElementPropertyBinding(ast, propertyNameInTemplate);
+ if (isValidElementPropertyBinding(protoElement, isNgComponent, propertyBinding)) {
+ propertyBindings.push(propertyBinding);
+ } else if (!SetWrapper.has(directiveTempaltePropertyNames, propertyNameInTemplate)) {
+ throw new BaseException(("Can't bind to '" + propertyNameInTemplate + "' since it isn't a know property of the '" + DOM.tagName(protoElement).toLowerCase() + "' element and there are no matching directives with a corresponding property"));
+ }
+ }));
+ return propertyBindings;
+ }
+ function isValidElementPropertyBinding(protoElement, isNgComponent, binding) {
+ if (binding.type === api.PropertyBindingType.PROPERTY) {
+ var tagName = DOM.tagName(protoElement);
+ var possibleCustomElement = tagName.indexOf('-') !== -1;
+ if (possibleCustomElement && !isNgComponent) {
+ return true;
+ } else {
+ return DOM.hasProperty(protoElement, binding.property);
+ }
+ }
+ return true;
+ }
+ function createElementPropertyBinding(ast, propertyNameInTemplate) {
+ var parts = StringWrapper.split(propertyNameInTemplate, PROPERTY_PARTS_SEPARATOR);
+ if (parts.length === 1) {
+ var propName = parts[0];
+ var mappedPropName = StringMapWrapper.get(DOM.attrToPropMap, propName);
+ propName = isPresent(mappedPropName) ? mappedPropName : propName;
+ return new api.ElementPropertyBinding(api.PropertyBindingType.PROPERTY, ast, propName);
+ } else if (parts[0] == ATTRIBUTE_PREFIX) {
+ return new api.ElementPropertyBinding(api.PropertyBindingType.ATTRIBUTE, ast, parts[1]);
+ } else if (parts[0] == CLASS_PREFIX) {
+ return new api.ElementPropertyBinding(api.PropertyBindingType.CLASS, ast, parts[1]);
+ } else if (parts[0] == STYLE_PREFIX) {
+ var unit = parts.length > 2 ? parts[2] : null;
+ return new api.ElementPropertyBinding(api.PropertyBindingType.STYLE, ast, parts[1], unit);
+ } else {
+ throw new BaseException(("Invalid property name " + propertyNameInTemplate));
+ }
+ }
return {
setters: [function($__m) {
isPresent = $__m.isPresent;
isBlank = $__m.isBlank;
BaseException = $__m.BaseException;
+ StringWrapper = $__m.StringWrapper;
}, function($__m) {
ListWrapper = $__m.ListWrapper;
MapWrapper = $__m.MapWrapper;
+ Set = $__m.Set;
+ SetWrapper = $__m.SetWrapper;
+ StringMapWrapper = $__m.StringMapWrapper;
}, function($__m) {
DOM = $__m.DOM;
}, function($__m) {
@@ -20342,7 +20568,6 @@ System.register("angular2/src/render/dom/view/proto_view_builder", ["angular2/sr
}, function($__m) {
ElementBinder = $__m.ElementBinder;
Event = $__m.Event;
- HostAction = $__m.HostAction;
}, function($__m) {
api = $__m;
}, function($__m) {
@@ -20354,47 +20579,41 @@ System.register("angular2/src/render/dom/view/proto_view_builder", ["angular2/sr
function ProtoViewBuilder(rootElement, type) {
this.rootElement = rootElement;
this.type = type;
- this.variableBindings = MapWrapper.create();
+ this.variableBindings = new Map();
this.elements = [];
}
return ($traceurRuntime.createClass)(ProtoViewBuilder, {
bindElement: function(element) {
var description = arguments[1] !== (void 0) ? arguments[1] : null;
var builder = new ElementBinderBuilder(this.elements.length, element, description);
- ListWrapper.push(this.elements, builder);
+ this.elements.push(builder);
DOM.addClass(element, NG_BINDING_CLASS);
return builder;
},
bindVariable: function(name, value) {
- MapWrapper.set(this.variableBindings, value, name);
+ this.variableBindings.set(value, name);
},
- build: function(setterFactory) {
+ build: function() {
var $__0 = this;
var renderElementBinders = [];
var apiElementBinders = [];
var transitiveContentTagCount = 0;
+ var boundTextNodeCount = 0;
ListWrapper.forEach(this.elements, (function(ebb) {
- var propertySetters = MapWrapper.create();
- var hostActions = MapWrapper.create();
+ var directiveTemplatePropertyNames = new Set();
var apiDirectiveBinders = ListWrapper.map(ebb.directives, (function(dbb) {
ebb.eventBuilder.merge(dbb.eventBuilder);
- MapWrapper.forEach(dbb.hostPropertyBindings, (function(_, hostPropertyName) {
- MapWrapper.set(propertySetters, hostPropertyName, setterFactory.createSetter(ebb.element, isPresent(ebb.componentId), hostPropertyName));
- }));
- ListWrapper.forEach(dbb.hostActions, (function(hostAction) {
- MapWrapper.set(hostActions, hostAction.actionExpression, hostAction.expression);
+ ListWrapper.forEach(dbb.templatePropertyNames, (function(name) {
+ return directiveTemplatePropertyNames.add(name);
}));
return new api.DirectiveBinder({
directiveIndex: dbb.directiveIndex,
propertyBindings: dbb.propertyBindings,
eventBindings: dbb.eventBindings,
- hostPropertyBindings: dbb.hostPropertyBindings
+ hostPropertyBindings: buildElementPropertyBindings(ebb.element, isPresent(ebb.componentId), dbb.hostPropertyBindings, directiveTemplatePropertyNames)
});
}));
- MapWrapper.forEach(ebb.propertyBindings, (function(_, propertyName) {
- MapWrapper.set(propertySetters, propertyName, setterFactory.createSetter(ebb.element, isPresent(ebb.componentId), propertyName));
- }));
- var nestedProtoView = isPresent(ebb.nestedProtoView) ? ebb.nestedProtoView.build(setterFactory) : null;
+ var nestedProtoView = isPresent(ebb.nestedProtoView) ? ebb.nestedProtoView.build() : null;
var nestedRenderProtoView = isPresent(nestedProtoView) ? resolveInternalDomProtoView(nestedProtoView.render) : null;
if (isPresent(nestedRenderProtoView)) {
transitiveContentTagCount += nestedRenderProtoView.transitiveContentTagCount;
@@ -20403,21 +20622,22 @@ System.register("angular2/src/render/dom/view/proto_view_builder", ["angular2/sr
transitiveContentTagCount++;
}
var parentIndex = isPresent(ebb.parent) ? ebb.parent.index : -1;
- ListWrapper.push(apiElementBinders, new api.ElementBinder({
+ apiElementBinders.push(new api.ElementBinder({
index: ebb.index,
parentIndex: parentIndex,
distanceToParent: ebb.distanceToParent,
directives: apiDirectiveBinders,
nestedProtoView: nestedProtoView,
- propertyBindings: ebb.propertyBindings,
+ propertyBindings: buildElementPropertyBindings(ebb.element, isPresent(ebb.componentId), ebb.propertyBindings, directiveTemplatePropertyNames),
variableBindings: ebb.variableBindings,
eventBindings: ebb.eventBindings,
textBindings: ebb.textBindings,
readAttributes: ebb.readAttributes
}));
- var elementIsEmpty = $__0._isEmptyElement(ebb.element);
- ListWrapper.push(renderElementBinders, new ElementBinder({
- textNodeIndices: ebb.textBindingIndices,
+ var childNodeInfo = $__0._analyzeChildNodes(ebb.element, ebb.textBindingNodes);
+ boundTextNodeCount += ebb.textBindingNodes.length;
+ renderElementBinders.push(new ElementBinder({
+ textNodeIndices: childNodeInfo.boundTextNodeIndices,
contentTagSelector: ebb.contentTagSelector,
parentIndex: parentIndex,
distanceToParent: ebb.distanceToParent,
@@ -20426,35 +20646,48 @@ System.register("angular2/src/render/dom/view/proto_view_builder", ["angular2/sr
eventLocals: new LiteralArray(ebb.eventBuilder.buildEventLocals()),
localEvents: ebb.eventBuilder.buildLocalEvents(),
globalEvents: ebb.eventBuilder.buildGlobalEvents(),
- hostActions: hostActions,
- propertySetters: propertySetters,
- elementIsEmpty: elementIsEmpty
+ elementIsEmpty: childNodeInfo.elementIsEmpty
}));
}));
return new api.ProtoViewDto({
render: new DomProtoViewRef(new DomProtoView({
element: this.rootElement,
elementBinders: renderElementBinders,
- transitiveContentTagCount: transitiveContentTagCount
+ transitiveContentTagCount: transitiveContentTagCount,
+ boundTextNodeCount: boundTextNodeCount
})),
type: this.type,
elementBinders: apiElementBinders,
variableBindings: this.variableBindings
});
},
- _isEmptyElement: function(el) {
- var childNodes = DOM.childNodes(el);
+ _analyzeChildNodes: function(parentElement, boundTextNodes) {
+ var childNodes = DOM.childNodes(DOM.templateAwareRoot(parentElement));
+ var boundTextNodeIndices = [];
+ var indexInBoundTextNodes = 0;
+ var elementIsEmpty = true;
for (var i = 0; i < childNodes.length; i++) {
var node = childNodes[i];
- if ((DOM.isTextNode(node) && DOM.getText(node).trim().length > 0) || (DOM.isElementNode(node))) {
- return false;
+ if (indexInBoundTextNodes < boundTextNodes.length && node === boundTextNodes[indexInBoundTextNodes]) {
+ boundTextNodeIndices.push(i);
+ indexInBoundTextNodes++;
+ elementIsEmpty = false;
+ } else if ((DOM.isTextNode(node) && DOM.getText(node).trim().length > 0) || (DOM.isElementNode(node))) {
+ elementIsEmpty = false;
}
}
- return true;
+ return new _ChildNodesInfo(boundTextNodeIndices, elementIsEmpty);
}
}, {});
}());
$__export("ProtoViewBuilder", ProtoViewBuilder);
+ _ChildNodesInfo = (function() {
+ function _ChildNodesInfo(boundTextNodeIndices, elementIsEmpty) {
+ this.boundTextNodeIndices = boundTextNodeIndices;
+ this.elementIsEmpty = elementIsEmpty;
+ }
+ return ($traceurRuntime.createClass)(_ChildNodesInfo, {}, {});
+ }());
ElementBinderBuilder = (function() {
function ElementBinderBuilder(index, element, description) {
this.index = index;
@@ -20463,14 +20696,15 @@ System.register("angular2/src/render/dom/view/proto_view_builder", ["angular2/sr
this.distanceToParent = 0;
this.directives = [];
this.nestedProtoView = null;
- this.propertyBindings = MapWrapper.create();
- this.variableBindings = MapWrapper.create();
+ this.propertyBindings = new Map();
+ this.variableBindings = new Map();
+ this.propertyBindingsToDirectives = new Set();
this.eventBindings = [];
this.eventBuilder = new EventBuilder();
- this.textBindingIndices = [];
+ this.textBindingNodes = [];
this.textBindings = [];
this.contentTagSelector = null;
- this.readAttributes = MapWrapper.create();
+ this.readAttributes = new Map();
this.componentId = null;
}
return ($traceurRuntime.createClass)(ElementBinderBuilder, {
@@ -20482,13 +20716,13 @@ System.register("angular2/src/render/dom/view/proto_view_builder", ["angular2/sr
return this;
},
readAttribute: function(attrName) {
- if (isBlank(MapWrapper.get(this.readAttributes, attrName))) {
- MapWrapper.set(this.readAttributes, attrName, DOM.getAttribute(this.element, attrName));
+ if (isBlank(this.readAttributes.get(attrName))) {
+ this.readAttributes.set(attrName, DOM.getAttribute(this.element, attrName));
}
},
bindDirective: function(directiveIndex) {
var directive = new DirectiveBuilder(directiveIndex);
- ListWrapper.push(this.directives, directive);
+ this.directives.push(directive);
return directive;
},
bindNestedProtoView: function(rootElement) {
@@ -20499,22 +20733,25 @@ System.register("angular2/src/render/dom/view/proto_view_builder", ["angular2/sr
return this.nestedProtoView;
},
bindProperty: function(name, expression) {
- MapWrapper.set(this.propertyBindings, name, expression);
+ this.propertyBindings.set(name, expression);
+ },
+ bindPropertyToDirective: function(name) {
+ this.propertyBindingsToDirectives.add(name);
},
bindVariable: function(name, value) {
if (isPresent(this.nestedProtoView)) {
this.nestedProtoView.bindVariable(name, value);
} else {
- MapWrapper.set(this.variableBindings, value, name);
+ this.variableBindings.set(value, name);
}
},
bindEvent: function(name, expression) {
var target = arguments[2] !== (void 0) ? arguments[2] : null;
- ListWrapper.push(this.eventBindings, this.eventBuilder.add(name, expression, target));
+ this.eventBindings.push(this.eventBuilder.add(name, expression, target));
},
- bindText: function(index, expression) {
- ListWrapper.push(this.textBindingIndices, index);
- ListWrapper.push(this.textBindings, expression);
+ bindText: function(textNode, expression) {
+ this.textBindingNodes.push(textNode);
+ this.textBindings.push(expression);
},
setContentTagSelector: function(value) {
this.contentTagSelector = value;
@@ -20528,25 +20765,25 @@ System.register("angular2/src/render/dom/view/proto_view_builder", ["angular2/sr
DirectiveBuilder = (function() {
function DirectiveBuilder(directiveIndex) {
this.directiveIndex = directiveIndex;
- this.propertyBindings = MapWrapper.create();
- this.hostPropertyBindings = MapWrapper.create();
- this.hostActions = [];
+ this.propertyBindings = new Map();
+ this.templatePropertyNames = [];
+ this.hostPropertyBindings = new Map();
this.eventBindings = [];
this.eventBuilder = new EventBuilder();
}
return ($traceurRuntime.createClass)(DirectiveBuilder, {
- bindProperty: function(name, expression) {
- MapWrapper.set(this.propertyBindings, name, expression);
+ bindProperty: function(name, expression, elProp) {
+ this.propertyBindings.set(name, expression);
+ if (isPresent(elProp)) {
+ this.templatePropertyNames.push(elProp);
+ }
},
bindHostProperty: function(name, expression) {
- MapWrapper.set(this.hostPropertyBindings, name, expression);
- },
- bindHostAction: function(actionName, actionExpression, expression) {
- ListWrapper.push(this.hostActions, new HostAction(actionName, actionExpression, expression));
+ this.hostPropertyBindings.set(name, expression);
},
bindEvent: function(name, expression) {
var target = arguments[2] !== (void 0) ? arguments[2] : null;
- ListWrapper.push(this.eventBindings, this.eventBuilder.add(name, expression, target));
+ this.eventBindings.push(this.eventBuilder.add(name, expression, target));
}
}, {});
}());
@@ -20566,9 +20803,9 @@ System.register("angular2/src/render/dom/view/proto_view_builder", ["angular2/sr
var result = new api.EventBinding(fullName, new ASTWithSource(adjustedAst, source.source, source.location));
var event = new Event(name, target, fullName);
if (isBlank(target)) {
- ListWrapper.push(this.localEvents, event);
+ this.localEvents.push(event);
} else {
- ListWrapper.push(this.globalEvents, event);
+ this.globalEvents.push(event);
}
return result;
},
@@ -20583,7 +20820,7 @@ System.register("angular2/src/render/dom/view/proto_view_builder", ["angular2/sr
current = am.receiver;
}
if (isEventAccess) {
- ListWrapper.push(this.locals, ast);
+ this.locals.push(ast);
var index = this.locals.length - 1;
return new AccessMember(this._implicitReceiver, ("" + index), (function(arr) {
return arr[index];
@@ -20607,19 +20844,23 @@ System.register("angular2/src/render/dom/view/proto_view_builder", ["angular2/sr
ListWrapper.concat(this.locals, eventBuilder.locals);
},
_merge: function(host, tobeAdded) {
- var names = ListWrapper.create();
+ var names = [];
for (var i = 0; i < host.length; i++) {
- ListWrapper.push(names, host[i].fullName);
+ names.push(host[i].fullName);
}
for (var j = 0; j < tobeAdded.length; j++) {
if (!ListWrapper.contains(names, tobeAdded[j].fullName)) {
- ListWrapper.push(host, tobeAdded[j]);
+ host.push(tobeAdded[j]);
}
}
}
}, {}, $__super);
}(AstTransformer));
$__export("EventBuilder", EventBuilder);
+ PROPERTY_PARTS_SEPARATOR = new RegExp('\\.');
+ ATTRIBUTE_PREFIX = 'attr';
+ CLASS_PREFIX = 'class';
+ STYLE_PREFIX = 'style';
}
};
});
@@ -20709,7 +20950,7 @@ System.register("angular2/src/render/dom/compiler/directive_parser", ["angular2/
componentDirective = directive;
elementBinder.setComponentId(directive.id);
} else {
- ListWrapper.push(foundDirectiveIndices, directiveIndex);
+ foundDirectiveIndices.push(directiveIndex);
}
}));
ListWrapper.forEach(foundDirectiveIndices, (function(directiveIndex) {
@@ -20726,11 +20967,6 @@ System.register("angular2/src/render/dom/compiler/directive_parser", ["angular2/
$__0._bindDirectiveEvent(eventName, action, current, directiveBinderBuilder);
}));
}
- if (isPresent(dirMetadata.hostActions)) {
- MapWrapper.forEach(dirMetadata.hostActions, (function(action, actionName) {
- $__0._bindHostAction(actionName, action, current, directiveBinderBuilder);
- }));
- }
if (isPresent(dirMetadata.hostProperties)) {
MapWrapper.forEach(dirMetadata.hostProperties, (function(expression, hostPropertyName) {
$__0._bindHostProperty(hostPropertyName, expression, current, directiveBinderBuilder);
@@ -20762,16 +20998,16 @@ System.register("angular2/src/render/dom/compiler/directive_parser", ["angular2/
elProp = bindConfig;
pipes = [];
}
- var bindingAst = MapWrapper.get(compileElement.bindElement().propertyBindings, dashCaseToCamelCase(elProp));
+ elProp = dashCaseToCamelCase(elProp);
+ var bindingAst = compileElement.bindElement().propertyBindings.get(elProp);
if (isBlank(bindingAst)) {
- var attributeValue = MapWrapper.get(compileElement.attrs(), camelCaseToDashCase(elProp));
+ var attributeValue = compileElement.attrs().get(camelCaseToDashCase(elProp));
if (isPresent(attributeValue)) {
bindingAst = this._parser.wrapLiteralPrimitive(attributeValue, compileElement.elementDescription);
}
}
if (isPresent(bindingAst)) {
- var fullExpAstWithBindPipes = this._parser.addPipes(bindingAst, pipes);
- directiveBinderBuilder.bindProperty(dirProperty, fullExpAstWithBindPipes);
+ directiveBinderBuilder.bindProperty(dirProperty, bindingAst, elProp);
}
},
_bindDirectiveEvent: function(eventName, action, compileElement, directiveBinderBuilder) {
@@ -20783,12 +21019,8 @@ System.register("angular2/src/render/dom/compiler/directive_parser", ["angular2/
directiveBinderBuilder.bindEvent(eventName, ast);
}
},
- _bindHostAction: function(actionName, actionExpression, compileElement, directiveBinderBuilder) {
- var ast = this._parser.parseAction(actionExpression, compileElement.elementDescription);
- directiveBinderBuilder.bindHostAction(actionName, actionExpression, ast);
- },
_bindHostProperty: function(hostPropertyName, expression, compileElement, directiveBinderBuilder) {
- var ast = this._parser.parseBinding(expression, ("hostProperties of " + compileElement.elementDescription));
+ var ast = this._parser.parseSimpleBinding(expression, ("hostProperties of " + compileElement.elementDescription));
directiveBinderBuilder.bindHostProperty(hostPropertyName, ast);
},
_addHostAttribute: function(attrName, attrValue, compileElement) {
@@ -21154,7 +21386,7 @@ System.register("angular2/src/forms/model", ["angular2/src/facade/lang", "angula
return this.controls[index];
},
push: function(control) {
- ListWrapper.push(this.controls, control);
+ this.controls.push(control);
control.setParent(this);
this.updateValueAndValidity();
},
@@ -21188,7 +21420,7 @@ System.register("angular2/src/forms/model", ["angular2/src/facade/lang", "angula
};
});
-System.register("angular2/src/forms/directives/ng_control_name", ["angular2/src/facade/lang", "angular2/src/facade/async", "angular2/src/facade/collection", "angular2/angular2", "angular2/di", "angular2/src/forms/directives/control_container", "angular2/src/forms/directives/ng_control", "angular2/src/forms/directives/shared"], function($__export) {
+System.register("angular2/src/forms/directives/ng_control_name", ["angular2/src/facade/lang", "angular2/src/facade/async", "angular2/src/facade/collection", "angular2/angular2", "angular2/di", "angular2/src/forms/directives/control_container", "angular2/src/forms/directives/ng_control", "angular2/src/forms/directives/validators", "angular2/src/forms/directives/shared"], function($__export) {
"use strict";
var __moduleName = "angular2/src/forms/directives/ng_control_name";
var __decorate,
@@ -21202,11 +21434,15 @@ System.register("angular2/src/forms/directives/ng_control_name", ["angular2/src/
Ancestor,
onDestroy,
onChange,
+ Query,
+ QueryList,
forwardRef,
Binding,
ControlContainer,
NgControl,
+ NgValidator,
controlPath,
+ composeNgValidator,
controlNameBinding,
NgControlName;
return {
@@ -21222,6 +21458,8 @@ System.register("angular2/src/forms/directives/ng_control_name", ["angular2/src/
Ancestor = $__m.Ancestor;
onDestroy = $__m.onDestroy;
onChange = $__m.onChange;
+ Query = $__m.Query;
+ QueryList = $__m.QueryList;
}, function($__m) {
forwardRef = $__m.forwardRef;
Binding = $__m.Binding;
@@ -21229,8 +21467,11 @@ System.register("angular2/src/forms/directives/ng_control_name", ["angular2/src/
ControlContainer = $__m.ControlContainer;
}, function($__m) {
NgControl = $__m.NgControl;
+ }, function($__m) {
+ NgValidator = $__m.NgValidator;
}, function($__m) {
controlPath = $__m.controlPath;
+ composeNgValidator = $__m.composeNgValidator;
}],
execute: function() {
__decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
@@ -21264,11 +21505,12 @@ System.register("angular2/src/forms/directives/ng_control_name", ["angular2/src/
return NgControlName;
}))}));
NgControlName = (function($__super) {
- function $__0(_parent) {
+ function $__0(parent, ngValidators) {
$traceurRuntime.superConstructor($__0).call(this);
- this._parent = _parent;
- this.ngModel = new EventEmitter();
+ this.update = new EventEmitter();
this._added = false;
+ this._parent = parent;
+ this.ngValidators = ngValidators;
}
return ($traceurRuntime.createClass)($__0, {
onChange: function(c) {
@@ -21284,7 +21526,7 @@ System.register("angular2/src/forms/directives/ng_control_name", ["angular2/src/
this.formDirective.removeControl(this);
},
viewToModelUpdate: function(newValue) {
- ObservableWrapper.callNext(this.ngModel, newValue);
+ ObservableWrapper.callNext(this.update, newValue);
},
get path() {
return controlPath(this.name, this._parent);
@@ -21294,6 +21536,9 @@ System.register("angular2/src/forms/directives/ng_control_name", ["angular2/src/
},
get control() {
return this.formDirective.getControl(this);
+ },
+ get validator() {
+ return composeNgValidator(this.ngValidators);
}
}, {}, $__super);
}(NgControl));
@@ -21301,11 +21546,11 @@ System.register("angular2/src/forms/directives/ng_control_name", ["angular2/src/
$__export("NgControlName", NgControlName = __decorate([Directive({
selector: '[ng-control]',
hostInjector: [controlNameBinding],
- properties: ['name: ng-control', 'model: ng-model'],
- events: ['ngModel'],
+ properties: ['name: ngControl', 'model: ngModel'],
+ events: ['update: ngModel'],
lifecycle: [onDestroy, onChange],
exportAs: 'form'
- }), __param(0, Ancestor()), __metadata('design:paramtypes', [ControlContainer])], NgControlName));
+ }), __param(0, Ancestor()), __param(1, Query(NgValidator)), __metadata('design:paramtypes', [ControlContainer, QueryList])], NgControlName));
}
};
});
@@ -21523,8 +21768,8 @@ System.register("angular2/src/change_detection/dynamic_change_detector", ["angul
}],
execute: function() {
DynamicChangeDetector = (function($__super) {
- function DynamicChangeDetector(changeControlStrategy, dispatcher, pipeRegistry, protos, directiveRecords) {
- $traceurRuntime.superConstructor(DynamicChangeDetector).call(this);
+ function DynamicChangeDetector(id, changeControlStrategy, dispatcher, pipeRegistry, protos, directiveRecords) {
+ $traceurRuntime.superConstructor(DynamicChangeDetector).call(this, id);
this.changeControlStrategy = changeControlStrategy;
this.dispatcher = dispatcher;
this.pipeRegistry = pipeRegistry;
@@ -21743,8 +21988,7 @@ System.register("angular2/src/change_detection/dynamic_change_detector", ["angul
if (isPresent(storedPipe)) {
storedPipe.onDestroy();
}
- var cdr = proto.mode === RecordType.BINDING_PIPE ? this.ref : null;
- var pipe = this.pipeRegistry.get(proto.name, context, cdr);
+ var pipe = this.pipeRegistry.get(proto.name, context, this.ref);
this._writePipe(proto, pipe);
return pipe;
},
@@ -21807,9 +22051,7 @@ System.register("angular2/src/change_detection/pipes/observable_pipe", ["angular
isBlank,
isPresent,
CONST,
- Pipe,
WrappedValue,
- PipeFactory,
ObservablePipe,
ObservablePipeFactory;
return {
@@ -21820,9 +22062,7 @@ System.register("angular2/src/change_detection/pipes/observable_pipe", ["angular
isPresent = $__m.isPresent;
CONST = $__m.CONST;
}, function($__m) {
- Pipe = $__m.Pipe;
WrappedValue = $__m.WrappedValue;
- PipeFactory = $__m.PipeFactory;
}],
execute: function() {
__decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
@@ -21847,9 +22087,8 @@ System.register("angular2/src/change_detection/pipes/observable_pipe", ["angular
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
return Reflect.metadata(k, v);
};
- ObservablePipe = (function($__super) {
+ ObservablePipe = (function() {
function ObservablePipe(_ref) {
- $traceurRuntime.superConstructor(ObservablePipe).call(this);
this._ref = _ref;
this._latestValue = null;
this._latestReturnedValue = null;
@@ -21901,22 +22140,17 @@ System.register("angular2/src/change_detection/pipes/observable_pipe", ["angular
this._latestValue = value;
this._ref.requestCheck();
}
- }, {}, $__super);
- }(Pipe));
+ }, {});
+ }());
$__export("ObservablePipe", ObservablePipe);
- ObservablePipeFactory = (function($__super) {
- function $__1() {
- $traceurRuntime.superConstructor($__1).call(this);
+ ObservablePipeFactory = (($traceurRuntime.createClass)(function() {}, {
+ supports: function(obs) {
+ return ObservableWrapper.isObservable(obs);
+ },
+ create: function(cdRef) {
+ return new ObservablePipe(cdRef);
}
- return ($traceurRuntime.createClass)($__1, {
- supports: function(obs) {
- return ObservableWrapper.isObservable(obs);
- },
- create: function(cdRef) {
- return new ObservablePipe(cdRef);
- }
- }, {}, $__super);
- }(PipeFactory));
+ }, {}));
$__export("ObservablePipeFactory", ObservablePipeFactory);
$__export("ObservablePipeFactory", ObservablePipeFactory = __decorate([CONST(), __metadata('design:paramtypes', [])], ObservablePipeFactory));
}
@@ -21932,6 +22166,7 @@ System.register("angular2/src/di/binding", ["angular2/src/facade/lang", "angular
isBlank,
isPresent,
CONST,
+ CONST_EXPR,
BaseException,
stringify,
isArray,
@@ -22005,7 +22240,7 @@ System.register("angular2/src/di/binding", ["angular2/src/facade/lang", "angular
if (isPresent(paramAnnotation.token)) {
token = paramAnnotation.token;
}
- ListWrapper.push(depProps, paramAnnotation);
+ depProps.push(paramAnnotation);
}
}
token = resolveForwardRef(token);
@@ -22025,6 +22260,7 @@ System.register("angular2/src/di/binding", ["angular2/src/facade/lang", "angular
isBlank = $__m.isBlank;
isPresent = $__m.isPresent;
CONST = $__m.CONST;
+ CONST_EXPR = $__m.CONST_EXPR;
BaseException = $__m.BaseException;
stringify = $__m.stringify;
isArray = $__m.isArray;
@@ -22081,7 +22317,7 @@ System.register("angular2/src/di/binding", ["angular2/src/facade/lang", "angular
}});
}());
$__export("Dependency", Dependency);
- _EMPTY_LIST = [];
+ _EMPTY_LIST = CONST_EXPR([]);
Binding = (($traceurRuntime.createClass)(function(token, $__3) {
var $__4 = $__3,
toClass = $__4.toClass,
@@ -22174,7 +22410,7 @@ System.register("angular2/src/di/binding", ["angular2/src/facade/lang", "angular
};
});
-System.register("angular2/src/core/compiler/view_manager_utils", ["angular2/di", "angular2/src/facade/collection", "angular2/src/core/compiler/element_injector", "angular2/src/facade/lang", "angular2/src/core/compiler/view", "angular2/src/core/compiler/directive_resolver"], function($__export) {
+System.register("angular2/src/core/compiler/view_manager_utils", ["angular2/di", "angular2/src/facade/collection", "angular2/src/core/compiler/element_injector", "angular2/src/facade/lang", "angular2/src/core/compiler/view"], function($__export) {
"use strict";
var __moduleName = "angular2/src/core/compiler/view_manager_utils";
var __decorate,
@@ -22185,9 +22421,7 @@ System.register("angular2/src/core/compiler/view_manager_utils", ["angular2/di",
eli,
isPresent,
isBlank,
- BaseException,
viewModule,
- DirectiveResolver,
AppViewManagerUtils;
return {
setters: [function($__m) {
@@ -22200,11 +22434,8 @@ System.register("angular2/src/core/compiler/view_manager_utils", ["angular2/di",
}, function($__m) {
isPresent = $__m.isPresent;
isBlank = $__m.isBlank;
- BaseException = $__m.BaseException;
}, function($__m) {
viewModule = $__m;
- }, function($__m) {
- DirectiveResolver = $__m.DirectiveResolver;
}],
execute: function() {
__decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
@@ -22229,17 +22460,10 @@ System.register("angular2/src/core/compiler/view_manager_utils", ["angular2/di",
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
return Reflect.metadata(k, v);
};
- AppViewManagerUtils = (($traceurRuntime.createClass)(function(_directiveResolver) {
- this._directiveResolver = _directiveResolver;
- }, {
+ AppViewManagerUtils = (($traceurRuntime.createClass)(function() {}, {
getComponentInstance: function(parentView, boundElementIndex) {
- var binder = parentView.proto.elementBinders[boundElementIndex];
var eli = parentView.elementInjectors[boundElementIndex];
- if (binder.hasDynamicComponent()) {
- return eli.getDynamicallyLoadedComponent();
- } else {
- return eli.getComponent();
- }
+ return eli.getComponent();
},
createView: function(protoView, renderView, viewManager, renderer) {
var view = new viewModule.AppView(renderer, protoView, protoView.protoLocals);
@@ -22260,7 +22484,7 @@ System.register("angular2/src/core/compiler/view_manager_utils", ["angular2/di",
elementInjector = protoElementInjector.instantiate(parentElementInjector);
} else {
elementInjector = protoElementInjector.instantiate(null);
- ListWrapper.push(rootElementInjectors, elementInjector);
+ rootElementInjectors.push(elementInjector);
}
}
elementInjectors[binderIdx] = elementInjector;
@@ -22293,37 +22517,6 @@ System.register("angular2/src/core/compiler/view_manager_utils", ["angular2/di",
var injector = arguments[1] !== (void 0) ? arguments[1] : null;
this._hydrateView(hostView, injector, null, new Object(), null);
},
- attachAndHydrateFreeHostView: function(parentComponentHostView, parentComponentBoundElementIndex, hostView) {
- var injector = arguments[3] !== (void 0) ? arguments[3] : null;
- var hostElementInjector = parentComponentHostView.elementInjectors[parentComponentBoundElementIndex];
- var parentView = parentComponentHostView.componentChildViews[parentComponentBoundElementIndex];
- parentView.changeDetector.addChild(hostView.changeDetector);
- ListWrapper.push(parentView.freeHostViews, hostView);
- this._hydrateView(hostView, injector, hostElementInjector, new Object(), null);
- },
- detachFreeHostView: function(parentView, hostView) {
- parentView.changeDetector.removeChild(hostView.changeDetector);
- ListWrapper.remove(parentView.freeHostViews, hostView);
- },
- attachAndHydrateFreeEmbeddedView: function(parentView, boundElementIndex, view) {
- var injector = arguments[3] !== (void 0) ? arguments[3] : null;
- parentView.changeDetector.addChild(view.changeDetector);
- var viewContainer = this._getOrCreateViewContainer(parentView, boundElementIndex);
- ListWrapper.push(viewContainer.freeViews, view);
- var elementInjector = parentView.elementInjectors[boundElementIndex];
- for (var i = view.rootElementInjectors.length - 1; i >= 0; i--) {
- view.rootElementInjectors[i].link(elementInjector);
- }
- this._hydrateView(view, injector, elementInjector, parentView.context, parentView.locals);
- },
- detachFreeEmbeddedView: function(parentView, boundElementIndex, view) {
- var viewContainer = parentView.viewContainers[boundElementIndex];
- view.changeDetector.remove();
- ListWrapper.remove(viewContainer.freeViews, view);
- for (var i = 0; i < view.rootElementInjectors.length; ++i) {
- view.rootElementInjectors[i].unlink();
- }
- },
attachViewInContainer: function(parentView, boundElementIndex, contextView, contextBoundElementIndex, atIndex, view) {
if (isBlank(contextView)) {
contextView = parentView;
@@ -22340,7 +22533,11 @@ System.register("angular2/src/core/compiler/view_manager_utils", ["angular2/di",
}
var elementInjector = contextView.elementInjectors[contextBoundElementIndex];
for (var i = view.rootElementInjectors.length - 1; i >= 0; i--) {
- view.rootElementInjectors[i].linkAfter(elementInjector, sibling);
+ if (isPresent(elementInjector.parent)) {
+ view.rootElementInjectors[i].linkAfter(elementInjector.parent, sibling);
+ } else {
+ contextView.rootElementInjectors.push(view.rootElementInjectors[i]);
+ }
}
},
detachViewInContainer: function(parentView, boundElementIndex, atIndex) {
@@ -22349,7 +22546,13 @@ System.register("angular2/src/core/compiler/view_manager_utils", ["angular2/di",
view.changeDetector.remove();
ListWrapper.removeAt(viewContainer.views, atIndex);
for (var i = 0; i < view.rootElementInjectors.length; ++i) {
- view.rootElementInjectors[i].unlink();
+ var inj = view.rootElementInjectors[i];
+ if (isPresent(inj.parent)) {
+ inj.unlink();
+ } else {
+ var removeIdx = ListWrapper.indexOf(parentView.rootElementInjectors, inj);
+ ListWrapper.removeAt(parentView.rootElementInjectors, removeIdx);
+ }
}
},
hydrateViewInContainer: function(parentView, boundElementIndex, contextView, contextBoundElementIndex, atIndex, injector) {
@@ -22359,21 +22562,11 @@ System.register("angular2/src/core/compiler/view_manager_utils", ["angular2/di",
}
var viewContainer = parentView.viewContainers[boundElementIndex];
var view = viewContainer.views[atIndex];
- var elementInjector = contextView.elementInjectors[contextBoundElementIndex].getHost();
- this._hydrateView(view, injector, elementInjector, contextView.context, contextView.locals);
- },
- hydrateDynamicComponentInElementInjector: function(hostView, boundElementIndex, componentBinding) {
- var injector = arguments[3] !== (void 0) ? arguments[3] : null;
- var elementInjector = hostView.elementInjectors[boundElementIndex];
- if (isPresent(elementInjector.getDynamicallyLoadedComponent())) {
- throw new BaseException(("There already is a dynamic component loaded at element " + boundElementIndex));
+ var elementInjector = contextView.elementInjectors[contextBoundElementIndex];
+ if (isBlank(elementInjector.getHost()) && isBlank(injector)) {
+ injector = elementInjector.getShadowDomAppInjector();
}
- if (isBlank(injector)) {
- injector = elementInjector.getLightDomAppInjector();
- }
- var annotation = this._directiveResolver.resolve(componentBinding.token);
- var componentDirective = eli.DirectiveBinding.createFromBinding(componentBinding, annotation);
- elementInjector.dynamicallyCreateComponent(componentDirective, injector);
+ this._hydrateView(view, injector, elementInjector.getHost(), contextView.context, contextView.locals);
},
_hydrateView: function(view, appInjector, hostElementInjector, context, parentLocals) {
if (isBlank(appInjector)) {
@@ -22386,25 +22579,27 @@ System.register("angular2/src/core/compiler/view_manager_utils", ["angular2/di",
view.locals.parent = parentLocals;
var binders = view.proto.elementBinders;
for (var i = 0; i < binders.length; ++i) {
- var binder = binders[i];
var elementInjector = view.elementInjectors[i];
if (isPresent(elementInjector)) {
elementInjector.hydrate(appInjector, hostElementInjector, view.preBuiltObjects[i]);
+ this._populateViewLocals(view, elementInjector);
this._setUpEventEmitters(view, elementInjector, i);
this._setUpHostActions(view, elementInjector, i);
- if (isPresent(binder.directiveVariableBindings)) {
- MapWrapper.forEach(binder.directiveVariableBindings, (function(directiveIndex, name) {
- if (isBlank(directiveIndex)) {
- view.locals.set(name, elementInjector.getElementRef().domElement);
- } else {
- view.locals.set(name, elementInjector.getDirectiveAtIndex(directiveIndex));
- }
- }));
- }
}
}
view.changeDetector.hydrate(view.context, view.locals, view);
},
+ _populateViewLocals: function(view, elementInjector) {
+ if (isPresent(elementInjector.getDirectiveVariableBindings())) {
+ MapWrapper.forEach(elementInjector.getDirectiveVariableBindings(), (function(directiveIndex, name) {
+ if (isBlank(directiveIndex)) {
+ view.locals.set(name, elementInjector.getElementRef().nativeElement);
+ } else {
+ view.locals.set(name, elementInjector.getDirectiveAtIndex(directiveIndex));
+ }
+ }));
+ }
+ },
_getOrCreateViewContainer: function(parentView, boundElementIndex) {
var viewContainer = parentView.viewContainers[boundElementIndex];
if (isBlank(viewContainer)) {
@@ -22451,7 +22646,171 @@ System.register("angular2/src/core/compiler/view_manager_utils", ["angular2/di",
}
}, {}));
$__export("AppViewManagerUtils", AppViewManagerUtils);
- $__export("AppViewManagerUtils", AppViewManagerUtils = __decorate([Injectable(), __metadata('design:paramtypes', [DirectiveResolver])], AppViewManagerUtils));
+ $__export("AppViewManagerUtils", AppViewManagerUtils = __decorate([Injectable(), __metadata('design:paramtypes', [])], AppViewManagerUtils));
+ }
+ };
+});
+
+System.register("angular2/src/render/dom/compiler/view_loader", ["angular2/di", "angular2/src/facade/lang", "angular2/src/facade/collection", "angular2/src/facade/async", "angular2/src/dom/dom_adapter", "angular2/src/render/xhr", "angular2/src/render/dom/compiler/style_inliner", "angular2/src/render/dom/compiler/style_url_resolver"], function($__export) {
+ "use strict";
+ var __moduleName = "angular2/src/render/dom/compiler/view_loader";
+ var __decorate,
+ __metadata,
+ Injectable,
+ isBlank,
+ isPresent,
+ BaseException,
+ isPromise,
+ Map,
+ ListWrapper,
+ PromiseWrapper,
+ DOM,
+ XHR,
+ StyleInliner,
+ StyleUrlResolver,
+ ViewLoader;
+ function _insertCssTexts(element, cssTexts) {
+ if (cssTexts.length == 0)
+ return ;
+ var insertBefore = DOM.firstChild(element);
+ for (var i = cssTexts.length - 1; i >= 0; i--) {
+ var styleEl = DOM.createStyleElement(cssTexts[i]);
+ if (isPresent(insertBefore)) {
+ DOM.insertBefore(insertBefore, styleEl);
+ } else {
+ DOM.appendChild(element, styleEl);
+ }
+ insertBefore = styleEl;
+ }
+ }
+ return {
+ setters: [function($__m) {
+ Injectable = $__m.Injectable;
+ }, function($__m) {
+ isBlank = $__m.isBlank;
+ isPresent = $__m.isPresent;
+ BaseException = $__m.BaseException;
+ isPromise = $__m.isPromise;
+ }, function($__m) {
+ Map = $__m.Map;
+ ListWrapper = $__m.ListWrapper;
+ }, function($__m) {
+ PromiseWrapper = $__m.PromiseWrapper;
+ }, function($__m) {
+ DOM = $__m.DOM;
+ }, function($__m) {
+ XHR = $__m.XHR;
+ }, function($__m) {
+ StyleInliner = $__m.StyleInliner;
+ }, function($__m) {
+ StyleUrlResolver = $__m.StyleUrlResolver;
+ }],
+ execute: function() {
+ __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
+ return Reflect.decorate(decorators, target, key, desc);
+ switch (arguments.length) {
+ case 2:
+ return decorators.reduceRight(function(o, d) {
+ return (d && d(o)) || o;
+ }, target);
+ case 3:
+ return decorators.reduceRight(function(o, d) {
+ return (d && d(target, key)), void 0;
+ }, void 0);
+ case 4:
+ return decorators.reduceRight(function(o, d) {
+ return (d && d(target, key, o)) || o;
+ }, desc);
+ }
+ };
+ __metadata = (this && this.__metadata) || function(k, v) {
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
+ return Reflect.metadata(k, v);
+ };
+ ViewLoader = (($traceurRuntime.createClass)(function(_xhr, _styleInliner, _styleUrlResolver) {
+ this._xhr = _xhr;
+ this._styleInliner = _styleInliner;
+ this._styleUrlResolver = _styleUrlResolver;
+ this._cache = new Map();
+ }, {
+ load: function(view) {
+ var $__0 = this;
+ var tplElAndStyles = [this._loadHtml(view)];
+ if (isPresent(view.styles)) {
+ view.styles.forEach((function(cssText) {
+ var textOrPromise = $__0._resolveAndInlineCssText(cssText, view.templateAbsUrl);
+ tplElAndStyles.push(textOrPromise);
+ }));
+ }
+ if (isPresent(view.styleAbsUrls)) {
+ view.styleAbsUrls.forEach((function(url) {
+ var promise = $__0._loadText(url).then((function(cssText) {
+ return $__0._resolveAndInlineCssText(cssText, view.templateAbsUrl);
+ }));
+ tplElAndStyles.push(promise);
+ }));
+ }
+ return PromiseWrapper.all(tplElAndStyles).then((function(res) {
+ var tplEl = res[0];
+ var cssTexts = ListWrapper.slice(res, 1);
+ _insertCssTexts(DOM.content(tplEl), cssTexts);
+ return tplEl;
+ }));
+ },
+ _loadText: function(url) {
+ var response = this._cache.get(url);
+ if (isBlank(response)) {
+ response = PromiseWrapper.catchError(this._xhr.get(url), (function(_) {
+ return PromiseWrapper.reject(new BaseException(("Failed to fetch url \"" + url + "\"")), null);
+ }));
+ this._cache.set(url, response);
+ }
+ return response;
+ },
+ _loadHtml: function(view) {
+ var $__0 = this;
+ var html;
+ if (isPresent(view.template)) {
+ html = PromiseWrapper.resolve(view.template);
+ } else if (isPresent(view.templateAbsUrl)) {
+ html = this._loadText(view.templateAbsUrl);
+ } else {
+ throw new BaseException('View should have either the templateUrl or template property set');
+ }
+ return html.then((function(html) {
+ var tplEl = DOM.createTemplate(html);
+ var styleEls = DOM.querySelectorAll(DOM.content(tplEl), 'STYLE');
+ var promises = [];
+ for (var i = 0; i < styleEls.length; i++) {
+ var promise = $__0._resolveAndInlineElement(styleEls[i], view.templateAbsUrl);
+ if (isPromise(promise)) {
+ promises.push(promise);
+ }
+ }
+ return promises.length > 0 ? PromiseWrapper.all(promises).then((function(_) {
+ return tplEl;
+ })) : tplEl;
+ }));
+ },
+ _resolveAndInlineElement: function(styleEl, baseUrl) {
+ var textOrPromise = this._resolveAndInlineCssText(DOM.getText(styleEl), baseUrl);
+ if (isPromise(textOrPromise)) {
+ return textOrPromise.then((function(css) {
+ DOM.setText(styleEl, css);
+ }));
+ } else {
+ DOM.setText(styleEl, textOrPromise);
+ return null;
+ }
+ },
+ _resolveAndInlineCssText: function(cssText, baseUrl) {
+ cssText = this._styleUrlResolver.resolveUrls(cssText, baseUrl);
+ return this._styleInliner.inlineImports(cssText, baseUrl);
+ }
+ }, {}));
+ $__export("ViewLoader", ViewLoader);
+ $__export("ViewLoader", ViewLoader = __decorate([Injectable(), __metadata('design:paramtypes', [XHR, StyleInliner, StyleUrlResolver])], ViewLoader));
}
};
});
@@ -22476,9 +22835,8 @@ System.register("angular2/src/render/dom/shadow_dom/emulated_unscoped_shadow_dom
}],
execute: function() {
EmulatedUnscopedShadowDomStrategy = (function($__super) {
- function EmulatedUnscopedShadowDomStrategy(styleUrlResolver, styleHost) {
+ function EmulatedUnscopedShadowDomStrategy(styleHost) {
$traceurRuntime.superConstructor(EmulatedUnscopedShadowDomStrategy).call(this);
- this.styleUrlResolver = styleUrlResolver;
this.styleHost = styleHost;
}
return ($traceurRuntime.createClass)(EmulatedUnscopedShadowDomStrategy, {
@@ -22493,11 +22851,7 @@ System.register("angular2/src/render/dom/shadow_dom/emulated_unscoped_shadow_dom
},
processStyleElement: function(hostComponentId, templateUrl, styleEl) {
var cssText = DOM.getText(styleEl);
- cssText = this.styleUrlResolver.resolveUrls(cssText, templateUrl);
- DOM.setText(styleEl, cssText);
- DOM.remove(styleEl);
insertSharedStyleText(cssText, this.styleHost, styleEl);
- return null;
}
}, {}, $__super);
}(ShadowDomStrategy));
@@ -22617,20 +22971,19 @@ System.register("angular2/src/render/dom/dom_renderer", ["angular2/di", "angular
}
return new DomViewRef(this._createView(hostProtoView, element));
},
- detachFreeView: function(viewRef) {
- var view = resolveInternalDomView(viewRef);
- this._removeViewNodes(view);
- },
createView: function(protoViewRef) {
var protoView = resolveInternalDomProtoView(protoViewRef);
return new DomViewRef(this._createView(protoView, null));
},
destroyView: function(view) {},
- attachComponentView: function(hostViewRef, elementIndex, componentViewRef) {
- var hostView = resolveInternalDomView(hostViewRef);
+ getNativeElementSync: function(location) {
+ return resolveInternalDomView(location.renderView).boundElements[location.boundElementIndex].element;
+ },
+ attachComponentView: function(location, componentViewRef) {
+ var hostView = resolveInternalDomView(location.renderView);
var componentView = resolveInternalDomView(componentViewRef);
- var element = hostView.boundElements[elementIndex].element;
- var lightDom = hostView.boundElements[elementIndex].lightDom;
+ var element = hostView.boundElements[location.boundElementIndex].element;
+ var lightDom = hostView.boundElements[location.boundElementIndex].lightDom;
if (isPresent(lightDom)) {
lightDom.attachShadowDomView(componentView);
}
@@ -22648,28 +23001,28 @@ System.register("angular2/src/render/dom/dom_renderer", ["angular2/di", "angular
getRootNodes: function(viewRef) {
return resolveInternalDomView(viewRef).rootNodes;
},
- detachComponentView: function(hostViewRef, boundElementIndex, componentViewRef) {
- var hostView = resolveInternalDomView(hostViewRef);
+ detachComponentView: function(location, componentViewRef) {
+ var hostView = resolveInternalDomView(location.renderView);
var componentView = resolveInternalDomView(componentViewRef);
this._removeViewNodes(componentView);
- var lightDom = hostView.boundElements[boundElementIndex].lightDom;
+ var lightDom = hostView.boundElements[location.boundElementIndex].lightDom;
if (isPresent(lightDom)) {
lightDom.detachShadowDomView();
}
componentView.hostLightDom = null;
componentView.shadowRoot = null;
},
- attachViewInContainer: function(parentViewRef, boundElementIndex, atIndex, viewRef) {
- var parentView = resolveInternalDomView(parentViewRef);
+ attachViewInContainer: function(location, atIndex, viewRef) {
+ var parentView = resolveInternalDomView(location.renderView);
var view = resolveInternalDomView(viewRef);
- var viewContainer = this._getOrCreateViewContainer(parentView, boundElementIndex);
+ var viewContainer = this._getOrCreateViewContainer(parentView, location.boundElementIndex);
ListWrapper.insert(viewContainer.views, atIndex, view);
view.hostLightDom = parentView.hostLightDom;
- var directParentLightDom = this._directParentLightDom(parentView, boundElementIndex);
+ var directParentLightDom = this._directParentLightDom(parentView, location.boundElementIndex);
if (isBlank(directParentLightDom)) {
var siblingToInsertAfter;
if (atIndex == 0) {
- siblingToInsertAfter = parentView.boundElements[boundElementIndex].element;
+ siblingToInsertAfter = parentView.boundElements[location.boundElementIndex].element;
} else {
siblingToInsertAfter = ListWrapper.last(viewContainer.views[atIndex - 1].rootNodes);
}
@@ -22681,13 +23034,13 @@ System.register("angular2/src/render/dom/dom_renderer", ["angular2/di", "angular
parentView.hostLightDom.redistribute();
}
},
- detachViewInContainer: function(parentViewRef, boundElementIndex, atIndex, viewRef) {
- var parentView = resolveInternalDomView(parentViewRef);
+ detachViewInContainer: function(location, atIndex, viewRef) {
+ var parentView = resolveInternalDomView(location.renderView);
var view = resolveInternalDomView(viewRef);
- var viewContainer = parentView.boundElements[boundElementIndex].viewContainer;
+ var viewContainer = parentView.boundElements[location.boundElementIndex].viewContainer;
var detachedView = viewContainer.views[atIndex];
ListWrapper.removeAt(viewContainer.views, atIndex);
- var directParentLightDom = this._directParentLightDom(parentView, boundElementIndex);
+ var directParentLightDom = this._directParentLightDom(parentView, location.boundElementIndex);
if (isBlank(directParentLightDom)) {
this._removeViewNodes(detachedView);
} else {
@@ -22709,7 +23062,7 @@ System.register("angular2/src/render/dom/dom_renderer", ["angular2/di", "angular
lightDom.redistribute();
}
}
- view.eventHandlerRemovers = ListWrapper.create();
+ view.eventHandlerRemovers = [];
var binders = view.proto.elementBinders;
for (var binderIdx = 0; binderIdx < binders.length; binderIdx++) {
var binder = binders[binderIdx];
@@ -22717,7 +23070,7 @@ System.register("angular2/src/render/dom/dom_renderer", ["angular2/di", "angular
for (var i = 0; i < binder.globalEvents.length; i++) {
var globalEvent = binder.globalEvents[i];
var remover = this._createGlobalEventListener(view, binderIdx, globalEvent.name, globalEvent.target, globalEvent.fullName);
- ListWrapper.push(view.eventHandlerRemovers, remover);
+ view.eventHandlerRemovers.push(remover);
}
}
}
@@ -22733,13 +23086,25 @@ System.register("angular2/src/render/dom/dom_renderer", ["angular2/di", "angular
view.eventHandlerRemovers = null;
view.hydrated = false;
},
- setElementProperty: function(viewRef, elementIndex, propertyName, propertyValue) {
- var view = resolveInternalDomView(viewRef);
- view.setElementProperty(elementIndex, propertyName, propertyValue);
+ setElementProperty: function(location, propertyName, propertyValue) {
+ var view = resolveInternalDomView(location.renderView);
+ view.setElementProperty(location.boundElementIndex, propertyName, propertyValue);
},
- callAction: function(viewRef, elementIndex, actionExpression, actionArgs) {
- var view = resolveInternalDomView(viewRef);
- view.callAction(elementIndex, actionExpression, actionArgs);
+ setElementAttribute: function(location, attributeName, attributeValue) {
+ var view = resolveInternalDomView(location.renderView);
+ view.setElementAttribute(location.boundElementIndex, attributeName, attributeValue);
+ },
+ setElementClass: function(location, className, isAdd) {
+ var view = resolveInternalDomView(location.renderView);
+ view.setElementClass(location.boundElementIndex, className, isAdd);
+ },
+ setElementStyle: function(location, styleName, styleValue) {
+ var view = resolveInternalDomView(location.renderView);
+ view.setElementStyle(location.boundElementIndex, styleName, styleValue);
+ },
+ invokeElementMethod: function(location, methodName, args) {
+ var view = resolveInternalDomView(location.renderView);
+ view.invokeElementMethod(location.boundElementIndex, methodName, args);
},
setText: function(viewRef, textNodeIndex, text) {
var view = resolveInternalDomView(viewRef);
@@ -22868,12 +23233,11 @@ System.register("angular2/src/render/dom/dom_renderer", ["angular2/di", "angular
};
});
-System.register("angular2/src/render/dom/compiler/compile_pipeline", ["angular2/src/facade/lang", "angular2/src/facade/collection", "angular2/src/dom/dom_adapter", "angular2/src/render/dom/compiler/compile_element", "angular2/src/render/dom/compiler/compile_control", "angular2/src/render/dom/view/proto_view_builder", "angular2/src/render/api"], function($__export) {
+System.register("angular2/src/render/dom/compiler/compile_pipeline", ["angular2/src/facade/lang", "angular2/src/dom/dom_adapter", "angular2/src/render/dom/compiler/compile_element", "angular2/src/render/dom/compiler/compile_control", "angular2/src/render/dom/view/proto_view_builder", "angular2/src/render/api"], function($__export) {
"use strict";
var __moduleName = "angular2/src/render/dom/compiler/compile_pipeline";
var isPresent,
isBlank,
- ListWrapper,
DOM,
CompileElement,
CompileControl,
@@ -22884,8 +23248,6 @@ System.register("angular2/src/render/dom/compiler/compile_pipeline", ["angular2/
setters: [function($__m) {
isPresent = $__m.isPresent;
isBlank = $__m.isBlank;
- }, function($__m) {
- ListWrapper = $__m.ListWrapper;
}, function($__m) {
DOM = $__m.DOM;
}, function($__m) {
@@ -22909,7 +23271,7 @@ System.register("angular2/src/render/dom/compiler/compile_pipeline", ["angular2/
if (isBlank(protoViewType)) {
protoViewType = ViewType.COMPONENT;
}
- var results = ListWrapper.create();
+ var results = [];
var rootCompileElement = new CompileElement(rootElement, compilationCtxtDescription);
rootCompileElement.inheritedProtoView = new ProtoViewBuilder(rootElement, protoViewType);
rootCompileElement.isViewRoot = true;
@@ -22971,7 +23333,7 @@ System.register("angular2/src/render/dom/compiler/compile_step_factory", ["angul
execute: function() {
CompileStepFactory = (function() {
function CompileStepFactory() {}
- return ($traceurRuntime.createClass)(CompileStepFactory, {createSteps: function(template, subTaskPromises) {
+ return ($traceurRuntime.createClass)(CompileStepFactory, {createSteps: function(view) {
return null;
}}, {});
}());
@@ -22982,8 +23344,8 @@ System.register("angular2/src/render/dom/compiler/compile_step_factory", ["angul
this._parser = _parser;
this._shadowDomStrategy = _shadowDomStrategy;
}
- return ($traceurRuntime.createClass)(DefaultStepFactory, {createSteps: function(template, subTaskPromises) {
- return [new ViewSplitter(this._parser), new PropertyBindingParser(this._parser), new DirectiveParser(this._parser, template.directives), new TextInterpolationParser(this._parser), new ShadowDomCompileStep(this._shadowDomStrategy, template, subTaskPromises)];
+ return ($traceurRuntime.createClass)(DefaultStepFactory, {createSteps: function(view) {
+ return [new ViewSplitter(this._parser), new PropertyBindingParser(this._parser), new DirectiveParser(this._parser, view.directives), new TextInterpolationParser(this._parser), new ShadowDomCompileStep(this._shadowDomStrategy, view)];
}}, {}, $__super);
}(CompileStepFactory));
$__export("DefaultStepFactory", DefaultStepFactory);
@@ -22991,62 +23353,54 @@ System.register("angular2/src/render/dom/compiler/compile_step_factory", ["angul
};
});
-System.register("angular2/src/forms/directives", ["angular2/src/facade/lang", "angular2/src/forms/directives/ng_control_name", "angular2/src/forms/directives/ng_form_control", "angular2/src/forms/directives/ng_model", "angular2/src/forms/directives/ng_control_group", "angular2/src/forms/directives/ng_form_model", "angular2/src/forms/directives/ng_form", "angular2/src/forms/directives/default_value_accessor", "angular2/src/forms/directives/checkbox_value_accessor", "angular2/src/forms/directives/select_control_value_accessor", "angular2/src/forms/directives/validators", "angular2/src/forms/directives/ng_control"], function($__export) {
+System.register("angular2/forms", ["angular2/src/forms/model", "angular2/src/forms/directives/ng_control_name", "angular2/src/forms/directives/ng_form_control", "angular2/src/forms/directives/ng_model", "angular2/src/forms/directives/ng_control", "angular2/src/forms/directives/ng_control_group", "angular2/src/forms/directives/ng_form_model", "angular2/src/forms/directives/ng_form", "angular2/src/forms/directives/default_value_accessor", "angular2/src/forms/directives/checkbox_value_accessor", "angular2/src/forms/directives/select_control_value_accessor", "angular2/src/forms/directives", "angular2/src/forms/validators", "angular2/src/forms/directives/validators", "angular2/src/forms/form_builder", "angular2/src/facade/lang"], function($__export) {
"use strict";
- var __moduleName = "angular2/src/forms/directives";
- var CONST_EXPR,
- NgControlName,
- NgFormControl,
- NgModel,
- NgControlGroup,
- NgFormModel,
- NgForm,
- DefaultValueAccessor,
- CheckboxControlValueAccessor,
- SelectControlValueAccessor,
- NgSelectOption,
- NgRequiredValidator,
- formDirectives;
+ var __moduleName = "angular2/forms";
+ var FormBuilder,
+ CONST_EXPR,
+ formInjectables;
return {
setters: [function($__m) {
- CONST_EXPR = $__m.CONST_EXPR;
+ $__export("AbstractControl", $__m.AbstractControl);
+ $__export("Control", $__m.Control);
+ $__export("ControlGroup", $__m.ControlGroup);
+ $__export("ControlArray", $__m.ControlArray);
}, function($__m) {
- NgControlName = $__m.NgControlName;
$__export("NgControlName", $__m.NgControlName);
}, function($__m) {
- NgFormControl = $__m.NgFormControl;
$__export("NgFormControl", $__m.NgFormControl);
}, function($__m) {
- NgModel = $__m.NgModel;
$__export("NgModel", $__m.NgModel);
}, function($__m) {
- NgControlGroup = $__m.NgControlGroup;
+ $__export("NgControl", $__m.NgControl);
+ }, function($__m) {
$__export("NgControlGroup", $__m.NgControlGroup);
}, function($__m) {
- NgFormModel = $__m.NgFormModel;
$__export("NgFormModel", $__m.NgFormModel);
}, function($__m) {
- NgForm = $__m.NgForm;
$__export("NgForm", $__m.NgForm);
}, function($__m) {
- DefaultValueAccessor = $__m.DefaultValueAccessor;
$__export("DefaultValueAccessor", $__m.DefaultValueAccessor);
}, function($__m) {
- CheckboxControlValueAccessor = $__m.CheckboxControlValueAccessor;
$__export("CheckboxControlValueAccessor", $__m.CheckboxControlValueAccessor);
}, function($__m) {
- SelectControlValueAccessor = $__m.SelectControlValueAccessor;
- NgSelectOption = $__m.NgSelectOption;
$__export("SelectControlValueAccessor", $__m.SelectControlValueAccessor);
}, function($__m) {
- NgRequiredValidator = $__m.NgRequiredValidator;
+ $__export("formDirectives", $__m.formDirectives);
+ }, function($__m) {
+ $__export("Validators", $__m.Validators);
+ }, function($__m) {
+ $__export("NgValidator", $__m.NgValidator);
$__export("NgRequiredValidator", $__m.NgRequiredValidator);
}, function($__m) {
- $__export("NgControl", $__m.NgControl);
+ FormBuilder = $__m.FormBuilder;
+ $__export("FormBuilder", $__m.FormBuilder);
+ }, function($__m) {
+ CONST_EXPR = $__m.CONST_EXPR;
}],
execute: function() {
- formDirectives = CONST_EXPR([NgControlName, NgControlGroup, NgFormControl, NgModel, NgFormModel, NgForm, NgSelectOption, DefaultValueAccessor, CheckboxControlValueAccessor, SelectControlValueAccessor, NgRequiredValidator]);
- $__export("formDirectives", formDirectives);
+ formInjectables = CONST_EXPR([FormBuilder]);
+ $__export("formInjectables", formInjectables);
}
};
});
@@ -23136,19 +23490,13 @@ System.register("angular2/src/change_detection/parser/lexer", ["angular2/src/di/
var __decorate,
__metadata,
Injectable,
- ListWrapper,
SetWrapper,
NumberWrapper,
StringJoiner,
StringWrapper,
BaseException,
isPresent,
- TOKEN_TYPE_CHARACTER,
- TOKEN_TYPE_IDENTIFIER,
- TOKEN_TYPE_KEYWORD,
- TOKEN_TYPE_STRING,
- TOKEN_TYPE_OPERATOR,
- TOKEN_TYPE_NUMBER,
+ TokenType,
Lexer,
Token,
EOF,
@@ -23208,22 +23556,22 @@ System.register("angular2/src/change_detection/parser/lexer", ["angular2/src/di/
OPERATORS,
KEYWORDS;
function newCharacterToken(index, code) {
- return new Token(index, TOKEN_TYPE_CHARACTER, code, StringWrapper.fromCharCode(code));
+ return new Token(index, TokenType.CHARACTER, code, StringWrapper.fromCharCode(code));
}
function newIdentifierToken(index, text) {
- return new Token(index, TOKEN_TYPE_IDENTIFIER, 0, text);
+ return new Token(index, TokenType.IDENTIFIER, 0, text);
}
function newKeywordToken(index, text) {
- return new Token(index, TOKEN_TYPE_KEYWORD, 0, text);
+ return new Token(index, TokenType.KEYWORD, 0, text);
}
function newOperatorToken(index, text) {
- return new Token(index, TOKEN_TYPE_OPERATOR, 0, text);
+ return new Token(index, TokenType.OPERATOR, 0, text);
}
function newStringToken(index, text) {
- return new Token(index, TOKEN_TYPE_STRING, 0, text);
+ return new Token(index, TokenType.STRING, 0, text);
}
function newNumberToken(index, n) {
- return new Token(index, TOKEN_TYPE_NUMBER, n, "");
+ return new Token(index, TokenType.NUMBER, n, "");
}
function isWhitespace(code) {
return (code >= $TAB && code <= $SPACE) || (code == $NBSP);
@@ -23263,7 +23611,6 @@ System.register("angular2/src/change_detection/parser/lexer", ["angular2/src/di/
setters: [function($__m) {
Injectable = $__m.Injectable;
}, function($__m) {
- ListWrapper = $__m.ListWrapper;
SetWrapper = $__m.SetWrapper;
}, function($__m) {
NumberWrapper = $__m.NumberWrapper;
@@ -23295,18 +23642,20 @@ System.register("angular2/src/change_detection/parser/lexer", ["angular2/src/di/
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
return Reflect.metadata(k, v);
};
- TOKEN_TYPE_CHARACTER = 1;
- TOKEN_TYPE_IDENTIFIER = 2;
- TOKEN_TYPE_KEYWORD = 3;
- TOKEN_TYPE_STRING = 4;
- TOKEN_TYPE_OPERATOR = 5;
- TOKEN_TYPE_NUMBER = 6;
+ (function(TokenType) {
+ TokenType[TokenType["CHARACTER"] = 0] = "CHARACTER";
+ TokenType[TokenType["IDENTIFIER"] = 1] = "IDENTIFIER";
+ TokenType[TokenType["KEYWORD"] = 2] = "KEYWORD";
+ TokenType[TokenType["STRING"] = 3] = "STRING";
+ TokenType[TokenType["OPERATOR"] = 4] = "OPERATOR";
+ TokenType[TokenType["NUMBER"] = 5] = "NUMBER";
+ })(TokenType || (TokenType = {}));
Lexer = (($traceurRuntime.createClass)(function() {}, {tokenize: function(text) {
var scanner = new _Scanner(text);
var tokens = [];
var token = scanner.scanToken();
while (token != null) {
- ListWrapper.push(tokens, token);
+ tokens.push(token);
token = scanner.scanToken();
}
return tokens;
@@ -23322,61 +23671,64 @@ System.register("angular2/src/change_detection/parser/lexer", ["angular2/src/di/
}
return ($traceurRuntime.createClass)(Token, {
isCharacter: function(code) {
- return (this.type == TOKEN_TYPE_CHARACTER && this.numValue == code);
+ return (this.type == TokenType.CHARACTER && this.numValue == code);
},
isNumber: function() {
- return (this.type == TOKEN_TYPE_NUMBER);
+ return (this.type == TokenType.NUMBER);
},
isString: function() {
- return (this.type == TOKEN_TYPE_STRING);
+ return (this.type == TokenType.STRING);
},
isOperator: function(operater) {
- return (this.type == TOKEN_TYPE_OPERATOR && this.strValue == operater);
+ return (this.type == TokenType.OPERATOR && this.strValue == operater);
},
isIdentifier: function() {
- return (this.type == TOKEN_TYPE_IDENTIFIER);
+ return (this.type == TokenType.IDENTIFIER);
},
isKeyword: function() {
- return (this.type == TOKEN_TYPE_KEYWORD);
+ return (this.type == TokenType.KEYWORD);
},
isKeywordVar: function() {
- return (this.type == TOKEN_TYPE_KEYWORD && this.strValue == "var");
+ return (this.type == TokenType.KEYWORD && this.strValue == "var");
},
isKeywordNull: function() {
- return (this.type == TOKEN_TYPE_KEYWORD && this.strValue == "null");
+ return (this.type == TokenType.KEYWORD && this.strValue == "null");
},
isKeywordUndefined: function() {
- return (this.type == TOKEN_TYPE_KEYWORD && this.strValue == "undefined");
+ return (this.type == TokenType.KEYWORD && this.strValue == "undefined");
},
isKeywordTrue: function() {
- return (this.type == TOKEN_TYPE_KEYWORD && this.strValue == "true");
+ return (this.type == TokenType.KEYWORD && this.strValue == "true");
},
isKeywordIf: function() {
- return (this.type == TOKEN_TYPE_KEYWORD && this.strValue == "if");
+ return (this.type == TokenType.KEYWORD && this.strValue == "if");
},
isKeywordElse: function() {
- return (this.type == TOKEN_TYPE_KEYWORD && this.strValue == "else");
+ return (this.type == TokenType.KEYWORD && this.strValue == "else");
},
isKeywordFalse: function() {
- return (this.type == TOKEN_TYPE_KEYWORD && this.strValue == "false");
+ return (this.type == TokenType.KEYWORD && this.strValue == "false");
},
toNumber: function() {
- return (this.type == TOKEN_TYPE_NUMBER) ? this.numValue : -1;
+ return (this.type == TokenType.NUMBER) ? this.numValue : -1;
},
toString: function() {
- var t = this.type;
- if (t >= TOKEN_TYPE_CHARACTER && t <= TOKEN_TYPE_STRING) {
- return this.strValue;
- } else if (t == TOKEN_TYPE_NUMBER) {
- return this.numValue.toString();
- } else {
- return null;
+ switch (this.type) {
+ case TokenType.CHARACTER:
+ case TokenType.STRING:
+ case TokenType.IDENTIFIER:
+ case TokenType.KEYWORD:
+ return this.strValue;
+ case TokenType.NUMBER:
+ return this.numValue.toString();
+ default:
+ return null;
}
}
}, {});
}());
$__export("Token", Token);
- EOF = new Token(-1, 0, 0, "");
+ EOF = new Token(-1, TokenType.CHARACTER, 0, "");
$__export("EOF", EOF);
$EOF = 0;
$__export("$EOF", $EOF);
@@ -23698,7 +24050,7 @@ System.register("angular2/src/change_detection/parser/parser", ["angular2/src/di
PrefixNot,
Conditional,
If,
- Pipe,
+ BindingPipe,
Assignment,
Chain,
KeyedAccess,
@@ -23713,7 +24065,8 @@ System.register("angular2/src/change_detection/parser/parser", ["angular2/src/di
_implicitReceiver,
INTERPOLATION_REGEXP,
Parser,
- _ParseAST;
+ _ParseAST,
+ SimpleExpressionChecker;
return {
setters: [function($__m) {
Injectable = $__m.Injectable;
@@ -23751,7 +24104,7 @@ System.register("angular2/src/change_detection/parser/parser", ["angular2/src/di
PrefixNot = $__m.PrefixNot;
Conditional = $__m.Conditional;
If = $__m.If;
- Pipe = $__m.Pipe;
+ BindingPipe = $__m.BindingPipe;
Assignment = $__m.Assignment;
Chain = $__m.Chain;
KeyedAccess = $__m.KeyedAccess;
@@ -23804,13 +24157,10 @@ System.register("angular2/src/change_detection/parser/parser", ["angular2/src/di
var ast = new _ParseAST(input, location, tokens, this._reflector, false).parseChain();
return new ASTWithSource(ast, input, location);
},
- addPipes: function(bindingAst, pipes) {
- if (ListWrapper.isEmpty(pipes))
- return bindingAst;
- var res = ListWrapper.reduce(pipes, (function(result, currentPipeName) {
- return new Pipe(result, currentPipeName, [], false);
- }), bindingAst.ast);
- return new ASTWithSource(res, bindingAst.source, bindingAst.location);
+ parseSimpleBinding: function(input, location) {
+ var tokens = this._lexer.tokenize(input);
+ var ast = new _ParseAST(input, location, tokens, this._reflector, false).parseSimpleBinding();
+ return new ASTWithSource(ast, input, location);
},
parseTemplateBindings: function(input, location) {
var tokens = this._lexer.tokenize(input);
@@ -23826,11 +24176,11 @@ System.register("angular2/src/change_detection/parser/parser", ["angular2/src/di
for (var i = 0; i < parts.length; i++) {
var part = parts[i];
if (i % 2 === 0) {
- ListWrapper.push(strings, part);
+ strings.push(part);
} else {
var tokens = this._lexer.tokenize(part);
var ast = new _ParseAST(input, location, tokens, this._reflector, false).parseChain();
- ListWrapper.push(expressions, ast);
+ expressions.push(ast);
}
}
return new ASTWithSource(new Interpolation(strings, expressions), input, location);
@@ -23921,7 +24271,7 @@ System.register("angular2/src/change_detection/parser/parser", ["angular2/src/di
var exprs = [];
while (this.index < this.tokens.length) {
var expr = this.parsePipe();
- ListWrapper.push(exprs, expr);
+ exprs.push(expr);
if (this.optionalCharacter($SEMICOLON)) {
if (!this.parseAction) {
this.error("Binding expression cannot contain chained expression");
@@ -23937,6 +24287,13 @@ System.register("angular2/src/change_detection/parser/parser", ["angular2/src/di
return exprs[0];
return new Chain(exprs);
},
+ parseSimpleBinding: function() {
+ var ast = this.parseChain();
+ if (!SimpleExpressionChecker.check(ast)) {
+ this.error("Simple binding expression can only contain field access and constants'");
+ }
+ return ast;
+ },
parsePipe: function() {
var result = this.parseExpression();
if (this.optionalOperator("|")) {
@@ -23947,9 +24304,9 @@ System.register("angular2/src/change_detection/parser/parser", ["angular2/src/di
var name = this.expectIdentifierOrKeyword();
var args = [];
while (this.optionalCharacter($COLON)) {
- ListWrapper.push(args, this.parsePipe());
+ args.push(this.parsePipe());
}
- result = new Pipe(result, name, args, true);
+ result = new BindingPipe(result, name, args);
} while (this.optionalOperator("|"));
}
return result;
@@ -24142,7 +24499,7 @@ System.register("angular2/src/change_detection/parser/parser", ["angular2/src/di
var result = [];
if (!this.next.isCharacter(terminator)) {
do {
- ListWrapper.push(result, this.parsePipe());
+ result.push(this.parsePipe());
} while (this.optionalCharacter($COMMA));
}
return result;
@@ -24154,9 +24511,9 @@ System.register("angular2/src/change_detection/parser/parser", ["angular2/src/di
if (!this.optionalCharacter($RBRACE)) {
do {
var key = this.expectIdentifierOrKeywordOrString();
- ListWrapper.push(keys, key);
+ keys.push(key);
this.expectCharacter($COLON);
- ListWrapper.push(values, this.parsePipe());
+ values.push(this.parsePipe());
} while (this.optionalCharacter($COMMA));
this.expectCharacter($RBRACE);
}
@@ -24181,7 +24538,7 @@ System.register("angular2/src/change_detection/parser/parser", ["angular2/src/di
return [];
var positionals = [];
do {
- ListWrapper.push(positionals, this.parsePipe());
+ positionals.push(this.parsePipe());
} while (this.optionalCharacter($COMMA));
return positionals;
},
@@ -24200,7 +24557,7 @@ System.register("angular2/src/change_detection/parser/parser", ["angular2/src/di
var exprs = [];
while (this.index < this.tokens.length && !this.next.isCharacter($RBRACE)) {
var expr = this.parseExpression();
- ListWrapper.push(exprs, expr);
+ exprs.push(expr);
if (this.optionalCharacter($SEMICOLON)) {
while (this.optionalCharacter($SEMICOLON)) {}
}
@@ -24251,7 +24608,7 @@ System.register("angular2/src/change_detection/parser/parser", ["angular2/src/di
var source = this.input.substring(start, this.inputIndex);
expression = new ASTWithSource(ast, source, this.location);
}
- ListWrapper.push(bindings, new TemplateBinding(key, keyIsVar, name, expression));
+ bindings.push(new TemplateBinding(key, keyIsVar, name, expression));
if (!this.optionalCharacter($SEMICOLON)) {
this.optionalCharacter($COMMA);
}
@@ -24267,11 +24624,77 @@ System.register("angular2/src/change_detection/parser/parser", ["angular2/src/di
}
}, {});
}());
+ SimpleExpressionChecker = (function() {
+ function SimpleExpressionChecker() {
+ this.simple = true;
+ }
+ return ($traceurRuntime.createClass)(SimpleExpressionChecker, {
+ visitImplicitReceiver: function(ast) {},
+ visitInterpolation: function(ast) {
+ this.simple = false;
+ },
+ visitLiteralPrimitive: function(ast) {},
+ visitAccessMember: function(ast) {},
+ visitSafeAccessMember: function(ast) {
+ this.simple = false;
+ },
+ visitMethodCall: function(ast) {
+ this.simple = false;
+ },
+ visitSafeMethodCall: function(ast) {
+ this.simple = false;
+ },
+ visitFunctionCall: function(ast) {
+ this.simple = false;
+ },
+ visitLiteralArray: function(ast) {
+ this.visitAll(ast.expressions);
+ },
+ visitLiteralMap: function(ast) {
+ this.visitAll(ast.values);
+ },
+ visitBinary: function(ast) {
+ this.simple = false;
+ },
+ visitPrefixNot: function(ast) {
+ this.simple = false;
+ },
+ visitConditional: function(ast) {
+ this.simple = false;
+ },
+ visitPipe: function(ast) {
+ this.simple = false;
+ },
+ visitKeyedAccess: function(ast) {
+ this.simple = false;
+ },
+ visitAll: function(asts) {
+ var res = ListWrapper.createFixedSize(asts.length);
+ for (var i = 0; i < asts.length; ++i) {
+ res[i] = asts[i].visit(this);
+ }
+ return res;
+ },
+ visitChain: function(ast) {
+ this.simple = false;
+ },
+ visitAssignment: function(ast) {
+ this.simple = false;
+ },
+ visitIf: function(ast) {
+ this.simple = false;
+ }
+ }, {check: function(ast) {
+ var s = new SimpleExpressionChecker();
+ ast.visit(s);
+ return s.simple;
+ }});
+ }());
}
};
});
-System.register("angular2/src/change_detection/proto_change_detector", ["angular2/src/facade/lang", "angular2/src/facade/collection", "angular2/src/change_detection/parser/ast", "angular2/src/change_detection/interfaces", "angular2/src/change_detection/change_detection_util", "angular2/src/change_detection/dynamic_change_detector", "angular2/src/change_detection/directive_record", "angular2/src/change_detection/coalesce", "angular2/src/change_detection/proto_record"], function($__export) {
+System.register("angular2/src/change_detection/proto_change_detector", ["angular2/src/facade/lang", "angular2/src/facade/collection", "angular2/src/change_detection/parser/ast", "angular2/src/change_detection/change_detection_util", "angular2/src/change_detection/dynamic_change_detector", "angular2/src/change_detection/directive_record", "angular2/src/change_detection/coalesce", "angular2/src/change_detection/proto_record"], function($__export) {
"use strict";
var __moduleName = "angular2/src/change_detection/proto_change_detector";
var BaseException,
@@ -24279,7 +24702,6 @@ System.register("angular2/src/change_detection/proto_change_detector", ["angular
isString,
ListWrapper,
ImplicitReceiver,
- ProtoChangeDetector,
ChangeDetectionUtil,
DynamicChangeDetector,
DirectiveIndex,
@@ -24458,8 +24880,6 @@ System.register("angular2/src/change_detection/proto_change_detector", ["angular
ListWrapper = $__m.ListWrapper;
}, function($__m) {
ImplicitReceiver = $__m.ImplicitReceiver;
- }, function($__m) {
- ProtoChangeDetector = $__m.ProtoChangeDetector;
}, function($__m) {
ChangeDetectionUtil = $__m.ChangeDetectionUtil;
}, function($__m) {
@@ -24473,16 +24893,15 @@ System.register("angular2/src/change_detection/proto_change_detector", ["angular
RecordType = $__m.RecordType;
}],
execute: function() {
- DynamicProtoChangeDetector = (function($__super) {
+ DynamicProtoChangeDetector = (function() {
function DynamicProtoChangeDetector(_pipeRegistry, definition) {
- $traceurRuntime.superConstructor(DynamicProtoChangeDetector).call(this);
this._pipeRegistry = _pipeRegistry;
this.definition = definition;
this._records = this._createRecords(definition);
}
return ($traceurRuntime.createClass)(DynamicProtoChangeDetector, {
instantiate: function(dispatcher) {
- return new DynamicChangeDetector(this.definition.strategy, dispatcher, this._pipeRegistry, this._records, this.definition.directiveRecords);
+ return new DynamicChangeDetector(this.definition.id, this.definition.strategy, dispatcher, this._pipeRegistry, this._records, this.definition.directiveRecords);
},
_createRecords: function(definition) {
var recordBuilder = new ProtoRecordBuilder();
@@ -24491,8 +24910,8 @@ System.register("angular2/src/change_detection/proto_change_detector", ["angular
}));
return coalesce(recordBuilder.records);
}
- }, {}, $__super);
- }(ProtoChangeDetector));
+ }, {});
+ }());
$__export("DynamicProtoChangeDetector", DynamicProtoChangeDetector);
ProtoRecordBuilder = (function() {
function ProtoRecordBuilder() {
@@ -24514,7 +24933,7 @@ System.register("angular2/src/change_detection/proto_change_detector", ["angular
},
_appendRecords: function(b, variableNames) {
if (b.isDirectiveLifecycle()) {
- ListWrapper.push(this.records, new ProtoRecord(RecordType.DIRECTIVE_LIFECYCLE, b.lifecycleEvent, null, [], [], -1, null, this.records.length + 1, b, null, false, false));
+ this.records.push(new ProtoRecord(RecordType.DIRECTIVE_LIFECYCLE, b.lifecycleEvent, null, [], [], -1, null, this.records.length + 1, b, null, false, false));
} else {
_ConvertAstIntoProtoRecords.append(this.records, b, variableNames);
}
@@ -24596,8 +25015,7 @@ System.register("angular2/src/change_detection/proto_change_detector", ["angular
},
visitPipe: function(ast) {
var value = ast.exp.visit(this);
- var type = ast.inBinding ? RecordType.BINDING_PIPE : RecordType.PIPE;
- return this._addRecord(type, ast.name, ast.name, [], null, value);
+ return this._addRecord(RecordType.PIPE, ast.name, ast.name, [], null, value);
},
visitKeyedAccess: function(ast) {
var obj = ast.obj.visit(this);
@@ -24623,9 +25041,9 @@ System.register("angular2/src/change_detection/proto_change_detector", ["angular
_addRecord: function(type, name, funcOrValue, args, fixedArgs, context) {
var selfIndex = this._records.length + 1;
if (context instanceof DirectiveIndex) {
- ListWrapper.push(this._records, new ProtoRecord(type, name, funcOrValue, args, fixedArgs, -1, context, selfIndex, this._bindingRecord, this._expressionAsString, false, false));
+ this._records.push(new ProtoRecord(type, name, funcOrValue, args, fixedArgs, -1, context, selfIndex, this._bindingRecord, this._expressionAsString, false, false));
} else {
- ListWrapper.push(this._records, new ProtoRecord(type, name, funcOrValue, args, fixedArgs, context, null, selfIndex, this._bindingRecord, this._expressionAsString, false, false));
+ this._records.push(new ProtoRecord(type, name, funcOrValue, args, fixedArgs, context, null, selfIndex, this._bindingRecord, this._expressionAsString, false, false));
}
return selfIndex;
}
@@ -24641,7 +25059,8 @@ System.register("angular2/src/change_detection/proto_change_detector", ["angular
System.register("angular2/src/di/injector", ["angular2/src/facade/collection", "angular2/src/di/binding", "angular2/src/di/exceptions", "angular2/src/facade/lang", "angular2/src/facade/async", "angular2/src/di/key", "angular2/src/di/forward_ref"], function($__export) {
"use strict";
var __moduleName = "angular2/src/di/injector";
- var List,
+ var Map,
+ List,
MapWrapper,
ListWrapper,
ResolvedBinding,
@@ -24694,10 +25113,10 @@ System.register("angular2/src/di/injector", ["angular2/src/facade/collection", "
return resolvedList;
}
function flattenBindings(bindings) {
- var map = _flattenBindings(bindings, MapWrapper.create());
- var res = ListWrapper.create();
+ var map = _flattenBindings(bindings, new Map());
+ var res = [];
MapWrapper.forEach(map, (function(binding, keyId) {
- return ListWrapper.push(res, binding);
+ return res.push(binding);
}));
return res;
}
@@ -24711,7 +25130,7 @@ System.register("angular2/src/di/injector", ["angular2/src/facade/collection", "
function _flattenBindings(bindings, res) {
ListWrapper.forEach(bindings, function(b) {
if (b instanceof ResolvedBinding) {
- MapWrapper.set(res, b.key.id, b);
+ res.set(b.key.id, b);
} else if (b instanceof List) {
_flattenBindings(b, res);
}
@@ -24721,6 +25140,7 @@ System.register("angular2/src/di/injector", ["angular2/src/facade/collection", "
$__export("resolveBindings", resolveBindings);
return {
setters: [function($__m) {
+ Map = $__m.Map;
List = $__m.List;
MapWrapper = $__m.MapWrapper;
ListWrapper = $__m.ListWrapper;
@@ -24852,7 +25272,7 @@ System.register("angular2/src/di/injector", ["angular2/src/facade/collection", "
}, {
resolve: function(bindings) {
var resolvedBindings = resolveBindings(bindings);
- var flatten = _flattenBindings(resolvedBindings, MapWrapper.create());
+ var flatten = _flattenBindings(resolvedBindings, new Map());
return _createListOfBindings(flatten);
},
resolveAndCreate: function(bindings) {
@@ -24983,7 +25403,6 @@ System.register("angular2/src/core/compiler/view_manager", ["angular2/di", "angu
isPresent,
isBlank,
BaseException,
- ViewRef,
internalView,
internalProtoView,
Renderer,
@@ -24999,7 +25418,6 @@ System.register("angular2/src/core/compiler/view_manager", ["angular2/di", "angu
isBlank = $__m.isBlank;
BaseException = $__m.BaseException;
}, function($__m) {
- ViewRef = $__m.ViewRef;
internalView = $__m.internalView;
internalProtoView = $__m.internalProtoView;
}, function($__m) {
@@ -25043,33 +25461,33 @@ System.register("angular2/src/core/compiler/view_manager", ["angular2/di", "angu
getComponentView: function(hostLocation) {
var hostView = internalView(hostLocation.parentView);
var boundElementIndex = hostLocation.boundElementIndex;
- return new ViewRef(hostView.componentChildViews[boundElementIndex]);
+ return hostView.componentChildViews[boundElementIndex].ref;
},
getViewContainer: function(location) {
var hostView = internalView(location.parentView);
return hostView.elementInjectors[location.boundElementIndex].getViewContainerRef();
},
+ getHostElement: function(hostViewRef) {
+ return internalView(hostViewRef).elementRefs[0];
+ },
+ getNamedElementInComponentView: function(hostLocation, variableName) {
+ var hostView = internalView(hostLocation.parentView);
+ var boundElementIndex = hostLocation.boundElementIndex;
+ var componentView = hostView.componentChildViews[boundElementIndex];
+ if (isBlank(componentView)) {
+ throw new BaseException(("There is no component directive at element " + boundElementIndex));
+ }
+ var elementIndex = componentView.proto.variableLocations.get(variableName);
+ if (isBlank(elementIndex)) {
+ throw new BaseException(("Could not find variable " + variableName));
+ }
+ return componentView.elementRefs[elementIndex];
+ },
getComponent: function(hostLocation) {
var hostView = internalView(hostLocation.parentView);
var boundElementIndex = hostLocation.boundElementIndex;
return this._utils.getComponentInstance(hostView, boundElementIndex);
},
- createDynamicComponentView: function(hostLocation, componentProtoViewRef, componentBinding, injector) {
- var componentProtoView = internalProtoView(componentProtoViewRef);
- var hostView = internalView(hostLocation.parentView);
- var boundElementIndex = hostLocation.boundElementIndex;
- var binder = hostView.proto.elementBinders[boundElementIndex];
- if (!binder.hasDynamicComponent()) {
- throw new BaseException(("There is no dynamic component directive at element " + boundElementIndex));
- }
- var componentView = this._createPooledView(componentProtoView);
- this._renderer.attachComponentView(hostView.render, boundElementIndex, componentView.render);
- this._utils.attachComponentView(hostView, boundElementIndex, componentView);
- this._utils.hydrateDynamicComponentInElementInjector(hostView, boundElementIndex, componentBinding, injector);
- this._utils.hydrateComponentView(hostView, boundElementIndex);
- this._viewHydrateRecurse(componentView);
- return new ViewRef(componentView);
- },
createRootHostView: function(hostProtoViewRef, overrideSelector, injector) {
var hostProtoView = internalProtoView(hostProtoViewRef);
var hostElementSelector = overrideSelector;
@@ -25083,7 +25501,7 @@ System.register("angular2/src/core/compiler/view_manager", ["angular2/di", "angu
this._viewListener.viewCreated(hostView);
this._utils.hydrateRootHostView(hostView, injector);
this._viewHydrateRecurse(hostView);
- return new ViewRef(hostView);
+ return hostView.ref;
},
destroyRootHostView: function(hostViewRef) {
var hostView = internalView(hostViewRef);
@@ -25091,42 +25509,6 @@ System.register("angular2/src/core/compiler/view_manager", ["angular2/di", "angu
this._renderer.destroyView(hostView.render);
this._viewListener.viewDestroyed(hostView);
},
- createFreeHostView: function(parentComponentLocation, hostProtoViewRef, injector) {
- var hostProtoView = internalProtoView(hostProtoViewRef);
- var hostView = this._createPooledView(hostProtoView);
- var parentComponentHostView = internalView(parentComponentLocation.parentView);
- var parentComponentBoundElementIndex = parentComponentLocation.boundElementIndex;
- this._utils.attachAndHydrateFreeHostView(parentComponentHostView, parentComponentBoundElementIndex, hostView, injector);
- this._viewHydrateRecurse(hostView);
- return new ViewRef(hostView);
- },
- destroyFreeHostView: function(parentComponentLocation, hostViewRef) {
- var hostView = internalView(hostViewRef);
- var parentView = internalView(parentComponentLocation.parentView).componentChildViews[parentComponentLocation.boundElementIndex];
- this._destroyFreeHostView(parentView, hostView);
- },
- createFreeEmbeddedView: function(location, protoViewRef) {
- var injector = arguments[2] !== (void 0) ? arguments[2] : null;
- var protoView = internalProtoView(protoViewRef);
- var parentView = internalView(location.parentView);
- var boundElementIndex = location.boundElementIndex;
- var view = this._createPooledView(protoView);
- this._utils.attachAndHydrateFreeEmbeddedView(parentView, boundElementIndex, view, injector);
- this._viewHydrateRecurse(view);
- return new ViewRef(view);
- },
- destroyFreeEmbeddedView: function(location, viewRef) {
- var parentView = internalView(location.parentView);
- var boundElementIndex = location.boundElementIndex;
- this._destroyFreeEmbeddedView(parentView, boundElementIndex, internalView(viewRef));
- },
- destroyDynamicComponent: function(location) {
- var hostView = internalView(location.parentView);
- var ei = hostView.elementInjectors[location.boundElementIndex];
- var componentView = hostView.componentChildViews[location.boundElementIndex];
- ei.destroyDynamicComponent();
- this._destroyComponentView(hostView, location.boundElementIndex, componentView);
- },
createViewInContainer: function(viewContainerLocation, atIndex, protoViewRef) {
var context = arguments[3] !== (void 0) ? arguments[3] : null;
var injector = arguments[4] !== (void 0) ? arguments[4] : null;
@@ -25140,11 +25522,11 @@ System.register("angular2/src/core/compiler/view_manager", ["angular2/di", "angu
contextBoundElementIndex = context.boundElementIndex;
}
var view = this._createPooledView(protoView);
- this._renderer.attachViewInContainer(parentView.render, boundElementIndex, atIndex, view.render);
+ this._renderer.attachViewInContainer(viewContainerLocation, atIndex, view.render);
this._utils.attachViewInContainer(parentView, boundElementIndex, contextView, contextBoundElementIndex, atIndex, view);
this._utils.hydrateViewInContainer(parentView, boundElementIndex, contextView, contextBoundElementIndex, atIndex, injector);
this._viewHydrateRecurse(view);
- return new ViewRef(view);
+ return view.ref;
},
destroyViewInContainer: function(viewContainerLocation, atIndex) {
var parentView = internalView(viewContainerLocation.parentView);
@@ -25156,7 +25538,7 @@ System.register("angular2/src/core/compiler/view_manager", ["angular2/di", "angu
var parentView = internalView(viewContainerLocation.parentView);
var boundElementIndex = viewContainerLocation.boundElementIndex;
this._utils.attachViewInContainer(parentView, boundElementIndex, null, null, atIndex, view);
- this._renderer.attachViewInContainer(parentView.render, boundElementIndex, atIndex, view.render);
+ this._renderer.attachViewInContainer(viewContainerLocation, atIndex, view.render);
return viewRef;
},
detachViewInContainer: function(viewContainerLocation, atIndex) {
@@ -25165,8 +25547,8 @@ System.register("angular2/src/core/compiler/view_manager", ["angular2/di", "angu
var viewContainer = parentView.viewContainers[boundElementIndex];
var view = viewContainer.views[atIndex];
this._utils.detachViewInContainer(parentView, boundElementIndex, atIndex);
- this._renderer.detachViewInContainer(parentView.render, boundElementIndex, atIndex, view.render);
- return new ViewRef(view);
+ this._renderer.detachViewInContainer(viewContainerLocation, atIndex, view.render);
+ return view.ref;
},
_createPooledView: function(protoView) {
var view = this._viewPool.getView(protoView);
@@ -25184,7 +25566,7 @@ System.register("angular2/src/core/compiler/view_manager", ["angular2/di", "angu
var binder = binders[binderIdx];
if (binder.hasStaticComponent()) {
var childView = this._createPooledView(binder.nestedProtoView);
- this._renderer.attachComponentView(view.render, binderIdx, childView.render);
+ this._renderer.attachComponentView(view.elementRefs[binderIdx], childView.render);
this._utils.attachComponentView(view, binderIdx, childView);
}
}
@@ -25201,27 +25583,15 @@ System.register("angular2/src/core/compiler/view_manager", ["angular2/di", "angu
var view = viewContainer.views[atIndex];
this._viewDehydrateRecurse(view, false);
this._utils.detachViewInContainer(parentView, boundElementIndex, atIndex);
- this._renderer.detachViewInContainer(parentView.render, boundElementIndex, atIndex, view.render);
+ this._renderer.detachViewInContainer(parentView.elementRefs[boundElementIndex], atIndex, view.render);
this._destroyPooledView(view);
},
_destroyComponentView: function(hostView, boundElementIndex, componentView) {
this._viewDehydrateRecurse(componentView, false);
- this._renderer.detachComponentView(hostView.render, boundElementIndex, componentView.render);
+ this._renderer.detachComponentView(hostView.elementRefs[boundElementIndex], componentView.render);
this._utils.detachComponentView(hostView, boundElementIndex);
this._destroyPooledView(componentView);
},
- _destroyFreeHostView: function(parentView, hostView) {
- this._viewDehydrateRecurse(hostView, true);
- this._renderer.detachFreeView(hostView.render);
- this._utils.detachFreeHostView(parentView, hostView);
- this._destroyPooledView(hostView);
- },
- _destroyFreeEmbeddedView: function(parentView, boundElementIndex, view) {
- this._viewDehydrateRecurse(view, false);
- this._renderer.detachFreeView(view.render);
- this._utils.detachFreeEmbeddedView(parentView, boundElementIndex, view);
- this._destroyPooledView(view);
- },
_viewHydrateRecurse: function(view) {
this._renderer.hydrateView(view.render);
var binders = view.proto.elementBinders;
@@ -25239,7 +25609,7 @@ System.register("angular2/src/core/compiler/view_manager", ["angular2/di", "angu
for (var i = 0; i < binders.length; i++) {
var componentView = view.componentChildViews[i];
if (isPresent(componentView)) {
- if (binders[i].hasDynamicComponent() || forceDestroyComponents) {
+ if (forceDestroyComponents) {
this._destroyComponentView(view, i, componentView);
} else {
this._viewDehydrateRecurse(componentView, false);
@@ -25250,15 +25620,8 @@ System.register("angular2/src/core/compiler/view_manager", ["angular2/di", "angu
for (var j = vc.views.length - 1; j >= 0; j--) {
this._destroyViewInContainer(view, i, j);
}
- for (var j = vc.freeViews.length - 1; j >= 0; j--) {
- this._destroyFreeEmbeddedView(view, i, j);
- }
}
}
- for (var i = view.freeHostViews.length - 1; i >= 0; i--) {
- var hostView = view.freeHostViews[i];
- this._destroyFreeHostView(view, hostView);
- }
}
}, {}));
$__export("AppViewManager", AppViewManager);
@@ -25267,7 +25630,7 @@ System.register("angular2/src/core/compiler/view_manager", ["angular2/di", "angu
};
});
-System.register("angular2/src/render/dom/compiler/compiler", ["angular2/di", "angular2/src/facade/async", "angular2/src/facade/lang", "angular2/src/dom/dom_adapter", "angular2/src/render/api", "angular2/src/render/dom/compiler/compile_pipeline", "angular2/src/render/dom/compiler/template_loader", "angular2/src/render/dom/compiler/compile_step_factory", "angular2/change_detection", "angular2/src/render/dom/shadow_dom/shadow_dom_strategy", "angular2/src/render/dom/view/property_setter_factory"], function($__export) {
+System.register("angular2/src/render/dom/compiler/compiler", ["angular2/di", "angular2/src/facade/async", "angular2/src/facade/lang", "angular2/src/dom/dom_adapter", "angular2/src/render/api", "angular2/src/render/dom/compiler/compile_pipeline", "angular2/src/render/dom/compiler/view_loader", "angular2/src/render/dom/compiler/compile_step_factory", "angular2/change_detection", "angular2/src/render/dom/shadow_dom/shadow_dom_strategy"], function($__export) {
"use strict";
var __moduleName = "angular2/src/render/dom/compiler/compiler";
var __decorate,
@@ -25280,11 +25643,10 @@ System.register("angular2/src/render/dom/compiler/compiler", ["angular2/di", "an
ViewType,
RenderCompiler,
CompilePipeline,
- TemplateLoader,
+ ViewLoader,
DefaultStepFactory,
Parser,
ShadowDomStrategy,
- PropertySetterFactory,
DomCompiler,
DefaultDomCompiler;
return {
@@ -25303,15 +25665,13 @@ System.register("angular2/src/render/dom/compiler/compiler", ["angular2/di", "an
}, function($__m) {
CompilePipeline = $__m.CompilePipeline;
}, function($__m) {
- TemplateLoader = $__m.TemplateLoader;
+ ViewLoader = $__m.ViewLoader;
}, function($__m) {
DefaultStepFactory = $__m.DefaultStepFactory;
}, function($__m) {
Parser = $__m.Parser;
}, function($__m) {
ShadowDomStrategy = $__m.ShadowDomStrategy;
- }, function($__m) {
- PropertySetterFactory = $__m.PropertySetterFactory;
}],
execute: function() {
__decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
@@ -25337,20 +25697,19 @@ System.register("angular2/src/render/dom/compiler/compiler", ["angular2/di", "an
return Reflect.metadata(k, v);
};
DomCompiler = (function($__super) {
- function DomCompiler(_stepFactory, _templateLoader) {
+ function DomCompiler(_stepFactory, _viewLoader) {
$traceurRuntime.superConstructor(DomCompiler).call(this);
this._stepFactory = _stepFactory;
- this._templateLoader = _templateLoader;
- this._propertySetterFactory = new PropertySetterFactory();
+ this._viewLoader = _viewLoader;
}
return ($traceurRuntime.createClass)(DomCompiler, {
- compile: function(template) {
+ compile: function(view) {
var $__0 = this;
- var tplPromise = this._templateLoader.load(template);
+ var tplPromise = this._viewLoader.load(view);
return PromiseWrapper.then(tplPromise, (function(el) {
- return $__0._compileTemplate(template, el, ViewType.COMPONENT);
+ return $__0._compileTemplate(view, el, ViewType.COMPONENT);
}), (function(e) {
- throw new BaseException(("Failed to load the template for \"" + template.componentId + "\" : " + e));
+ throw new BaseException(("Failed to load the template for \"" + view.componentId + "\" : " + e));
}));
},
compileHost: function(directiveMetadata) {
@@ -25366,77 +25725,21 @@ System.register("angular2/src/render/dom/compiler/compiler", ["angular2/di", "an
return this._compileTemplate(hostViewDef, element, ViewType.HOST);
},
_compileTemplate: function(viewDef, tplElement, protoViewType) {
- var subTaskPromises = [];
- var pipeline = new CompilePipeline(this._stepFactory.createSteps(viewDef, subTaskPromises));
+ var pipeline = new CompilePipeline(this._stepFactory.createSteps(viewDef));
var compileElements = pipeline.process(tplElement, protoViewType, viewDef.componentId);
- var protoView = compileElements[0].inheritedProtoView.build(this._propertySetterFactory);
- if (subTaskPromises.length > 0) {
- return PromiseWrapper.all(subTaskPromises).then((function(_) {
- return protoView;
- }));
- } else {
- return PromiseWrapper.resolve(protoView);
- }
+ return PromiseWrapper.resolve(compileElements[0].inheritedProtoView.build());
}
}, {}, $__super);
}(RenderCompiler));
$__export("DomCompiler", DomCompiler);
DefaultDomCompiler = (function($__super) {
- function $__1(parser, shadowDomStrategy, templateLoader) {
- $traceurRuntime.superConstructor($__1).call(this, new DefaultStepFactory(parser, shadowDomStrategy), templateLoader);
+ function $__1(parser, shadowDomStrategy, viewLoader) {
+ $traceurRuntime.superConstructor($__1).call(this, new DefaultStepFactory(parser, shadowDomStrategy), viewLoader);
}
return ($traceurRuntime.createClass)($__1, {}, {}, $__super);
}(DomCompiler));
$__export("DefaultDomCompiler", DefaultDomCompiler);
- $__export("DefaultDomCompiler", DefaultDomCompiler = __decorate([Injectable(), __metadata('design:paramtypes', [Parser, ShadowDomStrategy, TemplateLoader])], DefaultDomCompiler));
- }
- };
-});
-
-System.register("angular2/forms", ["angular2/src/forms/model", "angular2/src/forms/directives", "angular2/src/forms/validators", "angular2/src/forms/directives/validators", "angular2/src/forms/form_builder", "angular2/src/facade/lang"], function($__export) {
- "use strict";
- var __moduleName = "angular2/forms";
- var FormBuilder,
- CONST_EXPR,
- formInjectables;
- var $__exportNames = {formInjectables: true};
- var $__exportNames = {formInjectables: true};
- var $__exportNames = {formInjectables: true};
- var $__exportNames = {formInjectables: true};
- var $__exportNames = {formInjectables: true};
- return {
- setters: [function($__m) {
- Object.keys($__m).forEach(function(p) {
- if (!$__exportNames[p])
- $__export(p, $__m[p]);
- });
- }, function($__m) {
- Object.keys($__m).forEach(function(p) {
- if (!$__exportNames[p])
- $__export(p, $__m[p]);
- });
- }, function($__m) {
- Object.keys($__m).forEach(function(p) {
- if (!$__exportNames[p])
- $__export(p, $__m[p]);
- });
- }, function($__m) {
- Object.keys($__m).forEach(function(p) {
- if (!$__exportNames[p])
- $__export(p, $__m[p]);
- });
- }, function($__m) {
- FormBuilder = $__m.FormBuilder;
- Object.keys($__m).forEach(function(p) {
- if (!$__exportNames[p])
- $__export(p, $__m[p]);
- });
- }, function($__m) {
- CONST_EXPR = $__m.CONST_EXPR;
- }],
- execute: function() {
- formInjectables = CONST_EXPR([FormBuilder]);
- $__export("formInjectables", formInjectables);
+ $__export("DefaultDomCompiler", DefaultDomCompiler = __decorate([Injectable(), __metadata('design:paramtypes', [Parser, ShadowDomStrategy, ViewLoader])], DefaultDomCompiler));
}
};
});
@@ -25564,25 +25867,23 @@ System.register("angular2/src/http/http", ["angular2/src/di/decorators", "angula
System.register("angular2/di", ["angular2/src/di/annotations", "angular2/src/di/decorators", "angular2/src/di/forward_ref", "angular2/src/di/injector", "angular2/src/di/binding", "angular2/src/di/key", "angular2/src/di/exceptions", "angular2/src/di/opaque_token"], function($__export) {
"use strict";
var __moduleName = "angular2/di";
- var $__exportNames = {undefined: true};
- var $__exportNames = {undefined: true};
- var $__exportNames = {undefined: true};
return {
setters: [function($__m) {
- Object.keys($__m).forEach(function(p) {
- if (!$__exportNames[p])
- $__export(p, $__m[p]);
- });
+ $__export("InjectAnnotation", $__m.InjectAnnotation);
+ $__export("InjectPromiseAnnotation", $__m.InjectPromiseAnnotation);
+ $__export("InjectLazyAnnotation", $__m.InjectLazyAnnotation);
+ $__export("OptionalAnnotation", $__m.OptionalAnnotation);
+ $__export("InjectableAnnotation", $__m.InjectableAnnotation);
+ $__export("DependencyAnnotation", $__m.DependencyAnnotation);
}, function($__m) {
- Object.keys($__m).forEach(function(p) {
- if (!$__exportNames[p])
- $__export(p, $__m[p]);
- });
+ $__export("Inject", $__m.Inject);
+ $__export("InjectPromise", $__m.InjectPromise);
+ $__export("InjectLazy", $__m.InjectLazy);
+ $__export("Optional", $__m.Optional);
+ $__export("Injectable", $__m.Injectable);
}, function($__m) {
- Object.keys($__m).forEach(function(p) {
- if (!$__exportNames[p])
- $__export(p, $__m[p]);
- });
+ $__export("forwardRef", $__m.forwardRef);
+ $__export("resolveForwardRef", $__m.resolveForwardRef);
}, function($__m) {
$__export("resolveBindings", $__m.resolveBindings);
$__export("Injector", $__m.Injector);
@@ -25640,7 +25941,6 @@ System.register("angular2/src/core/compiler/element_injector", ["angular2/src/fa
ViewContainerRef,
ElementRef,
ProtoViewRef,
- ViewRef,
Directive,
Component,
onChange,
@@ -25714,7 +26014,6 @@ System.register("angular2/src/core/compiler/element_injector", ["angular2/src/fa
ElementRef = $__m.ElementRef;
}, function($__m) {
ProtoViewRef = $__m.ProtoViewRef;
- ViewRef = $__m.ViewRef;
}, function($__m) {
Directive = $__m.Directive;
Component = $__m.Component;
@@ -25817,7 +26116,7 @@ System.register("angular2/src/core/compiler/element_injector", ["angular2/src/fa
var res = [];
var child = this._head;
while (child != null) {
- ListWrapper.push(res, child);
+ res.push(child);
child = child._next;
}
return res;
@@ -25903,7 +26202,7 @@ System.register("angular2/src/core/compiler/element_injector", ["angular2/src/fa
return isPresent(this.metadata) && isPresent(this.metadata.events) ? this.metadata.events : [];
},
get hostActions() {
- return isPresent(this.metadata) && isPresent(this.metadata.hostActions) ? this.metadata.hostActions : MapWrapper.create();
+ return isPresent(this.metadata) && isPresent(this.metadata.hostActions) ? this.metadata.hostActions : new Map();
},
get changeDetection() {
return this.metadata.changeDetection;
@@ -25941,7 +26240,7 @@ System.register("angular2/src/core/compiler/element_injector", ["angular2/src/fa
var readAttributes = [];
ListWrapper.forEach(deps, (function(dep) {
if (isPresent(dep.attributeName)) {
- ListWrapper.push(readAttributes, dep.attributeName);
+ readAttributes.push(dep.attributeName);
}
}));
return readAttributes;
@@ -25977,15 +26276,15 @@ System.register("angular2/src/core/compiler/element_injector", ["angular2/src/fa
}());
$__export("EventEmitterAccessor", EventEmitterAccessor);
HostActionAccessor = (function() {
- function HostActionAccessor(actionExpression, getter) {
- this.actionExpression = actionExpression;
+ function HostActionAccessor(methodName, getter) {
+ this.methodName = methodName;
this.getter = getter;
}
return ($traceurRuntime.createClass)(HostActionAccessor, {subscribe: function(view, boundElementIndex, directive) {
var $__0 = this;
var eventEmitter = this.getter(directive);
- return ObservableWrapper.subscribe(eventEmitter, (function(actionObj) {
- return view.callAction(boundElementIndex, $__0.actionExpression, actionObj);
+ return ObservableWrapper.subscribe(eventEmitter, (function(actionArgs) {
+ return view.invokeElementMethod(boundElementIndex, $__0.methodName, actionArgs);
}));
}}, {});
}());
@@ -26025,7 +26324,7 @@ System.register("angular2/src/core/compiler/element_injector", ["angular2/src/fa
var res = [];
var db = this.binding;
MapWrapper.forEach(db.hostActions, (function(actionExpression, actionName) {
- ListWrapper.push(res, new HostActionAccessor(actionExpression, reflector.getter(actionName)));
+ res.push(new HostActionAccessor(actionExpression, reflector.getter(actionName)));
}));
return res;
}
@@ -26033,11 +26332,12 @@ System.register("angular2/src/core/compiler/element_injector", ["angular2/src/fa
}());
$__export("BindingData", BindingData);
ProtoElementInjector = (function() {
- function ProtoElementInjector(parent, index, bd, distanceToParent, _firstBindingIsComponent) {
+ function ProtoElementInjector(parent, index, bd, distanceToParent, _firstBindingIsComponent, directiveVariableBindings) {
this.parent = parent;
this.index = index;
this.distanceToParent = distanceToParent;
this._firstBindingIsComponent = _firstBindingIsComponent;
+ this.directiveVariableBindings = directiveVariableBindings;
var length = bd.length;
this.eventEmitterAccessors = ListWrapper.createFixedSize(length);
this.hostActionAccessors = ListWrapper.createFixedSize(length);
@@ -26057,29 +26357,24 @@ System.register("angular2/src/core/compiler/element_injector", ["angular2/src/fa
return this._strategy.getBindingAtIndex(index);
}
}, {
- create: function(parent, index, bindings, firstBindingIsComponent, distanceToParent) {
+ create: function(parent, index, bindings, firstBindingIsComponent, distanceToParent, directiveVariableBindings) {
var bd = [];
ProtoElementInjector._createDirectiveBindingData(bindings, bd, firstBindingIsComponent);
if (firstBindingIsComponent) {
ProtoElementInjector._createViewInjectorBindingData(bindings, bd);
}
ProtoElementInjector._createHostInjectorBindingData(bindings, bd, firstBindingIsComponent);
- return new ProtoElementInjector(parent, index, bd, distanceToParent, firstBindingIsComponent);
+ return new ProtoElementInjector(parent, index, bd, distanceToParent, firstBindingIsComponent, directiveVariableBindings);
},
_createDirectiveBindingData: function(dirBindings, bd, firstBindingIsComponent) {
ListWrapper.forEach(dirBindings, (function(dirBinding) {
- ListWrapper.push(bd, ProtoElementInjector._createBindingData(firstBindingIsComponent, dirBinding, dirBindings, dirBinding));
+ bd.push(ProtoElementInjector._createBindingData(firstBindingIsComponent, dirBinding, dirBindings, dirBinding));
}));
},
_createHostInjectorBindingData: function(dirBindings, bd, firstBindingIsComponent) {
- var visitedIds = MapWrapper.create();
ListWrapper.forEach(dirBindings, (function(dirBinding) {
ListWrapper.forEach(dirBinding.resolvedHostInjectables, (function(b) {
- if (MapWrapper.contains(visitedIds, b.key.id)) {
- throw new BaseException(("Multiple directives defined the same host injectable: \"" + stringify(b.key.token) + "\""));
- }
- MapWrapper.set(visitedIds, b.key.id, true);
- ListWrapper.push(bd, ProtoElementInjector._createBindingData(firstBindingIsComponent, dirBinding, dirBindings, ProtoElementInjector._createBinding(b)));
+ bd.push(ProtoElementInjector._createBindingData(firstBindingIsComponent, dirBinding, dirBindings, ProtoElementInjector._createBinding(b)));
}));
}));
},
@@ -26090,7 +26385,7 @@ System.register("angular2/src/core/compiler/element_injector", ["angular2/src/fa
_createViewInjectorBindingData: function(bindings, bd) {
var db = bindings[0];
ListWrapper.forEach(db.resolvedViewInjectables, (function(b) {
- return ListWrapper.push(bd, new BindingData(ProtoElementInjector._createBinding(b), SHADOW_DOM));
+ return bd.push(new BindingData(ProtoElementInjector._createBinding(b), SHADOW_DOM));
}));
},
_createBinding: function(b) {
@@ -26289,24 +26584,19 @@ System.register("angular2/src/core/compiler/element_injector", ["angular2/src/fa
this._lightDomAppInjector = null;
this._shadowDomAppInjector = null;
this._strategy.callOnDestroy();
- this.destroyDynamicComponent();
this._strategy.clearInstances();
this._constructionCounter = 0;
},
- destroyDynamicComponent: function() {
- if (isPresent(this._dynamicallyCreatedComponentBinding) && this._dynamicallyCreatedComponentBinding.callOnDestroy) {
- this._dynamicallyCreatedComponent.onDestroy();
- this._dynamicallyCreatedComponentBinding = null;
- this._dynamicallyCreatedComponent = null;
- }
- },
onAllChangesDone: function() {
- if (isPresent(this._query0) && this._query0.originator === this)
+ if (isPresent(this._query0) && this._query0.originator === this) {
this._query0.list.fireCallbacks();
- if (isPresent(this._query1) && this._query1.originator === this)
+ }
+ if (isPresent(this._query1) && this._query1.originator === this) {
this._query1.list.fireCallbacks();
- if (isPresent(this._query2) && this._query2.originator === this)
+ }
+ if (isPresent(this._query2) && this._query2.originator === this) {
this._query2.list.fireCallbacks();
+ }
},
hydrate: function(injector, host, preBuiltObjects) {
var p = this._proto;
@@ -26318,8 +26608,17 @@ System.register("angular2/src/core/compiler/element_injector", ["angular2/src/fa
}
this._checkShadowDomAppInjector(this._shadowDomAppInjector);
this._strategy.hydrate();
+ this._addVarBindingsToQueries();
this.hydrated = true;
},
+ hasVariableBinding: function(name) {
+ var vb = this._proto.directiveVariableBindings;
+ return isPresent(vb) && vb.has(name);
+ },
+ getVariableBinding: function(name) {
+ var index = this._proto.directiveVariableBindings.get(name);
+ return isPresent(index) ? this.getDirectiveAtIndex(index) : this.getElementRef();
+ },
_createShadowDomAppInjector: function(componentDirective, appInjector) {
if (!ListWrapper.isEmpty(componentDirective.resolvedAppInjectables)) {
return appInjector.createChildFromResolved(componentDirective.resolvedAppInjectables);
@@ -26327,12 +26626,6 @@ System.register("angular2/src/core/compiler/element_injector", ["angular2/src/fa
return appInjector;
}
},
- dynamicallyCreateComponent: function(componentDirective, parentInjector) {
- this._shadowDomAppInjector = this._createShadowDomAppInjector(componentDirective, parentInjector);
- this._dynamicallyCreatedComponentBinding = componentDirective;
- this._dynamicallyCreatedComponent = this._new(this._dynamicallyCreatedComponentBinding);
- return this._dynamicallyCreatedComponent;
- },
_checkShadowDomAppInjector: function(shadowDomAppInjector) {
if (this._proto._firstBindingIsComponent && isBlank(shadowDomAppInjector)) {
throw new BaseException('A shadowDomAppInjector is required as this ElementInjector contains a component');
@@ -26341,14 +26634,8 @@ System.register("angular2/src/core/compiler/element_injector", ["angular2/src/fa
}
},
get: function(token) {
- if (this._isDynamicallyLoadedComponent(token)) {
- return this._dynamicallyCreatedComponent;
- }
return this._getByKey(Key.get(token), self, false, null);
},
- _isDynamicallyLoadedComponent: function(token) {
- return isPresent(this._dynamicallyCreatedComponentBinding) && Key.get(token) === this._dynamicallyCreatedComponentBinding.key;
- },
hasDirective: function(type) {
return this._strategy.getObjByKeyId(Key.get(type).id, LIGHT_DOM_AND_SHADOW_DOM) !== _undefined;
},
@@ -26358,27 +26645,24 @@ System.register("angular2/src/core/compiler/element_injector", ["angular2/src/fa
getHostActionAccessors: function() {
return this._proto.hostActionAccessors;
},
+ getDirectiveVariableBindings: function() {
+ return this._proto.directiveVariableBindings;
+ },
getComponent: function() {
return this._strategy.getComponent();
},
getElementRef: function() {
- return new ElementRef(new ViewRef(this._preBuiltObjects.view), this._proto.index);
+ return this._preBuiltObjects.view.elementRefs[this._proto.index];
},
getViewContainerRef: function() {
return new ViewContainerRef(this._preBuiltObjects.viewManager, this.getElementRef());
},
- getDynamicallyLoadedComponent: function() {
- return this._dynamicallyCreatedComponent;
- },
directParent: function() {
return this._proto.distanceToParent < 2 ? this.parent : null;
},
_isComponentKey: function(key) {
return this._strategy.isComponentKey(key);
},
- _isDynamicallyLoadedComponentKey: function(key) {
- return isPresent(this._dynamicallyCreatedComponentBinding) && key.id === this._dynamicallyCreatedComponentBinding.key.id;
- },
_new: function(binding) {
if (this._constructionCounter++ > this._strategy.getMaxDirectives()) {
throw new CyclicDependencyError(binding.key);
@@ -26483,8 +26767,8 @@ System.register("angular2/src/core/compiler/element_injector", ["angular2/src/fa
},
_buildAttribute: function(dep) {
var attributes = this._proto.attributes;
- if (isPresent(attributes) && MapWrapper.contains(attributes, dep.attributeName)) {
- return MapWrapper.get(attributes, dep.attributeName);
+ if (isPresent(attributes) && attributes.has(dep.attributeName)) {
+ return attributes.get(dep.attributeName);
} else {
return null;
}
@@ -26497,6 +26781,21 @@ System.register("angular2/src/core/compiler/element_injector", ["angular2/src/fa
}
}
},
+ _addVarBindingsToQueries: function() {
+ this._addVarBindingsToQuery(this._query0);
+ this._addVarBindingsToQuery(this._query1);
+ this._addVarBindingsToQuery(this._query2);
+ },
+ _addVarBindingsToQuery: function(queryRef) {
+ if (isBlank(queryRef) || !queryRef.query.isVarBindingQuery)
+ return ;
+ var vb = queryRef.query.varBindings;
+ for (var i = 0; i < vb.length; ++i) {
+ if (this.hasVariableBinding(vb[i])) {
+ queryRef.list.add(this.getVariableBinding(vb[i]));
+ }
+ }
+ },
_createQueryRef: function(query) {
var queryList = new QueryList();
if (isBlank(this._query0)) {
@@ -26509,16 +26808,19 @@ System.register("angular2/src/core/compiler/element_injector", ["angular2/src/fa
throw new QueryError();
},
_addToQueries: function(obj, token) {
- if (isPresent(this._query0) && (this._query0.query.directive === token)) {
+ if (isPresent(this._query0) && (this._query0.query.selector === token)) {
this._query0.list.add(obj);
}
- if (isPresent(this._query1) && (this._query1.query.directive === token)) {
+ if (isPresent(this._query1) && (this._query1.query.selector === token)) {
this._query1.list.add(obj);
}
- if (isPresent(this._query2) && (this._query2.query.directive === token)) {
+ if (isPresent(this._query2) && (this._query2.query.selector === token)) {
this._query2.list.add(obj);
}
},
+ addDirectivesMatchingQuery: function(query, list) {
+ this._strategy.addDirectivesMatchingQuery(query, list);
+ },
_buildQueries: function() {
if (isPresent(this._proto)) {
this._strategy.buildQueries();
@@ -26570,15 +26872,15 @@ System.register("angular2/src/core/compiler/element_injector", ["angular2/src/fa
var queriesToUpdate = [];
if (isPresent(this.parent._query0)) {
this._pruneQueryFromTree(this.parent._query0);
- ListWrapper.push(queriesToUpdate, this.parent._query0);
+ queriesToUpdate.push(this.parent._query0);
}
if (isPresent(this.parent._query1)) {
this._pruneQueryFromTree(this.parent._query1);
- ListWrapper.push(queriesToUpdate, this.parent._query1);
+ queriesToUpdate.push(this.parent._query1);
}
if (isPresent(this.parent._query2)) {
this._pruneQueryFromTree(this.parent._query2);
- ListWrapper.push(queriesToUpdate, this.parent._query2);
+ queriesToUpdate.push(this.parent._query2);
}
this.remove();
ListWrapper.forEach(queriesToUpdate, (function(q) {
@@ -26597,7 +26899,7 @@ System.register("angular2/src/core/compiler/element_injector", ["angular2/src/fa
if (queryRef.query.descendants == false) {
if (this == queryRef.originator) {
this._addQueryToTreeSelfAndRecurse(queryRef);
- } else if (this.parent == queryRef.originator && this._proto.distanceToParent == 1) {
+ } else if (this.parent == queryRef.originator) {
this._assignQueryRef(queryRef);
}
} else {
@@ -26665,8 +26967,6 @@ System.register("angular2/src/core/compiler/element_injector", ["angular2/src/fa
}
if (isPresent(this._host) && this._host._isComponentKey(key)) {
return this._host.getComponent();
- } else if (isPresent(this._host) && this._host._isDynamicallyLoadedComponentKey(key)) {
- return this._host.getDynamicallyLoadedComponent();
} else if (optional) {
return this._appInjector(requestor).getOptional(key);
} else {
@@ -26674,7 +26974,7 @@ System.register("angular2/src/core/compiler/element_injector", ["angular2/src/fa
}
},
_appInjector: function(requestor) {
- if (isPresent(requestor) && (this._isComponentKey(requestor) || this._isDynamicallyLoadedComponentKey(requestor))) {
+ if (isPresent(requestor) && this._isComponentKey(requestor)) {
return this._shadowDomAppInjector;
} else {
return this._lightDomAppInjector;
@@ -26773,26 +27073,27 @@ System.register("angular2/src/core/compiler/element_injector", ["angular2/src/fa
},
hydrate: function() {
var p = this._protoStrategy;
- if (isPresent(p._keyId0))
- this.getObjByKeyId(p._keyId0, LIGHT_DOM_AND_SHADOW_DOM);
- if (isPresent(p._keyId1))
- this.getObjByKeyId(p._keyId1, LIGHT_DOM_AND_SHADOW_DOM);
- if (isPresent(p._keyId2))
- this.getObjByKeyId(p._keyId2, LIGHT_DOM_AND_SHADOW_DOM);
- if (isPresent(p._keyId3))
- this.getObjByKeyId(p._keyId3, LIGHT_DOM_AND_SHADOW_DOM);
- if (isPresent(p._keyId4))
- this.getObjByKeyId(p._keyId4, LIGHT_DOM_AND_SHADOW_DOM);
- if (isPresent(p._keyId5))
- this.getObjByKeyId(p._keyId5, LIGHT_DOM_AND_SHADOW_DOM);
- if (isPresent(p._keyId6))
- this.getObjByKeyId(p._keyId6, LIGHT_DOM_AND_SHADOW_DOM);
- if (isPresent(p._keyId7))
- this.getObjByKeyId(p._keyId7, LIGHT_DOM_AND_SHADOW_DOM);
- if (isPresent(p._keyId8))
- this.getObjByKeyId(p._keyId8, LIGHT_DOM_AND_SHADOW_DOM);
- if (isPresent(p._keyId9))
- this.getObjByKeyId(p._keyId9, LIGHT_DOM_AND_SHADOW_DOM);
+ var e = this._ei;
+ if (isPresent(p._keyId0) && isBlank(this._obj0))
+ this._obj0 = e._new(p._binding0);
+ if (isPresent(p._keyId1) && isBlank(this._obj1))
+ this._obj1 = e._new(p._binding1);
+ if (isPresent(p._keyId2) && isBlank(this._obj2))
+ this._obj2 = e._new(p._binding2);
+ if (isPresent(p._keyId3) && isBlank(this._obj3))
+ this._obj3 = e._new(p._binding3);
+ if (isPresent(p._keyId4) && isBlank(this._obj4))
+ this._obj4 = e._new(p._binding4);
+ if (isPresent(p._keyId5) && isBlank(this._obj5))
+ this._obj5 = e._new(p._binding5);
+ if (isPresent(p._keyId6) && isBlank(this._obj6))
+ this._obj6 = e._new(p._binding6);
+ if (isPresent(p._keyId7) && isBlank(this._obj7))
+ this._obj7 = e._new(p._binding7);
+ if (isPresent(p._keyId8) && isBlank(this._obj8))
+ this._obj8 = e._new(p._binding8);
+ if (isPresent(p._keyId9) && isBlank(this._obj9))
+ this._obj9 = e._new(p._binding9);
},
getComponent: function() {
return this._obj0;
@@ -26833,6 +27134,29 @@ System.register("angular2/src/core/compiler/element_injector", ["angular2/src/fa
this._ei._buildQueriesForDeps(p._binding9.dependencies);
}
},
+ addDirectivesMatchingQuery: function(query, list) {
+ var p = this._protoStrategy;
+ if (isPresent(p._binding0) && p._binding0.key.token === query.selector)
+ list.push(this._obj0);
+ if (isPresent(p._binding1) && p._binding1.key.token === query.selector)
+ list.push(this._obj1);
+ if (isPresent(p._binding2) && p._binding2.key.token === query.selector)
+ list.push(this._obj2);
+ if (isPresent(p._binding3) && p._binding3.key.token === query.selector)
+ list.push(this._obj3);
+ if (isPresent(p._binding4) && p._binding4.key.token === query.selector)
+ list.push(this._obj4);
+ if (isPresent(p._binding5) && p._binding5.key.token === query.selector)
+ list.push(this._obj5);
+ if (isPresent(p._binding6) && p._binding6.key.token === query.selector)
+ list.push(this._obj6);
+ if (isPresent(p._binding7) && p._binding7.key.token === query.selector)
+ list.push(this._obj7);
+ if (isPresent(p._binding8) && p._binding8.key.token === query.selector)
+ list.push(this._obj8);
+ if (isPresent(p._binding9) && p._binding9.key.token === query.selector)
+ list.push(this._obj9);
+ },
getObjByKeyId: function(keyId, visibility) {
var p = this._protoStrategy;
if (p._keyId0 === keyId && (p._visibility0 & visibility) > 0) {
@@ -26949,8 +27273,8 @@ System.register("angular2/src/core/compiler/element_injector", ["angular2/src/fa
hydrate: function() {
var p = this._protoStrategy;
for (var i = 0; i < p._keyIds.length; i++) {
- if (isPresent(p._keyIds[i])) {
- this.getObjByKeyId(p._keyIds[i], LIGHT_DOM_AND_SHADOW_DOM);
+ if (isPresent(p._keyIds[i]) && isBlank(this._objs[i])) {
+ this._objs[i] = this._ei._new(p._bindings[i]);
}
}
},
@@ -26968,6 +27292,13 @@ System.register("angular2/src/core/compiler/element_injector", ["angular2/src/fa
}
}
},
+ addDirectivesMatchingQuery: function(query, list) {
+ var p = this._protoStrategy;
+ for (var i = 0; i < p._bindings.length; i++) {
+ if (p._bindings[i].key.token === query.selector)
+ list.push(this._objs[i]);
+ }
+ },
getObjByKeyId: function(keyId, visibility) {
var p = this._protoStrategy;
for (var i = 0; i < p._keyIds.length; i++) {
@@ -27027,14 +27358,27 @@ System.register("angular2/src/core/compiler/element_injector", ["angular2/src/fa
visit: function(inj, aggregator) {
if (isBlank(inj) || !inj._hasQuery(this))
return ;
- if (inj.hasDirective(this.query.directive)) {
- ListWrapper.push(aggregator, inj.get(this.query.directive));
+ if (this.query.isVarBindingQuery) {
+ this._aggregateVariableBindings(inj, aggregator);
+ } else {
+ this._aggregateDirective(inj, aggregator);
}
var child = inj._head;
while (isPresent(child)) {
this.visit(child, aggregator);
child = child._next;
}
+ },
+ _aggregateVariableBindings: function(inj, aggregator) {
+ var vb = this.query.varBindings;
+ for (var i = 0; i < vb.length; ++i) {
+ if (inj.hasVariableBinding(vb[i])) {
+ aggregator.push(inj.getVariableBinding(vb[i]));
+ }
+ }
+ },
+ _aggregateDirective: function(inj, aggregator) {
+ inj.addDirectivesMatchingQuery(this.query, aggregator);
}
}, {});
}());
@@ -27042,7 +27386,7 @@ System.register("angular2/src/core/compiler/element_injector", ["angular2/src/fa
};
});
-System.register("angular2/http", ["angular2/di", "angular2/src/http/http", "angular2/src/http/backends/xhr_backend", "angular2/src/http/backends/browser_xhr", "angular2/src/http/base_request_options", "angular2/src/http/backends/mock_backend", "angular2/src/http/static_request", "angular2/src/http/static_response", "angular2/src/http/headers"], function($__export) {
+System.register("angular2/http", ["angular2/di", "angular2/src/http/http", "angular2/src/http/backends/xhr_backend", "angular2/src/http/backends/browser_xhr", "angular2/src/http/base_request_options", "angular2/src/http/backends/mock_backend", "angular2/src/http/static_request", "angular2/src/http/static_response", "angular2/src/http/headers", "angular2/src/http/enums", "angular2/src/http/url_search_params"], function($__export) {
"use strict";
var __moduleName = "angular2/http";
var bind,
@@ -27054,6 +27398,16 @@ System.register("angular2/http", ["angular2/di", "angular2/src/http/http", "angu
BaseRequestOptions,
RequestOptions,
httpInjectables;
+ var $__exportNames = {
+ Http: true,
+ XHRBackend: true,
+ XHRConnection: true,
+ BaseRequestOptions: true,
+ RequestOptions: true,
+ HttpFactory: true,
+ httpInjectables: true,
+ undefined: true
+ };
return {
setters: [function($__m) {
bind = $__m.bind;
@@ -27077,6 +27431,13 @@ System.register("angular2/http", ["angular2/di", "angular2/src/http/http", "angu
$__export("Response", $__m.Response);
}, function($__m) {
$__export("Headers", $__m.Headers);
+ }, function($__m) {
+ Object.keys($__m).forEach(function(p) {
+ if (!$__exportNames[p])
+ $__export(p, $__m[p]);
+ });
+ }, function($__m) {
+ $__export("URLSearchParams", $__m.URLSearchParams);
}],
execute: function() {
$__export("Http", Http), $__export("XHRBackend", XHRBackend), $__export("XHRConnection", XHRConnection), $__export("BaseRequestOptions", BaseRequestOptions), $__export("RequestOptions", RequestOptions), $__export("HttpFactory", HttpFactory);
@@ -27265,7 +27626,7 @@ System.register("angular2/src/change_detection/change_detection", ["angular2/src
};
});
-System.register("angular2/src/core/compiler/compiler", ["angular2/di", "angular2/src/facade/lang", "angular2/src/facade/async", "angular2/src/facade/collection", "angular2/src/core/compiler/directive_resolver", "angular2/src/core/compiler/view_ref", "angular2/src/core/compiler/element_injector", "angular2/src/core/compiler/template_resolver", "angular2/src/core/compiler/component_url_mapper", "angular2/src/core/compiler/proto_view_factory", "angular2/src/services/url_resolver", "angular2/src/render/api"], function($__export) {
+System.register("angular2/src/core/compiler/compiler", ["angular2/di", "angular2/src/facade/lang", "angular2/src/facade/async", "angular2/src/facade/collection", "angular2/src/core/compiler/directive_resolver", "angular2/src/core/compiler/view_ref", "angular2/src/core/compiler/element_injector", "angular2/src/core/compiler/view_resolver", "angular2/src/core/compiler/component_url_mapper", "angular2/src/core/compiler/proto_view_factory", "angular2/src/services/url_resolver", "angular2/src/services/app_root_url", "angular2/src/render/api"], function($__export) {
"use strict";
var __moduleName = "angular2/src/core/compiler/compiler";
var __decorate,
@@ -27283,14 +27644,16 @@ System.register("angular2/src/core/compiler/compiler", ["angular2/di", "angular2
isPromise,
PromiseWrapper,
ListWrapper,
+ Map,
MapWrapper,
DirectiveResolver,
ProtoViewRef,
DirectiveBinding,
- TemplateResolver,
+ ViewResolver,
ComponentUrlMapper,
ProtoViewFactory,
UrlResolver,
+ AppRootUrl,
renderApi,
CompilerCache,
Compiler;
@@ -27312,6 +27675,7 @@ System.register("angular2/src/core/compiler/compiler", ["angular2/di", "angular2
PromiseWrapper = $__m.PromiseWrapper;
}, function($__m) {
ListWrapper = $__m.ListWrapper;
+ Map = $__m.Map;
MapWrapper = $__m.MapWrapper;
}, function($__m) {
DirectiveResolver = $__m.DirectiveResolver;
@@ -27320,13 +27684,15 @@ System.register("angular2/src/core/compiler/compiler", ["angular2/di", "angular2
}, function($__m) {
DirectiveBinding = $__m.DirectiveBinding;
}, function($__m) {
- TemplateResolver = $__m.TemplateResolver;
+ ViewResolver = $__m.ViewResolver;
}, function($__m) {
ComponentUrlMapper = $__m.ComponentUrlMapper;
}, function($__m) {
ProtoViewFactory = $__m.ProtoViewFactory;
}, function($__m) {
UrlResolver = $__m.UrlResolver;
+ }, function($__m) {
+ AppRootUrl = $__m.AppRootUrl;
}, function($__m) {
renderApi = $__m;
}],
@@ -27354,29 +27720,38 @@ System.register("angular2/src/core/compiler/compiler", ["angular2/di", "angular2
return Reflect.metadata(k, v);
};
CompilerCache = (($traceurRuntime.createClass)(function() {
- this._cache = MapWrapper.create();
+ this._cache = new Map();
+ this._hostCache = new Map();
}, {
set: function(component, protoView) {
- MapWrapper.set(this._cache, component, protoView);
+ this._cache.set(component, protoView);
},
get: function(component) {
- var result = MapWrapper.get(this._cache, component);
+ var result = this._cache.get(component);
+ return normalizeBlank(result);
+ },
+ setHost: function(component, protoView) {
+ this._hostCache.set(component, protoView);
+ },
+ getHost: function(component) {
+ var result = this._hostCache.get(component);
return normalizeBlank(result);
},
clear: function() {
- MapWrapper.clear(this._cache);
+ this._cache.clear();
+ this._hostCache.clear();
}
}, {}));
$__export("CompilerCache", CompilerCache);
$__export("CompilerCache", CompilerCache = __decorate([Injectable(), __metadata('design:paramtypes', [])], CompilerCache));
- Compiler = (($traceurRuntime.createClass)(function(reader, cache, templateResolver, componentUrlMapper, urlResolver, render, protoViewFactory) {
+ Compiler = (($traceurRuntime.createClass)(function(reader, cache, viewResolver, componentUrlMapper, urlResolver, render, protoViewFactory, appUrl) {
this._reader = reader;
this._compilerCache = cache;
- this._compiling = MapWrapper.create();
- this._templateResolver = templateResolver;
+ this._compiling = new Map();
+ this._viewResolver = viewResolver;
this._componentUrlMapper = componentUrlMapper;
this._urlResolver = urlResolver;
- this._appUrl = urlResolver.resolve(null, './');
+ this._appUrl = appUrl.value;
this._render = render;
this._protoViewFactory = protoViewFactory;
}, {
@@ -27396,19 +27771,18 @@ System.register("angular2/src/core/compiler/compiler", ["angular2/di", "angular2
var componentBinding = this._bindDirective(componentTypeOrBinding);
Compiler._assertTypeIsComponent(componentBinding);
var directiveMetadata = componentBinding.metadata;
- return this._render.compileHost(directiveMetadata).then((function(hostRenderPv) {
- return $__0._compileNestedProtoViews(componentBinding, hostRenderPv, [componentBinding]);
- })).then((function(appProtoView) {
- return new ProtoViewRef(appProtoView);
- }));
- },
- compile: function(component) {
- var componentBinding = this._bindDirective(component);
- Compiler._assertTypeIsComponent(componentBinding);
- var pvOrPromise = this._compile(componentBinding);
- var pvPromise = isPromise(pvOrPromise) ? pvOrPromise : PromiseWrapper.resolve(pvOrPromise);
- return pvPromise.then((function(appProtoView) {
- return new ProtoViewRef(appProtoView);
+ var hostPvPromise;
+ var component = componentBinding.key.token;
+ var hostAppProtoView = this._compilerCache.getHost(component);
+ if (isPresent(hostAppProtoView)) {
+ hostPvPromise = PromiseWrapper.resolve(hostAppProtoView);
+ } else {
+ hostPvPromise = this._render.compileHost(directiveMetadata).then((function(hostRenderPv) {
+ return $__0._compileNestedProtoViews(componentBinding, hostRenderPv, [componentBinding]);
+ }));
+ }
+ return hostPvPromise.then((function(hostAppProtoView) {
+ return new ProtoViewRef(hostAppProtoView);
}));
},
_compile: function(componentBinding) {
@@ -27418,15 +27792,12 @@ System.register("angular2/src/core/compiler/compiler", ["angular2/di", "angular2
if (isPresent(protoView)) {
return protoView;
}
- var pvPromise = MapWrapper.get(this._compiling, component);
+ var pvPromise = this._compiling.get(component);
if (isPresent(pvPromise)) {
return pvPromise;
}
- var template = this._templateResolver.resolve(component);
- if (isBlank(template)) {
- return null;
- }
- var directives = this._flattenDirectives(template);
+ var view = this._viewResolver.resolve(component);
+ var directives = this._flattenDirectives(view);
for (var i = 0; i < directives.length; i++) {
if (!Compiler._isValidDirective(directives[i])) {
throw new BaseException(("Unexpected directive value '" + stringify(directives[i]) + "' on the View of component '" + stringify(component) + "'"));
@@ -27435,21 +27806,25 @@ System.register("angular2/src/core/compiler/compiler", ["angular2/di", "angular2
var boundDirectives = ListWrapper.map(directives, (function(directive) {
return $__0._bindDirective(directive);
}));
- var renderTemplate = this._buildRenderTemplate(component, template, boundDirectives);
+ var renderTemplate = this._buildRenderTemplate(component, view, boundDirectives);
pvPromise = this._render.compile(renderTemplate).then((function(renderPv) {
return $__0._compileNestedProtoViews(componentBinding, renderPv, boundDirectives);
}));
- MapWrapper.set(this._compiling, component, pvPromise);
+ this._compiling.set(component, pvPromise);
return pvPromise;
},
_compileNestedProtoViews: function(componentBinding, renderPv, directives) {
var $__0 = this;
var protoViews = this._protoViewFactory.createAppProtoViews(componentBinding, renderPv, directives);
var protoView = protoViews[0];
- if (renderPv.type === renderApi.ViewType.COMPONENT && isPresent(componentBinding)) {
+ if (isPresent(componentBinding)) {
var component = componentBinding.key.token;
- this._compilerCache.set(component, protoView);
- MapWrapper.delete(this._compiling, component);
+ if (renderPv.type === renderApi.ViewType.COMPONENT) {
+ this._compilerCache.set(component, protoView);
+ MapWrapper.delete(this._compiling, component);
+ } else {
+ this._compilerCache.setHost(component, protoView);
+ }
}
var nestedPVPromises = [];
ListWrapper.forEach(this._collectComponentElementBinders(protoViews), (function(elementBinder) {
@@ -27459,8 +27834,8 @@ System.register("angular2/src/core/compiler/compiler", ["angular2/di", "angular2
});
var nestedCall = $__0._compile(nestedComponent);
if (isPromise(nestedCall)) {
- ListWrapper.push(nestedPVPromises, nestedCall.then(elementBinderDone));
- } else if (isPresent(nestedCall)) {
+ nestedPVPromises.push(nestedCall.then(elementBinderDone));
+ } else {
elementBinderDone(nestedCall);
}
}));
@@ -27477,7 +27852,7 @@ System.register("angular2/src/core/compiler/compiler", ["angular2/di", "angular2
ListWrapper.forEach(protoViews, (function(protoView) {
ListWrapper.forEach(protoView.elementBinders, (function(elementBinder) {
if (isPresent(elementBinder.componentDirective)) {
- ListWrapper.push(componentElementBinders, elementBinder);
+ componentElementBinders.push(elementBinder);
}
}));
}));
@@ -27522,7 +27897,7 @@ System.register("angular2/src/core/compiler/compiler", ["angular2/di", "angular2
if (isArray(item)) {
this._flattenList(item, out);
} else {
- ListWrapper.push(out, item);
+ out.push(item);
}
}
}
@@ -27537,7 +27912,7 @@ System.register("angular2/src/core/compiler/compiler", ["angular2/di", "angular2
}
}));
$__export("Compiler", Compiler);
- $__export("Compiler", Compiler = __decorate([Injectable(), __metadata('design:paramtypes', [DirectiveResolver, CompilerCache, TemplateResolver, ComponentUrlMapper, UrlResolver, renderApi.RenderCompiler, ProtoViewFactory])], Compiler));
+ $__export("Compiler", Compiler = __decorate([Injectable(), __metadata('design:paramtypes', [DirectiveResolver, CompilerCache, ViewResolver, ComponentUrlMapper, UrlResolver, renderApi.RenderCompiler, ProtoViewFactory, AppRootUrl])], Compiler));
}
};
});
@@ -27564,9 +27939,6 @@ System.register("angular2/change_detection", ["angular2/src/change_detection/par
$__export("ExpressionChangedAfterItHasBeenChecked", $__m.ExpressionChangedAfterItHasBeenChecked);
$__export("ChangeDetectionError", $__m.ChangeDetectionError);
}, function($__m) {
- $__export("ProtoChangeDetector", $__m.ProtoChangeDetector);
- $__export("ChangeDispatcher", $__m.ChangeDispatcher);
- $__export("ChangeDetector", $__m.ChangeDetector);
$__export("ChangeDetection", $__m.ChangeDetection);
$__export("ChangeDetectorDefinition", $__m.ChangeDetectorDefinition);
}, function($__m) {
@@ -27593,8 +27965,7 @@ System.register("angular2/change_detection", ["angular2/src/change_detection/par
$__export("uninitialized", $__m.uninitialized);
}, function($__m) {
$__export("WrappedValue", $__m.WrappedValue);
- $__export("Pipe", $__m.Pipe);
- $__export("PipeFactory", $__m.PipeFactory);
+ $__export("BasePipe", $__m.BasePipe);
}, function($__m) {
$__export("NullPipe", $__m.NullPipe);
$__export("NullPipeFactory", $__m.NullPipeFactory);
@@ -27610,7 +27981,7 @@ System.register("angular2/change_detection", ["angular2/src/change_detection/par
};
});
-System.register("angular2/src/core/application", ["angular2/di", "angular2/src/facade/lang", "angular2/src/dom/browser_adapter", "angular2/src/dom/dom_adapter", "angular2/src/core/compiler/compiler", "angular2/src/reflection/reflection", "angular2/change_detection", "angular2/src/core/exception_handler", "angular2/src/render/dom/compiler/template_loader", "angular2/src/core/compiler/template_resolver", "angular2/src/core/compiler/directive_resolver", "angular2/src/facade/collection", "angular2/src/facade/async", "angular2/src/core/zone/ng_zone", "angular2/src/core/life_cycle/life_cycle", "angular2/src/render/dom/shadow_dom/shadow_dom_strategy", "angular2/src/render/dom/shadow_dom/emulated_unscoped_shadow_dom_strategy", "angular2/src/render/xhr", "angular2/src/render/xhr_impl", "angular2/src/render/dom/events/event_manager", "angular2/src/render/dom/events/key_events", "angular2/src/render/dom/events/hammer_gestures", "angular2/src/core/compiler/component_url_mapper", "angular2/src/services/url_resolver", "angular2/src/render/dom/shadow_dom/style_url_resolver", "angular2/src/render/dom/shadow_dom/style_inliner", "angular2/src/core/compiler/dynamic_component_loader", "angular2/src/core/testability/testability", "angular2/src/core/compiler/view_pool", "angular2/src/core/compiler/view_manager", "angular2/src/core/compiler/view_manager_utils", "angular2/src/core/compiler/view_listener", "angular2/src/core/compiler/proto_view_factory", "angular2/src/render/api", "angular2/src/render/dom/dom_renderer", "angular2/src/render/dom/view/view", "angular2/src/render/dom/compiler/compiler", "angular2/src/core/compiler/view_ref", "angular2/src/core/application_tokens"], function($__export) {
+System.register("angular2/src/core/application", ["angular2/di", "angular2/src/facade/lang", "angular2/src/dom/browser_adapter", "angular2/src/dom/dom_adapter", "angular2/src/core/compiler/compiler", "angular2/src/reflection/reflection", "angular2/change_detection", "angular2/src/core/exception_handler", "angular2/src/render/dom/compiler/view_loader", "angular2/src/render/dom/compiler/style_url_resolver", "angular2/src/render/dom/compiler/style_inliner", "angular2/src/core/compiler/view_resolver", "angular2/src/core/compiler/directive_resolver", "angular2/src/facade/collection", "angular2/src/facade/async", "angular2/src/core/zone/ng_zone", "angular2/src/core/life_cycle/life_cycle", "angular2/src/render/dom/shadow_dom/shadow_dom_strategy", "angular2/src/render/dom/shadow_dom/emulated_unscoped_shadow_dom_strategy", "angular2/src/render/xhr", "angular2/src/render/xhr_impl", "angular2/src/render/dom/events/event_manager", "angular2/src/render/dom/events/key_events", "angular2/src/render/dom/events/hammer_gestures", "angular2/src/core/compiler/component_url_mapper", "angular2/src/services/url_resolver", "angular2/src/services/app_root_url", "angular2/src/core/compiler/dynamic_component_loader", "angular2/src/core/testability/testability", "angular2/src/core/compiler/view_pool", "angular2/src/core/compiler/view_manager", "angular2/src/core/compiler/view_manager_utils", "angular2/src/core/compiler/view_listener", "angular2/src/core/compiler/proto_view_factory", "angular2/src/render/api", "angular2/src/render/dom/dom_renderer", "angular2/src/render/dom/compiler/compiler", "angular2/src/core/compiler/view_ref", "angular2/src/core/application_tokens"], function($__export) {
"use strict";
var __moduleName = "angular2/src/core/application";
var Injector,
@@ -27628,11 +27999,15 @@ System.register("angular2/src/core/application", ["angular2/di", "angular2/src/f
Lexer,
ChangeDetection,
DynamicChangeDetection,
+ JitChangeDetection,
+ PreGeneratedChangeDetection,
PipeRegistry,
defaultPipeRegistry,
ExceptionHandler,
- TemplateLoader,
- TemplateResolver,
+ ViewLoader,
+ StyleUrlResolver,
+ StyleInliner,
+ ViewResolver,
DirectiveResolver,
ListWrapper,
PromiseWrapper,
@@ -27648,8 +28023,7 @@ System.register("angular2/src/core/application", ["angular2/di", "angular2/src/f
HammerGesturesPlugin,
ComponentUrlMapper,
UrlResolver,
- StyleUrlResolver,
- StyleInliner,
+ AppRootUrl,
DynamicComponentLoader,
TestabilityRegistry,
Testability,
@@ -27663,7 +28037,6 @@ System.register("angular2/src/core/application", ["angular2/di", "angular2/src/f
RenderCompiler,
DomRenderer,
DOCUMENT_TOKEN,
- resolveInternalDomView,
DefaultDomCompiler,
internalView,
appComponentRefToken,
@@ -27673,10 +28046,14 @@ System.register("angular2/src/core/application", ["angular2/di", "angular2/src/f
ApplicationRef;
function _injectorBindings(appComponentType) {
var bestChangeDetection = DynamicChangeDetection;
+ if (PreGeneratedChangeDetection.isSupported()) {
+ bestChangeDetection = PreGeneratedChangeDetection;
+ } else if (JitChangeDetection.isSupported()) {
+ bestChangeDetection = JitChangeDetection;
+ }
return [bind(DOCUMENT_TOKEN).toValue(DOM.defaultDoc()), bind(appComponentTypeToken).toValue(appComponentType), bind(appComponentRefToken).toAsyncFactory((function(dynamicComponentLoader, injector, testability, registry) {
return dynamicComponentLoader.loadAsRoot(appComponentType, null, injector).then((function(componentRef) {
- var domView = resolveInternalDomView(componentRef.hostView.render);
- registry.registerApplication(domView.boundElements[0].element, testability);
+ registry.registerApplication(componentRef.location.nativeElement, testability);
return componentRef;
}));
}), [DynamicComponentLoader, Injector, Testability, TestabilityRegistry]), bind(appComponentType).toFactory((function(ref) {
@@ -27686,9 +28063,9 @@ System.register("angular2/src/core/application", ["angular2/di", "angular2/src/f
}), [ExceptionHandler]), bind(EventManager).toFactory((function(ngZone) {
var plugins = [new HammerGesturesPlugin(), new KeyEventsPlugin(), new DomEventsPlugin()];
return new EventManager(plugins, ngZone);
- }), [NgZone]), bind(ShadowDomStrategy).toFactory((function(styleUrlResolver, doc) {
- return new EmulatedUnscopedShadowDomStrategy(styleUrlResolver, doc.head);
- }), [StyleUrlResolver, DOCUMENT_TOKEN]), DomRenderer, DefaultDomCompiler, bind(Renderer).toAlias(DomRenderer), bind(RenderCompiler).toAlias(DefaultDomCompiler), ProtoViewFactory, AppViewPool, bind(APP_VIEW_POOL_CAPACITY).toValue(10000), AppViewManager, AppViewManagerUtils, AppViewListener, Compiler, CompilerCache, TemplateResolver, bind(PipeRegistry).toValue(defaultPipeRegistry), bind(ChangeDetection).toClass(bestChangeDetection), TemplateLoader, DirectiveResolver, Parser, Lexer, ExceptionHandler, bind(XHR).toValue(new XHRImpl()), ComponentUrlMapper, UrlResolver, StyleUrlResolver, StyleInliner, DynamicComponentLoader, Testability];
+ }), [NgZone]), bind(ShadowDomStrategy).toFactory((function(doc) {
+ return new EmulatedUnscopedShadowDomStrategy(doc.head);
+ }), [DOCUMENT_TOKEN]), DomRenderer, DefaultDomCompiler, bind(Renderer).toAlias(DomRenderer), bind(RenderCompiler).toAlias(DefaultDomCompiler), ProtoViewFactory, AppViewPool, bind(APP_VIEW_POOL_CAPACITY).toValue(10000), AppViewManager, AppViewManagerUtils, AppViewListener, Compiler, CompilerCache, ViewResolver, bind(PipeRegistry).toValue(defaultPipeRegistry), bind(ChangeDetection).toClass(bestChangeDetection), ViewLoader, DirectiveResolver, Parser, Lexer, ExceptionHandler, bind(XHR).toValue(new XHRImpl()), ComponentUrlMapper, UrlResolver, StyleUrlResolver, StyleInliner, DynamicComponentLoader, Testability, AppRootUrl];
}
function _createNgZone(givenReporter) {
var defaultErrorReporter = (function(exception, stackTrace) {
@@ -27725,7 +28102,7 @@ System.register("angular2/src/core/application", ["angular2/di", "angular2/src/f
if (isBlank(_rootInjector))
_rootInjector = Injector.resolveAndCreate(_rootBindings);
var mergedBindings = isPresent(bindings) ? ListWrapper.concat(_injectorBindings(appComponentType), bindings) : _injectorBindings(appComponentType);
- ListWrapper.push(mergedBindings, bind(NgZone).toValue(zone));
+ mergedBindings.push(bind(NgZone).toValue(zone));
return _rootInjector.resolveAndCreateChild(mergedBindings);
}
$__export("bootstrap", bootstrap);
@@ -27752,14 +28129,20 @@ System.register("angular2/src/core/application", ["angular2/di", "angular2/src/f
Lexer = $__m.Lexer;
ChangeDetection = $__m.ChangeDetection;
DynamicChangeDetection = $__m.DynamicChangeDetection;
+ JitChangeDetection = $__m.JitChangeDetection;
+ PreGeneratedChangeDetection = $__m.PreGeneratedChangeDetection;
PipeRegistry = $__m.PipeRegistry;
defaultPipeRegistry = $__m.defaultPipeRegistry;
}, function($__m) {
ExceptionHandler = $__m.ExceptionHandler;
}, function($__m) {
- TemplateLoader = $__m.TemplateLoader;
+ ViewLoader = $__m.ViewLoader;
}, function($__m) {
- TemplateResolver = $__m.TemplateResolver;
+ StyleUrlResolver = $__m.StyleUrlResolver;
+ }, function($__m) {
+ StyleInliner = $__m.StyleInliner;
+ }, function($__m) {
+ ViewResolver = $__m.ViewResolver;
}, function($__m) {
DirectiveResolver = $__m.DirectiveResolver;
}, function($__m) {
@@ -27790,9 +28173,7 @@ System.register("angular2/src/core/application", ["angular2/di", "angular2/src/f
}, function($__m) {
UrlResolver = $__m.UrlResolver;
}, function($__m) {
- StyleUrlResolver = $__m.StyleUrlResolver;
- }, function($__m) {
- StyleInliner = $__m.StyleInliner;
+ AppRootUrl = $__m.AppRootUrl;
}, function($__m) {
DynamicComponentLoader = $__m.DynamicComponentLoader;
}, function($__m) {
@@ -27815,8 +28196,6 @@ System.register("angular2/src/core/application", ["angular2/di", "angular2/src/f
}, function($__m) {
DomRenderer = $__m.DomRenderer;
DOCUMENT_TOKEN = $__m.DOCUMENT_TOKEN;
- }, function($__m) {
- resolveInternalDomView = $__m.resolveInternalDomView;
}, function($__m) {
DefaultDomCompiler = $__m.DefaultDomCompiler;
}, function($__m) {
@@ -27931,7 +28310,7 @@ System.register("angular2/core", ["angular2/src/core/annotations/visibility", "a
};
});
-System.register("angular2/angular2", ["angular2/change_detection", "angular2/core", "angular2/annotations", "angular2/directives", "angular2/forms", "angular2/di", "angular2/http", "angular2/src/facade/async", "angular2/src/render/api", "angular2/src/render/dom/dom_renderer"], function($__export) {
+System.register("angular2/angular2", ["angular2/change_detection", "angular2/di", "angular2/core", "angular2/annotations", "angular2/directives", "angular2/forms", "angular2/http", "angular2/src/facade/async", "angular2/src/render/api", "angular2/src/render/dom/dom_renderer"], function($__export) {
"use strict";
var __moduleName = "angular2/angular2";
var $__exportNames = {undefined: true};
@@ -27939,15 +28318,54 @@ System.register("angular2/angular2", ["angular2/change_detection", "angular2/cor
var $__exportNames = {undefined: true};
var $__exportNames = {undefined: true};
var $__exportNames = {undefined: true};
- var $__exportNames = {undefined: true};
- var $__exportNames = {undefined: true};
- var $__exportNames = {undefined: true};
return {
setters: [function($__m) {
- Object.keys($__m).forEach(function(p) {
- if (!$__exportNames[p])
- $__export(p, $__m[p]);
- });
+ $__export("DehydratedException", $__m.DehydratedException);
+ $__export("ExpressionChangedAfterItHasBeenChecked", $__m.ExpressionChangedAfterItHasBeenChecked);
+ $__export("ChangeDetectionError", $__m.ChangeDetectionError);
+ $__export("ChangeDetection", $__m.ChangeDetection);
+ $__export("ON_PUSH", $__m.ON_PUSH);
+ $__export("DEFAULT", $__m.DEFAULT);
+ $__export("ChangeDetectorRef", $__m.ChangeDetectorRef);
+ $__export("PipeRegistry", $__m.PipeRegistry);
+ $__export("WrappedValue", $__m.WrappedValue);
+ $__export("NullPipe", $__m.NullPipe);
+ $__export("NullPipeFactory", $__m.NullPipeFactory);
+ $__export("defaultPipes", $__m.defaultPipes);
+ $__export("DynamicChangeDetection", $__m.DynamicChangeDetection);
+ $__export("JitChangeDetection", $__m.JitChangeDetection);
+ $__export("PreGeneratedChangeDetection", $__m.PreGeneratedChangeDetection);
+ $__export("preGeneratedProtoDetectors", $__m.preGeneratedProtoDetectors);
+ $__export("defaultPipeRegistry", $__m.defaultPipeRegistry);
+ $__export("DirectiveIndex", $__m.DirectiveIndex);
+ $__export("BindingRecord", $__m.BindingRecord);
+ $__export("Locals", $__m.Locals);
+ $__export("ChangeDetectorDefinition", $__m.ChangeDetectorDefinition);
+ $__export("BasePipe", $__m.BasePipe);
+ $__export("DirectiveRecord", $__m.DirectiveRecord);
+ }, function($__m) {
+ $__export("Inject", $__m.Inject);
+ $__export("InjectPromise", $__m.InjectPromise);
+ $__export("InjectLazy", $__m.InjectLazy);
+ $__export("Optional", $__m.Optional);
+ $__export("Injectable", $__m.Injectable);
+ $__export("forwardRef", $__m.forwardRef);
+ $__export("resolveForwardRef", $__m.resolveForwardRef);
+ $__export("Injector", $__m.Injector);
+ $__export("Binding", $__m.Binding);
+ $__export("bind", $__m.bind);
+ $__export("Key", $__m.Key);
+ $__export("NoBindingError", $__m.NoBindingError);
+ $__export("AbstractBindingError", $__m.AbstractBindingError);
+ $__export("AsyncBindingError", $__m.AsyncBindingError);
+ $__export("CyclicDependencyError", $__m.CyclicDependencyError);
+ $__export("InstantiationError", $__m.InstantiationError);
+ $__export("InvalidBindingError", $__m.InvalidBindingError);
+ $__export("NoAnnotationError", $__m.NoAnnotationError);
+ $__export("OpaqueToken", $__m.OpaqueToken);
+ $__export("ResolvedBinding", $__m.ResolvedBinding);
+ $__export("BindingBuilder", $__m.BindingBuilder);
+ $__export("Dependency", $__m.Dependency);
}, function($__m) {
Object.keys($__m).forEach(function(p) {
if (!$__exportNames[p])
@@ -27964,15 +28382,26 @@ System.register("angular2/angular2", ["angular2/change_detection", "angular2/cor
$__export(p, $__m[p]);
});
}, function($__m) {
- Object.keys($__m).forEach(function(p) {
- if (!$__exportNames[p])
- $__export(p, $__m[p]);
- });
- }, function($__m) {
- Object.keys($__m).forEach(function(p) {
- if (!$__exportNames[p])
- $__export(p, $__m[p]);
- });
+ $__export("AbstractControl", $__m.AbstractControl);
+ $__export("Control", $__m.Control);
+ $__export("ControlGroup", $__m.ControlGroup);
+ $__export("ControlArray", $__m.ControlArray);
+ $__export("NgControlName", $__m.NgControlName);
+ $__export("NgFormControl", $__m.NgFormControl);
+ $__export("NgModel", $__m.NgModel);
+ $__export("NgControl", $__m.NgControl);
+ $__export("NgControlGroup", $__m.NgControlGroup);
+ $__export("NgFormModel", $__m.NgFormModel);
+ $__export("NgForm", $__m.NgForm);
+ $__export("DefaultValueAccessor", $__m.DefaultValueAccessor);
+ $__export("CheckboxControlValueAccessor", $__m.CheckboxControlValueAccessor);
+ $__export("SelectControlValueAccessor", $__m.SelectControlValueAccessor);
+ $__export("formDirectives", $__m.formDirectives);
+ $__export("Validators", $__m.Validators);
+ $__export("NgValidator", $__m.NgValidator);
+ $__export("NgRequiredValidator", $__m.NgRequiredValidator);
+ $__export("FormBuilder", $__m.FormBuilder);
+ $__export("formInjectables", $__m.formInjectables);
}, function($__m) {
Object.keys($__m).forEach(function(p) {
if (!$__exportNames[p])
diff --git a/scripts/resources/angular2.js b/scripts/resources/angular2.js
index fff35bfc5f..c7f4fe5b83 100644
--- a/scripts/resources/angular2.js
+++ b/scripts/resources/angular2.js
@@ -7389,8 +7389,38 @@ System.register("angular2/src/facade/collection", ["angular2/src/facade/lang"],
}
}
}
+ function iterableToList(ii) {
+ var res = [];
+ var $__4 = true;
+ var $__5 = false;
+ var $__6 = undefined;
+ try {
+ for (var $__2 = void 0,
+ $__1 = (ii)[$traceurRuntime.toProperty(Symbol.iterator)](); !($__4 = ($__2 = $__1.next()).done); $__4 = true) {
+ var i = $__2.value;
+ {
+ res.push(i);
+ }
+ }
+ } catch ($__7) {
+ $__5 = true;
+ $__6 = $__7;
+ } finally {
+ try {
+ if (!$__4 && $__1.return != null) {
+ $__1.return();
+ }
+ } finally {
+ if ($__5) {
+ throw $__6;
+ }
+ }
+ }
+ return res;
+ }
$__export("isListLikeIterable", isListLikeIterable);
$__export("iterateListLike", iterateListLike);
+ $__export("iterableToList", iterableToList);
return {
setters: [function($__m) {
isJsObject = $__m.isJsObject;
@@ -7460,31 +7490,19 @@ System.register("angular2/src/facade/collection", ["angular2/src/facade/lang"],
MapWrapper = (function() {
function MapWrapper() {}
return ($traceurRuntime.createClass)(MapWrapper, {}, {
- create: function() {
- return new Map();
- },
clone: function(m) {
return createMapFromMap(m);
},
createFromStringMap: function(stringMap) {
- var result = MapWrapper.create();
+ var result = new Map();
for (var prop in stringMap) {
- MapWrapper.set(result, prop, stringMap[prop]);
+ result.set(prop, stringMap[prop]);
}
return result;
},
createFromPairs: function(pairs) {
return createMapFromPairs(pairs);
},
- get: function(m, k) {
- return m.get(k);
- },
- set: function(m, k, v) {
- m.set(k, v);
- },
- contains: function(m, k) {
- return m.has(k);
- },
forEach: function(m, fn) {
m.forEach(fn);
},
@@ -7494,9 +7512,6 @@ System.register("angular2/src/facade/collection", ["angular2/src/facade/lang"],
delete: function(m, k) {
m.delete(k);
},
- clear: function(m) {
- m.clear();
- },
clearValues: function(m) {
_clearValues(m);
},
@@ -7504,10 +7519,10 @@ System.register("angular2/src/facade/collection", ["angular2/src/facade/lang"],
return m;
},
keys: function(m) {
- return m.keys();
+ return Array.from(m.keys());
},
values: function(m) {
- return m.values();
+ return Array.from(m.values());
}
});
}());
@@ -7581,12 +7596,12 @@ System.register("angular2/src/facade/collection", ["angular2/src/facade/lang"],
ListWrapper = (function() {
function ListWrapper() {}
return ($traceurRuntime.createClass)(ListWrapper, {}, {
- create: function() {
- return new List();
- },
createFixedSize: function(size) {
return new List(size);
},
+ createGrowableSize: function(size) {
+ return new List(size);
+ },
get: function(m, k) {
return m[k];
},
@@ -7604,9 +7619,6 @@ System.register("angular2/src/facade/collection", ["angular2/src/facade/lang"],
fn(array[i]);
}
},
- push: function(array, el) {
- array.push(el);
- },
first: function(array) {
if (!array)
return null;
@@ -7940,21 +7952,21 @@ System.register("angular2/src/util/decorators", ["angular2/src/facade/lang"], fu
if (this instanceof annotationCls) {
return annotationInstance;
} else {
- var ParamDecorator = function(cls, unusedKey, index) {
- var parameters = Reflect.getMetadata('parameters', cls);
- parameters = parameters || [];
- while (parameters.length <= index) {
- parameters.push(null);
- }
- parameters[index] = parameters[index] || [];
- var annotationsForParam = parameters[index];
- annotationsForParam.push(annotationInstance);
- Reflect.defineMetadata('parameters', parameters, cls);
- return cls;
- };
ParamDecorator.annotation = annotationInstance;
return ParamDecorator;
}
+ function ParamDecorator(cls, unusedKey, index) {
+ var parameters = Reflect.getMetadata('parameters', cls);
+ parameters = parameters || [];
+ while (parameters.length <= index) {
+ parameters.push(null);
+ }
+ parameters[index] = parameters[index] || [];
+ var annotationsForParam = parameters[index];
+ annotationsForParam.push(annotationInstance);
+ Reflect.defineMetadata('parameters', parameters, cls);
+ return cls;
+ }
}
ParamDecoratorFactory.prototype = Object.create(annotationCls.prototype);
return ParamDecoratorFactory;
@@ -8197,7 +8209,7 @@ System.register("angular2/src/change_detection/parser/locals", ["angular2/src/fa
}
return ($traceurRuntime.createClass)(Locals, {
contains: function(name) {
- if (MapWrapper.contains(this.current, name)) {
+ if (this.current.has(name)) {
return true;
}
if (isPresent(this.parent)) {
@@ -8206,8 +8218,8 @@ System.register("angular2/src/change_detection/parser/locals", ["angular2/src/fa
return false;
},
get: function(name) {
- if (MapWrapper.contains(this.current, name)) {
- return MapWrapper.get(this.current, name);
+ if (this.current.has(name)) {
+ return this.current.get(name);
}
if (isPresent(this.parent)) {
return this.parent.get(name);
@@ -8215,8 +8227,8 @@ System.register("angular2/src/change_detection/parser/locals", ["angular2/src/fa
throw new BaseException(("Cannot find '" + name + "'"));
},
set: function(name, value) {
- if (MapWrapper.contains(this.current, name)) {
- MapWrapper.set(this.current, name, value);
+ if (this.current.has(name)) {
+ this.current.set(name, value);
} else {
throw new BaseException(("Setting of new keys post-construction is not supported. Key: " + name + "."));
}
@@ -8279,21 +8291,11 @@ System.register("angular2/src/change_detection/exceptions", ["angular2/src/facad
System.register("angular2/src/change_detection/interfaces", [], function($__export) {
"use strict";
var __moduleName = "angular2/src/change_detection/interfaces";
- var ProtoChangeDetector,
- ChangeDetection,
- ChangeDispatcher,
- ChangeDetector,
+ var ChangeDetection,
ChangeDetectorDefinition;
return {
setters: [],
execute: function() {
- ProtoChangeDetector = (function() {
- function ProtoChangeDetector() {}
- return ($traceurRuntime.createClass)(ProtoChangeDetector, {instantiate: function(dispatcher) {
- return null;
- }}, {});
- }());
- $__export("ProtoChangeDetector", ProtoChangeDetector);
ChangeDetection = (function() {
function ChangeDetection() {}
return ($traceurRuntime.createClass)(ChangeDetection, {createProtoChangeDetector: function(definition) {
@@ -8301,27 +8303,6 @@ System.register("angular2/src/change_detection/interfaces", [], function($__expo
}}, {});
}());
$__export("ChangeDetection", ChangeDetection);
- ChangeDispatcher = (function() {
- function ChangeDispatcher() {}
- return ($traceurRuntime.createClass)(ChangeDispatcher, {notifyOnBinding: function(bindingRecord, value) {}}, {});
- }());
- $__export("ChangeDispatcher", ChangeDispatcher);
- ChangeDetector = (function() {
- function ChangeDetector() {}
- return ($traceurRuntime.createClass)(ChangeDetector, {
- addChild: function(cd) {},
- addShadowDomChild: function(cd) {},
- removeChild: function(cd) {},
- removeShadowDomChild: function(cd) {},
- remove: function() {},
- hydrate: function(context, locals, directives) {},
- dehydrate: function() {},
- markPathToRootAsCheckOnce: function() {},
- detectChanges: function() {},
- checkNoChanges: function() {}
- }, {});
- }());
- $__export("ChangeDetector", ChangeDetector);
ChangeDetectorDefinition = (function() {
function ChangeDetectorDefinition(id, strategy, variableNames, bindingRecords, directiveRecords) {
this.id = id;
@@ -8368,46 +8349,19 @@ System.register("angular2/src/change_detection/constants", [], function($__expor
System.register("angular2/src/change_detection/pipes/pipe", ["angular2/src/facade/lang"], function($__export) {
"use strict";
var __moduleName = "angular2/src/change_detection/pipes/pipe";
- var __decorate,
- __metadata,
- BaseException,
- CONST,
+ var BaseException,
WrappedValue,
_wrappedValues,
_wrappedIndex,
- Pipe,
- PipeFactory;
+ BasePipe;
function _abstract() {
throw new BaseException('This method is abstract');
}
return {
setters: [function($__m) {
BaseException = $__m.BaseException;
- CONST = $__m.CONST;
}],
execute: function() {
- __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
- return Reflect.decorate(decorators, target, key, desc);
- switch (arguments.length) {
- case 2:
- return decorators.reduceRight(function(o, d) {
- return (d && d(o)) || o;
- }, target);
- case 3:
- return decorators.reduceRight(function(o, d) {
- return (d && d(target, key)), void 0;
- }, void 0);
- case 4:
- return decorators.reduceRight(function(o, d) {
- return (d && d(target, key, o)) || o;
- }, desc);
- }
- };
- __metadata = (this && this.__metadata) || function(k, v) {
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
- return Reflect.metadata(k, v);
- };
WrappedValue = (function() {
function WrappedValue(wrapped) {
this.wrapped = wrapped;
@@ -8421,31 +8375,19 @@ System.register("angular2/src/change_detection/pipes/pipe", ["angular2/src/facad
$__export("WrappedValue", WrappedValue);
_wrappedValues = [new WrappedValue(null), new WrappedValue(null), new WrappedValue(null), new WrappedValue(null), new WrappedValue(null)];
_wrappedIndex = 0;
- Pipe = (function() {
- function Pipe() {}
- return ($traceurRuntime.createClass)(Pipe, {
+ BasePipe = (function() {
+ function BasePipe() {}
+ return ($traceurRuntime.createClass)(BasePipe, {
supports: function(obj) {
- return false;
+ return true;
},
onDestroy: function() {},
transform: function(value) {
- return null;
+ return _abstract();
}
}, {});
}());
- $__export("Pipe", Pipe);
- PipeFactory = (($traceurRuntime.createClass)(function() {}, {
- supports: function(obs) {
- _abstract();
- return false;
- },
- create: function(cdRef) {
- _abstract();
- return null;
- }
- }, {}));
- $__export("PipeFactory", PipeFactory);
- $__export("PipeFactory", PipeFactory = __decorate([CONST(), __metadata('design:paramtypes', [])], PipeFactory));
+ $__export("BasePipe", BasePipe);
}
};
});
@@ -8503,11 +8445,10 @@ System.register("angular2/src/change_detection/proto_record", [], function($__ex
RecordType[RecordType["INVOKE_CLOSURE"] = 6] = "INVOKE_CLOSURE";
RecordType[RecordType["KEYED_ACCESS"] = 7] = "KEYED_ACCESS";
RecordType[RecordType["PIPE"] = 8] = "PIPE";
- RecordType[RecordType["BINDING_PIPE"] = 9] = "BINDING_PIPE";
- RecordType[RecordType["INTERPOLATE"] = 10] = "INTERPOLATE";
- RecordType[RecordType["SAFE_PROPERTY"] = 11] = "SAFE_PROPERTY";
- RecordType[RecordType["SAFE_INVOKE_METHOD"] = 12] = "SAFE_INVOKE_METHOD";
- RecordType[RecordType["DIRECTIVE_LIFECYCLE"] = 13] = "DIRECTIVE_LIFECYCLE";
+ RecordType[RecordType["INTERPOLATE"] = 9] = "INTERPOLATE";
+ RecordType[RecordType["SAFE_PROPERTY"] = 10] = "SAFE_PROPERTY";
+ RecordType[RecordType["SAFE_INVOKE_METHOD"] = 11] = "SAFE_INVOKE_METHOD";
+ RecordType[RecordType["DIRECTIVE_LIFECYCLE"] = 12] = "DIRECTIVE_LIFECYCLE";
})(RecordType || ($__export("RecordType", RecordType = {})));
ProtoRecord = (function() {
function ProtoRecord(mode, name, funcOrValue, args, fixedArgs, contextIndex, directiveIndex, selfIndex, bindingRecord, expressionAsString, lastInBinding, lastInDirective) {
@@ -8529,7 +8470,7 @@ System.register("angular2/src/change_detection/proto_record", [], function($__ex
return this.mode === RecordType.INTERPOLATE || this.mode === RecordType.PRIMITIVE_OP;
},
isPipeRecord: function() {
- return this.mode === RecordType.PIPE || this.mode === RecordType.BINDING_PIPE;
+ return this.mode === RecordType.PIPE;
},
isLifeCycleRecord: function() {
return this.mode === RecordType.DIRECTIVE_LIFECYCLE;
@@ -8597,24 +8538,24 @@ System.register("angular2/src/change_detection/coalesce", ["angular2/src/facade/
var __moduleName = "angular2/src/change_detection/coalesce";
var isPresent,
ListWrapper,
- MapWrapper,
+ Map,
RecordType,
ProtoRecord;
function coalesce(records) {
- var res = ListWrapper.create();
- var indexMap = MapWrapper.create();
+ var res = [];
+ var indexMap = new Map();
for (var i = 0; i < records.length; ++i) {
var r = records[i];
var record = _replaceIndices(r, res.length + 1, indexMap);
var matchingRecord = _findMatching(record, res);
if (isPresent(matchingRecord) && record.lastInBinding) {
- ListWrapper.push(res, _selfRecord(record, matchingRecord.selfIndex, res.length + 1));
- MapWrapper.set(indexMap, r.selfIndex, matchingRecord.selfIndex);
+ res.push(_selfRecord(record, matchingRecord.selfIndex, res.length + 1));
+ indexMap.set(r.selfIndex, matchingRecord.selfIndex);
} else if (isPresent(matchingRecord) && !record.lastInBinding) {
- MapWrapper.set(indexMap, r.selfIndex, matchingRecord.selfIndex);
+ indexMap.set(r.selfIndex, matchingRecord.selfIndex);
} else {
- ListWrapper.push(res, record);
- MapWrapper.set(indexMap, r.selfIndex, record.selfIndex);
+ res.push(record);
+ indexMap.set(r.selfIndex, record.selfIndex);
}
}
return res;
@@ -8635,7 +8576,7 @@ System.register("angular2/src/change_detection/coalesce", ["angular2/src/facade/
return new ProtoRecord(r.mode, r.name, r.funcOrValue, args, r.fixedArgs, contextIndex, r.directiveIndex, selfIndex, r.bindingRecord, r.expressionAsString, r.lastInBinding, r.lastInDirective);
}
function _map(indexMap, value) {
- var r = MapWrapper.get(indexMap, value);
+ var r = indexMap.get(value);
return isPresent(r) ? r : value;
}
$__export("coalesce", coalesce);
@@ -8644,7 +8585,7 @@ System.register("angular2/src/change_detection/coalesce", ["angular2/src/facade/
isPresent = $__m.isPresent;
}, function($__m) {
ListWrapper = $__m.ListWrapper;
- MapWrapper = $__m.MapWrapper;
+ Map = $__m.Map;
}, function($__m) {
RecordType = $__m.RecordType;
ProtoRecord = $__m.ProtoRecord;
@@ -8660,7 +8601,10 @@ System.register("angular2/src/change_detection/binding_record", ["angular2/src/f
var isPresent,
DIRECTIVE,
DIRECTIVE_LIFECYCLE,
- ELEMENT,
+ ELEMENT_PROPERTY,
+ ELEMENT_ATTRIBUTE,
+ ELEMENT_CLASS,
+ ELEMENT_STYLE,
TEXT_NODE,
BindingRecord;
return {
@@ -8670,15 +8614,19 @@ System.register("angular2/src/change_detection/binding_record", ["angular2/src/f
execute: function() {
DIRECTIVE = "directive";
DIRECTIVE_LIFECYCLE = "directiveLifecycle";
- ELEMENT = "element";
+ ELEMENT_PROPERTY = "elementProperty";
+ ELEMENT_ATTRIBUTE = "elementAttribute";
+ ELEMENT_CLASS = "elementClass";
+ ELEMENT_STYLE = "elementStyle";
TEXT_NODE = "textNode";
BindingRecord = (function() {
- function BindingRecord(mode, implicitReceiver, ast, elementIndex, propertyName, setter, lifecycleEvent, directiveRecord) {
+ function BindingRecord(mode, implicitReceiver, ast, elementIndex, propertyName, propertyUnit, setter, lifecycleEvent, directiveRecord) {
this.mode = mode;
this.implicitReceiver = implicitReceiver;
this.ast = ast;
this.elementIndex = elementIndex;
this.propertyName = propertyName;
+ this.propertyUnit = propertyUnit;
this.setter = setter;
this.lifecycleEvent = lifecycleEvent;
this.directiveRecord = directiveRecord;
@@ -8696,33 +8644,60 @@ System.register("angular2/src/change_detection/binding_record", ["angular2/src/f
isDirectiveLifecycle: function() {
return this.mode === DIRECTIVE_LIFECYCLE;
},
- isElement: function() {
- return this.mode === ELEMENT;
+ isElementProperty: function() {
+ return this.mode === ELEMENT_PROPERTY;
+ },
+ isElementAttribute: function() {
+ return this.mode === ELEMENT_ATTRIBUTE;
+ },
+ isElementClass: function() {
+ return this.mode === ELEMENT_CLASS;
+ },
+ isElementStyle: function() {
+ return this.mode === ELEMENT_STYLE;
},
isTextNode: function() {
return this.mode === TEXT_NODE;
}
}, {
createForDirective: function(ast, propertyName, setter, directiveRecord) {
- return new BindingRecord(DIRECTIVE, 0, ast, 0, propertyName, setter, null, directiveRecord);
+ return new BindingRecord(DIRECTIVE, 0, ast, 0, propertyName, null, setter, null, directiveRecord);
},
createDirectiveOnCheck: function(directiveRecord) {
- return new BindingRecord(DIRECTIVE_LIFECYCLE, 0, null, 0, null, null, "onCheck", directiveRecord);
+ return new BindingRecord(DIRECTIVE_LIFECYCLE, 0, null, 0, null, null, null, "onCheck", directiveRecord);
},
createDirectiveOnInit: function(directiveRecord) {
- return new BindingRecord(DIRECTIVE_LIFECYCLE, 0, null, 0, null, null, "onInit", directiveRecord);
+ return new BindingRecord(DIRECTIVE_LIFECYCLE, 0, null, 0, null, null, null, "onInit", directiveRecord);
},
createDirectiveOnChange: function(directiveRecord) {
- return new BindingRecord(DIRECTIVE_LIFECYCLE, 0, null, 0, null, null, "onChange", directiveRecord);
+ return new BindingRecord(DIRECTIVE_LIFECYCLE, 0, null, 0, null, null, null, "onChange", directiveRecord);
},
- createForElement: function(ast, elementIndex, propertyName) {
- return new BindingRecord(ELEMENT, 0, ast, elementIndex, propertyName, null, null, null);
+ createForElementProperty: function(ast, elementIndex, propertyName) {
+ return new BindingRecord(ELEMENT_PROPERTY, 0, ast, elementIndex, propertyName, null, null, null, null);
+ },
+ createForElementAttribute: function(ast, elementIndex, attributeName) {
+ return new BindingRecord(ELEMENT_ATTRIBUTE, 0, ast, elementIndex, attributeName, null, null, null, null);
+ },
+ createForElementClass: function(ast, elementIndex, className) {
+ return new BindingRecord(ELEMENT_CLASS, 0, ast, elementIndex, className, null, null, null, null);
+ },
+ createForElementStyle: function(ast, elementIndex, styleName, unit) {
+ return new BindingRecord(ELEMENT_STYLE, 0, ast, elementIndex, styleName, unit, null, null, null);
},
createForHostProperty: function(directiveIndex, ast, propertyName) {
- return new BindingRecord(ELEMENT, directiveIndex, ast, directiveIndex.elementIndex, propertyName, null, null, null);
+ return new BindingRecord(ELEMENT_PROPERTY, directiveIndex, ast, directiveIndex.elementIndex, propertyName, null, null, null, null);
+ },
+ createForHostAttribute: function(directiveIndex, ast, attributeName) {
+ return new BindingRecord(ELEMENT_ATTRIBUTE, directiveIndex, ast, directiveIndex.elementIndex, attributeName, null, null, null, null);
+ },
+ createForHostClass: function(directiveIndex, ast, className) {
+ return new BindingRecord(ELEMENT_CLASS, directiveIndex, ast, directiveIndex.elementIndex, className, null, null, null, null);
+ },
+ createForHostStyle: function(directiveIndex, ast, styleName, unit) {
+ return new BindingRecord(ELEMENT_STYLE, directiveIndex, ast, directiveIndex.elementIndex, styleName, unit, null, null, null);
},
createForTextNode: function(ast, elementIndex) {
- return new BindingRecord(TEXT_NODE, 0, ast, elementIndex, null, null, null, null);
+ return new BindingRecord(TEXT_NODE, 0, ast, elementIndex, null, null, null, null, null);
}
});
}());
@@ -8738,6 +8713,7 @@ System.register("angular2/src/change_detection/pipes/pipe_registry", ["angular2/
__metadata,
ListWrapper,
isBlank,
+ isPresent,
BaseException,
Injectable,
PipeRegistry;
@@ -8746,6 +8722,7 @@ System.register("angular2/src/change_detection/pipes/pipe_registry", ["angular2/
ListWrapper = $__m.ListWrapper;
}, function($__m) {
isBlank = $__m.isBlank;
+ isPresent = $__m.isPresent;
BaseException = $__m.BaseException;
}, function($__m) {
Injectable = $__m.Injectable;
@@ -8775,19 +8752,33 @@ System.register("angular2/src/change_detection/pipes/pipe_registry", ["angular2/
};
PipeRegistry = (($traceurRuntime.createClass)(function(config) {
this.config = config;
- }, {get: function(type, obj, cdRef) {
- var listOfConfigs = this.config[type];
- if (isBlank(listOfConfigs)) {
+ }, {
+ get: function(type, obj, cdRef, existingPipe) {
+ if (isPresent(existingPipe) && existingPipe.supports(obj))
+ return existingPipe;
+ if (isPresent(existingPipe))
+ existingPipe.onDestroy();
+ var factories = this._getListOfFactories(type, obj);
+ var factory = this._getMatchingFactory(factories, type, obj);
+ return factory.create(cdRef);
+ },
+ _getListOfFactories: function(type, obj) {
+ var listOfFactories = this.config[type];
+ if (isBlank(listOfFactories)) {
throw new BaseException(("Cannot find '" + type + "' pipe supporting object '" + obj + "'"));
}
- var matchingConfig = ListWrapper.find(listOfConfigs, (function(pipeConfig) {
- return pipeConfig.supports(obj);
+ return listOfFactories;
+ },
+ _getMatchingFactory: function(listOfFactories, type, obj) {
+ var matchingFactory = ListWrapper.find(listOfFactories, (function(pipeFactory) {
+ return pipeFactory.supports(obj);
}));
- if (isBlank(matchingConfig)) {
+ if (isBlank(matchingFactory)) {
throw new BaseException(("Cannot find '" + type + "' pipe supporting object '" + obj + "'"));
}
- return matchingConfig.create(cdRef);
- }}, {}));
+ return matchingFactory;
+ }
+ }, {}));
$__export("PipeRegistry", PipeRegistry);
$__export("PipeRegistry", PipeRegistry = __decorate([Injectable(), __metadata('design:paramtypes', [Object])], PipeRegistry));
}
@@ -8801,9 +8792,8 @@ System.register("angular2/src/change_detection/pipes/null_pipe", ["angular2/src/
__metadata,
isBlank,
CONST,
- Pipe,
+ BasePipe,
WrappedValue,
- PipeFactory,
NullPipeFactory,
NullPipe;
return {
@@ -8811,9 +8801,8 @@ System.register("angular2/src/change_detection/pipes/null_pipe", ["angular2/src/
isBlank = $__m.isBlank;
CONST = $__m.CONST;
}, function($__m) {
- Pipe = $__m.Pipe;
+ BasePipe = $__m.BasePipe;
WrappedValue = $__m.WrappedValue;
- PipeFactory = $__m.PipeFactory;
}],
execute: function() {
__decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
@@ -8838,19 +8827,14 @@ System.register("angular2/src/change_detection/pipes/null_pipe", ["angular2/src/
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
return Reflect.metadata(k, v);
};
- NullPipeFactory = (function($__super) {
- function $__0() {
- $traceurRuntime.superConstructor($__0).call(this);
+ NullPipeFactory = (($traceurRuntime.createClass)(function() {}, {
+ supports: function(obj) {
+ return NullPipe.supportsObj(obj);
+ },
+ create: function(cdRef) {
+ return new NullPipe();
}
- return ($traceurRuntime.createClass)($__0, {
- supports: function(obj) {
- return NullPipe.supportsObj(obj);
- },
- create: function(cdRef) {
- return new NullPipe();
- }
- }, {}, $__super);
- }(PipeFactory));
+ }, {}));
$__export("NullPipeFactory", NullPipeFactory);
$__export("NullPipeFactory", NullPipeFactory = __decorate([CONST(), __metadata('design:paramtypes', [])], NullPipeFactory));
NullPipe = (function($__super) {
@@ -8877,7 +8861,7 @@ System.register("angular2/src/change_detection/pipes/null_pipe", ["angular2/src/
}, {supportsObj: function(obj) {
return isBlank(obj);
}}, $__super);
- }(Pipe));
+ }(BasePipe));
$__export("NullPipe", NullPipe);
}
};
@@ -8905,6 +8889,9 @@ System.register("angular2/src/change_detection/change_detection_jit_generator",
CURRENT_PROTO,
ALREADY_CHECKED_ACCESSOR,
ChangeDetectorJITGenerator;
+ function _sanitizeName(s) {
+ return s.replace(new RegExp("\\W", "g"), '');
+ }
return {
setters: [function($__m) {
BaseException = $__m.BaseException;
@@ -8932,8 +8919,8 @@ System.register("angular2/src/change_detection/change_detection_jit_generator",
CURRENT_PROTO = "currentProto";
ALREADY_CHECKED_ACCESSOR = "this.alreadyChecked";
ChangeDetectorJITGenerator = (function() {
- function ChangeDetectorJITGenerator(typeName, changeDetectionStrategy, records, directiveRecords) {
- this.typeName = typeName;
+ function ChangeDetectorJITGenerator(id, changeDetectionStrategy, records, directiveRecords) {
+ this.id = id;
this.changeDetectionStrategy = changeDetectionStrategy;
this.records = records;
this.directiveRecords = directiveRecords;
@@ -8946,8 +8933,7 @@ System.register("angular2/src/change_detection/change_detection_jit_generator",
_getLocalNames: function(records) {
var index = 0;
var names = records.map((function(r) {
- var sanitizedName = r.name.replace(new RegExp("\\W", "g"), '');
- return ("" + sanitizedName + index++);
+ return _sanitizeName(("" + r.name + index++));
}));
return ["context"].concat(names);
},
@@ -8968,9 +8954,10 @@ System.register("angular2/src/change_detection/change_detection_jit_generator",
},
generate: function() {
var $__0 = this;
- var classDefinition = ("\n var " + this.typeName + " = function " + this.typeName + "(dispatcher, pipeRegistry, protos, directiveRecords) {\n " + ABSTRACT_CHANGE_DETECTOR + ".call(this);\n " + DISPATCHER_ACCESSOR + " = dispatcher;\n " + PIPE_REGISTRY_ACCESSOR + " = pipeRegistry;\n " + PROTOS_ACCESSOR + " = protos;\n " + DIRECTIVES_ACCESSOR + " = directiveRecords;\n " + LOCALS_ACCESSOR + " = null;\n " + ALREADY_CHECKED_ACCESSOR + " = false;\n " + this._genFieldDefinitions() + "\n }\n\n " + this.typeName + ".prototype = Object.create(" + ABSTRACT_CHANGE_DETECTOR + ".prototype);\n\n " + this.typeName + ".prototype.detectChangesInRecords = function(throwOnChange) {\n if (!this.hydrated()) {\n " + UTIL + ".throwDehydrated();\n }\n " + this._genLocalDefinitions() + "\n " + this._genChangeDefinitions() + "\n var " + IS_CHANGED_LOCAL + " = false;\n var " + CURRENT_PROTO + ";\n var " + CHANGES_LOCAL + " = null;\n\n context = " + CONTEXT_ACCESSOR + ";\n\n " + this.records.map((function(r) {
+ var typeName = _sanitizeName(("ChangeDetector_" + this.id));
+ var classDefinition = ("\n var " + typeName + " = function " + typeName + "(dispatcher, pipeRegistry, protos, directiveRecords) {\n " + ABSTRACT_CHANGE_DETECTOR + ".call(this, " + JSON.stringify(this.id) + ");\n " + DISPATCHER_ACCESSOR + " = dispatcher;\n " + PIPE_REGISTRY_ACCESSOR + " = pipeRegistry;\n " + PROTOS_ACCESSOR + " = protos;\n " + DIRECTIVES_ACCESSOR + " = directiveRecords;\n " + LOCALS_ACCESSOR + " = null;\n " + ALREADY_CHECKED_ACCESSOR + " = false;\n " + this._genFieldDefinitions() + "\n }\n\n " + typeName + ".prototype = Object.create(" + ABSTRACT_CHANGE_DETECTOR + ".prototype);\n\n " + typeName + ".prototype.detectChangesInRecords = function(throwOnChange) {\n if (!this.hydrated()) {\n " + UTIL + ".throwDehydrated();\n }\n " + this._genLocalDefinitions() + "\n " + this._genChangeDefinitions() + "\n var " + IS_CHANGED_LOCAL + " = false;\n var " + CURRENT_PROTO + ";\n var " + CHANGES_LOCAL + " = null;\n\n context = " + CONTEXT_ACCESSOR + ";\n\n " + this.records.map((function(r) {
return $__0._genRecord(r);
- })).join("\n") + "\n\n " + ALREADY_CHECKED_ACCESSOR + " = true;\n }\n\n " + this.typeName + ".prototype.callOnAllChangesDone = function() {\n " + this._genCallOnAllChangesDoneBody() + "\n }\n\n " + this.typeName + ".prototype.hydrate = function(context, locals, directives) {\n " + MODE_ACCESSOR + " = \"" + ChangeDetectionUtil.changeDetectionMode(this.changeDetectionStrategy) + "\";\n " + CONTEXT_ACCESSOR + " = context;\n " + LOCALS_ACCESSOR + " = locals;\n " + this._genHydrateDirectives() + "\n " + this._genHydrateDetectors() + "\n " + ALREADY_CHECKED_ACCESSOR + " = false;\n }\n\n " + this.typeName + ".prototype.dehydrate = function() {\n " + this._genPipeOnDestroy() + "\n " + this._genFieldDefinitions() + "\n " + LOCALS_ACCESSOR + " = null;\n }\n\n " + this.typeName + ".prototype.hydrated = function() {\n return " + CONTEXT_ACCESSOR + " !== null;\n }\n\n return function(dispatcher, pipeRegistry) {\n return new " + this.typeName + "(dispatcher, pipeRegistry, protos, directiveRecords);\n }\n ");
+ })).join("\n") + "\n\n " + ALREADY_CHECKED_ACCESSOR + " = true;\n }\n\n " + typeName + ".prototype.callOnAllChangesDone = function() {\n " + this._genCallOnAllChangesDoneBody() + "\n }\n\n " + typeName + ".prototype.hydrate = function(context, locals, directives) {\n " + MODE_ACCESSOR + " = \"" + ChangeDetectionUtil.changeDetectionMode(this.changeDetectionStrategy) + "\";\n " + CONTEXT_ACCESSOR + " = context;\n " + LOCALS_ACCESSOR + " = locals;\n " + this._genHydrateDirectives() + "\n " + this._genHydrateDetectors() + "\n " + ALREADY_CHECKED_ACCESSOR + " = false;\n }\n\n " + typeName + ".prototype.dehydrate = function() {\n " + this._genPipeOnDestroy() + "\n " + this._genFieldDefinitions() + "\n " + LOCALS_ACCESSOR + " = null;\n }\n\n " + typeName + ".prototype.hydrated = function() {\n return " + CONTEXT_ACCESSOR + " !== null;\n }\n\n return function(dispatcher, pipeRegistry) {\n return new " + typeName + "(dispatcher, pipeRegistry, protos, directiveRecords);\n }\n ");
return new Function('AbstractChangeDetector', 'ChangeDetectionUtil', 'protos', 'directiveRecords', classDefinition)(AbstractChangeDetector, ChangeDetectionUtil, this.records, this.directiveRecords);
},
_genGetDirectiveFieldNames: function() {
@@ -8997,7 +8984,7 @@ System.register("angular2/src/change_detection/change_detection_jit_generator",
var $__0 = this;
var pipes = [];
this.records.forEach((function(r) {
- if (r.mode === RecordType.PIPE || r.mode === RecordType.BINDING_PIPE) {
+ if (r.isPipeRecord()) {
pipes.push($__0._pipeNames[r.selfIndex]);
}
}));
@@ -9086,7 +9073,7 @@ System.register("angular2/src/change_detection/change_detection_jit_generator",
var newValue = this._localNames[r.selfIndex];
var change = this._changeNames[r.selfIndex];
var pipe = this._pipeNames[r.selfIndex];
- var cdRef = r.mode === RecordType.BINDING_PIPE ? "this.ref" : "null";
+ var cdRef = "this.ref";
var protoIndex = r.selfIndex - 1;
var pipeType = r.name;
return ("\n " + CURRENT_PROTO + " = " + PROTOS_ACCESSOR + "[" + protoIndex + "];\n if (" + pipe + " === " + UTIL + ".uninitialized()) {\n " + pipe + " = " + PIPE_REGISTRY_ACCESSOR + ".get('" + pipeType + "', " + context + ", " + cdRef + ");\n } else if (!" + pipe + ".supports(" + context + ")) {\n " + pipe + ".onDestroy();\n " + pipe + " = " + PIPE_REGISTRY_ACCESSOR + ".get('" + pipeType + "', " + context + ", " + cdRef + ");\n }\n\n " + newValue + " = " + pipe + ".transform(" + context + ");\n if (" + oldValue + " !== " + newValue + ") {\n " + newValue + " = " + UTIL + ".unwrapValue(" + newValue + ");\n " + change + " = true;\n " + this._genUpdateDirectiveOrElement(r) + "\n " + this._genAddToChanges(r) + "\n " + oldValue + " = " + newValue + ";\n }\n ");
@@ -9101,7 +9088,7 @@ System.register("angular2/src/change_detection/change_detection_jit_generator",
var condition = r.args.map((function(a) {
return $__0._changeNames[a];
})).join(" || ");
- return ("if (" + condition + ") { " + check + " }");
+ return ("if (" + condition + ") { " + check + " } else { " + newValue + " = " + oldValue + "; }");
} else {
return check;
}
@@ -9218,30 +9205,25 @@ System.register("angular2/src/change_detection/change_detection_jit_generator",
};
});
-System.register("angular2/src/change_detection/pregen_proto_change_detector", ["angular2/src/facade/lang", "angular2/src/change_detection/interfaces"], function($__export) {
+System.register("angular2/src/change_detection/pregen_proto_change_detector", ["angular2/src/facade/lang"], function($__export) {
"use strict";
var __moduleName = "angular2/src/change_detection/pregen_proto_change_detector";
var BaseException,
- ProtoChangeDetector,
PregenProtoChangeDetector;
return {
setters: [function($__m) {
BaseException = $__m.BaseException;
- }, function($__m) {
- ProtoChangeDetector = $__m.ProtoChangeDetector;
}],
execute: function() {
$__export("PregenProtoChangeDetectorFactory", Function);
- PregenProtoChangeDetector = (function($__super) {
- function PregenProtoChangeDetector() {
- $traceurRuntime.superConstructor(PregenProtoChangeDetector).apply(this, arguments);
- }
+ PregenProtoChangeDetector = (function() {
+ function PregenProtoChangeDetector() {}
return ($traceurRuntime.createClass)(PregenProtoChangeDetector, {instantiate: function(dispatcher) {
throw new BaseException('Pregen change detection not supported in Js');
}}, {isSupported: function() {
return false;
- }}, $__super);
- }(ProtoChangeDetector));
+ }});
+ }());
$__export("PregenProtoChangeDetector", PregenProtoChangeDetector);
}
};
@@ -9255,7 +9237,6 @@ System.register("angular2/src/change_detection/pipes/iterable_changes", ["angula
CONST,
isListLikeIterable,
iterateListLike,
- ListWrapper,
MapWrapper,
isBlank,
isPresent,
@@ -9264,8 +9245,7 @@ System.register("angular2/src/change_detection/pipes/iterable_changes", ["angula
looseIdentical,
isArray,
WrappedValue,
- Pipe,
- PipeFactory,
+ BasePipe,
IterableChangesFactory,
IterableChanges,
CollectionChangeRecord,
@@ -9283,12 +9263,10 @@ System.register("angular2/src/change_detection/pipes/iterable_changes", ["angula
}, function($__m) {
isListLikeIterable = $__m.isListLikeIterable;
iterateListLike = $__m.iterateListLike;
- ListWrapper = $__m.ListWrapper;
MapWrapper = $__m.MapWrapper;
}, function($__m) {
WrappedValue = $__m.WrappedValue;
- Pipe = $__m.Pipe;
- PipeFactory = $__m.PipeFactory;
+ BasePipe = $__m.BasePipe;
}],
execute: function() {
__decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
@@ -9313,19 +9291,14 @@ System.register("angular2/src/change_detection/pipes/iterable_changes", ["angula
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
return Reflect.metadata(k, v);
};
- IterableChangesFactory = (function($__super) {
- function $__1() {
- $traceurRuntime.superConstructor($__1).call(this);
+ IterableChangesFactory = (($traceurRuntime.createClass)(function() {}, {
+ supports: function(obj) {
+ return IterableChanges.supportsObj(obj);
+ },
+ create: function(cdRef) {
+ return new IterableChanges();
}
- return ($traceurRuntime.createClass)($__1, {
- supports: function(obj) {
- return IterableChanges.supportsObj(obj);
- },
- create: function(cdRef) {
- return new IterableChanges();
- }
- }, {}, $__super);
- }(PipeFactory));
+ }, {}));
$__export("IterableChangesFactory", IterableChangesFactory);
$__export("IterableChangesFactory", IterableChangesFactory = __decorate([CONST(), __metadata('design:paramtypes', [])], IterableChangesFactory));
IterableChanges = (function($__super) {
@@ -9389,7 +9362,7 @@ System.register("angular2/src/change_detection/pipes/iterable_changes", ["angula
if (this.check(collection)) {
return WrappedValue.wrap(this);
} else {
- return this;
+ return null;
}
},
check: function(collection) {
@@ -9613,30 +9586,30 @@ System.register("angular2/src/change_detection/pipes/iterable_changes", ["angula
var record;
var list = [];
for (record = this._itHead; record !== null; record = record._next) {
- ListWrapper.push(list, record);
+ list.push(record);
}
var previous = [];
for (record = this._previousItHead; record !== null; record = record._nextPrevious) {
- ListWrapper.push(previous, record);
+ previous.push(record);
}
var additions = [];
for (record = this._additionsHead; record !== null; record = record._nextAdded) {
- ListWrapper.push(additions, record);
+ additions.push(record);
}
var moves = [];
for (record = this._movesHead; record !== null; record = record._nextMoved) {
- ListWrapper.push(moves, record);
+ moves.push(record);
}
var removals = [];
for (record = this._removalsHead; record !== null; record = record._nextRemoved) {
- ListWrapper.push(removals, record);
+ removals.push(record);
}
return "collection: " + list.join(', ') + "\n" + "previous: " + previous.join(', ') + "\n" + "additions: " + additions.join(', ') + "\n" + "moves: " + moves.join(', ') + "\n" + "removals: " + removals.join(', ') + "\n";
}
}, {supportsObj: function(obj) {
return isListLikeIterable(obj);
}}, $__super);
- }(Pipe));
+ }(BasePipe));
$__export("IterableChanges", IterableChanges);
CollectionChangeRecord = (function() {
function CollectionChangeRecord(item) {
@@ -9704,27 +9677,27 @@ System.register("angular2/src/change_detection/pipes/iterable_changes", ["angula
}());
_DuplicateMap = (function() {
function _DuplicateMap() {
- this.map = MapWrapper.create();
+ this.map = new Map();
}
return ($traceurRuntime.createClass)(_DuplicateMap, {
put: function(record) {
var key = getMapKey(record.item);
- var duplicates = MapWrapper.get(this.map, key);
+ var duplicates = this.map.get(key);
if (!isPresent(duplicates)) {
duplicates = new _DuplicateItemRecordList();
- MapWrapper.set(this.map, key, duplicates);
+ this.map.set(key, duplicates);
}
duplicates.add(record);
},
get: function(value) {
var afterIndex = arguments[1] !== (void 0) ? arguments[1] : null;
var key = getMapKey(value);
- var recordList = MapWrapper.get(this.map, key);
+ var recordList = this.map.get(key);
return isBlank(recordList) ? null : recordList.get(value, afterIndex);
},
remove: function(record) {
var key = getMapKey(record.item);
- var recordList = MapWrapper.get(this.map, key);
+ var recordList = this.map.get(key);
if (recordList.remove(record)) {
MapWrapper.delete(this.map, key);
}
@@ -9734,7 +9707,7 @@ System.register("angular2/src/change_detection/pipes/iterable_changes", ["angula
return MapWrapper.size(this.map) === 0;
},
clear: function() {
- MapWrapper.clear(this.map);
+ this.map.clear();
},
toString: function() {
return '_DuplicateMap(' + stringify(this.map) + ')';
@@ -9750,7 +9723,6 @@ System.register("angular2/src/change_detection/pipes/keyvalue_changes", ["angula
var __moduleName = "angular2/src/change_detection/pipes/keyvalue_changes";
var __decorate,
__metadata,
- ListWrapper,
MapWrapper,
StringMapWrapper,
stringify,
@@ -9758,14 +9730,12 @@ System.register("angular2/src/change_detection/pipes/keyvalue_changes", ["angula
isJsObject,
CONST,
WrappedValue,
- Pipe,
- PipeFactory,
+ BasePipe,
KeyValueChangesFactory,
KeyValueChanges,
KVChangeRecord;
return {
setters: [function($__m) {
- ListWrapper = $__m.ListWrapper;
MapWrapper = $__m.MapWrapper;
StringMapWrapper = $__m.StringMapWrapper;
}, function($__m) {
@@ -9775,8 +9745,7 @@ System.register("angular2/src/change_detection/pipes/keyvalue_changes", ["angula
CONST = $__m.CONST;
}, function($__m) {
WrappedValue = $__m.WrappedValue;
- Pipe = $__m.Pipe;
- PipeFactory = $__m.PipeFactory;
+ BasePipe = $__m.BasePipe;
}],
execute: function() {
__decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
@@ -9801,19 +9770,14 @@ System.register("angular2/src/change_detection/pipes/keyvalue_changes", ["angula
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
return Reflect.metadata(k, v);
};
- KeyValueChangesFactory = (function($__super) {
- function $__1() {
- $traceurRuntime.superConstructor($__1).call(this);
+ KeyValueChangesFactory = (($traceurRuntime.createClass)(function() {}, {
+ supports: function(obj) {
+ return KeyValueChanges.supportsObj(obj);
+ },
+ create: function(cdRef) {
+ return new KeyValueChanges();
}
- return ($traceurRuntime.createClass)($__1, {
- supports: function(obj) {
- return KeyValueChanges.supportsObj(obj);
- },
- create: function(cdRef) {
- return new KeyValueChanges();
- }
- }, {}, $__super);
- }(PipeFactory));
+ }, {}));
$__export("KeyValueChangesFactory", KeyValueChangesFactory);
$__export("KeyValueChangesFactory", KeyValueChangesFactory = __decorate([CONST(), __metadata('design:paramtypes', [])], KeyValueChangesFactory));
KeyValueChanges = (function($__super) {
@@ -9823,7 +9787,7 @@ System.register("angular2/src/change_detection/pipes/keyvalue_changes", ["angula
$__3 = 0; $__3 < arguments.length; $__3++)
args[$__3] = arguments[$__3];
($__4 = $traceurRuntime.superConstructor(KeyValueChanges)).call.apply($__4, $traceurRuntime.spread([this], args));
- this._records = MapWrapper.create();
+ this._records = new Map();
this._mapHead = null;
this._previousMapHead = null;
this._changesHead = null;
@@ -9841,7 +9805,7 @@ System.register("angular2/src/change_detection/pipes/keyvalue_changes", ["angula
if (this.check(map)) {
return WrappedValue.wrap(this);
} else {
- return this;
+ return null;
}
},
get isDirty() {
@@ -9901,11 +9865,11 @@ System.register("angular2/src/change_detection/pipes/keyvalue_changes", ["angula
$__0._removeFromSeq(lastOldSeqRecord, oldSeqRecord);
$__0._addToRemovals(oldSeqRecord);
}
- if (MapWrapper.contains(records, key)) {
- newSeqRecord = MapWrapper.get(records, key);
+ if (records.has(key)) {
+ newSeqRecord = records.get(key);
} else {
newSeqRecord = new KVChangeRecord(key);
- MapWrapper.set(records, key, newSeqRecord);
+ records.set(key, newSeqRecord);
newSeqRecord.currentValue = value;
$__0._addToAdditions(newSeqRecord);
}
@@ -10021,19 +9985,19 @@ System.register("angular2/src/change_detection/pipes/keyvalue_changes", ["angula
var removals = [];
var record;
for (record = this._mapHead; record !== null; record = record._next) {
- ListWrapper.push(items, stringify(record));
+ items.push(stringify(record));
}
for (record = this._previousMapHead; record !== null; record = record._nextPrevious) {
- ListWrapper.push(previous, stringify(record));
+ previous.push(stringify(record));
}
for (record = this._changesHead; record !== null; record = record._nextChanged) {
- ListWrapper.push(changes, stringify(record));
+ changes.push(stringify(record));
}
for (record = this._additionsHead; record !== null; record = record._nextAdded) {
- ListWrapper.push(additions, stringify(record));
+ additions.push(stringify(record));
}
for (record = this._removalsHead; record !== null; record = record._nextRemoved) {
- ListWrapper.push(removals, stringify(record));
+ removals.push(stringify(record));
}
return "map: " + items.join(', ') + "\n" + "previous: " + previous.join(', ') + "\n" + "additions: " + additions.join(', ') + "\n" + "changes: " + changes.join(', ') + "\n" + "removals: " + removals.join(', ') + "\n";
},
@@ -10047,7 +10011,7 @@ System.register("angular2/src/change_detection/pipes/keyvalue_changes", ["angula
}, {supportsObj: function(obj) {
return obj instanceof Map || isJsObject(obj);
}}, $__super);
- }(Pipe));
+ }(BasePipe));
$__export("KeyValueChanges", KeyValueChanges);
KVChangeRecord = (function() {
function KVChangeRecord(key) {
@@ -10076,7 +10040,6 @@ System.register("angular2/src/change_detection/pipes/promise_pipe", ["angular2/s
var isBlank,
isPresent,
isPromise,
- Pipe,
WrappedValue,
PromisePipe,
PromisePipeFactory;
@@ -10086,13 +10049,11 @@ System.register("angular2/src/change_detection/pipes/promise_pipe", ["angular2/s
isPresent = $__m.isPresent;
isPromise = $__m.isPromise;
}, function($__m) {
- Pipe = $__m.Pipe;
WrappedValue = $__m.WrappedValue;
}],
execute: function() {
- PromisePipe = (function($__super) {
+ PromisePipe = (function() {
function PromisePipe(_ref) {
- $traceurRuntime.superConstructor(PromisePipe).call(this);
this._ref = _ref;
this._latestValue = null;
this._latestReturnedValue = null;
@@ -10134,8 +10095,8 @@ System.register("angular2/src/change_detection/pipes/promise_pipe", ["angular2/s
this._latestValue = value;
this._ref.requestCheck();
}
- }, {}, $__super);
- }(Pipe));
+ }, {});
+ }());
$__export("PromisePipe", PromisePipe);
PromisePipeFactory = (function() {
function PromisePipeFactory() {}
@@ -10153,29 +10114,21 @@ System.register("angular2/src/change_detection/pipes/promise_pipe", ["angular2/s
};
});
-System.register("angular2/src/change_detection/pipes/uppercase_pipe", ["angular2/src/facade/lang", "angular2/src/change_detection/pipes/pipe"], function($__export) {
+System.register("angular2/src/change_detection/pipes/uppercase_pipe", ["angular2/src/facade/lang"], function($__export) {
"use strict";
var __moduleName = "angular2/src/change_detection/pipes/uppercase_pipe";
var isString,
StringWrapper,
- Pipe,
UpperCasePipe,
UpperCaseFactory;
return {
setters: [function($__m) {
isString = $__m.isString;
StringWrapper = $__m.StringWrapper;
- }, function($__m) {
- Pipe = $__m.Pipe;
}],
execute: function() {
- UpperCasePipe = (function($__super) {
+ UpperCasePipe = (function() {
function UpperCasePipe() {
- var $__2;
- for (var args = [],
- $__1 = 0; $__1 < arguments.length; $__1++)
- args[$__1] = arguments[$__1];
- ($__2 = $traceurRuntime.superConstructor(UpperCasePipe)).call.apply($__2, $traceurRuntime.spread([this], args));
this._latestValue = null;
}
return ($traceurRuntime.createClass)(UpperCasePipe, {
@@ -10193,8 +10146,8 @@ System.register("angular2/src/change_detection/pipes/uppercase_pipe", ["angular2
return this._latestValue;
}
}
- }, {}, $__super);
- }(Pipe));
+ }, {});
+ }());
$__export("UpperCasePipe", UpperCasePipe);
UpperCaseFactory = (function() {
function UpperCaseFactory() {}
@@ -10212,29 +10165,21 @@ System.register("angular2/src/change_detection/pipes/uppercase_pipe", ["angular2
};
});
-System.register("angular2/src/change_detection/pipes/lowercase_pipe", ["angular2/src/facade/lang", "angular2/src/change_detection/pipes/pipe"], function($__export) {
+System.register("angular2/src/change_detection/pipes/lowercase_pipe", ["angular2/src/facade/lang"], function($__export) {
"use strict";
var __moduleName = "angular2/src/change_detection/pipes/lowercase_pipe";
var isString,
StringWrapper,
- Pipe,
LowerCasePipe,
LowerCaseFactory;
return {
setters: [function($__m) {
isString = $__m.isString;
StringWrapper = $__m.StringWrapper;
- }, function($__m) {
- Pipe = $__m.Pipe;
}],
execute: function() {
- LowerCasePipe = (function($__super) {
+ LowerCasePipe = (function() {
function LowerCasePipe() {
- var $__2;
- for (var args = [],
- $__1 = 0; $__1 < arguments.length; $__1++)
- args[$__1] = arguments[$__1];
- ($__2 = $traceurRuntime.superConstructor(LowerCasePipe)).call.apply($__2, $traceurRuntime.spread([this], args));
this._latestValue = null;
}
return ($traceurRuntime.createClass)(LowerCasePipe, {
@@ -10252,8 +10197,8 @@ System.register("angular2/src/change_detection/pipes/lowercase_pipe", ["angular2
return this._latestValue;
}
}
- }, {}, $__super);
- }(Pipe));
+ }, {});
+ }());
$__export("LowerCasePipe", LowerCasePipe);
LowerCaseFactory = (function() {
function LowerCaseFactory() {}
@@ -10275,13 +10220,13 @@ System.register("angular2/src/change_detection/pipes/json_pipe", ["angular2/src/
"use strict";
var __moduleName = "angular2/src/change_detection/pipes/json_pipe";
var Json,
- Pipe,
+ BasePipe,
JsonPipe;
return {
setters: [function($__m) {
Json = $__m.Json;
}, function($__m) {
- Pipe = $__m.Pipe;
+ BasePipe = $__m.BasePipe;
}],
execute: function() {
JsonPipe = (function($__super) {
@@ -10289,9 +10234,6 @@ System.register("angular2/src/change_detection/pipes/json_pipe", ["angular2/src/
$traceurRuntime.superConstructor(JsonPipe).apply(this, arguments);
}
return ($traceurRuntime.createClass)(JsonPipe, {
- supports: function(obj) {
- return true;
- },
transform: function(value) {
return Json.stringify(value);
},
@@ -10299,7 +10241,7 @@ System.register("angular2/src/change_detection/pipes/json_pipe", ["angular2/src/
return this;
}
}, {}, $__super);
- }(Pipe));
+ }(BasePipe));
$__export("JsonPipe", JsonPipe);
}
};
@@ -10308,7 +10250,8 @@ System.register("angular2/src/change_detection/pipes/json_pipe", ["angular2/src/
System.register("angular2/src/di/forward_ref", ["angular2/src/facade/lang"], function($__export) {
"use strict";
var __moduleName = "angular2/src/di/forward_ref";
- var stringify;
+ var stringify,
+ isFunction;
function forwardRef(forwardRefFn) {
forwardRefFn.__forward_ref__ = forwardRef;
forwardRefFn.toString = function() {
@@ -10317,7 +10260,7 @@ System.register("angular2/src/di/forward_ref", ["angular2/src/facade/lang"], fun
return forwardRefFn;
}
function resolveForwardRef(type) {
- if (typeof type == 'function' && type.hasOwnProperty('__forward_ref__') && type.__forward_ref__ === forwardRef) {
+ if (isFunction(type) && type.hasOwnProperty('__forward_ref__') && type.__forward_ref__ === forwardRef) {
return type();
} else {
return type;
@@ -10328,6 +10271,7 @@ System.register("angular2/src/di/forward_ref", ["angular2/src/facade/lang"], fun
return {
setters: [function($__m) {
stringify = $__m.stringify;
+ isFunction = $__m.isFunction;
}],
execute: function() {
}
@@ -10370,10 +10314,10 @@ System.register("angular2/src/di/exceptions", ["angular2/src/facade/collection",
var res = [];
for (var i = 0; i < keys.length; ++i) {
if (ListWrapper.contains(res, keys[i])) {
- ListWrapper.push(res, keys[i]);
+ res.push(keys[i]);
return res;
} else {
- ListWrapper.push(res, keys[i]);
+ res.push(keys[i]);
}
}
return res;
@@ -10407,7 +10351,7 @@ System.register("angular2/src/di/exceptions", ["angular2/src/facade/collection",
}
return ($traceurRuntime.createClass)(AbstractBindingError, {
addKey: function(key) {
- ListWrapper.push(this.keys, key);
+ this.keys.push(key);
this.message = this.constructResolvingMessage(this.keys);
},
toString: function() {
@@ -10470,14 +10414,14 @@ System.register("angular2/src/di/exceptions", ["angular2/src/facade/collection",
NoAnnotationError = (function($__super) {
function NoAnnotationError(typeOrFunc, params) {
$traceurRuntime.superConstructor(NoAnnotationError).call(this);
- var signature = ListWrapper.create();
+ var signature = [];
for (var i = 0,
ii = params.length; i < ii; i++) {
var parameter = params[i];
if (isBlank(parameter) || parameter.length == 0) {
- ListWrapper.push(signature, '?');
+ signature.push('?');
} else {
- ListWrapper.push(signature, ListWrapper.map(parameter, stringify).join(' '));
+ signature.push(ListWrapper.map(parameter, stringify).join(' '));
}
}
this.message = "Cannot resolve all parameters for " + stringify(typeOrFunc) + "(" + signature.join(', ') + "). " + 'Make sure they all have valid type or annotations.';
@@ -10728,6 +10672,18 @@ System.register("angular2/src/dom/dom_adapter", ["angular2/src/facade/lang"], fu
DomAdapter = (function() {
function DomAdapter() {}
return ($traceurRuntime.createClass)(DomAdapter, {
+ hasProperty: function(element, name) {
+ throw _abstract();
+ },
+ setProperty: function(el, name, value) {
+ throw _abstract();
+ },
+ getProperty: function(el, name) {
+ throw _abstract();
+ },
+ invoke: function(el, methodName, args) {
+ throw _abstract();
+ },
logError: function(error) {
throw _abstract();
},
@@ -10876,9 +10832,6 @@ System.register("angular2/src/dom/dom_adapter", ["angular2/src/facade/lang"], fu
clone: function(node) {
throw _abstract();
},
- hasProperty: function(element, name) {
- throw _abstract();
- },
getElementsByClassName: function(element, name) {
throw _abstract();
},
@@ -11059,7 +11012,7 @@ System.register("angular2/src/dom/generic_browser_adapter", ["angular2/src/facad
cssToRules: function(css) {
var style = this.createStyleElement(css);
this.appendChild(this.defaultDoc().head, style);
- var rules = ListWrapper.create();
+ var rules = [];
if (isPresent(style.sheet)) {
try {
var rawRules = style.sheet.cssRules;
@@ -11264,6 +11217,8 @@ System.register("angular2/src/core/annotations_impl/di", ["angular2/src/facade/l
__metadata,
CONST,
stringify,
+ StringWrapper,
+ isString,
DependencyAnnotation,
resolveForwardRef,
Attribute,
@@ -11272,6 +11227,8 @@ System.register("angular2/src/core/annotations_impl/di", ["angular2/src/facade/l
setters: [function($__m) {
CONST = $__m.CONST;
stringify = $__m.stringify;
+ StringWrapper = $__m.StringWrapper;
+ isString = $__m.isString;
}, function($__m) {
DependencyAnnotation = $__m.DependencyAnnotation;
}, function($__m) {
@@ -11317,20 +11274,26 @@ System.register("angular2/src/core/annotations_impl/di", ["angular2/src/facade/l
$__export("Attribute", Attribute);
$__export("Attribute", Attribute = __decorate([CONST(), __metadata('design:paramtypes', [String])], Attribute));
Query = (function($__super) {
- function $__0(_directive) {
+ function $__0(_selector) {
var $__3;
var $__2 = arguments[1] !== (void 0) ? arguments[1] : {},
descendants = ($__3 = $__2.descendants) === void 0 ? false : $__3;
$traceurRuntime.superConstructor($__0).call(this);
- this._directive = _directive;
+ this._selector = _selector;
this.descendants = descendants;
}
return ($traceurRuntime.createClass)($__0, {
- get directive() {
- return resolveForwardRef(this._directive);
+ get selector() {
+ return resolveForwardRef(this._selector);
+ },
+ get isVarBindingQuery() {
+ return isString(this.selector);
+ },
+ get varBindings() {
+ return StringWrapper.split(this.selector, new RegExp(","));
},
toString: function() {
- return ("@Query(" + stringify(this.directive) + ")");
+ return ("@Query(" + stringify(this.selector) + ")");
}
}, {}, $__super);
}(DependencyAnnotation));
@@ -11346,8 +11309,11 @@ System.register("angular2/src/render/api", ["angular2/src/facade/lang", "angular
var isPresent,
isBlank,
RegExpWrapper,
+ Map,
MapWrapper,
EventBinding,
+ PropertyBindingType,
+ ElementPropertyBinding,
ElementBinder,
DirectiveBinder,
ViewType,
@@ -11365,6 +11331,7 @@ System.register("angular2/src/render/api", ["angular2/src/facade/lang", "angular
isBlank = $__m.isBlank;
RegExpWrapper = $__m.RegExpWrapper;
}, function($__m) {
+ Map = $__m.Map;
MapWrapper = $__m.MapWrapper;
}],
execute: function() {
@@ -11376,6 +11343,24 @@ System.register("angular2/src/render/api", ["angular2/src/facade/lang", "angular
return ($traceurRuntime.createClass)(EventBinding, {}, {});
}());
$__export("EventBinding", EventBinding);
+ $__export("PropertyBindingType", PropertyBindingType);
+ (function(PropertyBindingType) {
+ PropertyBindingType[PropertyBindingType["PROPERTY"] = 0] = "PROPERTY";
+ PropertyBindingType[PropertyBindingType["ATTRIBUTE"] = 1] = "ATTRIBUTE";
+ PropertyBindingType[PropertyBindingType["CLASS"] = 2] = "CLASS";
+ PropertyBindingType[PropertyBindingType["STYLE"] = 3] = "STYLE";
+ })(PropertyBindingType || ($__export("PropertyBindingType", PropertyBindingType = {})));
+ ElementPropertyBinding = (function() {
+ function ElementPropertyBinding(type, astWithSource, property) {
+ var unit = arguments[3] !== (void 0) ? arguments[3] : null;
+ this.type = type;
+ this.astWithSource = astWithSource;
+ this.property = property;
+ this.unit = unit;
+ }
+ return ($traceurRuntime.createClass)(ElementPropertyBinding, {}, {});
+ }());
+ $__export("ElementPropertyBinding", ElementPropertyBinding);
ElementBinder = (function() {
function ElementBinder() {
var $__1 = arguments[0] !== (void 0) ? arguments[0] : {},
@@ -11504,21 +11489,21 @@ System.register("angular2/src/render/api", ["angular2/src/facade/lang", "angular
callOnAllChangesDone = $__2.callOnAllChangesDone,
changeDetection = $__2.changeDetection,
exportAs = $__2.exportAs;
- var hostListeners = MapWrapper.create();
- var hostProperties = MapWrapper.create();
- var hostAttributes = MapWrapper.create();
- var hostActions = MapWrapper.create();
+ var hostListeners = new Map();
+ var hostProperties = new Map();
+ var hostAttributes = new Map();
+ var hostActions = new Map();
if (isPresent(host)) {
MapWrapper.forEach(host, (function(value, key) {
var matches = RegExpWrapper.firstMatch(hostRegExp, key);
if (isBlank(matches)) {
- MapWrapper.set(hostAttributes, key, value);
+ hostAttributes.set(key, value);
} else if (isPresent(matches[1])) {
- MapWrapper.set(hostProperties, matches[1], value);
+ hostProperties.set(matches[1], value);
} else if (isPresent(matches[2])) {
- MapWrapper.set(hostListeners, matches[2], value);
+ hostListeners.set(matches[2], value);
} else if (isPresent(matches[3])) {
- MapWrapper.set(hostActions, matches[3], value);
+ hostActions.set(matches[3], value);
}
}));
}
@@ -11581,7 +11566,7 @@ System.register("angular2/src/render/api", ["angular2/src/facade/lang", "angular
compileHost: function(directiveMetadata) {
return null;
},
- compile: function(template) {
+ compile: function(view) {
return null;
}
}, {});
@@ -11593,19 +11578,24 @@ System.register("angular2/src/render/api", ["angular2/src/facade/lang", "angular
createRootHostView: function(hostProtoViewRef, hostElementSelector) {
return null;
},
- detachFreeView: function(view) {},
createView: function(protoViewRef) {
return null;
},
destroyView: function(viewRef) {},
- attachComponentView: function(hostViewRef, elementIndex, componentViewRef) {},
- detachComponentView: function(hostViewRef, boundElementIndex, componentViewRef) {},
- attachViewInContainer: function(parentViewRef, boundElementIndex, atIndex, viewRef) {},
- detachViewInContainer: function(parentViewRef, boundElementIndex, atIndex, viewRef) {},
+ attachComponentView: function(location, componentViewRef) {},
+ detachComponentView: function(location, componentViewRef) {},
+ attachViewInContainer: function(location, atIndex, viewRef) {},
+ detachViewInContainer: function(location, atIndex, viewRef) {},
hydrateView: function(viewRef) {},
dehydrateView: function(viewRef) {},
- setElementProperty: function(viewRef, elementIndex, propertyName, propertyValue) {},
- callAction: function(viewRef, elementIndex, actionExpression, actionArgs) {},
+ getNativeElementSync: function(location) {
+ return null;
+ },
+ setElementProperty: function(location, propertyName, propertyValue) {},
+ setElementAttribute: function(location, attributeName, attributeValue) {},
+ setElementClass: function(location, className, isAdd) {},
+ setElementStyle: function(location, styleName, styleValue) {},
+ invokeElementMethod: function(location, methodName, args) {},
setText: function(viewRef, textNodeIndex, text) {},
setEventDispatcher: function(viewRef, dispatcher) {}
}, {});
@@ -11630,12 +11620,11 @@ System.register("angular2/src/core/compiler/element_binder", ["angular2/src/faca
}],
execute: function() {
ElementBinder = (function() {
- function ElementBinder(index, parent, distanceToParent, protoElementInjector, directiveVariableBindings, componentDirective) {
+ function ElementBinder(index, parent, distanceToParent, protoElementInjector, componentDirective) {
this.index = index;
this.parent = parent;
this.distanceToParent = distanceToParent;
this.protoElementInjector = protoElementInjector;
- this.directiveVariableBindings = directiveVariableBindings;
this.componentDirective = componentDirective;
this.nestedProtoView = null;
this.hostListeners = null;
@@ -11647,9 +11636,6 @@ System.register("angular2/src/core/compiler/element_binder", ["angular2/src/faca
hasStaticComponent: function() {
return isPresent(this.componentDirective) && isPresent(this.nestedProtoView);
},
- hasDynamicComponent: function() {
- return isPresent(this.componentDirective) && isBlank(this.nestedProtoView);
- },
hasEmbeddedProtoView: function() {
return !isPresent(this.componentDirective) && isPresent(this.nestedProtoView);
}
@@ -11660,6 +11646,39 @@ System.register("angular2/src/core/compiler/element_binder", ["angular2/src/faca
};
});
+System.register("angular2/src/core/compiler/element_ref", ["angular2/src/facade/lang"], function($__export) {
+ "use strict";
+ var __moduleName = "angular2/src/core/compiler/element_ref";
+ var BaseException,
+ ElementRef;
+ return {
+ setters: [function($__m) {
+ BaseException = $__m.BaseException;
+ }],
+ execute: function() {
+ ElementRef = (function() {
+ function ElementRef(parentView, boundElementIndex, _renderer) {
+ this.parentView = parentView;
+ this.boundElementIndex = boundElementIndex;
+ this._renderer = _renderer;
+ }
+ return ($traceurRuntime.createClass)(ElementRef, {
+ get renderView() {
+ return this.parentView.render;
+ },
+ set renderView(viewRef) {
+ throw new BaseException('Abstract setter');
+ },
+ get nativeElement() {
+ return this._renderer.getNativeElementSync(this);
+ }
+ }, {});
+ }());
+ $__export("ElementRef", ElementRef);
+ }
+ };
+});
+
System.register("angular2/src/core/compiler/view_pool", ["angular2/di", "angular2/src/facade/collection", "angular2/src/facade/lang"], function($__export) {
"use strict";
var __moduleName = "angular2/src/core/compiler/view_pool";
@@ -11670,7 +11689,7 @@ System.register("angular2/src/core/compiler/view_pool", ["angular2/di", "angular
Injectable,
OpaqueToken,
ListWrapper,
- MapWrapper,
+ Map,
isPresent,
isBlank,
CONST_EXPR,
@@ -11683,7 +11702,7 @@ System.register("angular2/src/core/compiler/view_pool", ["angular2/di", "angular
OpaqueToken = $__m.OpaqueToken;
}, function($__m) {
ListWrapper = $__m.ListWrapper;
- MapWrapper = $__m.MapWrapper;
+ Map = $__m.Map;
}, function($__m) {
isPresent = $__m.isPresent;
isBlank = $__m.isBlank;
@@ -11720,11 +11739,11 @@ System.register("angular2/src/core/compiler/view_pool", ["angular2/di", "angular
APP_VIEW_POOL_CAPACITY = CONST_EXPR(new OpaqueToken('AppViewPool.viewPoolCapacity'));
$__export("APP_VIEW_POOL_CAPACITY", APP_VIEW_POOL_CAPACITY);
AppViewPool = (($traceurRuntime.createClass)(function(poolCapacityPerProtoView) {
- this._pooledViewsPerProtoView = MapWrapper.create();
+ this._pooledViewsPerProtoView = new Map();
this._poolCapacityPerProtoView = poolCapacityPerProtoView;
}, {
getView: function(protoView) {
- var pooledViews = MapWrapper.get(this._pooledViewsPerProtoView, protoView);
+ var pooledViews = this._pooledViewsPerProtoView.get(protoView);
if (isPresent(pooledViews) && pooledViews.length > 0) {
return ListWrapper.removeLast(pooledViews);
}
@@ -11732,14 +11751,14 @@ System.register("angular2/src/core/compiler/view_pool", ["angular2/di", "angular
},
returnView: function(view) {
var protoView = view.proto;
- var pooledViews = MapWrapper.get(this._pooledViewsPerProtoView, protoView);
+ var pooledViews = this._pooledViewsPerProtoView.get(protoView);
if (isBlank(pooledViews)) {
pooledViews = [];
- MapWrapper.set(this._pooledViewsPerProtoView, protoView, pooledViews);
+ this._pooledViewsPerProtoView.set(protoView, pooledViews);
}
var haveRemainingCapacity = pooledViews.length < this._poolCapacityPerProtoView;
if (haveRemainingCapacity) {
- ListWrapper.push(pooledViews, view);
+ pooledViews.push(view);
}
return haveRemainingCapacity;
}
@@ -11799,7 +11818,6 @@ System.register("angular2/src/core/compiler/view_container_ref", ["angular2/src/
var __moduleName = "angular2/src/core/compiler/view_container_ref";
var ListWrapper,
isPresent,
- ViewRef,
internalView,
ViewContainerRef;
return {
@@ -11808,7 +11826,6 @@ System.register("angular2/src/core/compiler/view_container_ref", ["angular2/src/
}, function($__m) {
isPresent = $__m.isPresent;
}, function($__m) {
- ViewRef = $__m.ViewRef;
internalView = $__m.internalView;
}],
execute: function() {
@@ -11828,7 +11845,7 @@ System.register("angular2/src/core/compiler/view_container_ref", ["angular2/src/
}
},
get: function(index) {
- return new ViewRef(this._getViews()[index]);
+ return this._getViews()[index].ref;
},
get length() {
return this._getViews().length;
@@ -11870,98 +11887,6 @@ System.register("angular2/src/core/compiler/view_container_ref", ["angular2/src/
};
});
-System.register("angular2/src/render/dom/view/view", ["angular2/src/dom/dom_adapter", "angular2/src/facade/collection", "angular2/change_detection", "angular2/src/facade/lang", "angular2/src/render/api"], function($__export) {
- "use strict";
- var __moduleName = "angular2/src/render/dom/view/view";
- var DOM,
- MapWrapper,
- Locals,
- isPresent,
- RenderViewRef,
- DomViewRef,
- DomView;
- function resolveInternalDomView(viewRef) {
- return viewRef._view;
- }
- $__export("resolveInternalDomView", resolveInternalDomView);
- return {
- setters: [function($__m) {
- DOM = $__m.DOM;
- }, function($__m) {
- MapWrapper = $__m.MapWrapper;
- }, function($__m) {
- Locals = $__m.Locals;
- }, function($__m) {
- isPresent = $__m.isPresent;
- }, function($__m) {
- RenderViewRef = $__m.RenderViewRef;
- }],
- execute: function() {
- DomViewRef = (function($__super) {
- function DomViewRef(_view) {
- $traceurRuntime.superConstructor(DomViewRef).call(this);
- this._view = _view;
- }
- return ($traceurRuntime.createClass)(DomViewRef, {}, {}, $__super);
- }(RenderViewRef));
- $__export("DomViewRef", DomViewRef);
- DomView = (function() {
- function DomView(proto, rootNodes, boundTextNodes, boundElements) {
- this.proto = proto;
- this.rootNodes = rootNodes;
- this.boundTextNodes = boundTextNodes;
- this.boundElements = boundElements;
- this.hostLightDom = null;
- this.shadowRoot = null;
- this.hydrated = false;
- this.eventDispatcher = null;
- this.eventHandlerRemovers = [];
- }
- return ($traceurRuntime.createClass)(DomView, {
- getDirectParentElement: function(boundElementIndex) {
- var binder = this.proto.elementBinders[boundElementIndex];
- var parent = null;
- if (binder.parentIndex !== -1 && binder.distanceToParent === 1) {
- parent = this.boundElements[binder.parentIndex];
- }
- return parent;
- },
- setElementProperty: function(elementIndex, propertyName, value) {
- var setter = MapWrapper.get(this.proto.elementBinders[elementIndex].propertySetters, propertyName);
- setter(this.boundElements[elementIndex].element, value);
- },
- callAction: function(elementIndex, actionExpression, actionArgs) {
- var binder = this.proto.elementBinders[elementIndex];
- var hostAction = MapWrapper.get(binder.hostActions, actionExpression);
- hostAction.eval(this.boundElements[elementIndex].element, this._localsWithAction(actionArgs));
- },
- _localsWithAction: function(action) {
- var map = MapWrapper.create();
- MapWrapper.set(map, '$action', action);
- return new Locals(null, map);
- },
- setText: function(textIndex, value) {
- DOM.setText(this.boundTextNodes[textIndex], value);
- },
- dispatchEvent: function(elementIndex, eventName, event) {
- var allowDefaultBehavior = true;
- if (isPresent(this.eventDispatcher)) {
- var evalLocals = MapWrapper.create();
- MapWrapper.set(evalLocals, '$event', event);
- allowDefaultBehavior = this.eventDispatcher.dispatchEvent(elementIndex, eventName, evalLocals);
- if (!allowDefaultBehavior) {
- event.preventDefault();
- }
- }
- return allowDefaultBehavior;
- }
- }, {});
- }());
- $__export("DomView", DomView);
- }
- };
-});
-
System.register("angular2/src/core/compiler/directive_lifecycle_reflector", ["angular2/src/facade/lang"], function($__export) {
"use strict";
var __moduleName = "angular2/src/core/compiler/directive_lifecycle_reflector";
@@ -12021,7 +11946,7 @@ System.register("angular2/src/core/compiler/base_query_list", ["angular2/src/fac
writable: true
}), Object.defineProperty($__1, "add", {
value: function(obj) {
- ListWrapper.push(this._results, obj);
+ this._results.push(obj);
this._dirty = true;
},
configurable: true,
@@ -12041,7 +11966,7 @@ System.register("angular2/src/core/compiler/base_query_list", ["angular2/src/fac
writable: true
}), Object.defineProperty($__1, "onChange", {
value: function(callback) {
- ListWrapper.push(this._callbacks, callback);
+ this._callbacks.push(callback);
},
configurable: true,
enumerable: true,
@@ -12078,26 +12003,30 @@ System.register("angular2/src/core/compiler/base_query_list", ["angular2/src/fac
};
});
-System.register("angular2/src/core/compiler/template_resolver", ["angular2/di", "angular2/src/core/annotations_impl/view", "angular2/src/facade/lang", "angular2/src/facade/collection", "angular2/src/reflection/reflection"], function($__export) {
+System.register("angular2/src/core/compiler/view_resolver", ["angular2/di", "angular2/src/core/annotations_impl/view", "angular2/src/facade/lang", "angular2/src/facade/collection", "angular2/src/reflection/reflection"], function($__export) {
"use strict";
- var __moduleName = "angular2/src/core/compiler/template_resolver";
+ var __moduleName = "angular2/src/core/compiler/view_resolver";
var __decorate,
__metadata,
Injectable,
View,
+ stringify,
isBlank,
- MapWrapper,
+ BaseException,
+ Map,
reflector,
- TemplateResolver;
+ ViewResolver;
return {
setters: [function($__m) {
Injectable = $__m.Injectable;
}, function($__m) {
View = $__m.View;
}, function($__m) {
+ stringify = $__m.stringify;
isBlank = $__m.isBlank;
+ BaseException = $__m.BaseException;
}, function($__m) {
- MapWrapper = $__m.MapWrapper;
+ Map = $__m.Map;
}, function($__m) {
reflector = $__m.reflector;
}],
@@ -12124,14 +12053,14 @@ System.register("angular2/src/core/compiler/template_resolver", ["angular2/di",
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
return Reflect.metadata(k, v);
};
- TemplateResolver = (($traceurRuntime.createClass)(function() {
- this._cache = MapWrapper.create();
+ ViewResolver = (($traceurRuntime.createClass)(function() {
+ this._cache = new Map();
}, {
resolve: function(component) {
- var view = MapWrapper.get(this._cache, component);
+ var view = this._cache.get(component);
if (isBlank(view)) {
view = this._resolve(component);
- MapWrapper.set(this._cache, component, view);
+ this._cache.set(component, view);
}
return view;
},
@@ -12143,11 +12072,11 @@ System.register("angular2/src/core/compiler/template_resolver", ["angular2/di",
return annotation;
}
}
- return null;
+ throw new BaseException(("No View annotation found on component " + stringify(component)));
}
}, {}));
- $__export("TemplateResolver", TemplateResolver);
- $__export("TemplateResolver", TemplateResolver = __decorate([Injectable(), __metadata('design:paramtypes', [])], TemplateResolver));
+ $__export("ViewResolver", ViewResolver);
+ $__export("ViewResolver", ViewResolver = __decorate([Injectable(), __metadata('design:paramtypes', [])], ViewResolver));
}
};
});
@@ -12159,7 +12088,7 @@ System.register("angular2/src/core/compiler/component_url_mapper", ["angular2/di
__metadata,
Injectable,
isPresent,
- MapWrapper,
+ Map,
ComponentUrlMapper,
RuntimeComponentUrlMapper;
return {
@@ -12168,7 +12097,7 @@ System.register("angular2/src/core/compiler/component_url_mapper", ["angular2/di
}, function($__m) {
isPresent = $__m.isPresent;
}, function($__m) {
- MapWrapper = $__m.MapWrapper;
+ Map = $__m.Map;
}],
execute: function() {
__decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
@@ -12201,14 +12130,14 @@ System.register("angular2/src/core/compiler/component_url_mapper", ["angular2/di
RuntimeComponentUrlMapper = (function($__super) {
function RuntimeComponentUrlMapper() {
$traceurRuntime.superConstructor(RuntimeComponentUrlMapper).call(this);
- this._componentUrls = MapWrapper.create();
+ this._componentUrls = new Map();
}
return ($traceurRuntime.createClass)(RuntimeComponentUrlMapper, {
setComponentUrl: function(component, url) {
- MapWrapper.set(this._componentUrls, component, url);
+ this._componentUrls.set(component, url);
},
getUrl: function(component) {
- var url = MapWrapper.get(this._componentUrls, component);
+ var url = this._componentUrls.get(component);
if (isPresent(url))
return url;
return $traceurRuntime.superGet(this, RuntimeComponentUrlMapper.prototype, "getUrl").call(this, component);
@@ -12257,7 +12186,7 @@ System.register("angular2/src/core/compiler/proto_view_factory", ["angular2/di",
if (isBlank(result)) {
result = [];
}
- ListWrapper.push(result, new RenderProtoViewWithIndex(renderProtoView, result.length, parentIndex, boundElementIndex));
+ result.push(new RenderProtoViewWithIndex(renderProtoView, result.length, parentIndex, boundElementIndex));
var currentIndex = result.length - 1;
var childBoundElementIndex = 0;
ListWrapper.forEach(renderProtoView.elementBinders, (function(elementBinder) {
@@ -12291,7 +12220,7 @@ System.register("angular2/src/core/compiler/proto_view_factory", ["angular2/di",
}
function _createAppProtoView(renderProtoView, protoChangeDetector, variableBindings, allDirectives) {
var elementBinders = renderProtoView.elementBinders;
- var protoView = new AppProtoView(renderProtoView.render, protoChangeDetector, variableBindings);
+ var protoView = new AppProtoView(renderProtoView.render, protoChangeDetector, variableBindings, createVariableLocations(elementBinders));
_createElementBinders(protoView, elementBinders, allDirectives);
_bindDirectiveEvents(protoView, elementBinders);
return protoView;
@@ -12302,9 +12231,9 @@ System.register("angular2/src/core/compiler/proto_view_factory", ["angular2/di",
}));
}
function _createVariableBindings(renderProtoView) {
- var variableBindings = MapWrapper.create();
+ var variableBindings = new Map();
MapWrapper.forEach(renderProtoView.variableBindings, (function(mappedName, varName) {
- MapWrapper.set(variableBindings, varName, mappedName);
+ variableBindings.set(varName, mappedName);
}));
return variableBindings;
}
@@ -12328,6 +12257,16 @@ System.register("angular2/src/core/compiler/proto_view_factory", ["angular2/di",
}));
return res;
}
+ function createVariableLocations(elementBinders) {
+ var variableLocations = new Map();
+ for (var i = 0; i < elementBinders.length; i++) {
+ var binder = elementBinders[i];
+ MapWrapper.forEach(binder.variableBindings, (function(mappedName, varName) {
+ variableLocations.set(mappedName, i);
+ }));
+ }
+ return variableLocations;
+ }
function _createElementBinders(protoView, elementBinders, allDirectiveBindings) {
for (var i = 0; i < elementBinders.length; i++) {
var renderElementBinder = elementBinders[i];
@@ -12365,7 +12304,8 @@ System.register("angular2/src/core/compiler/proto_view_factory", ["angular2/di",
var protoElementInjector = null;
var hasVariables = MapWrapper.size(renderElementBinder.variableBindings) > 0;
if (directiveBindings.length > 0 || hasVariables) {
- protoElementInjector = ProtoElementInjector.create(parentPeiWithDistance.protoElementInjector, binderIndex, directiveBindings, isPresent(componentDirectiveBinding), parentPeiWithDistance.distance);
+ var directiveVariableBindings = createDirectiveVariableBindings(renderElementBinder, directiveBindings);
+ protoElementInjector = ProtoElementInjector.create(parentPeiWithDistance.protoElementInjector, binderIndex, directiveBindings, isPresent(componentDirectiveBinding), parentPeiWithDistance.distance, directiveVariableBindings);
protoElementInjector.attributes = renderElementBinder.readAttributes;
}
return protoElementInjector;
@@ -12375,19 +12315,18 @@ System.register("angular2/src/core/compiler/proto_view_factory", ["angular2/di",
if (renderElementBinder.parentIndex !== -1) {
parent = protoView.elementBinders[renderElementBinder.parentIndex];
}
- var directiveVariableBindings = createDirectiveVariableBindings(renderElementBinder, directiveBindings);
- var elBinder = protoView.bindElement(parent, renderElementBinder.distanceToParent, protoElementInjector, directiveVariableBindings, componentDirectiveBinding);
+ var elBinder = protoView.bindElement(parent, renderElementBinder.distanceToParent, protoElementInjector, componentDirectiveBinding);
protoView.bindEvent(renderElementBinder.eventBindings, boundElementIndex, -1);
MapWrapper.forEach(renderElementBinder.variableBindings, (function(mappedName, varName) {
- MapWrapper.set(protoView.protoLocals, mappedName, null);
+ protoView.protoLocals.set(mappedName, null);
}));
return elBinder;
}
function createDirectiveVariableBindings(renderElementBinder, directiveBindings) {
- var directiveVariableBindings = MapWrapper.create();
+ var directiveVariableBindings = new Map();
MapWrapper.forEach(renderElementBinder.variableBindings, (function(templateName, exportAs) {
var dirIndex = _findDirectiveIndexByExportAs(renderElementBinder, directiveBindings, exportAs);
- MapWrapper.set(directiveVariableBindings, templateName, dirIndex);
+ directiveVariableBindings.set(templateName, dirIndex);
}));
return directiveVariableBindings;
}
@@ -12427,6 +12366,7 @@ System.register("angular2/src/core/compiler/proto_view_factory", ["angular2/di",
}
}
$__export("getChangeDetectorDefinitions", getChangeDetectorDefinitions);
+ $__export("createVariableLocations", createVariableLocations);
$__export("createDirectiveVariableBindings", createDirectiveVariableBindings);
return {
setters: [function($__m) {
@@ -12479,7 +12419,7 @@ System.register("angular2/src/core/compiler/proto_view_factory", ["angular2/di",
};
BindingRecordsCreator = (function() {
function BindingRecordsCreator() {
- this._directiveRecordsMap = MapWrapper.create();
+ this._directiveRecordsMap = new Map();
this._textNodeIndex = 0;
}
return ($traceurRuntime.createClass)(BindingRecordsCreator, {
@@ -12498,7 +12438,7 @@ System.register("angular2/src/core/compiler/proto_view_factory", ["angular2/di",
for (var elementIndex = 0; elementIndex < elementBinders.length; ++elementIndex) {
var dirs = elementBinders[elementIndex].directives;
for (var dirIndex = 0; dirIndex < dirs.length; ++dirIndex) {
- ListWrapper.push(directiveRecords, this._getDirectiveRecord(elementIndex, dirIndex, allDirectiveMetadatas[dirs[dirIndex].directiveIndex]));
+ directiveRecords.push(this._getDirectiveRecord(elementIndex, dirIndex, allDirectiveMetadatas[dirs[dirIndex].directiveIndex]));
}
}
return directiveRecords;
@@ -12508,12 +12448,20 @@ System.register("angular2/src/core/compiler/proto_view_factory", ["angular2/di",
if (isBlank(renderElementBinder.textBindings))
return ;
ListWrapper.forEach(renderElementBinder.textBindings, (function(b) {
- ListWrapper.push(bindings, BindingRecord.createForTextNode(b, $__0._textNodeIndex++));
+ bindings.push(BindingRecord.createForTextNode(b, $__0._textNodeIndex++));
}));
},
_createElementPropertyRecords: function(bindings, boundElementIndex, renderElementBinder) {
- MapWrapper.forEach(renderElementBinder.propertyBindings, (function(astWithSource, propertyName) {
- ListWrapper.push(bindings, BindingRecord.createForElement(astWithSource, boundElementIndex, propertyName));
+ ListWrapper.forEach(renderElementBinder.propertyBindings, (function(binding) {
+ if (binding.type === renderApi.PropertyBindingType.PROPERTY) {
+ bindings.push(BindingRecord.createForElementProperty(binding.astWithSource, boundElementIndex, binding.property));
+ } else if (binding.type === renderApi.PropertyBindingType.ATTRIBUTE) {
+ bindings.push(BindingRecord.createForElementAttribute(binding.astWithSource, boundElementIndex, binding.property));
+ } else if (binding.type === renderApi.PropertyBindingType.CLASS) {
+ bindings.push(BindingRecord.createForElementClass(binding.astWithSource, boundElementIndex, binding.property));
+ } else if (binding.type === renderApi.PropertyBindingType.STYLE) {
+ bindings.push(BindingRecord.createForElementStyle(binding.astWithSource, boundElementIndex, binding.property, binding.unit));
+ }
}));
},
_createDirectiveRecords: function(bindings, boundElementIndex, directiveBinders, allDirectiveMetadatas) {
@@ -12523,30 +12471,38 @@ System.register("angular2/src/core/compiler/proto_view_factory", ["angular2/di",
var directiveRecord = this._getDirectiveRecord(boundElementIndex, i, directiveMetadata);
MapWrapper.forEach(directiveBinder.propertyBindings, (function(astWithSource, propertyName) {
var setter = reflector.setter(propertyName);
- ListWrapper.push(bindings, BindingRecord.createForDirective(astWithSource, propertyName, setter, directiveRecord));
+ bindings.push(BindingRecord.createForDirective(astWithSource, propertyName, setter, directiveRecord));
}));
if (directiveRecord.callOnChange) {
- ListWrapper.push(bindings, BindingRecord.createDirectiveOnChange(directiveRecord));
+ bindings.push(BindingRecord.createDirectiveOnChange(directiveRecord));
}
if (directiveRecord.callOnInit) {
- ListWrapper.push(bindings, BindingRecord.createDirectiveOnInit(directiveRecord));
+ bindings.push(BindingRecord.createDirectiveOnInit(directiveRecord));
}
if (directiveRecord.callOnCheck) {
- ListWrapper.push(bindings, BindingRecord.createDirectiveOnCheck(directiveRecord));
+ bindings.push(BindingRecord.createDirectiveOnCheck(directiveRecord));
}
}
for (var i = 0; i < directiveBinders.length; i++) {
var directiveBinder = directiveBinders[i];
- MapWrapper.forEach(directiveBinder.hostPropertyBindings, (function(astWithSource, propertyName) {
+ ListWrapper.forEach(directiveBinder.hostPropertyBindings, (function(binding) {
var dirIndex = new DirectiveIndex(boundElementIndex, i);
- ListWrapper.push(bindings, BindingRecord.createForHostProperty(dirIndex, astWithSource, propertyName));
+ if (binding.type === renderApi.PropertyBindingType.PROPERTY) {
+ bindings.push(BindingRecord.createForHostProperty(dirIndex, binding.astWithSource, binding.property));
+ } else if (binding.type === renderApi.PropertyBindingType.ATTRIBUTE) {
+ bindings.push(BindingRecord.createForHostAttribute(dirIndex, binding.astWithSource, binding.property));
+ } else if (binding.type === renderApi.PropertyBindingType.CLASS) {
+ bindings.push(BindingRecord.createForHostClass(dirIndex, binding.astWithSource, binding.property));
+ } else if (binding.type === renderApi.PropertyBindingType.STYLE) {
+ bindings.push(BindingRecord.createForHostStyle(dirIndex, binding.astWithSource, binding.property, binding.unit));
+ }
}));
}
},
_getDirectiveRecord: function(boundElementIndex, directiveIndex, directiveMetadata) {
var id = boundElementIndex * 100 + directiveIndex;
- if (!MapWrapper.contains(this._directiveRecordsMap, id)) {
- MapWrapper.set(this._directiveRecordsMap, id, new DirectiveRecord({
+ if (!this._directiveRecordsMap.has(id)) {
+ this._directiveRecordsMap.set(id, new DirectiveRecord({
directiveIndex: new DirectiveIndex(boundElementIndex, directiveIndex),
callOnAllChangesDone: directiveMetadata.callOnAllChangesDone,
callOnChange: directiveMetadata.callOnChange,
@@ -12555,7 +12511,7 @@ System.register("angular2/src/core/compiler/proto_view_factory", ["angular2/di",
changeDetection: directiveMetadata.changeDetection
}));
}
- return MapWrapper.get(this._directiveRecordsMap, id);
+ return this._directiveRecordsMap.get(id);
}
}, {});
}());
@@ -12606,7 +12562,7 @@ System.register("angular2/src/core/compiler/proto_view_factory", ["angular2/di",
};
});
-System.register("angular2/src/services/url_resolver", ["angular2/di", "angular2/src/facade/lang", "angular2/src/dom/dom_adapter"], function($__export) {
+System.register("angular2/src/services/url_resolver", ["angular2/di", "angular2/src/facade/lang", "angular2/src/facade/collection"], function($__export) {
"use strict";
var __moduleName = "angular2/src/services/url_resolver";
var __decorate,
@@ -12615,10 +12571,103 @@ System.register("angular2/src/services/url_resolver", ["angular2/di", "angular2/
isPresent,
isBlank,
RegExpWrapper,
- BaseException,
- DOM,
+ ListWrapper,
UrlResolver,
- _schemeRe;
+ _splitRe,
+ _ComponentIndex;
+ function _buildFromEncodedParts(opt_scheme, opt_userInfo, opt_domain, opt_port, opt_path, opt_queryData, opt_fragment) {
+ var out = [];
+ if (isPresent(opt_scheme)) {
+ out.push(opt_scheme + ':');
+ }
+ if (isPresent(opt_domain)) {
+ out.push('//');
+ if (isPresent(opt_userInfo)) {
+ out.push(opt_userInfo + '@');
+ }
+ out.push(opt_domain);
+ if (isPresent(opt_port)) {
+ out.push(':' + opt_port);
+ }
+ }
+ if (isPresent(opt_path)) {
+ out.push(opt_path);
+ }
+ if (isPresent(opt_queryData)) {
+ out.push('?' + opt_queryData);
+ }
+ if (isPresent(opt_fragment)) {
+ out.push('#' + opt_fragment);
+ }
+ return out.join('');
+ }
+ function _split(uri) {
+ return RegExpWrapper.firstMatch(_splitRe, uri);
+ }
+ function _removeDotSegments(path) {
+ if (path == '/')
+ return '/';
+ var leadingSlash = path[0] == '/' ? '/' : '';
+ var trailingSlash = path[path.length - 1] === '/' ? '/' : '';
+ var segments = path.split('/');
+ var out = [];
+ var up = 0;
+ for (var pos = 0; pos < segments.length; pos++) {
+ var segment = segments[pos];
+ switch (segment) {
+ case '':
+ case '.':
+ break;
+ case '..':
+ if (out.length > 0) {
+ ListWrapper.removeAt(out, out.length - 1);
+ } else {
+ up++;
+ }
+ break;
+ default:
+ out.push(segment);
+ }
+ }
+ if (leadingSlash == '') {
+ while (up-- > 0) {
+ ListWrapper.insert(out, 0, '..');
+ }
+ if (out.length === 0)
+ out.push('.');
+ }
+ return leadingSlash + out.join('/') + trailingSlash;
+ }
+ function _joinAndCanonicalizePath(parts) {
+ var path = parts[_ComponentIndex.PATH];
+ path = isBlank(path) ? '' : _removeDotSegments(path);
+ parts[_ComponentIndex.PATH] = path;
+ return _buildFromEncodedParts(parts[_ComponentIndex.SCHEME], parts[_ComponentIndex.USER_INFO], parts[_ComponentIndex.DOMAIN], parts[_ComponentIndex.PORT], path, parts[_ComponentIndex.QUERY_DATA], parts[_ComponentIndex.FRAGMENT]);
+ }
+ function _resolveUrl(base, url) {
+ var parts = _split(url);
+ var baseParts = _split(base);
+ if (isPresent(parts[_ComponentIndex.SCHEME])) {
+ return _joinAndCanonicalizePath(parts);
+ } else {
+ parts[_ComponentIndex.SCHEME] = baseParts[_ComponentIndex.SCHEME];
+ }
+ for (var i = _ComponentIndex.SCHEME; i <= _ComponentIndex.PORT; i++) {
+ if (isBlank(parts[i])) {
+ parts[i] = baseParts[i];
+ }
+ }
+ if (parts[_ComponentIndex.PATH][0] == '/') {
+ return _joinAndCanonicalizePath(parts);
+ }
+ var path = baseParts[_ComponentIndex.PATH];
+ if (isBlank(path))
+ path = '/';
+ var index = path.lastIndexOf('/');
+ path = path.substring(0, index + 1) + parts[_ComponentIndex.PATH];
+ parts[_ComponentIndex.PATH] = path;
+ return _joinAndCanonicalizePath(parts);
+ }
return {
setters: [function($__m) {
Injectable = $__m.Injectable;
@@ -12626,7 +12675,65 @@ System.register("angular2/src/services/url_resolver", ["angular2/di", "angular2/
isPresent = $__m.isPresent;
isBlank = $__m.isBlank;
RegExpWrapper = $__m.RegExpWrapper;
- BaseException = $__m.BaseException;
+ }, function($__m) {
+ ListWrapper = $__m.ListWrapper;
+ }],
+ execute: function() {
+ __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
+ return Reflect.decorate(decorators, target, key, desc);
+ switch (arguments.length) {
+ case 2:
+ return decorators.reduceRight(function(o, d) {
+ return (d && d(o)) || o;
+ }, target);
+ case 3:
+ return decorators.reduceRight(function(o, d) {
+ return (d && d(target, key)), void 0;
+ }, void 0);
+ case 4:
+ return decorators.reduceRight(function(o, d) {
+ return (d && d(target, key, o)) || o;
+ }, desc);
+ }
+ };
+ __metadata = (this && this.__metadata) || function(k, v) {
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
+ return Reflect.metadata(k, v);
+ };
+ UrlResolver = (($traceurRuntime.createClass)(function() {}, {resolve: function(baseUrl, url) {
+ return _resolveUrl(baseUrl, url);
+ }}, {}));
+ $__export("UrlResolver", UrlResolver);
+ $__export("UrlResolver", UrlResolver = __decorate([Injectable(), __metadata('design:paramtypes', [])], UrlResolver));
+ _splitRe = RegExpWrapper.create('^' + '(?:' + '([^:/?#.]+)' + ':)?' + '(?://' + '(?:([^/?#]*)@)?' + '([\\w\\d\\-\\u0100-\\uffff.%]*)' + '(?::([0-9]+))?' + ')?' + '([^?#]+)?' + '(?:\\?([^#]*))?' + '(?:#(.*))?' + '$');
+ (function(_ComponentIndex) {
+ _ComponentIndex[_ComponentIndex["SCHEME"] = 1] = "SCHEME";
+ _ComponentIndex[_ComponentIndex["USER_INFO"] = 2] = "USER_INFO";
+ _ComponentIndex[_ComponentIndex["DOMAIN"] = 3] = "DOMAIN";
+ _ComponentIndex[_ComponentIndex["PORT"] = 4] = "PORT";
+ _ComponentIndex[_ComponentIndex["PATH"] = 5] = "PATH";
+ _ComponentIndex[_ComponentIndex["QUERY_DATA"] = 6] = "QUERY_DATA";
+ _ComponentIndex[_ComponentIndex["FRAGMENT"] = 7] = "FRAGMENT";
+ })(_ComponentIndex || (_ComponentIndex = {}));
+ }
+ };
+});
+
+System.register("angular2/src/services/app_root_url", ["angular2/di", "angular2/src/facade/lang", "angular2/src/dom/dom_adapter"], function($__export) {
+ "use strict";
+ var __moduleName = "angular2/src/services/app_root_url";
+ var __decorate,
+ __metadata,
+ Injectable,
+ isBlank,
+ DOM,
+ AppRootUrl;
+ return {
+ setters: [function($__m) {
+ Injectable = $__m.Injectable;
+ }, function($__m) {
+ isBlank = $__m.isBlank;
}, function($__m) {
DOM = $__m.DOM;
}],
@@ -12653,30 +12760,16 @@ System.register("angular2/src/services/url_resolver", ["angular2/di", "angular2/
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
return Reflect.metadata(k, v);
};
- UrlResolver = (($traceurRuntime.createClass)(function() {
- if (isBlank(UrlResolver.a)) {
- UrlResolver.a = DOM.createElement('a');
- }
- }, {resolve: function(baseUrl, url) {
- if (isBlank(baseUrl)) {
- DOM.resolveAndSetHref(UrlResolver.a, url, null);
- return DOM.getHref(UrlResolver.a);
+ AppRootUrl = (($traceurRuntime.createClass)(function() {}, {get value() {
+ if (isBlank(this._value)) {
+ var a = DOM.createElement('a');
+ DOM.resolveAndSetHref(a, './', null);
+ this._value = DOM.getHref(a);
}
- if (isBlank(url) || url == '')
- return baseUrl;
- if (url[0] == '/') {
- throw new BaseException(("Could not resolve the url " + url + " from " + baseUrl));
- }
- var m = RegExpWrapper.firstMatch(_schemeRe, url);
- if (isPresent(m[1])) {
- return url;
- }
- DOM.resolveAndSetHref(UrlResolver.a, baseUrl, url);
- return DOM.getHref(UrlResolver.a);
+ return this._value;
}}, {}));
- $__export("UrlResolver", UrlResolver);
- $__export("UrlResolver", UrlResolver = __decorate([Injectable(), __metadata('design:paramtypes', [])], UrlResolver));
- _schemeRe = RegExpWrapper.create('^([^:/?#]+:)?');
+ $__export("AppRootUrl", AppRootUrl);
+ $__export("AppRootUrl", AppRootUrl = __decorate([Injectable(), __metadata('design:paramtypes', [])], AppRootUrl));
}
};
});
@@ -12757,6 +12850,79 @@ System.register("angular2/src/render/xhr", [], function($__export) {
};
});
+System.register("angular2/src/render/dom/compiler/style_url_resolver", ["angular2/di", "angular2/src/facade/lang", "angular2/src/services/url_resolver"], function($__export) {
+ "use strict";
+ var __moduleName = "angular2/src/render/dom/compiler/style_url_resolver";
+ var __decorate,
+ __metadata,
+ Injectable,
+ RegExpWrapper,
+ StringWrapper,
+ UrlResolver,
+ StyleUrlResolver,
+ _cssUrlRe,
+ _cssImportRe,
+ _quoteRe;
+ return {
+ setters: [function($__m) {
+ Injectable = $__m.Injectable;
+ }, function($__m) {
+ RegExpWrapper = $__m.RegExpWrapper;
+ StringWrapper = $__m.StringWrapper;
+ }, function($__m) {
+ UrlResolver = $__m.UrlResolver;
+ }],
+ execute: function() {
+ __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
+ return Reflect.decorate(decorators, target, key, desc);
+ switch (arguments.length) {
+ case 2:
+ return decorators.reduceRight(function(o, d) {
+ return (d && d(o)) || o;
+ }, target);
+ case 3:
+ return decorators.reduceRight(function(o, d) {
+ return (d && d(target, key)), void 0;
+ }, void 0);
+ case 4:
+ return decorators.reduceRight(function(o, d) {
+ return (d && d(target, key, o)) || o;
+ }, desc);
+ }
+ };
+ __metadata = (this && this.__metadata) || function(k, v) {
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
+ return Reflect.metadata(k, v);
+ };
+ StyleUrlResolver = (($traceurRuntime.createClass)(function(_resolver) {
+ this._resolver = _resolver;
+ }, {
+ resolveUrls: function(cssText, baseUrl) {
+ cssText = this._replaceUrls(cssText, _cssUrlRe, baseUrl);
+ cssText = this._replaceUrls(cssText, _cssImportRe, baseUrl);
+ return cssText;
+ },
+ _replaceUrls: function(cssText, re, baseUrl) {
+ var $__0 = this;
+ return StringWrapper.replaceAllMapped(cssText, re, (function(m) {
+ var pre = m[1];
+ var url = StringWrapper.replaceAll(m[2], _quoteRe, '');
+ var post = m[3];
+ var resolvedUrl = $__0._resolver.resolve(baseUrl, url);
+ return pre + "'" + resolvedUrl + "'" + post;
+ }));
+ }
+ }, {}));
+ $__export("StyleUrlResolver", StyleUrlResolver);
+ $__export("StyleUrlResolver", StyleUrlResolver = __decorate([Injectable(), __metadata('design:paramtypes', [UrlResolver])], StyleUrlResolver));
+ _cssUrlRe = RegExpWrapper.create('(url\\()([^)]*)(\\))');
+ _cssImportRe = RegExpWrapper.create('(@import[\\s]+(?!url\\())[\'"]([^\'"]*)[\'"](.*;)');
+ _quoteRe = RegExpWrapper.create('[\'"]');
+ }
+ };
+});
+
System.register("angular2/src/core/zone/ng_zone", ["angular2/src/facade/collection", "angular2/src/facade/lang"], function($__export) {
"use strict";
var __moduleName = "angular2/src/core/zone/ng_zone";
@@ -12894,13 +13060,12 @@ System.register("angular2/src/core/zone/ng_zone", ["angular2/src/facade/collecti
};
});
-System.register("angular2/src/core/life_cycle/life_cycle", ["angular2/di", "angular2/change_detection", "angular2/src/core/exception_handler", "angular2/src/facade/lang"], function($__export) {
+System.register("angular2/src/core/life_cycle/life_cycle", ["angular2/di", "angular2/src/core/exception_handler", "angular2/src/facade/lang"], function($__export) {
"use strict";
var __moduleName = "angular2/src/core/life_cycle/life_cycle";
var __decorate,
__metadata,
Injectable,
- ChangeDetector,
ExceptionHandler,
isPresent,
BaseException,
@@ -12908,8 +13073,6 @@ System.register("angular2/src/core/life_cycle/life_cycle", ["angular2/di", "angu
return {
setters: [function($__m) {
Injectable = $__m.Injectable;
- }, function($__m) {
- ChangeDetector = $__m.ChangeDetector;
}, function($__m) {
ExceptionHandler = $__m.ExceptionHandler;
}, function($__m) {
@@ -12979,7 +13142,7 @@ System.register("angular2/src/core/life_cycle/life_cycle", ["angular2/di", "angu
}
}, {}));
$__export("LifeCycle", LifeCycle);
- $__export("LifeCycle", LifeCycle = __decorate([Injectable(), __metadata('design:paramtypes', [ExceptionHandler, ChangeDetector, Boolean])], LifeCycle));
+ $__export("LifeCycle", LifeCycle = __decorate([Injectable(), __metadata('design:paramtypes', [ExceptionHandler, Object, Boolean])], LifeCycle));
}
};
});
@@ -13003,9 +13166,7 @@ System.register("angular2/src/render/dom/shadow_dom/shadow_dom_strategy", [], fu
constructLightDom: function(lightDomView, el) {
return null;
},
- processStyleElement: function(hostComponentId, templateUrl, styleElement) {
- return null;
- },
+ processStyleElement: function(hostComponentId, templateUrl, styleElement) {},
processElement: function(hostComponentId, elementComponentId, element) {}
}, {});
}());
@@ -13100,7 +13261,7 @@ System.register("angular2/src/render/dom/shadow_dom/light_dom", ["angular2/src/d
for (var i = 0; i < els.length; i++) {
var el = els[i];
if (isPresent(el.contentTag)) {
- ListWrapper.push(acc, el.contentTag);
+ acc.push(el.contentTag);
}
if (isPresent(el.viewContainer)) {
ListWrapper.forEach(el.viewContainer.contentTagContainers(), (function(view) {
@@ -13123,10 +13284,10 @@ System.register("angular2/src/render/dom/shadow_dom/light_dom", ["angular2/src/d
} else if (isPresent(content)) {
res = ListWrapper.concat(res, content.nodes());
} else {
- ListWrapper.push(res, root.node);
+ res.push(root.node);
}
} else {
- ListWrapper.push(res, root.node);
+ res.push(root.node);
}
}
return res;
@@ -13277,7 +13438,7 @@ System.register("angular2/src/render/dom/shadow_dom/shadow_css", ["angular2/src/
if (isBlank(p))
break;
p = p.trim();
- ListWrapper.push(r, partReplacer(_polyfillHostNoCombinator, p, m[3]));
+ r.push(partReplacer(_polyfillHostNoCombinator, p, m[3]));
}
return r.join(',');
} else {
@@ -13346,7 +13507,7 @@ System.register("angular2/src/render/dom/shadow_dom/shadow_css", ["angular2/src/
if (this._selectorNeedsScoping(p, scopeSelector)) {
p = strict && !StringWrapper.contains(p, _polyfillHostNoCombinator) ? this._applyStrictSelectorScope(p, scopeSelector) : this._applySelectorScope(p, scopeSelector, hostSelector);
}
- ListWrapper.push(r, p);
+ r.push(p);
}
return r.join(', ');
},
@@ -13483,9 +13644,13 @@ System.register("angular2/src/render/xhr_impl", ["angular2/di", "angular2/src/fa
xhr.open('GET', url, true);
xhr.responseType = 'text';
xhr.onload = function() {
- var status = xhr.status;
+ var response = ('response' in xhr) ? xhr.response : xhr.responseText;
+ var status = xhr.status === 1223 ? 204 : xhr.status;
+ if (status === 0) {
+ status = response ? 200 : 0;
+ }
if (200 <= status && status <= 300) {
- completer.resolve(xhr.responseText);
+ completer.resolve(response);
} else {
completer.reject(("Failed to load " + url), null);
}
@@ -13806,251 +13971,23 @@ System.register("angular2/src/render/dom/events/hammer_common", ["angular2/src/r
};
});
-System.register("angular2/src/render/dom/shadow_dom/style_url_resolver", ["angular2/di", "angular2/src/facade/lang", "angular2/src/services/url_resolver"], function($__export) {
- "use strict";
- var __moduleName = "angular2/src/render/dom/shadow_dom/style_url_resolver";
- var __decorate,
- __metadata,
- Injectable,
- RegExpWrapper,
- StringWrapper,
- UrlResolver,
- StyleUrlResolver,
- _cssUrlRe,
- _cssImportRe,
- _quoteRe;
- return {
- setters: [function($__m) {
- Injectable = $__m.Injectable;
- }, function($__m) {
- RegExpWrapper = $__m.RegExpWrapper;
- StringWrapper = $__m.StringWrapper;
- }, function($__m) {
- UrlResolver = $__m.UrlResolver;
- }],
- execute: function() {
- __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
- return Reflect.decorate(decorators, target, key, desc);
- switch (arguments.length) {
- case 2:
- return decorators.reduceRight(function(o, d) {
- return (d && d(o)) || o;
- }, target);
- case 3:
- return decorators.reduceRight(function(o, d) {
- return (d && d(target, key)), void 0;
- }, void 0);
- case 4:
- return decorators.reduceRight(function(o, d) {
- return (d && d(target, key, o)) || o;
- }, desc);
- }
- };
- __metadata = (this && this.__metadata) || function(k, v) {
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
- return Reflect.metadata(k, v);
- };
- StyleUrlResolver = (($traceurRuntime.createClass)(function(_resolver) {
- this._resolver = _resolver;
- }, {
- resolveUrls: function(cssText, baseUrl) {
- cssText = this._replaceUrls(cssText, _cssUrlRe, baseUrl);
- cssText = this._replaceUrls(cssText, _cssImportRe, baseUrl);
- return cssText;
- },
- _replaceUrls: function(cssText, re, baseUrl) {
- var $__0 = this;
- return StringWrapper.replaceAllMapped(cssText, re, (function(m) {
- var pre = m[1];
- var url = StringWrapper.replaceAll(m[2], _quoteRe, '');
- var post = m[3];
- var resolvedUrl = $__0._resolver.resolve(baseUrl, url);
- return pre + "'" + resolvedUrl + "'" + post;
- }));
- }
- }, {}));
- $__export("StyleUrlResolver", StyleUrlResolver);
- $__export("StyleUrlResolver", StyleUrlResolver = __decorate([Injectable(), __metadata('design:paramtypes', [UrlResolver])], StyleUrlResolver));
- _cssUrlRe = RegExpWrapper.create('(url\\()([^)]*)(\\))');
- _cssImportRe = RegExpWrapper.create('(@import[\\s]+(?!url\\())[\'"]([^\'"]*)[\'"](.*;)');
- _quoteRe = RegExpWrapper.create('[\'"]');
- }
- };
-});
-
-System.register("angular2/src/render/dom/shadow_dom/style_inliner", ["angular2/di", "angular2/src/render/xhr", "angular2/src/facade/collection", "angular2/src/services/url_resolver", "angular2/src/render/dom/shadow_dom/style_url_resolver", "angular2/src/facade/lang", "angular2/src/facade/async"], function($__export) {
- "use strict";
- var __moduleName = "angular2/src/render/dom/shadow_dom/style_inliner";
- var __decorate,
- __metadata,
- Injectable,
- XHR,
- ListWrapper,
- UrlResolver,
- StyleUrlResolver,
- isBlank,
- isPresent,
- RegExpWrapper,
- StringWrapper,
- isPromise,
- PromiseWrapper,
- StyleInliner,
- _importRe,
- _urlRe,
- _mediaQueryRe;
- function _extractUrl(importRule) {
- var match = RegExpWrapper.firstMatch(_urlRe, importRule);
- if (isBlank(match))
- return null;
- return isPresent(match[1]) ? match[1] : match[2];
- }
- function _extractMediaQuery(importRule) {
- var match = RegExpWrapper.firstMatch(_mediaQueryRe, importRule);
- if (isBlank(match))
- return null;
- var mediaQuery = match[1].trim();
- return (mediaQuery.length > 0) ? mediaQuery : null;
- }
- function _wrapInMediaRule(css, query) {
- return (isBlank(query)) ? css : ("@media " + query + " {\n" + css + "\n}");
- }
- return {
- setters: [function($__m) {
- Injectable = $__m.Injectable;
- }, function($__m) {
- XHR = $__m.XHR;
- }, function($__m) {
- ListWrapper = $__m.ListWrapper;
- }, function($__m) {
- UrlResolver = $__m.UrlResolver;
- }, function($__m) {
- StyleUrlResolver = $__m.StyleUrlResolver;
- }, function($__m) {
- isBlank = $__m.isBlank;
- isPresent = $__m.isPresent;
- RegExpWrapper = $__m.RegExpWrapper;
- StringWrapper = $__m.StringWrapper;
- isPromise = $__m.isPromise;
- }, function($__m) {
- PromiseWrapper = $__m.PromiseWrapper;
- }],
- execute: function() {
- __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
- return Reflect.decorate(decorators, target, key, desc);
- switch (arguments.length) {
- case 2:
- return decorators.reduceRight(function(o, d) {
- return (d && d(o)) || o;
- }, target);
- case 3:
- return decorators.reduceRight(function(o, d) {
- return (d && d(target, key)), void 0;
- }, void 0);
- case 4:
- return decorators.reduceRight(function(o, d) {
- return (d && d(target, key, o)) || o;
- }, desc);
- }
- };
- __metadata = (this && this.__metadata) || function(k, v) {
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
- return Reflect.metadata(k, v);
- };
- StyleInliner = (($traceurRuntime.createClass)(function(_xhr, _styleUrlResolver, _urlResolver) {
- this._xhr = _xhr;
- this._styleUrlResolver = _styleUrlResolver;
- this._urlResolver = _urlResolver;
- }, {
- inlineImports: function(cssText, baseUrl) {
- return this._inlineImports(cssText, baseUrl, []);
- },
- _inlineImports: function(cssText, baseUrl, inlinedUrls) {
- var $__0 = this;
- var partIndex = 0;
- var parts = StringWrapper.split(cssText, _importRe);
- if (parts.length === 1) {
- return cssText;
- }
- var promises = [];
- while (partIndex < parts.length - 1) {
- var prefix = parts[partIndex];
- var rule = parts[partIndex + 1];
- var url = _extractUrl(rule);
- if (isPresent(url)) {
- url = this._urlResolver.resolve(baseUrl, url);
- }
- var mediaQuery = _extractMediaQuery(rule);
- var promise = void 0;
- if (isBlank(url)) {
- promise = PromiseWrapper.resolve(("/* Invalid import rule: \"@import " + rule + ";\" */"));
- } else if (ListWrapper.contains(inlinedUrls, url)) {
- promise = PromiseWrapper.resolve(prefix);
- } else {
- ListWrapper.push(inlinedUrls, url);
- promise = PromiseWrapper.then(this._xhr.get(url), (function(rawCss) {
- var inlinedCss = $__0._inlineImports(rawCss, url, inlinedUrls);
- if (isPromise(inlinedCss)) {
- return inlinedCss.then((function(css) {
- return prefix + $__0._transformImportedCss(css, mediaQuery, url) + '\n';
- }));
- } else {
- return prefix + $__0._transformImportedCss(inlinedCss, mediaQuery, url) + '\n';
- }
- }), (function(error) {
- return ("/* failed to import " + url + " */\n");
- }));
- }
- ListWrapper.push(promises, promise);
- partIndex += 2;
- }
- return PromiseWrapper.all(promises).then(function(cssParts) {
- var cssText = cssParts.join('');
- if (partIndex < parts.length) {
- cssText += parts[partIndex];
- }
- return cssText;
- });
- },
- _transformImportedCss: function(css, mediaQuery, url) {
- css = this._styleUrlResolver.resolveUrls(css, url);
- return _wrapInMediaRule(css, mediaQuery);
- }
- }, {}));
- $__export("StyleInliner", StyleInliner);
- $__export("StyleInliner", StyleInliner = __decorate([Injectable(), __metadata('design:paramtypes', [XHR, StyleUrlResolver, UrlResolver])], StyleInliner));
- _importRe = RegExpWrapper.create('@import\\s+([^;]+);');
- _urlRe = RegExpWrapper.create('url\\(\\s*?[\'"]?([^\'")]+)[\'"]?|' + '[\'"]([^\'")]+)[\'"]');
- _mediaQueryRe = RegExpWrapper.create('[\'"][^\'"]+[\'"]\\s*\\)?\\s*(.*)');
- }
- };
-});
-
-System.register("angular2/src/core/compiler/dynamic_component_loader", ["angular2/di", "angular2/src/core/compiler/compiler", "angular2/src/core/compiler/view_manager", "angular2/src/core/compiler/element_ref"], function($__export) {
+System.register("angular2/src/core/compiler/dynamic_component_loader", ["angular2/di", "angular2/src/core/compiler/compiler", "angular2/src/core/compiler/view_manager"], function($__export) {
"use strict";
var __moduleName = "angular2/src/core/compiler/dynamic_component_loader";
var __decorate,
__metadata,
- Binding,
- bind,
Injectable,
Compiler,
AppViewManager,
- ElementRef,
ComponentRef,
DynamicComponentLoader;
return {
setters: [function($__m) {
- Binding = $__m.Binding;
- bind = $__m.bind;
Injectable = $__m.Injectable;
}, function($__m) {
Compiler = $__m.Compiler;
}, function($__m) {
AppViewManager = $__m.AppViewManager;
- }, function($__m) {
- ElementRef = $__m.ElementRef;
}],
execute: function() {
__decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
@@ -14090,26 +14027,13 @@ System.register("angular2/src/core/compiler/dynamic_component_loader", ["angular
this._compiler = _compiler;
this._viewManager = _viewManager;
}, {
- loadIntoExistingLocation: function(typeOrBinding, location) {
- var injector = arguments[2] !== (void 0) ? arguments[2] : null;
- var $__0 = this;
- var binding = this._getBinding(typeOrBinding);
- return this._compiler.compile(binding.token).then((function(componentProtoViewRef) {
- $__0._viewManager.createDynamicComponentView(location, componentProtoViewRef, binding, injector);
- var component = $__0._viewManager.getComponent(location);
- var dispose = (function() {
- $__0._viewManager.destroyDynamicComponent(location);
- });
- return new ComponentRef(location, component, dispose);
- }));
- },
loadAsRoot: function(typeOrBinding) {
var overrideSelector = arguments[1] !== (void 0) ? arguments[1] : null;
var injector = arguments[2] !== (void 0) ? arguments[2] : null;
var $__0 = this;
- return this._compiler.compileInHost(this._getBinding(typeOrBinding)).then((function(hostProtoViewRef) {
+ return this._compiler.compileInHost(typeOrBinding).then((function(hostProtoViewRef) {
var hostViewRef = $__0._viewManager.createRootHostView(hostProtoViewRef, overrideSelector, injector);
- var newLocation = new ElementRef(hostViewRef, 0);
+ var newLocation = $__0._viewManager.getHostElement(hostViewRef);
var component = $__0._viewManager.getComponent(newLocation);
var dispose = (function() {
$__0._viewManager.destroyRootHostView(hostViewRef);
@@ -14117,27 +14041,17 @@ System.register("angular2/src/core/compiler/dynamic_component_loader", ["angular
return new ComponentRef(newLocation, component, dispose);
}));
},
- loadIntoNewLocation: function(typeOrBinding, parentComponentLocation) {
- var injector = arguments[2] !== (void 0) ? arguments[2] : null;
- var $__0 = this;
- return this._compiler.compileInHost(this._getBinding(typeOrBinding)).then((function(hostProtoViewRef) {
- var hostViewRef = $__0._viewManager.createFreeHostView(parentComponentLocation, hostProtoViewRef, injector);
- var newLocation = new ElementRef(hostViewRef, 0);
- var component = $__0._viewManager.getComponent(newLocation);
- var dispose = (function() {
- $__0._viewManager.destroyFreeHostView(parentComponentLocation, hostViewRef);
- });
- return new ComponentRef(newLocation, component, dispose);
- }));
+ loadIntoLocation: function(typeOrBinding, hostLocation, anchorName) {
+ var injector = arguments[3] !== (void 0) ? arguments[3] : null;
+ return this.loadNextToLocation(typeOrBinding, this._viewManager.getNamedElementInComponentView(hostLocation, anchorName), injector);
},
- loadNextToExistingLocation: function(typeOrBinding, location) {
+ loadNextToLocation: function(typeOrBinding, location) {
var injector = arguments[2] !== (void 0) ? arguments[2] : null;
var $__0 = this;
- var binding = this._getBinding(typeOrBinding);
- return this._compiler.compileInHost(binding).then((function(hostProtoViewRef) {
+ return this._compiler.compileInHost(typeOrBinding).then((function(hostProtoViewRef) {
var viewContainer = $__0._viewManager.getViewContainer(location);
var hostViewRef = viewContainer.create(hostProtoViewRef, viewContainer.length, null, injector);
- var newLocation = new ElementRef(hostViewRef, 0);
+ var newLocation = $__0._viewManager.getHostElement(hostViewRef);
var component = $__0._viewManager.getComponent(newLocation);
var dispose = (function() {
var index = viewContainer.indexOf(hostViewRef);
@@ -14145,15 +14059,6 @@ System.register("angular2/src/core/compiler/dynamic_component_loader", ["angular
});
return new ComponentRef(newLocation, component, dispose);
}));
- },
- _getBinding: function(typeOrBinding) {
- var binding;
- if (typeOrBinding instanceof Binding) {
- binding = typeOrBinding;
- } else {
- binding = bind(typeOrBinding).toClass(typeOrBinding);
- }
- return binding;
}
}, {}));
$__export("DynamicComponentLoader", DynamicComponentLoader);
@@ -14203,12 +14108,12 @@ System.register("angular2/src/core/testability/get_testability", ["angular2/src/
};
});
-System.register("angular2/src/render/dom/shadow_dom/content_tag", ["angular2/src/dom/dom_adapter", "angular2/src/facade/lang"], function($__export) {
+System.register("angular2/src/render/dom/shadow_dom/content_tag", ["angular2/src/dom/dom_adapter", "angular2/src/facade/lang", "angular2/src/facade/collection"], function($__export) {
"use strict";
var __moduleName = "angular2/src/render/dom/shadow_dom/content_tag";
var DOM,
isPresent,
- isBlank,
+ ListWrapper,
ContentStrategy,
RenderedContent,
IntermediateContent,
@@ -14218,7 +14123,8 @@ System.register("angular2/src/render/dom/shadow_dom/content_tag", ["angular2/src
DOM = $__m.DOM;
}, function($__m) {
isPresent = $__m.isPresent;
- isBlank = $__m.isBlank;
+ }, function($__m) {
+ ListWrapper = $__m.ListWrapper;
}],
execute: function() {
ContentStrategy = (function() {
@@ -14229,22 +14135,19 @@ System.register("angular2/src/render/dom/shadow_dom/content_tag", ["angular2/src
function RenderedContent(contentEl) {
$traceurRuntime.superConstructor(RenderedContent).call(this);
this.beginScript = contentEl;
+ this.endScript = DOM.nextSibling(this.beginScript);
this.nodes = [];
}
return ($traceurRuntime.createClass)(RenderedContent, {
insert: function(nodes) {
this.nodes = nodes;
- if (isBlank(this.endScript)) {
- this.endScript = DOM.createScriptTag('type', 'ng/contentEnd');
- DOM.insertAfter(this.beginScript, this.endScript);
- } else {
- this._removeNodes();
- }
DOM.insertAllBefore(this.endScript, nodes);
+ this._removeNodesUntil(ListWrapper.isEmpty(nodes) ? this.endScript : nodes[0]);
},
- _removeNodes: function() {
- for (var node = DOM.nextSibling(this.beginScript); node !== this.endScript; node = DOM.nextSibling(this.beginScript)) {
- DOM.remove(node);
+ _removeNodesUntil: function(node) {
+ var p = DOM.parentElement(this.beginScript);
+ for (var next = DOM.nextSibling(this.beginScript); next !== node; next = DOM.nextSibling(this.beginScript)) {
+ DOM.removeChild(p, next);
}
}
}, {}, $__super);
@@ -14323,6 +14226,120 @@ System.register("angular2/src/render/dom/util", ["angular2/src/facade/lang"], fu
};
});
+System.register("angular2/src/render/dom/view/view", ["angular2/src/dom/dom_adapter", "angular2/src/facade/collection", "angular2/src/facade/lang", "angular2/src/render/api", "angular2/src/render/dom/util"], function($__export) {
+ "use strict";
+ var __moduleName = "angular2/src/render/dom/view/view";
+ var DOM,
+ Map,
+ isPresent,
+ stringify,
+ RenderViewRef,
+ camelCaseToDashCase,
+ DomViewRef,
+ DomView;
+ function resolveInternalDomView(viewRef) {
+ return viewRef._view;
+ }
+ $__export("resolveInternalDomView", resolveInternalDomView);
+ return {
+ setters: [function($__m) {
+ DOM = $__m.DOM;
+ }, function($__m) {
+ Map = $__m.Map;
+ }, function($__m) {
+ isPresent = $__m.isPresent;
+ stringify = $__m.stringify;
+ }, function($__m) {
+ RenderViewRef = $__m.RenderViewRef;
+ }, function($__m) {
+ camelCaseToDashCase = $__m.camelCaseToDashCase;
+ }],
+ execute: function() {
+ DomViewRef = (function($__super) {
+ function DomViewRef(_view) {
+ $traceurRuntime.superConstructor(DomViewRef).call(this);
+ this._view = _view;
+ }
+ return ($traceurRuntime.createClass)(DomViewRef, {}, {}, $__super);
+ }(RenderViewRef));
+ $__export("DomViewRef", DomViewRef);
+ DomView = (function() {
+ function DomView(proto, rootNodes, boundTextNodes, boundElements) {
+ this.proto = proto;
+ this.rootNodes = rootNodes;
+ this.boundTextNodes = boundTextNodes;
+ this.boundElements = boundElements;
+ this.hostLightDom = null;
+ this.shadowRoot = null;
+ this.hydrated = false;
+ this.eventDispatcher = null;
+ this.eventHandlerRemovers = [];
+ }
+ return ($traceurRuntime.createClass)(DomView, {
+ getDirectParentElement: function(boundElementIndex) {
+ var binder = this.proto.elementBinders[boundElementIndex];
+ var parent = null;
+ if (binder.parentIndex !== -1 && binder.distanceToParent === 1) {
+ parent = this.boundElements[binder.parentIndex];
+ }
+ return parent;
+ },
+ setElementProperty: function(elementIndex, propertyName, value) {
+ DOM.setProperty(this.boundElements[elementIndex].element, propertyName, value);
+ },
+ setElementAttribute: function(elementIndex, attributeName, value) {
+ var element = this.boundElements[elementIndex].element;
+ var dashCasedAttributeName = camelCaseToDashCase(attributeName);
+ if (isPresent(value)) {
+ DOM.setAttribute(element, dashCasedAttributeName, stringify(value));
+ } else {
+ DOM.removeAttribute(element, dashCasedAttributeName);
+ }
+ },
+ setElementClass: function(elementIndex, className, isAdd) {
+ var element = this.boundElements[elementIndex].element;
+ var dashCasedClassName = camelCaseToDashCase(className);
+ if (isAdd) {
+ DOM.addClass(element, dashCasedClassName);
+ } else {
+ DOM.removeClass(element, dashCasedClassName);
+ }
+ },
+ setElementStyle: function(elementIndex, styleName, value) {
+ var element = this.boundElements[elementIndex].element;
+ var dashCasedStyleName = camelCaseToDashCase(styleName);
+ if (isPresent(value)) {
+ DOM.setStyle(element, dashCasedStyleName, stringify(value));
+ } else {
+ DOM.removeStyle(element, dashCasedStyleName);
+ }
+ },
+ invokeElementMethod: function(elementIndex, methodName, args) {
+ var element = this.boundElements[elementIndex].element;
+ DOM.invoke(element, methodName, args);
+ },
+ setText: function(textIndex, value) {
+ DOM.setText(this.boundTextNodes[textIndex], value);
+ },
+ dispatchEvent: function(elementIndex, eventName, event) {
+ var allowDefaultBehavior = true;
+ if (isPresent(this.eventDispatcher)) {
+ var evalLocals = new Map();
+ evalLocals.set('$event', event);
+ allowDefaultBehavior = this.eventDispatcher.dispatchEvent(elementIndex, eventName, evalLocals);
+ if (!allowDefaultBehavior) {
+ event.preventDefault();
+ }
+ }
+ return allowDefaultBehavior;
+ }
+ }, {});
+ }());
+ $__export("DomView", DomView);
+ }
+ };
+});
+
System.register("angular2/src/render/dom/view/element", [], function($__export) {
"use strict";
var __moduleName = "angular2/src/render/dom/view/element";
@@ -14378,8 +14395,7 @@ System.register("angular2/src/render/dom/view/view_container", ["angular2/src/fa
System.register("angular2/src/render/dom/compiler/compile_element", ["angular2/src/facade/collection", "angular2/src/dom/dom_adapter", "angular2/src/facade/lang"], function($__export) {
"use strict";
var __moduleName = "angular2/src/render/dom/compiler/compile_element";
- var ListWrapper,
- MapWrapper,
+ var MapWrapper,
DOM,
isBlank,
isPresent,
@@ -14391,8 +14407,8 @@ System.register("angular2/src/render/dom/compiler/compile_element", ["angular2/s
var atts = DOM.attributeMap(domElement);
buf.add("<");
buf.add(DOM.tagName(domElement).toLowerCase());
- addDescriptionAttribute(buf, "id", MapWrapper.get(atts, "id"));
- addDescriptionAttribute(buf, "class", MapWrapper.get(atts, "class"));
+ addDescriptionAttribute(buf, "id", atts.get("id"));
+ addDescriptionAttribute(buf, "class", atts.get("class"));
MapWrapper.forEach(atts, (function(attValue, attName) {
if (attName !== "id" && attName !== "class") {
addDescriptionAttribute(buf, attName, attValue);
@@ -14412,7 +14428,6 @@ System.register("angular2/src/render/dom/compiler/compile_element", ["angular2/s
}
return {
setters: [function($__m) {
- ListWrapper = $__m.ListWrapper;
MapWrapper = $__m.MapWrapper;
}, function($__m) {
DOM = $__m.DOM;
@@ -14472,10 +14487,10 @@ System.register("angular2/src/render/dom/compiler/compile_element", ["angular2/s
},
classList: function() {
if (isBlank(this._classList)) {
- this._classList = ListWrapper.create();
+ this._classList = [];
var elClassList = DOM.classList(this.element);
for (var i = 0; i < elClassList.length; i++) {
- ListWrapper.push(this._classList, elClassList[i]);
+ this._classList.push(elClassList[i]);
}
}
return this._classList;
@@ -14487,17 +14502,14 @@ System.register("angular2/src/render/dom/compiler/compile_element", ["angular2/s
};
});
-System.register("angular2/src/render/dom/compiler/compile_control", ["angular2/src/facade/lang", "angular2/src/facade/collection"], function($__export) {
+System.register("angular2/src/render/dom/compiler/compile_control", ["angular2/src/facade/lang"], function($__export) {
"use strict";
var __moduleName = "angular2/src/render/dom/compiler/compile_control";
var isBlank,
- ListWrapper,
CompileControl;
return {
setters: [function($__m) {
isBlank = $__m.isBlank;
- }, function($__m) {
- ListWrapper = $__m.ListWrapper;
}],
execute: function() {
CompileControl = (function() {
@@ -14522,7 +14534,7 @@ System.register("angular2/src/render/dom/compiler/compile_control", ["angular2/s
parent = this._parent;
}
if (!this._ignoreCurrentElement) {
- ListWrapper.push(results, current);
+ results.push(current);
}
this._currentStepIndex = previousStepIndex;
this._parent = previousParent;
@@ -14536,9 +14548,9 @@ System.register("angular2/src/render/dom/compiler/compile_control", ["angular2/s
},
addChild: function(element) {
if (isBlank(this._additionalChildren)) {
- this._additionalChildren = ListWrapper.create();
+ this._additionalChildren = [];
}
- ListWrapper.push(this._additionalChildren, element);
+ this._additionalChildren.push(element);
},
ignoreCurrentElement: function() {
this._ignoreCurrentElement = true;
@@ -14569,10 +14581,8 @@ System.register("angular2/src/render/dom/view/element_binder", [], function($__e
eventLocals = $__1.eventLocals,
localEvents = $__1.localEvents,
globalEvents = $__1.globalEvents,
- hostActions = $__1.hostActions,
parentIndex = $__1.parentIndex,
distanceToParent = $__1.distanceToParent,
- propertySetters = $__1.propertySetters,
elementIsEmpty = $__1.elementIsEmpty;
this.textNodeIndices = textNodeIndices;
this.contentTagSelector = contentTagSelector;
@@ -14581,10 +14591,8 @@ System.register("angular2/src/render/dom/view/element_binder", [], function($__e
this.eventLocals = eventLocals;
this.localEvents = localEvents;
this.globalEvents = globalEvents;
- this.hostActions = hostActions;
this.parentIndex = parentIndex;
this.distanceToParent = distanceToParent;
- this.propertySetters = propertySetters;
this.elementIsEmpty = elementIsEmpty;
}
return ($traceurRuntime.createClass)(ElementBinder, {}, {});
@@ -14640,7 +14648,7 @@ System.register("angular2/src/render/dom/compiler/property_binding_parser", ["an
process: function(parent, current, control) {
var $__0 = this;
var attrs = current.attrs();
- var newAttrs = MapWrapper.create();
+ var newAttrs = new Map();
MapWrapper.forEach(attrs, (function(attrValue, attrName) {
var bindParts = RegExpWrapper.firstMatch(BIND_NAME_REGEXP, attrName);
if (isPresent(bindParts)) {
@@ -14671,21 +14679,20 @@ System.register("angular2/src/render/dom/compiler/property_binding_parser", ["an
}
}));
MapWrapper.forEach(newAttrs, (function(attrValue, attrName) {
- MapWrapper.set(attrs, attrName, attrValue);
+ attrs.set(attrName, attrValue);
}));
},
_bindVariable: function(identifier, value, current, newAttrs) {
current.bindElement().bindVariable(dashCaseToCamelCase(identifier), value);
- MapWrapper.set(newAttrs, identifier, value);
+ newAttrs.set(identifier, value);
},
_bindProperty: function(name, expression, current, newAttrs) {
this._bindPropertyAst(name, this._parser.parseBinding(expression, current.elementDescription), current, newAttrs);
},
_bindPropertyAst: function(name, ast, current, newAttrs) {
var binder = current.bindElement();
- var camelCaseName = dashCaseToCamelCase(name);
- binder.bindProperty(camelCaseName, ast);
- MapWrapper.set(newAttrs, name, ast.source);
+ binder.bindProperty(dashCaseToCamelCase(name), ast);
+ newAttrs.set(name, ast.source);
},
_bindAssignmentEvent: function(name, expression, current, newAttrs) {
this._bindEvent(name, (expression + "=$event"), current, newAttrs);
@@ -14730,7 +14737,7 @@ System.register("angular2/src/render/dom/compiler/text_interpolation_parser", ["
var expr = this._parser.parseInterpolation(text, current.elementDescription);
if (isPresent(expr)) {
DOM.setText(node, ' ');
- current.bindElement().bindText(i, expr);
+ current.bindElement().bindText(node, expr);
}
}
}
@@ -14744,8 +14751,8 @@ System.register("angular2/src/render/dom/compiler/text_interpolation_parser", ["
System.register("angular2/src/render/dom/compiler/selector", ["angular2/src/facade/collection", "angular2/src/facade/lang"], function($__export) {
"use strict";
var __moduleName = "angular2/src/render/dom/compiler/selector";
- var ListWrapper,
- MapWrapper,
+ var Map,
+ ListWrapper,
isPresent,
isBlank,
RegExpWrapper,
@@ -14760,8 +14767,8 @@ System.register("angular2/src/render/dom/compiler/selector", ["angular2/src/faca
SelectorContext;
return {
setters: [function($__m) {
+ Map = $__m.Map;
ListWrapper = $__m.ListWrapper;
- MapWrapper = $__m.MapWrapper;
}, function($__m) {
isPresent = $__m.isPresent;
isBlank = $__m.isBlank;
@@ -14793,16 +14800,16 @@ System.register("angular2/src/render/dom/compiler/selector", ["angular2/src/faca
},
addAttribute: function(name) {
var value = arguments[1] !== (void 0) ? arguments[1] : _EMPTY_ATTR_VALUE;
- ListWrapper.push(this.attrs, name.toLowerCase());
+ this.attrs.push(name.toLowerCase());
if (isPresent(value)) {
value = value.toLowerCase();
} else {
value = _EMPTY_ATTR_VALUE;
}
- ListWrapper.push(this.attrs, value);
+ this.attrs.push(value);
},
addClassName: function(name) {
- ListWrapper.push(this.classNames, name.toLowerCase());
+ this.classNames.push(name.toLowerCase());
},
toString: function() {
var res = '';
@@ -14831,12 +14838,12 @@ System.register("angular2/src/render/dom/compiler/selector", ["angular2/src/faca
return res;
}
}, {parse: function(selector) {
- var results = ListWrapper.create();
+ var results = [];
var _addResult = (function(res, cssSel) {
if (cssSel.notSelectors.length > 0 && isBlank(cssSel.element) && ListWrapper.isEmpty(cssSel.classNames) && ListWrapper.isEmpty(cssSel.attrs)) {
cssSel.element = "*";
}
- ListWrapper.push(res, cssSel);
+ res.push(cssSel);
});
var cssSelector = new CssSelector();
var matcher = RegExpWrapper.matcher(_SELECTOR_REGEXP, selector);
@@ -14850,7 +14857,7 @@ System.register("angular2/src/render/dom/compiler/selector", ["angular2/src/faca
}
inNot = true;
current = new CssSelector();
- ListWrapper.push(cssSelector.notSelectors, current);
+ cssSelector.notSelectors.push(current);
}
if (isPresent(match[2])) {
current.setElement(match[2]);
@@ -14880,12 +14887,12 @@ System.register("angular2/src/render/dom/compiler/selector", ["angular2/src/faca
$__export("CssSelector", CssSelector);
SelectorMatcher = (function() {
function SelectorMatcher() {
- this._elementMap = MapWrapper.create();
- this._elementPartialMap = MapWrapper.create();
- this._classMap = MapWrapper.create();
- this._classPartialMap = MapWrapper.create();
- this._attrValueMap = MapWrapper.create();
- this._attrValuePartialMap = MapWrapper.create();
+ this._elementMap = new Map();
+ this._elementPartialMap = new Map();
+ this._classMap = new Map();
+ this._classPartialMap = new Map();
+ this._attrValueMap = new Map();
+ this._attrValuePartialMap = new Map();
this._listContexts = [];
}
return ($traceurRuntime.createClass)(SelectorMatcher, {
@@ -14893,7 +14900,7 @@ System.register("angular2/src/render/dom/compiler/selector", ["angular2/src/faca
var listContext = null;
if (cssSelectors.length > 1) {
listContext = new SelectorListContext(cssSelectors);
- ListWrapper.push(this._listContexts, listContext);
+ this._listContexts.push(listContext);
}
for (var i = 0; i < cssSelectors.length; i++) {
this._addSelectable(cssSelectors[i], callbackCtxt, listContext);
@@ -14931,18 +14938,18 @@ System.register("angular2/src/render/dom/compiler/selector", ["angular2/src/faca
var attrValue = attrs[index++];
if (isTerminal) {
var terminalMap = matcher._attrValueMap;
- var terminalValuesMap = MapWrapper.get(terminalMap, attrName);
+ var terminalValuesMap = terminalMap.get(attrName);
if (isBlank(terminalValuesMap)) {
- terminalValuesMap = MapWrapper.create();
- MapWrapper.set(terminalMap, attrName, terminalValuesMap);
+ terminalValuesMap = new Map();
+ terminalMap.set(attrName, terminalValuesMap);
}
this._addTerminal(terminalValuesMap, attrValue, selectable);
} else {
var parttialMap = matcher._attrValuePartialMap;
- var partialValuesMap = MapWrapper.get(parttialMap, attrName);
+ var partialValuesMap = parttialMap.get(attrName);
if (isBlank(partialValuesMap)) {
- partialValuesMap = MapWrapper.create();
- MapWrapper.set(parttialMap, attrName, partialValuesMap);
+ partialValuesMap = new Map();
+ parttialMap.set(attrName, partialValuesMap);
}
matcher = this._addPartial(partialValuesMap, attrValue);
}
@@ -14950,18 +14957,18 @@ System.register("angular2/src/render/dom/compiler/selector", ["angular2/src/faca
}
},
_addTerminal: function(map, name, selectable) {
- var terminalList = MapWrapper.get(map, name);
+ var terminalList = map.get(name);
if (isBlank(terminalList)) {
- terminalList = ListWrapper.create();
- MapWrapper.set(map, name, terminalList);
+ terminalList = [];
+ map.set(name, terminalList);
}
- ListWrapper.push(terminalList, selectable);
+ terminalList.push(selectable);
},
_addPartial: function(map, name) {
- var matcher = MapWrapper.get(map, name);
+ var matcher = map.get(name);
if (isBlank(matcher)) {
matcher = new SelectorMatcher();
- MapWrapper.set(map, name, matcher);
+ map.set(name, matcher);
}
return matcher;
},
@@ -14986,12 +14993,12 @@ System.register("angular2/src/render/dom/compiler/selector", ["angular2/src/faca
for (var index = 0; index < attrs.length; ) {
var attrName = attrs[index++];
var attrValue = attrs[index++];
- var terminalValuesMap = MapWrapper.get(this._attrValueMap, attrName);
+ var terminalValuesMap = this._attrValueMap.get(attrName);
if (!StringWrapper.equals(attrValue, _EMPTY_ATTR_VALUE)) {
result = this._matchTerminal(terminalValuesMap, _EMPTY_ATTR_VALUE, cssSelector, matchedCallback) || result;
}
result = this._matchTerminal(terminalValuesMap, attrValue, cssSelector, matchedCallback) || result;
- var partialValuesMap = MapWrapper.get(this._attrValuePartialMap, attrName);
+ var partialValuesMap = this._attrValuePartialMap.get(attrName);
if (!StringWrapper.equals(attrValue, _EMPTY_ATTR_VALUE)) {
result = this._matchPartial(partialValuesMap, _EMPTY_ATTR_VALUE, cssSelector, matchedCallback) || result;
}
@@ -15004,8 +15011,8 @@ System.register("angular2/src/render/dom/compiler/selector", ["angular2/src/faca
if (isBlank(map) || isBlank(name)) {
return false;
}
- var selectables = MapWrapper.get(map, name);
- var starSelectables = MapWrapper.get(map, "*");
+ var selectables = map.get(name);
+ var starSelectables = map.get("*");
if (isPresent(starSelectables)) {
selectables = ListWrapper.concat(selectables, starSelectables);
}
@@ -15024,7 +15031,7 @@ System.register("angular2/src/render/dom/compiler/selector", ["angular2/src/faca
if (isBlank(map) || isBlank(name)) {
return false;
}
- var nestedSelector = MapWrapper.get(map, name);
+ var nestedSelector = map.get(name);
if (isBlank(nestedSelector)) {
return false;
}
@@ -15103,7 +15110,7 @@ System.register("angular2/src/render/dom/compiler/view_splitter", ["angular2/src
return ($traceurRuntime.createClass)(ViewSplitter, {
process: function(parent, current, control) {
var attrs = current.attrs();
- var templateBindings = MapWrapper.get(attrs, 'template');
+ var templateBindings = attrs.get('template');
var hasTemplateBinding = isPresent(templateBindings);
MapWrapper.forEach(attrs, (function(attrValue, attrName) {
if (StringWrapper.startsWith(attrName, '*')) {
@@ -15161,10 +15168,10 @@ System.register("angular2/src/render/dom/compiler/view_splitter", ["angular2/src
var binding = bindings[i];
if (binding.keyIsVar) {
compileElement.bindElement().bindVariable(dashCaseToCamelCase(binding.key), binding.name);
- MapWrapper.set(compileElement.attrs(), binding.key, binding.name);
+ compileElement.attrs().set(binding.key, binding.name);
} else if (isPresent(binding.expression)) {
compileElement.bindElement().bindProperty(dashCaseToCamelCase(binding.key), binding.expression);
- MapWrapper.set(compileElement.attrs(), binding.key, binding.expression.source);
+ compileElement.attrs().set(binding.key, binding.expression.source);
} else {
DOM.setAttribute(compileElement.element, binding.key, '');
}
@@ -15177,33 +15184,25 @@ System.register("angular2/src/render/dom/compiler/view_splitter", ["angular2/src
};
});
-System.register("angular2/src/render/dom/shadow_dom/shadow_dom_compile_step", ["angular2/src/facade/lang", "angular2/src/facade/collection", "angular2/src/dom/dom_adapter"], function($__export) {
+System.register("angular2/src/render/dom/shadow_dom/shadow_dom_compile_step", ["angular2/src/facade/lang", "angular2/src/dom/dom_adapter"], function($__export) {
"use strict";
var __moduleName = "angular2/src/render/dom/shadow_dom/shadow_dom_compile_step";
var isPresent,
assertionsEnabled,
- isPromise,
- MapWrapper,
- ListWrapper,
DOM,
ShadowDomCompileStep;
return {
setters: [function($__m) {
isPresent = $__m.isPresent;
assertionsEnabled = $__m.assertionsEnabled;
- isPromise = $__m.isPromise;
- }, function($__m) {
- MapWrapper = $__m.MapWrapper;
- ListWrapper = $__m.ListWrapper;
}, function($__m) {
DOM = $__m.DOM;
}],
execute: function() {
ShadowDomCompileStep = (function() {
- function ShadowDomCompileStep(_shadowDomStrategy, _template, _subTaskPromises) {
+ function ShadowDomCompileStep(_shadowDomStrategy, _view) {
this._shadowDomStrategy = _shadowDomStrategy;
- this._template = _template;
- this._subTaskPromises = _subTaskPromises;
+ this._view = _view;
}
return ($traceurRuntime.createClass)(ShadowDomCompileStep, {
process: function(parent, current, control) {
@@ -15214,14 +15213,11 @@ System.register("angular2/src/render/dom/shadow_dom/shadow_dom_compile_step", ["
this._processContentElement(current);
} else {
var componentId = current.isBound() ? current.inheritedElementBinder.componentId : null;
- this._shadowDomStrategy.processElement(this._template.componentId, componentId, current.element);
+ this._shadowDomStrategy.processElement(this._view.componentId, componentId, current.element);
}
},
_processStyleElement: function(current, control) {
- var stylePromise = this._shadowDomStrategy.processStyleElement(this._template.componentId, this._template.templateAbsUrl, current.element);
- if (isPresent(stylePromise) && isPromise(stylePromise)) {
- ListWrapper.push(this._subTaskPromises, stylePromise);
- }
+ this._shadowDomStrategy.processStyleElement(this._view.componentId, this._view.templateAbsUrl, current.element);
control.ignoreCurrentElement();
},
_processContentElement: function(current) {
@@ -15229,13 +15225,15 @@ System.register("angular2/src/render/dom/shadow_dom/shadow_dom_compile_step", ["
return ;
}
var attrs = current.attrs();
- var selector = MapWrapper.get(attrs, 'select');
+ var selector = attrs.get('select');
selector = isPresent(selector) ? selector : '';
var contentStart = DOM.createScriptTag('type', 'ng/contentStart');
if (assertionsEnabled()) {
DOM.setAttribute(contentStart, 'select', selector);
}
+ var contentEnd = DOM.createScriptTag('type', 'ng/contentEnd');
DOM.insertBefore(current.element, contentStart);
+ DOM.insertBefore(current.element, contentEnd);
DOM.remove(current.element);
current.element = contentStart;
current.bindElement().setContentTagSelector(selector);
@@ -15247,181 +15245,6 @@ System.register("angular2/src/render/dom/shadow_dom/shadow_dom_compile_step", ["
};
});
-System.register("angular2/src/render/dom/view/property_setter_factory", ["angular2/src/facade/lang", "angular2/src/facade/collection", "angular2/src/dom/dom_adapter", "angular2/src/render/dom/util", "angular2/src/reflection/reflection"], function($__export) {
- "use strict";
- var __moduleName = "angular2/src/render/dom/view/property_setter_factory";
- var StringWrapper,
- BaseException,
- isPresent,
- isBlank,
- isString,
- stringify,
- ListWrapper,
- StringMapWrapper,
- DOM,
- camelCaseToDashCase,
- reflector,
- STYLE_SEPARATOR,
- ATTRIBUTE_PREFIX,
- CLASS_PREFIX,
- STYLE_PREFIX,
- PropertySetterFactory;
- return {
- setters: [function($__m) {
- StringWrapper = $__m.StringWrapper;
- BaseException = $__m.BaseException;
- isPresent = $__m.isPresent;
- isBlank = $__m.isBlank;
- isString = $__m.isString;
- stringify = $__m.stringify;
- }, function($__m) {
- ListWrapper = $__m.ListWrapper;
- StringMapWrapper = $__m.StringMapWrapper;
- }, function($__m) {
- DOM = $__m.DOM;
- }, function($__m) {
- camelCaseToDashCase = $__m.camelCaseToDashCase;
- }, function($__m) {
- reflector = $__m.reflector;
- }],
- execute: function() {
- STYLE_SEPARATOR = '.';
- ATTRIBUTE_PREFIX = 'attr.';
- CLASS_PREFIX = 'class.';
- STYLE_PREFIX = 'style.';
- PropertySetterFactory = (function() {
- function PropertySetterFactory() {
- this._lazyPropertySettersCache = StringMapWrapper.create();
- this._eagerPropertySettersCache = StringMapWrapper.create();
- this._innerHTMLSetterCache = (function(el, value) {
- return DOM.setInnerHTML(el, value);
- });
- this._attributeSettersCache = StringMapWrapper.create();
- this._classSettersCache = StringMapWrapper.create();
- this._styleSettersCache = StringMapWrapper.create();
- }
- return ($traceurRuntime.createClass)(PropertySetterFactory, {
- createSetter: function(protoElement, isNgComponent, property) {
- var setterFn,
- styleParts,
- styleSuffix;
- if (StringWrapper.startsWith(property, ATTRIBUTE_PREFIX)) {
- setterFn = this._attributeSetterFactory(StringWrapper.substring(property, ATTRIBUTE_PREFIX.length));
- } else if (StringWrapper.startsWith(property, CLASS_PREFIX)) {
- setterFn = this._classSetterFactory(StringWrapper.substring(property, CLASS_PREFIX.length));
- } else if (StringWrapper.startsWith(property, STYLE_PREFIX)) {
- styleParts = property.split(STYLE_SEPARATOR);
- styleSuffix = styleParts.length > 2 ? ListWrapper.get(styleParts, 2) : '';
- setterFn = this._styleSetterFactory(ListWrapper.get(styleParts, 1), styleSuffix);
- } else if (StringWrapper.equals(property, 'innerHtml')) {
- setterFn = this._innerHTMLSetterCache;
- } else {
- property = this._resolvePropertyName(property);
- setterFn = this._propertySetterFactory(protoElement, isNgComponent, property);
- }
- return setterFn;
- },
- _propertySetterFactory: function(protoElement, isNgComponent, property) {
- var setterFn;
- var tagName = DOM.tagName(protoElement);
- var possibleCustomElement = tagName.indexOf('-') !== -1;
- if (possibleCustomElement && !isNgComponent) {
- setterFn = StringMapWrapper.get(this._lazyPropertySettersCache, property);
- if (isBlank(setterFn)) {
- var propertySetterFn = reflector.setter(property);
- setterFn = (function(receiver, value) {
- if (DOM.hasProperty(receiver, property)) {
- return propertySetterFn(receiver, value);
- }
- });
- StringMapWrapper.set(this._lazyPropertySettersCache, property, setterFn);
- }
- } else {
- setterFn = StringMapWrapper.get(this._eagerPropertySettersCache, property);
- if (isBlank(setterFn)) {
- if (DOM.hasProperty(protoElement, property)) {
- setterFn = reflector.setter(property);
- } else {
- setterFn = PropertySetterFactory._noopSetter;
- }
- StringMapWrapper.set(this._eagerPropertySettersCache, property, setterFn);
- }
- }
- return setterFn;
- },
- _isValidAttributeValue: function(attrName, value) {
- if (attrName == "role") {
- return isString(value);
- } else {
- return isPresent(value);
- }
- },
- _attributeSetterFactory: function(attrName) {
- var $__0 = this;
- var setterFn = StringMapWrapper.get(this._attributeSettersCache, attrName);
- var dashCasedAttributeName;
- if (isBlank(setterFn)) {
- dashCasedAttributeName = camelCaseToDashCase(attrName);
- setterFn = (function(element, value) {
- if ($__0._isValidAttributeValue(dashCasedAttributeName, value)) {
- DOM.setAttribute(element, dashCasedAttributeName, stringify(value));
- } else {
- if (isPresent(value)) {
- throw new BaseException("Invalid " + dashCasedAttributeName + " attribute, only string values are allowed, got '" + stringify(value) + "'");
- }
- DOM.removeAttribute(element, dashCasedAttributeName);
- }
- });
- StringMapWrapper.set(this._attributeSettersCache, attrName, setterFn);
- }
- return setterFn;
- },
- _classSetterFactory: function(className) {
- var setterFn = StringMapWrapper.get(this._classSettersCache, className);
- var dashCasedClassName;
- if (isBlank(setterFn)) {
- dashCasedClassName = camelCaseToDashCase(className);
- setterFn = (function(element, isAdd) {
- if (isAdd) {
- DOM.addClass(element, dashCasedClassName);
- } else {
- DOM.removeClass(element, dashCasedClassName);
- }
- });
- StringMapWrapper.set(this._classSettersCache, className, setterFn);
- }
- return setterFn;
- },
- _styleSetterFactory: function(styleName, styleSuffix) {
- var cacheKey = styleName + styleSuffix;
- var setterFn = StringMapWrapper.get(this._styleSettersCache, cacheKey);
- var dashCasedStyleName;
- if (isBlank(setterFn)) {
- dashCasedStyleName = camelCaseToDashCase(styleName);
- setterFn = (function(element, value) {
- var valAsStr;
- if (isPresent(value)) {
- valAsStr = stringify(value);
- DOM.setStyle(element, dashCasedStyleName, valAsStr + styleSuffix);
- } else {
- DOM.removeStyle(element, dashCasedStyleName);
- }
- });
- StringMapWrapper.set(this._styleSettersCache, cacheKey, setterFn);
- }
- return setterFn;
- },
- _resolvePropertyName: function(attrName) {
- var mappedPropName = StringMapWrapper.get(DOM.attrToPropMap, attrName);
- return isPresent(mappedPropName) ? mappedPropName : attrName;
- }
- }, {_noopSetter: function(el, value) {}});
- }());
- $__export("PropertySetterFactory", PropertySetterFactory);
- }
- };
-});
-
System.register("angular2/src/core/application_tokens", ["angular2/di"], function($__export) {
"use strict";
var __moduleName = "angular2/src/core/application_tokens";
@@ -15553,7 +15376,7 @@ System.register("angular2/src/core/annotations/decorators", ["angular2/src/core/
};
});
-System.register("angular2/src/directives/ng_for", ["angular2/annotations", "angular2/core", "angular2/src/facade/lang", "angular2/src/facade/collection"], function($__export) {
+System.register("angular2/src/directives/ng_for", ["angular2/annotations", "angular2/angular2", "angular2/src/facade/lang"], function($__export) {
"use strict";
var __moduleName = "angular2/src/directives/ng_for";
var __decorate,
@@ -15561,9 +15384,10 @@ System.register("angular2/src/directives/ng_for", ["angular2/annotations", "angu
Directive,
ViewContainerRef,
ProtoViewRef,
+ PipeRegistry,
+ onCheck,
isPresent,
isBlank,
- ListWrapper,
NgFor,
RecordViewTuple;
return {
@@ -15572,11 +15396,11 @@ System.register("angular2/src/directives/ng_for", ["angular2/annotations", "angu
}, function($__m) {
ViewContainerRef = $__m.ViewContainerRef;
ProtoViewRef = $__m.ProtoViewRef;
+ PipeRegistry = $__m.PipeRegistry;
+ onCheck = $__m.onCheck;
}, function($__m) {
isPresent = $__m.isPresent;
isBlank = $__m.isBlank;
- }, function($__m) {
- ListWrapper = $__m.ListWrapper;
}],
execute: function() {
__decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
@@ -15601,32 +15425,42 @@ System.register("angular2/src/directives/ng_for", ["angular2/annotations", "angu
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
return Reflect.metadata(k, v);
};
- NgFor = (($traceurRuntime.createClass)(function(viewContainer, protoViewRef) {
+ NgFor = (($traceurRuntime.createClass)(function(viewContainer, protoViewRef, pipes) {
this.viewContainer = viewContainer;
this.protoViewRef = protoViewRef;
+ this.pipes = pipes;
}, {
- set iterableChanges(changes) {
+ set ngForOf(value) {
+ this._ngForOf = value;
+ this._pipe = this.pipes.get("iterableDiff", value, null, this._pipe);
+ },
+ onCheck: function() {
+ var diff = this._pipe.transform(this._ngForOf);
+ if (isPresent(diff))
+ this._applyChanges(diff.wrapped);
+ },
+ _applyChanges: function(changes) {
if (isBlank(changes)) {
this.viewContainer.clear();
return ;
}
var recordViewTuples = [];
changes.forEachRemovedItem((function(removedRecord) {
- return ListWrapper.push(recordViewTuples, new RecordViewTuple(removedRecord, null));
+ return recordViewTuples.push(new RecordViewTuple(removedRecord, null));
}));
changes.forEachMovedItem((function(movedRecord) {
- return ListWrapper.push(recordViewTuples, new RecordViewTuple(movedRecord, null));
+ return recordViewTuples.push(new RecordViewTuple(movedRecord, null));
}));
var insertTuples = NgFor.bulkRemove(recordViewTuples, this.viewContainer);
changes.forEachAddedItem((function(addedRecord) {
- return ListWrapper.push(insertTuples, new RecordViewTuple(addedRecord, null));
+ return insertTuples.push(new RecordViewTuple(addedRecord, null));
}));
NgFor.bulkInsert(insertTuples, this.viewContainer, this.protoViewRef);
for (var i = 0; i < insertTuples.length; i++) {
- this.perViewChange(insertTuples[i].view, insertTuples[i].record);
+ this._perViewChange(insertTuples[i].view, insertTuples[i].record);
}
},
- perViewChange: function(view, record) {
+ _perViewChange: function(view, record) {
view.setLocal('\$implicit', record.item);
view.setLocal('index', record.currentIndex);
}
@@ -15640,7 +15474,7 @@ System.register("angular2/src/directives/ng_for", ["angular2/annotations", "angu
var tuple = tuples[i];
if (isPresent(tuple.record.currentIndex)) {
tuple.view = viewContainer.detach(tuple.record.previousIndex);
- ListWrapper.push(movedTuples, tuple);
+ movedTuples.push(tuple);
} else {
viewContainer.remove(tuple.record.previousIndex);
}
@@ -15665,8 +15499,9 @@ System.register("angular2/src/directives/ng_for", ["angular2/annotations", "angu
$__export("NgFor", NgFor);
$__export("NgFor", NgFor = __decorate([Directive({
selector: '[ng-for][ng-for-of]',
- properties: ['iterableChanges: ngForOf | iterableDiff']
- }), __metadata('design:paramtypes', [ViewContainerRef, ProtoViewRef])], NgFor));
+ properties: ['ngForOf'],
+ lifecycle: [onCheck]
+ }), __metadata('design:paramtypes', [ViewContainerRef, ProtoViewRef, PipeRegistry])], NgFor));
RecordViewTuple = (function() {
function RecordViewTuple(record, view) {
this.record = record;
@@ -15801,6 +15636,7 @@ System.register("angular2/src/directives/ng_switch", ["angular2/annotations", "a
normalizeBlank,
ListWrapper,
MapWrapper,
+ Map,
SwitchView,
NgSwitch,
NgSwitchWhen,
@@ -15820,6 +15656,7 @@ System.register("angular2/src/directives/ng_switch", ["angular2/annotations", "a
}, function($__m) {
ListWrapper = $__m.ListWrapper;
MapWrapper = $__m.MapWrapper;
+ Map = $__m.Map;
}],
execute: function() {
__decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
@@ -15865,17 +15702,17 @@ System.register("angular2/src/directives/ng_switch", ["angular2/annotations", "a
}());
$__export("SwitchView", SwitchView);
NgSwitch = (($traceurRuntime.createClass)(function() {
- this._valueViews = MapWrapper.create();
- this._activeViews = ListWrapper.create();
+ this._valueViews = new Map();
+ this._activeViews = [];
this._useDefault = false;
}, {
set ngSwitch(value) {
this._emptyAllActiveViews();
this._useDefault = false;
- var views = MapWrapper.get(this._valueViews, value);
+ var views = this._valueViews.get(value);
if (isBlank(views)) {
this._useDefault = true;
- views = normalizeBlank(MapWrapper.get(this._valueViews, _whenDefault));
+ views = normalizeBlank(this._valueViews.get(_whenDefault));
}
this._activateViews(views);
this._switchValue = value;
@@ -15892,11 +15729,11 @@ System.register("angular2/src/directives/ng_switch", ["angular2/annotations", "a
this._emptyAllActiveViews();
}
view.create();
- ListWrapper.push(this._activeViews, view);
+ this._activeViews.push(view);
}
if (this._activeViews.length === 0 && !this._useDefault) {
this._useDefault = true;
- this._activateViews(MapWrapper.get(this._valueViews, _whenDefault));
+ this._activateViews(this._valueViews.get(_whenDefault));
}
},
_emptyAllActiveViews: function() {
@@ -15904,7 +15741,7 @@ System.register("angular2/src/directives/ng_switch", ["angular2/annotations", "a
for (var i = 0; i < activeContainers.length; i++) {
activeContainers[i].destroy();
}
- this._activeViews = ListWrapper.create();
+ this._activeViews = [];
},
_activateViews: function(views) {
if (isPresent(views)) {
@@ -15915,17 +15752,17 @@ System.register("angular2/src/directives/ng_switch", ["angular2/annotations", "a
}
},
_registerView: function(value, view) {
- var views = MapWrapper.get(this._valueViews, value);
+ var views = this._valueViews.get(value);
if (isBlank(views)) {
- views = ListWrapper.create();
- MapWrapper.set(this._valueViews, value, views);
+ views = [];
+ this._valueViews.set(value, views);
}
- ListWrapper.push(views, view);
+ views.push(view);
},
_deregisterView: function(value, view) {
if (value == _whenDefault)
return ;
- var views = MapWrapper.get(this._valueViews, value);
+ var views = this._valueViews.get(value);
if (views.length == 1) {
MapWrapper.delete(this._valueViews, value);
} else {
@@ -15966,25 +15803,42 @@ System.register("angular2/src/directives/ng_switch", ["angular2/annotations", "a
};
});
-System.register("angular2/src/directives/class", ["angular2/annotations", "angular2/core", "angular2/src/facade/lang", "angular2/src/dom/dom_adapter"], function($__export) {
+System.register("angular2/src/directives/class", ["angular2/annotations", "angular2/core", "angular2/src/change_detection/pipes/pipe_registry", "angular2/src/render/api", "angular2/src/change_detection/pipes/iterable_changes", "angular2/src/facade/lang", "angular2/src/facade/collection"], function($__export) {
"use strict";
var __moduleName = "angular2/src/directives/class";
var __decorate,
__metadata,
Directive,
+ onCheck,
ElementRef,
+ PipeRegistry,
+ Renderer,
+ IterableChanges,
isPresent,
- DOM,
+ isString,
+ ListWrapper,
+ StringMapWrapper,
+ isListLikeIterable,
CSSClass;
return {
setters: [function($__m) {
Directive = $__m.Directive;
+ onCheck = $__m.onCheck;
}, function($__m) {
ElementRef = $__m.ElementRef;
}, function($__m) {
- isPresent = $__m.isPresent;
+ PipeRegistry = $__m.PipeRegistry;
}, function($__m) {
- DOM = $__m.DOM;
+ Renderer = $__m.Renderer;
+ }, function($__m) {
+ IterableChanges = $__m.IterableChanges;
+ }, function($__m) {
+ isPresent = $__m.isPresent;
+ isString = $__m.isString;
+ }, function($__m) {
+ ListWrapper = $__m.ListWrapper;
+ StringMapWrapper = $__m.StringMapWrapper;
+ isListLikeIterable = $__m.isListLikeIterable;
}],
execute: function() {
__decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
@@ -16009,38 +15863,77 @@ System.register("angular2/src/directives/class", ["angular2/annotations", "angul
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
return Reflect.metadata(k, v);
};
- CSSClass = (($traceurRuntime.createClass)(function(ngEl) {
- this._domEl = ngEl.domElement;
+ CSSClass = (($traceurRuntime.createClass)(function(_pipeRegistry, _ngEl, _renderer) {
+ this._pipeRegistry = _pipeRegistry;
+ this._ngEl = _ngEl;
+ this._renderer = _renderer;
}, {
- _toggleClass: function(className, enabled) {
- if (enabled) {
- DOM.addClass(this._domEl, className);
- } else {
- DOM.removeClass(this._domEl, className);
+ set rawClass(v) {
+ this._cleanupClasses(this._rawClass);
+ if (isString(v)) {
+ v = v.split(' ');
+ }
+ this._rawClass = v;
+ this._pipe = this._pipeRegistry.get(isListLikeIterable(v) ? 'iterableDiff' : 'keyValDiff', v);
+ },
+ onCheck: function() {
+ var diff = this._pipe.transform(this._rawClass);
+ if (isPresent(diff) && isPresent(diff.wrapped)) {
+ if (diff.wrapped instanceof IterableChanges) {
+ this._applyArrayChanges(diff.wrapped);
+ } else {
+ this._applyObjectChanges(diff.wrapped);
+ }
}
},
- set iterableChanges(changes) {
+ _cleanupClasses: function(rawClassVal) {
var $__0 = this;
- if (isPresent(changes)) {
- changes.forEachAddedItem((function(record) {
- $__0._toggleClass(record.key, record.currentValue);
- }));
- changes.forEachChangedItem((function(record) {
- $__0._toggleClass(record.key, record.currentValue);
- }));
- changes.forEachRemovedItem((function(record) {
- if (record.previousValue) {
- DOM.removeClass($__0._domEl, record.key);
- }
- }));
+ if (isPresent(rawClassVal)) {
+ if (isListLikeIterable(rawClassVal)) {
+ ListWrapper.forEach(rawClassVal, (function(className) {
+ $__0._toggleClass(className, false);
+ }));
+ } else {
+ StringMapWrapper.forEach(rawClassVal, (function(expVal, className) {
+ if (expVal)
+ $__0._toggleClass(className, false);
+ }));
+ }
}
+ },
+ _applyObjectChanges: function(diff) {
+ var $__0 = this;
+ diff.forEachAddedItem((function(record) {
+ $__0._toggleClass(record.key, record.currentValue);
+ }));
+ diff.forEachChangedItem((function(record) {
+ $__0._toggleClass(record.key, record.currentValue);
+ }));
+ diff.forEachRemovedItem((function(record) {
+ if (record.previousValue) {
+ $__0._toggleClass(record.key, false);
+ }
+ }));
+ },
+ _applyArrayChanges: function(diff) {
+ var $__0 = this;
+ diff.forEachAddedItem((function(record) {
+ $__0._toggleClass(record.item, true);
+ }));
+ diff.forEachRemovedItem((function(record) {
+ $__0._toggleClass(record.item, false);
+ }));
+ },
+ _toggleClass: function(className, enabled) {
+ this._renderer.setElementClass(this._ngEl, className, enabled);
}
}, {}));
$__export("CSSClass", CSSClass);
$__export("CSSClass", CSSClass = __decorate([Directive({
selector: '[class]',
- properties: ['iterableChanges: class | keyValDiff']
- }), __metadata('design:paramtypes', [ElementRef])], CSSClass));
+ lifecycle: [onCheck],
+ properties: ['rawClass: class']
+ }), __metadata('design:paramtypes', [PipeRegistry, ElementRef, Renderer])], CSSClass));
}
};
});
@@ -16103,7 +15996,8 @@ System.register("angular2/src/forms/validators", ["angular2/src/facade/lang", "a
if (!StringMapWrapper.contains(res, error)) {
res[error] = [];
}
- ListWrapper.push(res[error], control);
+ var current = res[error];
+ current.push(control);
}));
}
});
@@ -16136,23 +16030,22 @@ System.register("angular2/src/forms/directives/control_container", [], function(
};
});
-System.register("angular2/src/forms/directives/ng_control", ["angular2/src/forms/validators"], function($__export) {
+System.register("angular2/src/forms/directives/ng_control", [], function($__export) {
"use strict";
var __moduleName = "angular2/src/forms/directives/ng_control";
- var Validators,
- NgControl;
+ var NgControl;
return {
- setters: [function($__m) {
- Validators = $__m.Validators;
- }],
+ setters: [],
execute: function() {
NgControl = (function() {
function NgControl() {
this.name = null;
this.valueAccessor = null;
- this.validator = Validators.nullValidator;
}
return ($traceurRuntime.createClass)(NgControl, {
+ get validator() {
+ return null;
+ },
get path() {
return null;
},
@@ -16167,16 +16060,91 @@ System.register("angular2/src/forms/directives/ng_control", ["angular2/src/forms
};
});
+System.register("angular2/src/forms/directives/validators", ["angular2/di", "angular2/src/facade/lang", "angular2/angular2", "angular2/src/forms/validators"], function($__export) {
+ "use strict";
+ var __moduleName = "angular2/src/forms/directives/validators";
+ var __decorate,
+ __metadata,
+ forwardRef,
+ Binding,
+ CONST_EXPR,
+ Directive,
+ Validators,
+ NgValidator,
+ requiredValidatorBinding,
+ NgRequiredValidator;
+ return {
+ setters: [function($__m) {
+ forwardRef = $__m.forwardRef;
+ Binding = $__m.Binding;
+ }, function($__m) {
+ CONST_EXPR = $__m.CONST_EXPR;
+ }, function($__m) {
+ Directive = $__m.Directive;
+ }, function($__m) {
+ Validators = $__m.Validators;
+ }],
+ execute: function() {
+ __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
+ return Reflect.decorate(decorators, target, key, desc);
+ switch (arguments.length) {
+ case 2:
+ return decorators.reduceRight(function(o, d) {
+ return (d && d(o)) || o;
+ }, target);
+ case 3:
+ return decorators.reduceRight(function(o, d) {
+ return (d && d(target, key)), void 0;
+ }, void 0);
+ case 4:
+ return decorators.reduceRight(function(o, d) {
+ return (d && d(target, key, o)) || o;
+ }, desc);
+ }
+ };
+ __metadata = (this && this.__metadata) || function(k, v) {
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
+ return Reflect.metadata(k, v);
+ };
+ NgValidator = (function() {
+ function NgValidator() {}
+ return ($traceurRuntime.createClass)(NgValidator, {get validator() {
+ throw "Is not implemented";
+ }}, {});
+ }());
+ $__export("NgValidator", NgValidator);
+ requiredValidatorBinding = CONST_EXPR(new Binding(NgValidator, {toAlias: forwardRef((function() {
+ return NgRequiredValidator;
+ }))}));
+ NgRequiredValidator = (function($__super) {
+ function $__0() {
+ $traceurRuntime.superConstructor($__0).apply(this, arguments);
+ }
+ return ($traceurRuntime.createClass)($__0, {get validator() {
+ return Validators.required;
+ }}, {}, $__super);
+ }(NgValidator));
+ $__export("NgRequiredValidator", NgRequiredValidator);
+ $__export("NgRequiredValidator", NgRequiredValidator = __decorate([Directive({
+ selector: '[required][ng-control],[required][ng-form-control],[required][ng-model]',
+ hostInjector: [requiredValidatorBinding]
+ }), __metadata('design:paramtypes', [])], NgRequiredValidator));
+ }
+ };
+});
+
System.register("angular2/src/forms/directives/shared", ["angular2/src/facade/collection", "angular2/src/facade/lang", "angular2/src/forms/validators"], function($__export) {
"use strict";
var __moduleName = "angular2/src/forms/directives/shared";
var ListWrapper,
+ iterableToList,
isBlank,
BaseException,
Validators;
function controlPath(name, parent) {
var p = ListWrapper.clone(parent.path);
- ListWrapper.push(p, name);
+ p.push(name);
return p;
}
function setUpControl(c, dir) {
@@ -16198,19 +16166,28 @@ System.register("angular2/src/forms/directives/shared", ["angular2/src/facade/co
return c.markAsTouched();
}));
}
+ function composeNgValidator(ngValidators) {
+ if (isBlank(ngValidators))
+ return Validators.nullValidator;
+ return Validators.compose(iterableToList(ngValidators).map((function(v) {
+ return v.validator;
+ })));
+ }
function _throwError(dir, message) {
var path = ListWrapper.join(dir.path, " -> ");
throw new BaseException((message + " '" + path + "'"));
}
function setProperty(renderer, elementRef, propName, propValue) {
- renderer.setElementProperty(elementRef.parentView.render, elementRef.boundElementIndex, propName, propValue);
+ renderer.setElementProperty(elementRef, propName, propValue);
}
$__export("controlPath", controlPath);
$__export("setUpControl", setUpControl);
+ $__export("composeNgValidator", composeNgValidator);
$__export("setProperty", setProperty);
return {
setters: [function($__m) {
ListWrapper = $__m.ListWrapper;
+ iterableToList = $__m.iterableToList;
}, function($__m) {
isBlank = $__m.isBlank;
BaseException = $__m.BaseException;
@@ -16222,21 +16199,26 @@ System.register("angular2/src/forms/directives/shared", ["angular2/src/facade/co
};
});
-System.register("angular2/src/forms/directives/ng_form_control", ["angular2/src/facade/lang", "angular2/src/facade/collection", "angular2/src/facade/async", "angular2/angular2", "angular2/di", "angular2/src/forms/directives/ng_control", "angular2/src/forms/directives/shared"], function($__export) {
+System.register("angular2/src/forms/directives/ng_form_control", ["angular2/src/facade/lang", "angular2/src/facade/collection", "angular2/src/facade/async", "angular2/angular2", "angular2/di", "angular2/src/forms/directives/ng_control", "angular2/src/forms/directives/validators", "angular2/src/forms/directives/shared"], function($__export) {
"use strict";
var __moduleName = "angular2/src/forms/directives/ng_form_control";
var __decorate,
__metadata,
+ __param,
CONST_EXPR,
StringMapWrapper,
EventEmitter,
ObservableWrapper,
Directive,
onChange,
+ Query,
+ QueryList,
forwardRef,
Binding,
NgControl,
+ NgValidator,
setUpControl,
+ composeNgValidator,
formControlBinding,
NgFormControl;
return {
@@ -16250,13 +16232,18 @@ System.register("angular2/src/forms/directives/ng_form_control", ["angular2/src/
}, function($__m) {
Directive = $__m.Directive;
onChange = $__m.onChange;
+ Query = $__m.Query;
+ QueryList = $__m.QueryList;
}, function($__m) {
forwardRef = $__m.forwardRef;
Binding = $__m.Binding;
}, function($__m) {
NgControl = $__m.NgControl;
+ }, function($__m) {
+ NgValidator = $__m.NgValidator;
}, function($__m) {
setUpControl = $__m.setUpControl;
+ composeNgValidator = $__m.composeNgValidator;
}],
execute: function() {
__decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
@@ -16281,14 +16268,20 @@ System.register("angular2/src/forms/directives/ng_form_control", ["angular2/src/
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
return Reflect.metadata(k, v);
};
+ __param = (this && this.__param) || function(paramIndex, decorator) {
+ return function(target, key) {
+ decorator(target, key, paramIndex);
+ };
+ };
formControlBinding = CONST_EXPR(new Binding(NgControl, {toAlias: forwardRef((function() {
return NgFormControl;
}))}));
NgFormControl = (function($__super) {
- function $__0() {
+ function $__0(ngValidators) {
$traceurRuntime.superConstructor($__0).call(this);
- this.ngModel = new EventEmitter();
+ this.update = new EventEmitter();
this._added = false;
+ this.ngValidators = ngValidators;
}
return ($traceurRuntime.createClass)($__0, {
onChange: function(c) {
@@ -16301,14 +16294,17 @@ System.register("angular2/src/forms/directives/ng_form_control", ["angular2/src/
this.form.updateValue(this.model);
}
},
- get control() {
- return this.form;
- },
get path() {
return [];
},
+ get control() {
+ return this.form;
+ },
+ get validator() {
+ return composeNgValidator(this.ngValidators);
+ },
viewToModelUpdate: function(newValue) {
- ObservableWrapper.callNext(this.ngModel, newValue);
+ ObservableWrapper.callNext(this.update, newValue);
}
}, {}, $__super);
}(NgControl));
@@ -16316,31 +16312,36 @@ System.register("angular2/src/forms/directives/ng_form_control", ["angular2/src/
$__export("NgFormControl", NgFormControl = __decorate([Directive({
selector: '[ng-form-control]',
hostInjector: [formControlBinding],
- properties: ['form: ng-form-control', 'model: ng-model'],
- events: ['ngModel'],
+ properties: ['form: ngFormControl', 'model: ngModel'],
+ events: ['update: ngModel'],
lifecycle: [onChange],
exportAs: 'form'
- }), __metadata('design:paramtypes', [])], NgFormControl));
+ }), __param(0, Query(NgValidator)), __metadata('design:paramtypes', [QueryList])], NgFormControl));
}
};
});
-System.register("angular2/src/forms/directives/ng_model", ["angular2/src/facade/lang", "angular2/src/facade/async", "angular2/src/facade/collection", "angular2/angular2", "angular2/di", "angular2/src/forms/directives/ng_control", "angular2/src/forms/model", "angular2/src/forms/directives/shared"], function($__export) {
+System.register("angular2/src/forms/directives/ng_model", ["angular2/src/facade/lang", "angular2/src/facade/async", "angular2/src/facade/collection", "angular2/angular2", "angular2/di", "angular2/src/forms/directives/ng_control", "angular2/src/forms/model", "angular2/src/forms/directives/validators", "angular2/src/forms/directives/shared"], function($__export) {
"use strict";
var __moduleName = "angular2/src/forms/directives/ng_model";
var __decorate,
__metadata,
+ __param,
CONST_EXPR,
EventEmitter,
ObservableWrapper,
StringMapWrapper,
Directive,
onChange,
+ QueryList,
+ Query,
forwardRef,
Binding,
NgControl,
Control,
+ NgValidator,
setUpControl,
+ composeNgValidator,
formControlBinding,
NgModel;
return {
@@ -16354,6 +16355,8 @@ System.register("angular2/src/forms/directives/ng_model", ["angular2/src/facade/
}, function($__m) {
Directive = $__m.Directive;
onChange = $__m.onChange;
+ QueryList = $__m.QueryList;
+ Query = $__m.Query;
}, function($__m) {
forwardRef = $__m.forwardRef;
Binding = $__m.Binding;
@@ -16361,8 +16364,11 @@ System.register("angular2/src/forms/directives/ng_model", ["angular2/src/facade/
NgControl = $__m.NgControl;
}, function($__m) {
Control = $__m.Control;
+ }, function($__m) {
+ NgValidator = $__m.NgValidator;
}, function($__m) {
setUpControl = $__m.setUpControl;
+ composeNgValidator = $__m.composeNgValidator;
}],
execute: function() {
__decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
@@ -16387,28 +16393,29 @@ System.register("angular2/src/forms/directives/ng_model", ["angular2/src/facade/
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
return Reflect.metadata(k, v);
};
+ __param = (this && this.__param) || function(paramIndex, decorator) {
+ return function(target, key) {
+ decorator(target, key, paramIndex);
+ };
+ };
formControlBinding = CONST_EXPR(new Binding(NgControl, {toAlias: forwardRef((function() {
return NgModel;
}))}));
NgModel = (function($__super) {
- function $__0() {
- var $__3;
- for (var args = [],
- $__2 = 0; $__2 < arguments.length; $__2++)
- args[$__2] = arguments[$__2];
- ($__3 = $traceurRuntime.superConstructor($__0)).call.apply($__3, $traceurRuntime.spread([this], args));
+ function $__0(ngValidators) {
+ $traceurRuntime.superConstructor($__0).call(this);
this._control = new Control("");
this._added = false;
- this.ngModel = new EventEmitter();
+ this.update = new EventEmitter();
+ this.ngValidators = ngValidators;
}
return ($traceurRuntime.createClass)($__0, {
onChange: function(c) {
if (!this._added) {
setUpControl(this._control, this);
- this.control.updateValidity();
+ this._control.updateValidity();
this._added = true;
}
- ;
if (StringMapWrapper.contains(c, "model")) {
this._control.updateValue(this.model);
}
@@ -16419,8 +16426,11 @@ System.register("angular2/src/forms/directives/ng_model", ["angular2/src/facade/
get path() {
return [];
},
+ get validator() {
+ return composeNgValidator(this.ngValidators);
+ },
viewToModelUpdate: function(newValue) {
- ObservableWrapper.callNext(this.ngModel, newValue);
+ ObservableWrapper.callNext(this.update, newValue);
}
}, {}, $__super);
}(NgControl));
@@ -16428,11 +16438,11 @@ System.register("angular2/src/forms/directives/ng_model", ["angular2/src/facade/
$__export("NgModel", NgModel = __decorate([Directive({
selector: '[ng-model]:not([ng-control]):not([ng-form-control])',
hostInjector: [formControlBinding],
- properties: ['model: ng-model'],
- events: ['ngModel'],
+ properties: ['model: ngModel'],
+ events: ['update: ngModel'],
lifecycle: [onChange],
exportAs: 'form'
- }), __metadata('design:paramtypes', [])], NgModel));
+ }), __param(0, Query(NgValidator)), __metadata('design:paramtypes', [QueryList])], NgModel));
}
};
});
@@ -16597,10 +16607,14 @@ System.register("angular2/src/forms/directives/ng_form_model", ["angular2/src/fa
}))}));
NgFormModel = (function($__super) {
function $__1() {
- $traceurRuntime.superConstructor($__1).call(this);
+ var $__4;
+ for (var args = [],
+ $__3 = 0; $__3 < arguments.length; $__3++)
+ args[$__3] = arguments[$__3];
+ ($__4 = $traceurRuntime.superConstructor($__1)).call.apply($__4, $traceurRuntime.spread([this], args));
this.form = null;
- this.ngSubmit = new EventEmitter();
this.directives = [];
+ this.ngSubmit = new EventEmitter();
}
return ($traceurRuntime.createClass)($__1, {
onChange: function(_) {
@@ -16616,7 +16630,7 @@ System.register("angular2/src/forms/directives/ng_form_model", ["angular2/src/fa
var c = this.form.find(dir.path);
setUpControl(c, dir);
c.updateValidity();
- ListWrapper.push(this.directives, dir);
+ this.directives.push(dir);
},
getControl: function(dir) {
return this.form.find(dir.path);
@@ -16834,6 +16848,7 @@ System.register("angular2/src/forms/directives/default_value_accessor", ["angula
ElementRef,
NgControl,
isBlank,
+ isPresent,
setProperty,
DefaultValueAccessor;
return {
@@ -16845,6 +16860,7 @@ System.register("angular2/src/forms/directives/default_value_accessor", ["angula
NgControl = $__m.NgControl;
}, function($__m) {
isBlank = $__m.isBlank;
+ isPresent = $__m.isPresent;
}, function($__m) {
setProperty = $__m.setProperty;
}],
@@ -16877,13 +16893,31 @@ System.register("angular2/src/forms/directives/default_value_accessor", ["angula
this.elementRef = elementRef;
this.value = null;
this.onChange = (function(_) {});
- this.onTouched = (function(_) {});
+ this.onTouched = (function() {});
cd.valueAccessor = this;
}, {
writeValue: function(value) {
this.value = isBlank(value) ? '' : value;
setProperty(this.renderer, this.elementRef, 'value', this.value);
},
+ get ngClassUntouched() {
+ return isPresent(this.cd.control) ? this.cd.control.untouched : false;
+ },
+ get ngClassTouched() {
+ return isPresent(this.cd.control) ? this.cd.control.touched : false;
+ },
+ get ngClassPristine() {
+ return isPresent(this.cd.control) ? this.cd.control.pristine : false;
+ },
+ get ngClassDirty() {
+ return isPresent(this.cd.control) ? this.cd.control.dirty : false;
+ },
+ get ngClassValid() {
+ return isPresent(this.cd.control) ? this.cd.control.valid : false;
+ },
+ get ngClassInvalid() {
+ return isPresent(this.cd.control) ? !this.cd.control.valid : false;
+ },
registerOnChange: function(fn) {
this.onChange = fn;
},
@@ -16899,19 +16933,19 @@ System.register("angular2/src/forms/directives/default_value_accessor", ["angula
'(input)': 'onChange($event.target.value)',
'(blur)': 'onTouched()',
'[value]': 'value',
- '[class.ng-untouched]': 'cd.control?.untouched == true',
- '[class.ng-touched]': 'cd.control?.touched == true',
- '[class.ng-pristine]': 'cd.control?.pristine == true',
- '[class.ng-dirty]': 'cd.control?.dirty == true',
- '[class.ng-valid]': 'cd.control?.valid == true',
- '[class.ng-invalid]': 'cd.control?.valid == false'
+ '[class.ng-untouched]': 'ngClassUntouched',
+ '[class.ng-touched]': 'ngClassTouched',
+ '[class.ng-pristine]': 'ngClassPristine',
+ '[class.ng-dirty]': 'ngClassDirty',
+ '[class.ng-valid]': 'ngClassValid',
+ '[class.ng-invalid]': 'ngClassInvalid'
}
}), __metadata('design:paramtypes', [NgControl, Renderer, ElementRef])], DefaultValueAccessor));
}
};
});
-System.register("angular2/src/forms/directives/checkbox_value_accessor", ["angular2/angular2", "angular2/src/forms/directives/ng_control", "angular2/src/forms/directives/shared"], function($__export) {
+System.register("angular2/src/forms/directives/checkbox_value_accessor", ["angular2/angular2", "angular2/src/forms/directives/ng_control", "angular2/src/facade/lang", "angular2/src/forms/directives/shared"], function($__export) {
"use strict";
var __moduleName = "angular2/src/forms/directives/checkbox_value_accessor";
var __decorate,
@@ -16920,6 +16954,7 @@ System.register("angular2/src/forms/directives/checkbox_value_accessor", ["angul
Renderer,
ElementRef,
NgControl,
+ isPresent,
setProperty,
CheckboxControlValueAccessor;
return {
@@ -16929,6 +16964,8 @@ System.register("angular2/src/forms/directives/checkbox_value_accessor", ["angul
ElementRef = $__m.ElementRef;
}, function($__m) {
NgControl = $__m.NgControl;
+ }, function($__m) {
+ isPresent = $__m.isPresent;
}, function($__m) {
setProperty = $__m.setProperty;
}],
@@ -16960,13 +16997,31 @@ System.register("angular2/src/forms/directives/checkbox_value_accessor", ["angul
this.renderer = renderer;
this.elementRef = elementRef;
this.onChange = (function(_) {});
- this.onTouched = (function(_) {});
+ this.onTouched = (function() {});
cd.valueAccessor = this;
}, {
writeValue: function(value) {
this.checked = value;
setProperty(this.renderer, this.elementRef, "checked", value);
},
+ get ngClassUntouched() {
+ return isPresent(this.cd.control) ? this.cd.control.untouched : false;
+ },
+ get ngClassTouched() {
+ return isPresent(this.cd.control) ? this.cd.control.touched : false;
+ },
+ get ngClassPristine() {
+ return isPresent(this.cd.control) ? this.cd.control.pristine : false;
+ },
+ get ngClassDirty() {
+ return isPresent(this.cd.control) ? this.cd.control.dirty : false;
+ },
+ get ngClassValid() {
+ return isPresent(this.cd.control) ? this.cd.control.valid : false;
+ },
+ get ngClassInvalid() {
+ return isPresent(this.cd.control) ? !this.cd.control.valid : false;
+ },
registerOnChange: function(fn) {
this.onChange = fn;
},
@@ -16981,19 +17036,19 @@ System.register("angular2/src/forms/directives/checkbox_value_accessor", ["angul
'(change)': 'onChange($event.target.checked)',
'(blur)': 'onTouched()',
'[checked]': 'checked',
- '[class.ng-untouched]': 'cd.control?.untouched == true',
- '[class.ng-touched]': 'cd.control?.touched == true',
- '[class.ng-pristine]': 'cd.control?.pristine == true',
- '[class.ng-dirty]': 'cd.control?.dirty == true',
- '[class.ng-valid]': 'cd.control?.valid == true',
- '[class.ng-invalid]': 'cd.control?.valid == false'
+ '[class.ng-untouched]': 'ngClassUntouched',
+ '[class.ng-touched]': 'ngClassTouched',
+ '[class.ng-pristine]': 'ngClassPristine',
+ '[class.ng-dirty]': 'ngClassDirty',
+ '[class.ng-valid]': 'ngClassValid',
+ '[class.ng-invalid]': 'ngClassInvalid'
}
}), __metadata('design:paramtypes', [NgControl, Renderer, ElementRef])], CheckboxControlValueAccessor));
}
};
});
-System.register("angular2/src/forms/directives/select_control_value_accessor", ["angular2/angular2", "angular2/src/forms/directives/ng_control", "angular2/src/forms/directives/shared"], function($__export) {
+System.register("angular2/src/forms/directives/select_control_value_accessor", ["angular2/angular2", "angular2/src/forms/directives/ng_control", "angular2/src/facade/lang", "angular2/src/forms/directives/shared"], function($__export) {
"use strict";
var __moduleName = "angular2/src/forms/directives/select_control_value_accessor";
var __decorate,
@@ -17005,6 +17060,7 @@ System.register("angular2/src/forms/directives/select_control_value_accessor", [
Renderer,
ElementRef,
NgControl,
+ isPresent,
setProperty,
NgSelectOption,
SelectControlValueAccessor;
@@ -17017,6 +17073,8 @@ System.register("angular2/src/forms/directives/select_control_value_accessor", [
ElementRef = $__m.ElementRef;
}, function($__m) {
NgControl = $__m.NgControl;
+ }, function($__m) {
+ isPresent = $__m.isPresent;
}, function($__m) {
setProperty = $__m.setProperty;
}],
@@ -17057,7 +17115,7 @@ System.register("angular2/src/forms/directives/select_control_value_accessor", [
this.elementRef = elementRef;
this.value = '';
this.onChange = (function(_) {});
- this.onTouched = (function(_) {});
+ this.onTouched = (function() {});
cd.valueAccessor = this;
this._updateValueWhenListOfOptionsChanges(query);
}, {
@@ -17065,6 +17123,24 @@ System.register("angular2/src/forms/directives/select_control_value_accessor", [
this.value = value;
setProperty(this.renderer, this.elementRef, "value", value);
},
+ get ngClassUntouched() {
+ return isPresent(this.cd.control) ? this.cd.control.untouched : false;
+ },
+ get ngClassTouched() {
+ return isPresent(this.cd.control) ? this.cd.control.touched : false;
+ },
+ get ngClassPristine() {
+ return isPresent(this.cd.control) ? this.cd.control.pristine : false;
+ },
+ get ngClassDirty() {
+ return isPresent(this.cd.control) ? this.cd.control.dirty : false;
+ },
+ get ngClassValid() {
+ return isPresent(this.cd.control) ? this.cd.control.valid : false;
+ },
+ get ngClassInvalid() {
+ return isPresent(this.cd.control) ? !this.cd.control.valid : false;
+ },
registerOnChange: function(fn) {
this.onChange = fn;
},
@@ -17086,63 +17162,75 @@ System.register("angular2/src/forms/directives/select_control_value_accessor", [
'(input)': 'onChange($event.target.value)',
'(blur)': 'onTouched()',
'[value]': 'value',
- '[class.ng-untouched]': 'cd.control?.untouched == true',
- '[class.ng-touched]': 'cd.control?.touched == true',
- '[class.ng-pristine]': 'cd.control?.pristine == true',
- '[class.ng-dirty]': 'cd.control?.dirty == true',
- '[class.ng-valid]': 'cd.control?.valid == true',
- '[class.ng-invalid]': 'cd.control?.valid == false'
+ '[class.ng-untouched]': 'ngClassUntouched',
+ '[class.ng-touched]': 'ngClassTouched',
+ '[class.ng-pristine]': 'ngClassPristine',
+ '[class.ng-dirty]': 'ngClassDirty',
+ '[class.ng-valid]': 'ngClassValid',
+ '[class.ng-invalid]': 'ngClassInvalid'
}
}), __param(3, Query(NgSelectOption, {descendants: true})), __metadata('design:paramtypes', [NgControl, Renderer, ElementRef, QueryList])], SelectControlValueAccessor));
}
};
});
-System.register("angular2/src/forms/directives/validators", ["angular2/angular2", "angular2/src/forms/validators", "angular2/src/forms/directives"], function($__export) {
+System.register("angular2/src/forms/directives", ["angular2/src/facade/lang", "angular2/src/forms/directives/ng_control_name", "angular2/src/forms/directives/ng_form_control", "angular2/src/forms/directives/ng_model", "angular2/src/forms/directives/ng_control_group", "angular2/src/forms/directives/ng_form_model", "angular2/src/forms/directives/ng_form", "angular2/src/forms/directives/default_value_accessor", "angular2/src/forms/directives/checkbox_value_accessor", "angular2/src/forms/directives/select_control_value_accessor", "angular2/src/forms/directives/validators", "angular2/src/forms/directives/ng_control"], function($__export) {
"use strict";
- var __moduleName = "angular2/src/forms/directives/validators";
- var __decorate,
- __metadata,
- Directive,
- Validators,
- NgControl,
- NgRequiredValidator;
+ var __moduleName = "angular2/src/forms/directives";
+ var CONST_EXPR,
+ NgControlName,
+ NgFormControl,
+ NgModel,
+ NgControlGroup,
+ NgFormModel,
+ NgForm,
+ DefaultValueAccessor,
+ CheckboxControlValueAccessor,
+ SelectControlValueAccessor,
+ NgSelectOption,
+ NgRequiredValidator,
+ formDirectives;
return {
setters: [function($__m) {
- Directive = $__m.Directive;
+ CONST_EXPR = $__m.CONST_EXPR;
}, function($__m) {
- Validators = $__m.Validators;
+ NgControlName = $__m.NgControlName;
+ $__export("NgControlName", $__m.NgControlName);
}, function($__m) {
- NgControl = $__m.NgControl;
+ NgFormControl = $__m.NgFormControl;
+ $__export("NgFormControl", $__m.NgFormControl);
+ }, function($__m) {
+ NgModel = $__m.NgModel;
+ $__export("NgModel", $__m.NgModel);
+ }, function($__m) {
+ NgControlGroup = $__m.NgControlGroup;
+ $__export("NgControlGroup", $__m.NgControlGroup);
+ }, function($__m) {
+ NgFormModel = $__m.NgFormModel;
+ $__export("NgFormModel", $__m.NgFormModel);
+ }, function($__m) {
+ NgForm = $__m.NgForm;
+ $__export("NgForm", $__m.NgForm);
+ }, function($__m) {
+ DefaultValueAccessor = $__m.DefaultValueAccessor;
+ $__export("DefaultValueAccessor", $__m.DefaultValueAccessor);
+ }, function($__m) {
+ CheckboxControlValueAccessor = $__m.CheckboxControlValueAccessor;
+ $__export("CheckboxControlValueAccessor", $__m.CheckboxControlValueAccessor);
+ }, function($__m) {
+ SelectControlValueAccessor = $__m.SelectControlValueAccessor;
+ NgSelectOption = $__m.NgSelectOption;
+ $__export("SelectControlValueAccessor", $__m.SelectControlValueAccessor);
+ }, function($__m) {
+ NgRequiredValidator = $__m.NgRequiredValidator;
+ $__export("NgValidator", $__m.NgValidator);
+ $__export("NgRequiredValidator", $__m.NgRequiredValidator);
+ }, function($__m) {
+ $__export("NgControl", $__m.NgControl);
}],
execute: function() {
- __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
- return Reflect.decorate(decorators, target, key, desc);
- switch (arguments.length) {
- case 2:
- return decorators.reduceRight(function(o, d) {
- return (d && d(o)) || o;
- }, target);
- case 3:
- return decorators.reduceRight(function(o, d) {
- return (d && d(target, key)), void 0;
- }, void 0);
- case 4:
- return decorators.reduceRight(function(o, d) {
- return (d && d(target, key, o)) || o;
- }, desc);
- }
- };
- __metadata = (this && this.__metadata) || function(k, v) {
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
- return Reflect.metadata(k, v);
- };
- NgRequiredValidator = (($traceurRuntime.createClass)(function(c) {
- c.validator = Validators.compose([c.validator, Validators.required]);
- }, {}, {}));
- $__export("NgRequiredValidator", NgRequiredValidator);
- $__export("NgRequiredValidator", NgRequiredValidator = __decorate([Directive({selector: '[required][ng-control],[required][ng-form-control],[required][ng-model]'}), __metadata('design:paramtypes', [NgControl])], NgRequiredValidator));
+ formDirectives = CONST_EXPR([NgControlName, NgControlGroup, NgFormControl, NgModel, NgFormModel, NgForm, NgSelectOption, DefaultValueAccessor, CheckboxControlValueAccessor, SelectControlValueAccessor, NgRequiredValidator]);
+ $__export("formDirectives", formDirectives);
}
};
});
@@ -17245,7 +17333,6 @@ System.register("angular2/src/http/enums", [], function($__export) {
RequestModesOpts[RequestModesOpts["NoCors"] = 1] = "NoCors";
RequestModesOpts[RequestModesOpts["SameOrigin"] = 2] = "SameOrigin";
})(RequestModesOpts || ($__export("RequestModesOpts", RequestModesOpts = {})));
- ;
$__export("RequestCacheOpts", RequestCacheOpts);
(function(RequestCacheOpts) {
RequestCacheOpts[RequestCacheOpts["Default"] = 0] = "Default";
@@ -17255,14 +17342,12 @@ System.register("angular2/src/http/enums", [], function($__export) {
RequestCacheOpts[RequestCacheOpts["ForceCache"] = 4] = "ForceCache";
RequestCacheOpts[RequestCacheOpts["OnlyIfCached"] = 5] = "OnlyIfCached";
})(RequestCacheOpts || ($__export("RequestCacheOpts", RequestCacheOpts = {})));
- ;
$__export("RequestCredentialsOpts", RequestCredentialsOpts);
(function(RequestCredentialsOpts) {
RequestCredentialsOpts[RequestCredentialsOpts["Omit"] = 0] = "Omit";
RequestCredentialsOpts[RequestCredentialsOpts["SameOrigin"] = 1] = "SameOrigin";
RequestCredentialsOpts[RequestCredentialsOpts["Include"] = 2] = "Include";
})(RequestCredentialsOpts || ($__export("RequestCredentialsOpts", RequestCredentialsOpts = {})));
- ;
$__export("RequestMethods", RequestMethods);
(function(RequestMethods) {
RequestMethods[RequestMethods["GET"] = 0] = "GET";
@@ -17273,7 +17358,6 @@ System.register("angular2/src/http/enums", [], function($__export) {
RequestMethods[RequestMethods["HEAD"] = 5] = "HEAD";
RequestMethods[RequestMethods["PATCH"] = 6] = "PATCH";
})(RequestMethods || ($__export("RequestMethods", RequestMethods = {})));
- ;
$__export("ReadyStates", ReadyStates);
(function(ReadyStates) {
ReadyStates[ReadyStates["UNSENT"] = 0] = "UNSENT";
@@ -17283,7 +17367,6 @@ System.register("angular2/src/http/enums", [], function($__export) {
ReadyStates[ReadyStates["DONE"] = 4] = "DONE";
ReadyStates[ReadyStates["CANCELLED"] = 5] = "CANCELLED";
})(ReadyStates || ($__export("ReadyStates", ReadyStates = {})));
- ;
$__export("ResponseTypes", ResponseTypes);
(function(ResponseTypes) {
ResponseTypes[ResponseTypes["Basic"] = 0] = "Basic";
@@ -17304,6 +17387,7 @@ System.register("angular2/src/http/headers", ["angular2/src/facade/lang", "angul
isJsObject,
BaseException,
isListLikeIterable,
+ Map,
MapWrapper,
ListWrapper,
Headers;
@@ -17315,6 +17399,7 @@ System.register("angular2/src/http/headers", ["angular2/src/facade/lang", "angul
BaseException = $__m.BaseException;
}, function($__m) {
isListLikeIterable = $__m.isListLikeIterable;
+ Map = $__m.Map;
MapWrapper = $__m.MapWrapper;
ListWrapper = $__m.ListWrapper;
}],
@@ -17323,7 +17408,7 @@ System.register("angular2/src/http/headers", ["angular2/src/facade/lang", "angul
function Headers(headers) {
var $__0 = this;
if (isBlank(headers)) {
- this._headersMap = MapWrapper.create();
+ this._headersMap = new Map();
return ;
}
if (isPresent(headers._headersMap)) {
@@ -17332,18 +17417,18 @@ System.register("angular2/src/http/headers", ["angular2/src/facade/lang", "angul
this._headersMap = MapWrapper.createFromStringMap(headers);
MapWrapper.forEach(this._headersMap, (function(v, k) {
if (!isListLikeIterable(v)) {
- var list = ListWrapper.create();
- ListWrapper.push(list, v);
- MapWrapper.set($__0._headersMap, k, list);
+ var list = [];
+ list.push(v);
+ $__0._headersMap.set(k, list);
}
}));
}
}
return ($traceurRuntime.createClass)(Headers, {
append: function(name, value) {
- var list = MapWrapper.get(this._headersMap, name) || ListWrapper.create();
- ListWrapper.push(list, value);
- MapWrapper.set(this._headersMap, name, list);
+ var list = this._headersMap.get(name) || [];
+ list.push(value);
+ this._headersMap.set(name, list);
},
delete: function(name) {
MapWrapper.delete(this._headersMap, name);
@@ -17352,28 +17437,28 @@ System.register("angular2/src/http/headers", ["angular2/src/facade/lang", "angul
return MapWrapper.forEach(this._headersMap, fn);
},
get: function(header) {
- return ListWrapper.first(MapWrapper.get(this._headersMap, header));
+ return ListWrapper.first(this._headersMap.get(header));
},
has: function(header) {
- return MapWrapper.contains(this._headersMap, header);
+ return this._headersMap.has(header);
},
keys: function() {
return MapWrapper.keys(this._headersMap);
},
set: function(header, value) {
- var list = ListWrapper.create();
+ var list = [];
if (!isListLikeIterable(value)) {
- ListWrapper.push(list, value);
+ list.push(value);
} else {
- ListWrapper.push(list, ListWrapper.toString(value));
+ list.push(ListWrapper.toString(value));
}
- MapWrapper.set(this._headersMap, header, list);
+ this._headersMap.set(header, list);
},
values: function() {
return MapWrapper.values(this._headersMap);
},
getAll: function(header) {
- return MapWrapper.get(this._headersMap, header) || ListWrapper.create();
+ return this._headersMap.get(header) || [];
},
entries: function() {
throw new BaseException('"entries" method is not implemented on Headers class');
@@ -17677,6 +17762,75 @@ System.register("angular2/src/http/backends/mock_backend", ["angular2/di", "angu
};
});
+System.register("angular2/src/http/url_search_params", ["angular2/src/facade/lang", "angular2/src/facade/collection"], function($__export) {
+ "use strict";
+ var __moduleName = "angular2/src/http/url_search_params";
+ var StringWrapper,
+ Map,
+ MapWrapper,
+ ListWrapper,
+ URLSearchParams;
+ function paramParser(rawParams) {
+ var map = new Map();
+ var params = StringWrapper.split(rawParams, '&');
+ ListWrapper.forEach(params, (function(param) {
+ var split = StringWrapper.split(param, '=');
+ var key = ListWrapper.get(split, 0);
+ var val = ListWrapper.get(split, 1);
+ var list = map.get(key) || [];
+ list.push(val);
+ map.set(key, list);
+ }));
+ return map;
+ }
+ return {
+ setters: [function($__m) {
+ StringWrapper = $__m.StringWrapper;
+ }, function($__m) {
+ Map = $__m.Map;
+ MapWrapper = $__m.MapWrapper;
+ ListWrapper = $__m.ListWrapper;
+ }],
+ execute: function() {
+ URLSearchParams = (function() {
+ function URLSearchParams(rawParams) {
+ this.rawParams = rawParams;
+ this.paramsMap = paramParser(rawParams);
+ }
+ return ($traceurRuntime.createClass)(URLSearchParams, {
+ has: function(param) {
+ return this.paramsMap.has(param);
+ },
+ get: function(param) {
+ return ListWrapper.first(this.paramsMap.get(param));
+ },
+ getAll: function(param) {
+ return this.paramsMap.get(param) || [];
+ },
+ append: function(param, val) {
+ var list = this.paramsMap.get(param) || [];
+ list.push(val);
+ this.paramsMap.set(param, list);
+ },
+ toString: function() {
+ var paramsList = [];
+ MapWrapper.forEach(this.paramsMap, (function(values, k) {
+ ListWrapper.forEach(values, (function(v) {
+ paramsList.push(k + '=' + v);
+ }));
+ }));
+ return ListWrapper.join(paramsList, '&');
+ },
+ delete: function(param) {
+ MapWrapper.delete(this.paramsMap, param);
+ }
+ }, {});
+ }());
+ $__export("URLSearchParams", URLSearchParams);
+ }
+ };
+});
+
System.register("angular2/src/change_detection/parser/ast", ["angular2/src/facade/lang", "angular2/src/facade/collection"], function($__export) {
"use strict";
var __moduleName = "angular2/src/change_detection/parser/ast";
@@ -17695,7 +17849,7 @@ System.register("angular2/src/change_detection/parser/ast", ["angular2/src/facad
AccessMember,
SafeAccessMember,
KeyedAccess,
- Pipe,
+ BindingPipe,
LiteralPrimitive,
LiteralArray,
LiteralMap,
@@ -17922,19 +18076,18 @@ System.register("angular2/src/change_detection/parser/ast", ["angular2/src/facad
}, {}, $__super);
}(AST));
$__export("KeyedAccess", KeyedAccess);
- Pipe = (function($__super) {
- function Pipe(exp, name, args, inBinding) {
- $traceurRuntime.superConstructor(Pipe).call(this);
+ BindingPipe = (function($__super) {
+ function BindingPipe(exp, name, args) {
+ $traceurRuntime.superConstructor(BindingPipe).call(this);
this.exp = exp;
this.name = name;
this.args = args;
- this.inBinding = inBinding;
}
- return ($traceurRuntime.createClass)(Pipe, {visit: function(visitor) {
+ return ($traceurRuntime.createClass)(BindingPipe, {visit: function(visitor) {
return visitor.visitPipe(this);
}}, {}, $__super);
}(AST));
- $__export("Pipe", Pipe);
+ $__export("BindingPipe", BindingPipe);
LiteralPrimitive = (function($__super) {
function LiteralPrimitive(value) {
$traceurRuntime.superConstructor(LiteralPrimitive).call(this);
@@ -18237,7 +18390,7 @@ System.register("angular2/src/change_detection/parser/ast", ["angular2/src/facad
return new Conditional(ast.condition.visit(this), ast.trueExp.visit(this), ast.falseExp.visit(this));
},
visitPipe: function(ast) {
- return new Pipe(ast.exp.visit(this), ast.name, this.visitAll(ast.args), ast.inBinding);
+ return new BindingPipe(ast.exp.visit(this), ast.name, this.visitAll(ast.args));
},
visitKeyedAccess: function(ast) {
return new KeyedAccess(ast.obj.visit(this), ast.key.visit(this));
@@ -18287,19 +18440,19 @@ System.register("angular2/src/reflection/reflector", ["angular2/src/facade/lang"
"use strict";
var __moduleName = "angular2/src/reflection/reflector";
var isPresent,
- MapWrapper,
+ Map,
StringMapWrapper,
Reflector;
function _mergeMaps(target, config) {
StringMapWrapper.forEach(config, (function(v, k) {
- return MapWrapper.set(target, k, v);
+ return target.set(k, v);
}));
}
return {
setters: [function($__m) {
isPresent = $__m.isPresent;
}, function($__m) {
- MapWrapper = $__m.MapWrapper;
+ Map = $__m.Map;
StringMapWrapper = $__m.StringMapWrapper;
}, function($__m) {
$__export("SetterFn", $__m.SetterFn);
@@ -18309,15 +18462,15 @@ System.register("angular2/src/reflection/reflector", ["angular2/src/facade/lang"
execute: function() {
Reflector = (function() {
function Reflector(reflectionCapabilities) {
- this._typeInfo = MapWrapper.create();
- this._getters = MapWrapper.create();
- this._setters = MapWrapper.create();
- this._methods = MapWrapper.create();
+ this._typeInfo = new Map();
+ this._getters = new Map();
+ this._setters = new Map();
+ this._methods = new Map();
this.reflectionCapabilities = reflectionCapabilities;
}
return ($traceurRuntime.createClass)(Reflector, {
registerType: function(type, typeInfo) {
- MapWrapper.set(this._typeInfo, type, typeInfo);
+ this._typeInfo.set(type, typeInfo);
},
registerGetters: function(getters) {
_mergeMaps(this._getters, getters);
@@ -18336,53 +18489,53 @@ System.register("angular2/src/reflection/reflector", ["angular2/src/facade/lang"
}
},
parameters: function(typeOrFunc) {
- if (MapWrapper.contains(this._typeInfo, typeOrFunc)) {
+ if (this._typeInfo.has(typeOrFunc)) {
return this._getTypeInfoField(typeOrFunc, "parameters", []);
} else {
return this.reflectionCapabilities.parameters(typeOrFunc);
}
},
annotations: function(typeOrFunc) {
- if (MapWrapper.contains(this._typeInfo, typeOrFunc)) {
+ if (this._typeInfo.has(typeOrFunc)) {
return this._getTypeInfoField(typeOrFunc, "annotations", []);
} else {
return this.reflectionCapabilities.annotations(typeOrFunc);
}
},
interfaces: function(type) {
- if (MapWrapper.contains(this._typeInfo, type)) {
+ if (this._typeInfo.has(type)) {
return this._getTypeInfoField(type, "interfaces", []);
} else {
return this.reflectionCapabilities.interfaces(type);
}
},
getter: function(name) {
- if (MapWrapper.contains(this._getters, name)) {
- return MapWrapper.get(this._getters, name);
+ if (this._getters.has(name)) {
+ return this._getters.get(name);
} else {
return this.reflectionCapabilities.getter(name);
}
},
setter: function(name) {
- if (MapWrapper.contains(this._setters, name)) {
- return MapWrapper.get(this._setters, name);
+ if (this._setters.has(name)) {
+ return this._setters.get(name);
} else {
return this.reflectionCapabilities.setter(name);
}
},
method: function(name) {
- if (MapWrapper.contains(this._methods, name)) {
- return MapWrapper.get(this._methods, name);
+ if (this._methods.has(name)) {
+ return this._methods.get(name);
} else {
return this.reflectionCapabilities.method(name);
}
},
_getTypeInfoField: function(typeOrFunc, key, defaultValue) {
- var res = MapWrapper.get(this._typeInfo, typeOrFunc)[key];
+ var res = this._typeInfo.get(typeOrFunc)[key];
return isPresent(res) ? res : defaultValue;
},
_containsTypeInfo: function(typeOrFunc) {
- return MapWrapper.contains(this._typeInfo, typeOrFunc);
+ return this._typeInfo.has(typeOrFunc);
}
}, {});
}());
@@ -18623,13 +18776,12 @@ System.register("angular2/src/change_detection/change_detection_util", ["angular
};
});
-System.register("angular2/src/change_detection/abstract_change_detector", ["angular2/src/facade/lang", "angular2/src/facade/collection", "angular2/src/change_detection/change_detector_ref", "angular2/src/change_detection/interfaces", "angular2/src/change_detection/constants"], function($__export) {
+System.register("angular2/src/change_detection/abstract_change_detector", ["angular2/src/facade/lang", "angular2/src/facade/collection", "angular2/src/change_detection/change_detector_ref", "angular2/src/change_detection/constants"], function($__export) {
"use strict";
var __moduleName = "angular2/src/change_detection/abstract_change_detector";
var isPresent,
ListWrapper,
ChangeDetectorRef,
- ChangeDetector,
CHECK_ONCE,
CHECKED,
DETACHED,
@@ -18641,17 +18793,15 @@ System.register("angular2/src/change_detection/abstract_change_detector", ["angu
ListWrapper = $__m.ListWrapper;
}, function($__m) {
ChangeDetectorRef = $__m.ChangeDetectorRef;
- }, function($__m) {
- ChangeDetector = $__m.ChangeDetector;
}, function($__m) {
CHECK_ONCE = $__m.CHECK_ONCE;
CHECKED = $__m.CHECKED;
DETACHED = $__m.DETACHED;
}],
execute: function() {
- AbstractChangeDetector = (function($__super) {
- function AbstractChangeDetector() {
- $traceurRuntime.superConstructor(AbstractChangeDetector).call(this);
+ AbstractChangeDetector = (function() {
+ function AbstractChangeDetector(id) {
+ this.id = id;
this.lightDomChildren = [];
this.shadowDomChildren = [];
this.mode = null;
@@ -18659,14 +18809,14 @@ System.register("angular2/src/change_detection/abstract_change_detector", ["angu
}
return ($traceurRuntime.createClass)(AbstractChangeDetector, {
addChild: function(cd) {
- ListWrapper.push(this.lightDomChildren, cd);
+ this.lightDomChildren.push(cd);
cd.parent = this;
},
removeChild: function(cd) {
ListWrapper.remove(this.lightDomChildren, cd);
},
addShadowDomChild: function(cd) {
- ListWrapper.push(this.shadowDomChildren, cd);
+ this.shadowDomChildren.push(cd);
cd.parent = this;
},
removeShadowDomChild: function(cd) {
@@ -18693,6 +18843,8 @@ System.register("angular2/src/change_detection/abstract_change_detector", ["angu
this.mode = CHECKED;
},
detectChangesInRecords: function(throwOnChange) {},
+ hydrate: function(context, locals, directives) {},
+ dehydrate: function() {},
callOnAllChangesDone: function() {},
_detectChangesInLightDomChildren: function(throwOnChange) {
var c = this.lightDomChildren;
@@ -18717,28 +18869,24 @@ System.register("angular2/src/change_detection/abstract_change_detector", ["angu
c = c.parent;
}
}
- }, {}, $__super);
- }(ChangeDetector));
+ }, {});
+ }());
$__export("AbstractChangeDetector", AbstractChangeDetector);
}
};
});
-System.register("angular2/src/change_detection/jit_proto_change_detector", ["angular2/src/facade/collection", "angular2/src/change_detection/interfaces", "angular2/src/change_detection/change_detection_jit_generator", "angular2/src/change_detection/coalesce", "angular2/src/change_detection/proto_change_detector"], function($__export) {
+System.register("angular2/src/change_detection/jit_proto_change_detector", ["angular2/src/facade/collection", "angular2/src/change_detection/change_detection_jit_generator", "angular2/src/change_detection/coalesce", "angular2/src/change_detection/proto_change_detector"], function($__export) {
"use strict";
var __moduleName = "angular2/src/change_detection/jit_proto_change_detector";
var ListWrapper,
- ProtoChangeDetector,
ChangeDetectorJITGenerator,
coalesce,
ProtoRecordBuilder,
- _jitProtoChangeDetectorClassCounter,
JitProtoChangeDetector;
return {
setters: [function($__m) {
ListWrapper = $__m.ListWrapper;
- }, function($__m) {
- ProtoChangeDetector = $__m.ProtoChangeDetector;
}, function($__m) {
ChangeDetectorJITGenerator = $__m.ChangeDetectorJITGenerator;
}, function($__m) {
@@ -18747,10 +18895,8 @@ System.register("angular2/src/change_detection/jit_proto_change_detector", ["ang
ProtoRecordBuilder = $__m.ProtoRecordBuilder;
}],
execute: function() {
- _jitProtoChangeDetectorClassCounter = 0;
- JitProtoChangeDetector = (function($__super) {
+ JitProtoChangeDetector = (function() {
function JitProtoChangeDetector(_pipeRegistry, definition) {
- $traceurRuntime.superConstructor(JitProtoChangeDetector).call(this);
this._pipeRegistry = _pipeRegistry;
this.definition = definition;
this._factory = this._createFactory(definition);
@@ -18764,15 +18910,13 @@ System.register("angular2/src/change_detection/jit_proto_change_detector", ["ang
ListWrapper.forEach(definition.bindingRecords, (function(b) {
recordBuilder.add(b, definition.variableNames);
}));
- var c = _jitProtoChangeDetectorClassCounter++;
var records = coalesce(recordBuilder.records);
- var typeName = ("ChangeDetector" + c);
- return new ChangeDetectorJITGenerator(typeName, definition.strategy, records, this.definition.directiveRecords).generate();
+ return new ChangeDetectorJITGenerator(definition.id, definition.strategy, records, this.definition.directiveRecords).generate();
}
}, {isSupported: function() {
return true;
- }}, $__super);
- }(ProtoChangeDetector));
+ }});
+ }());
$__export("JitProtoChangeDetector", JitProtoChangeDetector);
}
};
@@ -18959,11 +19103,11 @@ System.register("angular2/src/di/key", ["angular2/src/facade/collection", "angul
execute: function() {
Key = (function() {
function Key(token, id) {
+ this.token = token;
+ this.id = id;
if (isBlank(token)) {
throw new BaseException('Token must be defined!');
}
- this.token = token;
- this.id = id;
}
return ($traceurRuntime.createClass)(Key, {get displayName() {
return stringify(this.token);
@@ -18979,7 +19123,7 @@ System.register("angular2/src/di/key", ["angular2/src/facade/collection", "angul
$__export("Key", Key);
KeyRegistry = (function() {
function KeyRegistry() {
- this._allKeys = MapWrapper.create();
+ this._allKeys = new Map();
}
return ($traceurRuntime.createClass)(KeyRegistry, {
get: function(token) {
@@ -18990,11 +19134,11 @@ System.register("angular2/src/di/key", ["angular2/src/facade/collection", "angul
theToken = token.type;
}
token = theToken;
- if (MapWrapper.contains(this._allKeys, token)) {
- return MapWrapper.get(this._allKeys, token);
+ if (this._allKeys.has(token)) {
+ return this._allKeys.get(token);
}
var newKey = new Key(token, Key.numberOfKeys);
- MapWrapper.set(this._allKeys, token, newKey);
+ this._allKeys.set(token, newKey);
return newKey;
},
get numberOfKeys() {
@@ -19036,8 +19180,7 @@ System.register("angular2/src/core/annotations/view", ["angular2/src/core/annota
System.register("angular2/src/dom/browser_adapter", ["angular2/src/facade/collection", "angular2/src/facade/lang", "angular2/src/dom/dom_adapter", "angular2/src/dom/generic_browser_adapter"], function($__export) {
"use strict";
var __moduleName = "angular2/src/dom/browser_adapter";
- var MapWrapper,
- ListWrapper,
+ var ListWrapper,
isBlank,
isPresent,
global,
@@ -19058,7 +19201,6 @@ System.register("angular2/src/dom/browser_adapter", ["angular2/src/facade/collec
}
return {
setters: [function($__m) {
- MapWrapper = $__m.MapWrapper;
ListWrapper = $__m.ListWrapper;
}, function($__m) {
isBlank = $__m.isBlank;
@@ -19114,6 +19256,18 @@ System.register("angular2/src/dom/browser_adapter", ["angular2/src/facade/collec
$traceurRuntime.superConstructor(BrowserDomAdapter).apply(this, arguments);
}
return ($traceurRuntime.createClass)(BrowserDomAdapter, {
+ hasProperty: function(element, name) {
+ return name in element;
+ },
+ setProperty: function(el, name, value) {
+ el[name] = value;
+ },
+ getProperty: function(el, name) {
+ return el[name];
+ },
+ invoke: function(el, methodName, args) {
+ el[methodName].apply(el, args);
+ },
logError: function(error) {
window.console.error(error);
},
@@ -19285,9 +19439,6 @@ System.register("angular2/src/dom/browser_adapter", ["angular2/src/facade/collec
clone: function(node) {
return node.cloneNode(true);
},
- hasProperty: function(element, name) {
- return name in element;
- },
getElementsByClassName: function(element, name) {
return element.getElementsByClassName(name);
},
@@ -19319,11 +19470,11 @@ System.register("angular2/src/dom/browser_adapter", ["angular2/src/facade/collec
return element.tagName;
},
attributeMap: function(element) {
- var res = MapWrapper.create();
+ var res = new Map();
var elAttrs = element.attributes;
for (var i = 0; i < elAttrs.length; i++) {
var attrib = elAttrs[i];
- MapWrapper.set(res, attrib.name, attrib.value);
+ res.set(attrib.name, attrib.value);
}
return res;
},
@@ -19537,17 +19688,20 @@ System.register("angular2/src/core/compiler/directive_resolver", ["angular2/di",
};
});
-System.register("angular2/src/core/compiler/view", ["angular2/src/facade/collection", "angular2/change_detection", "angular2/src/core/compiler/element_binder", "angular2/src/facade/lang"], function($__export) {
+System.register("angular2/src/core/compiler/view", ["angular2/src/facade/collection", "angular2/change_detection", "angular2/src/core/compiler/element_binder", "angular2/src/facade/lang", "angular2/src/core/compiler/view_ref", "angular2/src/core/compiler/element_ref"], function($__export) {
"use strict";
var __moduleName = "angular2/src/core/compiler/view";
var ListWrapper,
MapWrapper,
+ Map,
StringMapWrapper,
Locals,
ElementBinder,
isPresent,
isBlank,
BaseException,
+ ViewRef,
+ ElementRef,
AppViewContainer,
AppView,
AppProtoView;
@@ -19555,6 +19709,7 @@ System.register("angular2/src/core/compiler/view", ["angular2/src/facade/collect
setters: [function($__m) {
ListWrapper = $__m.ListWrapper;
MapWrapper = $__m.MapWrapper;
+ Map = $__m.Map;
StringMapWrapper = $__m.StringMapWrapper;
}, function($__m) {
Locals = $__m.Locals;
@@ -19564,12 +19719,15 @@ System.register("angular2/src/core/compiler/view", ["angular2/src/facade/collect
isPresent = $__m.isPresent;
isBlank = $__m.isBlank;
BaseException = $__m.BaseException;
+ }, function($__m) {
+ ViewRef = $__m.ViewRef;
+ }, function($__m) {
+ ElementRef = $__m.ElementRef;
}],
execute: function() {
AppViewContainer = (function() {
function AppViewContainer() {
this.views = [];
- this.freeViews = [];
}
return ($traceurRuntime.createClass)(AppViewContainer, {}, {});
}());
@@ -19582,10 +19740,14 @@ System.register("angular2/src/core/compiler/view", ["angular2/src/facade/collect
this.elementInjectors = null;
this.changeDetector = null;
this.componentChildViews = null;
- this.freeHostViews = [];
this.preBuiltObjects = null;
this.context = null;
this.viewContainers = ListWrapper.createFixedSize(this.proto.elementBinders.length);
+ this.elementRefs = ListWrapper.createFixedSize(this.proto.elementBinders.length);
+ this.ref = new ViewRef(this);
+ for (var i = 0; i < this.elementRefs.length; i++) {
+ this.elementRefs[i] = new ElementRef(this.ref, i, renderer);
+ }
this.locals = new Locals(null, MapWrapper.clone(protoLocals));
}
return ($traceurRuntime.createClass)(AppView, {
@@ -19599,25 +19761,34 @@ System.register("angular2/src/core/compiler/view", ["angular2/src/facade/collect
setLocal: function(contextName, value) {
if (!this.hydrated())
throw new BaseException('Cannot set locals on dehydrated view.');
- if (!MapWrapper.contains(this.proto.variableBindings, contextName)) {
+ if (!this.proto.variableBindings.has(contextName)) {
return ;
}
- var templateName = MapWrapper.get(this.proto.variableBindings, contextName);
+ var templateName = this.proto.variableBindings.get(contextName);
this.locals.set(templateName, value);
},
hydrated: function() {
return isPresent(this.context);
},
triggerEventHandlers: function(eventName, eventObj, binderIndex) {
- var locals = MapWrapper.create();
- MapWrapper.set(locals, '$event', eventObj);
+ var locals = new Map();
+ locals.set('$event', eventObj);
this.dispatchEvent(binderIndex, eventName, locals);
},
notifyOnBinding: function(b, currentValue) {
- if (b.isElement()) {
- this.renderer.setElementProperty(this.render, b.elementIndex, b.propertyName, currentValue);
- } else {
+ if (b.isElementProperty()) {
+ this.renderer.setElementProperty(this.elementRefs[b.elementIndex], b.propertyName, currentValue);
+ } else if (b.isElementAttribute()) {
+ this.renderer.setElementAttribute(this.elementRefs[b.elementIndex], b.propertyName, currentValue);
+ } else if (b.isElementClass()) {
+ this.renderer.setElementClass(this.elementRefs[b.elementIndex], b.propertyName, currentValue);
+ } else if (b.isElementStyle()) {
+ var unit = isPresent(b.propertyUnit) ? b.propertyUnit : '';
+ this.renderer.setElementStyle(this.elementRefs[b.elementIndex], b.propertyName, ("" + currentValue + unit));
+ } else if (b.isTextNode()) {
this.renderer.setText(this.render, b.elementIndex, currentValue);
+ } else {
+ throw new BaseException('Unsupported directive record');
}
},
notifyOnAllChangesDone: function() {
@@ -19635,8 +19806,8 @@ System.register("angular2/src/core/compiler/view", ["angular2/src/facade/collect
var childView = this.componentChildViews[directive.elementIndex];
return isPresent(childView) ? childView.changeDetector : null;
},
- callAction: function(elementIndex, actionExpression, action) {
- this.renderer.callAction(this.render, elementIndex, actionExpression, action);
+ invokeElementMethod: function(elementIndex, methodName, args) {
+ this.renderer.invokeElementMethod(this.elementRefs[elementIndex], methodName, args);
},
dispatchEvent: function(elementIndex, eventName, locals) {
var $__0 = this;
@@ -19667,24 +19838,25 @@ System.register("angular2/src/core/compiler/view", ["angular2/src/facade/collect
}());
$__export("AppView", AppView);
AppProtoView = (function() {
- function AppProtoView(render, protoChangeDetector, variableBindings) {
+ function AppProtoView(render, protoChangeDetector, variableBindings, variableLocations) {
var $__0 = this;
this.render = render;
this.protoChangeDetector = protoChangeDetector;
this.variableBindings = variableBindings;
+ this.variableLocations = variableLocations;
this.elementBinders = [];
- this.protoLocals = MapWrapper.create();
+ this.protoLocals = new Map();
if (isPresent(variableBindings)) {
MapWrapper.forEach(variableBindings, (function(templateName, _) {
- MapWrapper.set($__0.protoLocals, templateName, null);
+ $__0.protoLocals.set(templateName, null);
}));
}
}
return ($traceurRuntime.createClass)(AppProtoView, {
- bindElement: function(parent, distanceToParent, protoElementInjector, directiveVariableBindings) {
- var componentDirective = arguments[4] !== (void 0) ? arguments[4] : null;
- var elBinder = new ElementBinder(this.elementBinders.length, parent, distanceToParent, protoElementInjector, directiveVariableBindings, componentDirective);
- ListWrapper.push(this.elementBinders, elBinder);
+ bindElement: function(parent, distanceToParent, protoElementInjector) {
+ var componentDirective = arguments[3] !== (void 0) ? arguments[3] : null;
+ var elBinder = new ElementBinder(this.elementBinders.length, parent, distanceToParent, protoElementInjector, componentDirective);
+ this.elementBinders.push(elBinder);
return elBinder;
},
bindEvent: function(eventBindings, boundElementIndex) {
@@ -19700,10 +19872,10 @@ System.register("angular2/src/core/compiler/view", ["angular2/src/facade/collect
var eventName = eventBinding.fullName;
var event = StringMapWrapper.get(events, eventName);
if (isBlank(event)) {
- event = MapWrapper.create();
+ event = new Map();
StringMapWrapper.set(events, eventName, event);
}
- MapWrapper.set(event, directiveIndex, eventBinding.source);
+ event.set(directiveIndex, eventBinding.source);
}
}
}, {});
@@ -19713,41 +19885,6 @@ System.register("angular2/src/core/compiler/view", ["angular2/src/facade/collect
};
});
-System.register("angular2/src/core/compiler/element_ref", ["angular2/src/dom/dom_adapter", "angular2/src/facade/lang", "angular2/src/render/dom/view/view"], function($__export) {
- "use strict";
- var __moduleName = "angular2/src/core/compiler/element_ref";
- var DOM,
- normalizeBlank,
- resolveInternalDomView,
- ElementRef;
- return {
- setters: [function($__m) {
- DOM = $__m.DOM;
- }, function($__m) {
- normalizeBlank = $__m.normalizeBlank;
- }, function($__m) {
- resolveInternalDomView = $__m.resolveInternalDomView;
- }],
- execute: function() {
- ElementRef = (function() {
- function ElementRef(parentView, boundElementIndex) {
- this.parentView = parentView;
- this.boundElementIndex = boundElementIndex;
- }
- return ($traceurRuntime.createClass)(ElementRef, {
- get domElement() {
- return resolveInternalDomView(this.parentView.render).boundElements[this.boundElementIndex].element;
- },
- getAttribute: function(name) {
- return normalizeBlank(DOM.getAttribute(this.domElement, name));
- }
- }, {});
- }());
- $__export("ElementRef", ElementRef);
- }
- };
-});
-
System.register("angular2/src/core/compiler/query_list", ["angular2/src/core/compiler/base_query_list"], function($__export) {
"use strict";
var __moduleName = "angular2/src/core/compiler/query_list";
@@ -19776,45 +19913,61 @@ System.register("angular2/src/core/compiler/query_list", ["angular2/src/core/com
};
});
-System.register("angular2/src/render/dom/compiler/template_loader", ["angular2/di", "angular2/src/facade/lang", "angular2/src/facade/collection", "angular2/src/facade/async", "angular2/src/dom/dom_adapter", "angular2/src/render/xhr", "angular2/src/services/url_resolver"], function($__export) {
+System.register("angular2/src/render/dom/compiler/style_inliner", ["angular2/di", "angular2/src/render/xhr", "angular2/src/facade/collection", "angular2/src/services/url_resolver", "angular2/src/render/dom/compiler/style_url_resolver", "angular2/src/facade/lang", "angular2/src/facade/async"], function($__export) {
"use strict";
- var __moduleName = "angular2/src/render/dom/compiler/template_loader";
+ var __moduleName = "angular2/src/render/dom/compiler/style_inliner";
var __decorate,
__metadata,
Injectable,
+ XHR,
+ ListWrapper,
+ UrlResolver,
+ StyleUrlResolver,
isBlank,
isPresent,
- BaseException,
- MapWrapper,
- ListWrapper,
+ RegExpWrapper,
+ StringWrapper,
+ isPromise,
PromiseWrapper,
- DOM,
- XHR,
- UrlResolver,
- TemplateLoader;
- function _createStyleTags(styles) {
- return isBlank(styles) ? '' : ListWrapper.map(styles, (function(css) {
- return ("");
- })).join('');
+ StyleInliner,
+ _importRe,
+ _urlRe,
+ _mediaQueryRe;
+ function _extractUrl(importRule) {
+ var match = RegExpWrapper.firstMatch(_urlRe, importRule);
+ if (isBlank(match))
+ return null;
+ return isPresent(match[1]) ? match[1] : match[2];
+ }
+ function _extractMediaQuery(importRule) {
+ var match = RegExpWrapper.firstMatch(_mediaQueryRe, importRule);
+ if (isBlank(match))
+ return null;
+ var mediaQuery = match[1].trim();
+ return (mediaQuery.length > 0) ? mediaQuery : null;
+ }
+ function _wrapInMediaRule(css, query) {
+ return (isBlank(query)) ? css : ("@media " + query + " {\n" + css + "\n}");
}
return {
setters: [function($__m) {
Injectable = $__m.Injectable;
- }, function($__m) {
- isBlank = $__m.isBlank;
- isPresent = $__m.isPresent;
- BaseException = $__m.BaseException;
- }, function($__m) {
- MapWrapper = $__m.MapWrapper;
- ListWrapper = $__m.ListWrapper;
- }, function($__m) {
- PromiseWrapper = $__m.PromiseWrapper;
- }, function($__m) {
- DOM = $__m.DOM;
}, function($__m) {
XHR = $__m.XHR;
+ }, function($__m) {
+ ListWrapper = $__m.ListWrapper;
}, function($__m) {
UrlResolver = $__m.UrlResolver;
+ }, function($__m) {
+ StyleUrlResolver = $__m.StyleUrlResolver;
+ }, function($__m) {
+ isBlank = $__m.isBlank;
+ isPresent = $__m.isPresent;
+ RegExpWrapper = $__m.RegExpWrapper;
+ StringWrapper = $__m.StringWrapper;
+ isPromise = $__m.isPromise;
+ }, function($__m) {
+ PromiseWrapper = $__m.PromiseWrapper;
}],
execute: function() {
__decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
@@ -19839,48 +19992,71 @@ System.register("angular2/src/render/dom/compiler/template_loader", ["angular2/d
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
return Reflect.metadata(k, v);
};
- TemplateLoader = (($traceurRuntime.createClass)(function(_xhr, urlResolver) {
+ StyleInliner = (($traceurRuntime.createClass)(function(_xhr, _styleUrlResolver, _urlResolver) {
this._xhr = _xhr;
- this._cache = MapWrapper.create();
+ this._styleUrlResolver = _styleUrlResolver;
+ this._urlResolver = _urlResolver;
}, {
- load: function(view) {
- var $__0 = this;
- var html;
- var fetchedStyles;
- if (isPresent(view.template)) {
- html = PromiseWrapper.resolve(view.template);
- } else if (isPresent(view.templateAbsUrl)) {
- html = this._loadText(view.templateAbsUrl);
- } else {
- throw new BaseException('View should have either the templateUrl or template property set');
- }
- if (isPresent(view.styleAbsUrls) && view.styleAbsUrls.length > 0) {
- fetchedStyles = ListWrapper.map(view.styleAbsUrls, (function(url) {
- return $__0._loadText(url);
- }));
- } else {
- fetchedStyles = [];
- }
- return PromiseWrapper.all(ListWrapper.concat([html], fetchedStyles)).then((function(res) {
- var html = res[0];
- var fetchedStyles = ListWrapper.slice(res, 1);
- html = _createStyleTags(view.styles) + _createStyleTags(fetchedStyles) + html;
- return DOM.createTemplate(html);
- }));
+ inlineImports: function(cssText, baseUrl) {
+ return this._inlineImports(cssText, baseUrl, []);
},
- _loadText: function(url) {
- var response = MapWrapper.get(this._cache, url);
- if (isBlank(response)) {
- response = PromiseWrapper.catchError(this._xhr.get(url), (function(_) {
- return PromiseWrapper.reject(new BaseException(("Failed to fetch url \"" + url + "\"")), null);
- }));
- MapWrapper.set(this._cache, url, response);
+ _inlineImports: function(cssText, baseUrl, inlinedUrls) {
+ var $__0 = this;
+ var partIndex = 0;
+ var parts = StringWrapper.split(cssText, _importRe);
+ if (parts.length === 1) {
+ return cssText;
}
- return response;
+ var promises = [];
+ while (partIndex < parts.length - 1) {
+ var prefix = parts[partIndex];
+ var rule = parts[partIndex + 1];
+ var url = _extractUrl(rule);
+ if (isPresent(url)) {
+ url = this._urlResolver.resolve(baseUrl, url);
+ }
+ var mediaQuery = _extractMediaQuery(rule);
+ var promise = void 0;
+ if (isBlank(url)) {
+ promise = PromiseWrapper.resolve(("/* Invalid import rule: \"@import " + rule + ";\" */"));
+ } else if (ListWrapper.contains(inlinedUrls, url)) {
+ promise = PromiseWrapper.resolve(prefix);
+ } else {
+ inlinedUrls.push(url);
+ promise = PromiseWrapper.then(this._xhr.get(url), (function(rawCss) {
+ var inlinedCss = $__0._inlineImports(rawCss, url, inlinedUrls);
+ if (isPromise(inlinedCss)) {
+ return inlinedCss.then((function(css) {
+ return prefix + $__0._transformImportedCss(css, mediaQuery, url) + '\n';
+ }));
+ } else {
+ return prefix + $__0._transformImportedCss(inlinedCss, mediaQuery, url) + '\n';
+ }
+ }), (function(error) {
+ return ("/* failed to import " + url + " */\n");
+ }));
+ }
+ promises.push(promise);
+ partIndex += 2;
+ }
+ return PromiseWrapper.all(promises).then(function(cssParts) {
+ var cssText = cssParts.join('');
+ if (partIndex < parts.length) {
+ cssText += parts[partIndex];
+ }
+ return cssText;
+ });
+ },
+ _transformImportedCss: function(css, mediaQuery, url) {
+ css = this._styleUrlResolver.resolveUrls(css, url);
+ return _wrapInMediaRule(css, mediaQuery);
}
}, {}));
- $__export("TemplateLoader", TemplateLoader);
- $__export("TemplateLoader", TemplateLoader = __decorate([Injectable(), __metadata('design:paramtypes', [XHR, UrlResolver])], TemplateLoader));
+ $__export("StyleInliner", StyleInliner);
+ $__export("StyleInliner", StyleInliner = __decorate([Injectable(), __metadata('design:paramtypes', [XHR, StyleUrlResolver, UrlResolver])], StyleInliner));
+ _importRe = RegExpWrapper.create('@import\\s+([^;]+);');
+ _urlRe = RegExpWrapper.create('url\\(\\s*?[\'"]?([^\'")]+)[\'"]?|' + '[\'"]([^\'")]+)[\'"]');
+ _mediaQueryRe = RegExpWrapper.create('[\'"][^\'"]+[\'"]\\s*\\)?\\s*(.*)');
}
};
});
@@ -19890,7 +20066,7 @@ System.register("angular2/src/render/dom/shadow_dom/util", ["angular2/src/facade
var __moduleName = "angular2/src/render/dom/shadow_dom/util";
var isBlank,
isPresent,
- MapWrapper,
+ Map,
DOM,
ShadowCss,
_componentUIDs,
@@ -19898,16 +20074,16 @@ System.register("angular2/src/render/dom/shadow_dom/util", ["angular2/src/facade
_sharedStyleTexts,
_lastInsertedStyleEl;
function getComponentId(componentStringId) {
- var id = MapWrapper.get(_componentUIDs, componentStringId);
+ var id = _componentUIDs.get(componentStringId);
if (isBlank(id)) {
id = _nextComponentUID++;
- MapWrapper.set(_componentUIDs, componentStringId, id);
+ _componentUIDs.set(componentStringId, id);
}
return id;
}
function insertSharedStyleText(cssText, styleHost, styleEl) {
- if (!MapWrapper.contains(_sharedStyleTexts, cssText)) {
- MapWrapper.set(_sharedStyleTexts, cssText, true);
+ if (!_sharedStyleTexts.has(cssText)) {
+ _sharedStyleTexts.set(cssText, true);
insertStyleElement(styleHost, styleEl);
}
}
@@ -19936,9 +20112,9 @@ System.register("angular2/src/render/dom/shadow_dom/util", ["angular2/src/facade
return shadowCss.shimCssText(cssText, getContentAttribute(id), getHostAttribute(id));
}
function resetShadowDomCache() {
- MapWrapper.clear(_componentUIDs);
+ _componentUIDs.clear();
_nextComponentUID = 0;
- MapWrapper.clear(_sharedStyleTexts);
+ _sharedStyleTexts.clear();
_lastInsertedStyleEl = null;
}
$__export("getComponentId", getComponentId);
@@ -19953,16 +20129,16 @@ System.register("angular2/src/render/dom/shadow_dom/util", ["angular2/src/facade
isBlank = $__m.isBlank;
isPresent = $__m.isPresent;
}, function($__m) {
- MapWrapper = $__m.MapWrapper;
+ Map = $__m.Map;
}, function($__m) {
DOM = $__m.DOM;
}, function($__m) {
ShadowCss = $__m.ShadowCss;
}],
execute: function() {
- _componentUIDs = MapWrapper.create();
+ _componentUIDs = new Map();
_nextComponentUID = 0;
- _sharedStyleTexts = MapWrapper.create();
+ _sharedStyleTexts = new Map();
}
};
});
@@ -20025,7 +20201,7 @@ System.register("angular2/src/core/testability/testability", ["angular2/di", "an
__metadata,
Injectable,
DOM,
- MapWrapper,
+ Map,
ListWrapper,
BaseException,
getTestabilityModule,
@@ -20037,7 +20213,7 @@ System.register("angular2/src/core/testability/testability", ["angular2/di", "an
}, function($__m) {
DOM = $__m.DOM;
}, function($__m) {
- MapWrapper = $__m.MapWrapper;
+ Map = $__m.Map;
ListWrapper = $__m.ListWrapper;
}, function($__m) {
BaseException = $__m.BaseException;
@@ -20069,7 +20245,7 @@ System.register("angular2/src/core/testability/testability", ["angular2/di", "an
};
Testability = (($traceurRuntime.createClass)(function() {
this._pendingCount = 0;
- this._callbacks = ListWrapper.create();
+ this._callbacks = [];
}, {
increaseCount: function() {
var delta = arguments[0] !== (void 0) ? arguments[0] : 1;
@@ -20087,7 +20263,7 @@ System.register("angular2/src/core/testability/testability", ["angular2/di", "an
}
},
whenStable: function(callback) {
- ListWrapper.push(this._callbacks, callback);
+ this._callbacks.push(callback);
if (this._pendingCount === 0) {
this._runCallbacks();
}
@@ -20102,18 +20278,18 @@ System.register("angular2/src/core/testability/testability", ["angular2/di", "an
$__export("Testability", Testability);
$__export("Testability", Testability = __decorate([Injectable(), __metadata('design:paramtypes', [])], Testability));
TestabilityRegistry = (($traceurRuntime.createClass)(function() {
- this._applications = MapWrapper.create();
+ this._applications = new Map();
getTestabilityModule.GetTestability.addToWindow(this);
}, {
registerApplication: function(token, testability) {
- MapWrapper.set(this._applications, token, testability);
+ this._applications.set(token, testability);
},
findTestabilityInTree: function(elem) {
if (elem == null) {
return null;
}
- if (MapWrapper.contains(this._applications, elem)) {
- return MapWrapper.get(this._applications, elem);
+ if (this._applications.has(elem)) {
+ return this._applications.get(elem);
}
if (DOM.isShadowRoot(elem)) {
return this.findTestabilityInTree(DOM.getHost(elem));
@@ -20127,12 +20303,11 @@ System.register("angular2/src/core/testability/testability", ["angular2/di", "an
};
});
-System.register("angular2/src/render/dom/view/proto_view", ["angular2/src/facade/lang", "angular2/src/dom/dom_adapter", "angular2/src/facade/collection", "angular2/src/render/dom/util", "angular2/src/render/api"], function($__export) {
+System.register("angular2/src/render/dom/view/proto_view", ["angular2/src/facade/lang", "angular2/src/dom/dom_adapter", "angular2/src/render/dom/util", "angular2/src/render/api"], function($__export) {
"use strict";
var __moduleName = "angular2/src/render/dom/view/proto_view";
var isPresent,
DOM,
- ListWrapper,
NG_BINDING_CLASS,
RenderProtoViewRef,
DomProtoViewRef,
@@ -20146,8 +20321,6 @@ System.register("angular2/src/render/dom/view/proto_view", ["angular2/src/facade
isPresent = $__m.isPresent;
}, function($__m) {
DOM = $__m.DOM;
- }, function($__m) {
- ListWrapper = $__m.ListWrapper;
}, function($__m) {
NG_BINDING_CLASS = $__m.NG_BINDING_CLASS;
}, function($__m) {
@@ -20167,15 +20340,14 @@ System.register("angular2/src/render/dom/view/proto_view", ["angular2/src/facade
var $__2 = $__1,
elementBinders = $__2.elementBinders,
element = $__2.element,
- transitiveContentTagCount = $__2.transitiveContentTagCount;
+ transitiveContentTagCount = $__2.transitiveContentTagCount,
+ boundTextNodeCount = $__2.boundTextNodeCount;
this.element = element;
this.elementBinders = elementBinders;
this.transitiveContentTagCount = transitiveContentTagCount;
this.isTemplateElement = DOM.isTemplateElement(this.element);
this.rootBindingOffset = (isPresent(this.element) && DOM.hasClass(this.element, NG_BINDING_CLASS)) ? 1 : 0;
- this.boundTextNodeCount = ListWrapper.reduce(elementBinders, (function(prevCount, elementBinder) {
- return prevCount + elementBinder.textNodeIndices.length;
- }), 0);
+ this.boundTextNodeCount = boundTextNodeCount;
this.rootNodeCount = this.isTemplateElement ? DOM.childNodes(DOM.content(this.element)).length : 1;
}
return ($traceurRuntime.createClass)(DomProtoView, {}, {});
@@ -20191,8 +20363,12 @@ System.register("angular2/src/render/dom/view/proto_view_builder", ["angular2/sr
var isPresent,
isBlank,
BaseException,
+ StringWrapper,
ListWrapper,
MapWrapper,
+ Set,
+ SetWrapper,
+ StringMapWrapper,
DOM,
ASTWithSource,
AstTransformer,
@@ -20204,22 +20380,72 @@ System.register("angular2/src/render/dom/view/proto_view_builder", ["angular2/sr
resolveInternalDomProtoView,
ElementBinder,
Event,
- HostAction,
api,
NG_BINDING_CLASS,
EVENT_TARGET_SEPARATOR,
ProtoViewBuilder,
+ _ChildNodesInfo,
ElementBinderBuilder,
DirectiveBuilder,
- EventBuilder;
+ EventBuilder,
+ PROPERTY_PARTS_SEPARATOR,
+ ATTRIBUTE_PREFIX,
+ CLASS_PREFIX,
+ STYLE_PREFIX;
+ function buildElementPropertyBindings(protoElement, isNgComponent, bindingsInTemplate, directiveTempaltePropertyNames) {
+ var propertyBindings = [];
+ MapWrapper.forEach(bindingsInTemplate, (function(ast, propertyNameInTemplate) {
+ var propertyBinding = createElementPropertyBinding(ast, propertyNameInTemplate);
+ if (isValidElementPropertyBinding(protoElement, isNgComponent, propertyBinding)) {
+ propertyBindings.push(propertyBinding);
+ } else if (!SetWrapper.has(directiveTempaltePropertyNames, propertyNameInTemplate)) {
+ throw new BaseException(("Can't bind to '" + propertyNameInTemplate + "' since it isn't a know property of the '" + DOM.tagName(protoElement).toLowerCase() + "' element and there are no matching directives with a corresponding property"));
+ }
+ }));
+ return propertyBindings;
+ }
+ function isValidElementPropertyBinding(protoElement, isNgComponent, binding) {
+ if (binding.type === api.PropertyBindingType.PROPERTY) {
+ var tagName = DOM.tagName(protoElement);
+ var possibleCustomElement = tagName.indexOf('-') !== -1;
+ if (possibleCustomElement && !isNgComponent) {
+ return true;
+ } else {
+ return DOM.hasProperty(protoElement, binding.property);
+ }
+ }
+ return true;
+ }
+ function createElementPropertyBinding(ast, propertyNameInTemplate) {
+ var parts = StringWrapper.split(propertyNameInTemplate, PROPERTY_PARTS_SEPARATOR);
+ if (parts.length === 1) {
+ var propName = parts[0];
+ var mappedPropName = StringMapWrapper.get(DOM.attrToPropMap, propName);
+ propName = isPresent(mappedPropName) ? mappedPropName : propName;
+ return new api.ElementPropertyBinding(api.PropertyBindingType.PROPERTY, ast, propName);
+ } else if (parts[0] == ATTRIBUTE_PREFIX) {
+ return new api.ElementPropertyBinding(api.PropertyBindingType.ATTRIBUTE, ast, parts[1]);
+ } else if (parts[0] == CLASS_PREFIX) {
+ return new api.ElementPropertyBinding(api.PropertyBindingType.CLASS, ast, parts[1]);
+ } else if (parts[0] == STYLE_PREFIX) {
+ var unit = parts.length > 2 ? parts[2] : null;
+ return new api.ElementPropertyBinding(api.PropertyBindingType.STYLE, ast, parts[1], unit);
+ } else {
+ throw new BaseException(("Invalid property name " + propertyNameInTemplate));
+ }
+ }
return {
setters: [function($__m) {
isPresent = $__m.isPresent;
isBlank = $__m.isBlank;
BaseException = $__m.BaseException;
+ StringWrapper = $__m.StringWrapper;
}, function($__m) {
ListWrapper = $__m.ListWrapper;
MapWrapper = $__m.MapWrapper;
+ Set = $__m.Set;
+ SetWrapper = $__m.SetWrapper;
+ StringMapWrapper = $__m.StringMapWrapper;
}, function($__m) {
DOM = $__m.DOM;
}, function($__m) {
@@ -20235,7 +20461,6 @@ System.register("angular2/src/render/dom/view/proto_view_builder", ["angular2/sr
}, function($__m) {
ElementBinder = $__m.ElementBinder;
Event = $__m.Event;
- HostAction = $__m.HostAction;
}, function($__m) {
api = $__m;
}, function($__m) {
@@ -20247,47 +20472,41 @@ System.register("angular2/src/render/dom/view/proto_view_builder", ["angular2/sr
function ProtoViewBuilder(rootElement, type) {
this.rootElement = rootElement;
this.type = type;
- this.variableBindings = MapWrapper.create();
+ this.variableBindings = new Map();
this.elements = [];
}
return ($traceurRuntime.createClass)(ProtoViewBuilder, {
bindElement: function(element) {
var description = arguments[1] !== (void 0) ? arguments[1] : null;
var builder = new ElementBinderBuilder(this.elements.length, element, description);
- ListWrapper.push(this.elements, builder);
+ this.elements.push(builder);
DOM.addClass(element, NG_BINDING_CLASS);
return builder;
},
bindVariable: function(name, value) {
- MapWrapper.set(this.variableBindings, value, name);
+ this.variableBindings.set(value, name);
},
- build: function(setterFactory) {
+ build: function() {
var $__0 = this;
var renderElementBinders = [];
var apiElementBinders = [];
var transitiveContentTagCount = 0;
+ var boundTextNodeCount = 0;
ListWrapper.forEach(this.elements, (function(ebb) {
- var propertySetters = MapWrapper.create();
- var hostActions = MapWrapper.create();
+ var directiveTemplatePropertyNames = new Set();
var apiDirectiveBinders = ListWrapper.map(ebb.directives, (function(dbb) {
ebb.eventBuilder.merge(dbb.eventBuilder);
- MapWrapper.forEach(dbb.hostPropertyBindings, (function(_, hostPropertyName) {
- MapWrapper.set(propertySetters, hostPropertyName, setterFactory.createSetter(ebb.element, isPresent(ebb.componentId), hostPropertyName));
- }));
- ListWrapper.forEach(dbb.hostActions, (function(hostAction) {
- MapWrapper.set(hostActions, hostAction.actionExpression, hostAction.expression);
+ ListWrapper.forEach(dbb.templatePropertyNames, (function(name) {
+ return directiveTemplatePropertyNames.add(name);
}));
return new api.DirectiveBinder({
directiveIndex: dbb.directiveIndex,
propertyBindings: dbb.propertyBindings,
eventBindings: dbb.eventBindings,
- hostPropertyBindings: dbb.hostPropertyBindings
+ hostPropertyBindings: buildElementPropertyBindings(ebb.element, isPresent(ebb.componentId), dbb.hostPropertyBindings, directiveTemplatePropertyNames)
});
}));
- MapWrapper.forEach(ebb.propertyBindings, (function(_, propertyName) {
- MapWrapper.set(propertySetters, propertyName, setterFactory.createSetter(ebb.element, isPresent(ebb.componentId), propertyName));
- }));
- var nestedProtoView = isPresent(ebb.nestedProtoView) ? ebb.nestedProtoView.build(setterFactory) : null;
+ var nestedProtoView = isPresent(ebb.nestedProtoView) ? ebb.nestedProtoView.build() : null;
var nestedRenderProtoView = isPresent(nestedProtoView) ? resolveInternalDomProtoView(nestedProtoView.render) : null;
if (isPresent(nestedRenderProtoView)) {
transitiveContentTagCount += nestedRenderProtoView.transitiveContentTagCount;
@@ -20296,21 +20515,22 @@ System.register("angular2/src/render/dom/view/proto_view_builder", ["angular2/sr
transitiveContentTagCount++;
}
var parentIndex = isPresent(ebb.parent) ? ebb.parent.index : -1;
- ListWrapper.push(apiElementBinders, new api.ElementBinder({
+ apiElementBinders.push(new api.ElementBinder({
index: ebb.index,
parentIndex: parentIndex,
distanceToParent: ebb.distanceToParent,
directives: apiDirectiveBinders,
nestedProtoView: nestedProtoView,
- propertyBindings: ebb.propertyBindings,
+ propertyBindings: buildElementPropertyBindings(ebb.element, isPresent(ebb.componentId), ebb.propertyBindings, directiveTemplatePropertyNames),
variableBindings: ebb.variableBindings,
eventBindings: ebb.eventBindings,
textBindings: ebb.textBindings,
readAttributes: ebb.readAttributes
}));
- var elementIsEmpty = $__0._isEmptyElement(ebb.element);
- ListWrapper.push(renderElementBinders, new ElementBinder({
- textNodeIndices: ebb.textBindingIndices,
+ var childNodeInfo = $__0._analyzeChildNodes(ebb.element, ebb.textBindingNodes);
+ boundTextNodeCount += ebb.textBindingNodes.length;
+ renderElementBinders.push(new ElementBinder({
+ textNodeIndices: childNodeInfo.boundTextNodeIndices,
contentTagSelector: ebb.contentTagSelector,
parentIndex: parentIndex,
distanceToParent: ebb.distanceToParent,
@@ -20319,35 +20539,48 @@ System.register("angular2/src/render/dom/view/proto_view_builder", ["angular2/sr
eventLocals: new LiteralArray(ebb.eventBuilder.buildEventLocals()),
localEvents: ebb.eventBuilder.buildLocalEvents(),
globalEvents: ebb.eventBuilder.buildGlobalEvents(),
- hostActions: hostActions,
- propertySetters: propertySetters,
- elementIsEmpty: elementIsEmpty
+ elementIsEmpty: childNodeInfo.elementIsEmpty
}));
}));
return new api.ProtoViewDto({
render: new DomProtoViewRef(new DomProtoView({
element: this.rootElement,
elementBinders: renderElementBinders,
- transitiveContentTagCount: transitiveContentTagCount
+ transitiveContentTagCount: transitiveContentTagCount,
+ boundTextNodeCount: boundTextNodeCount
})),
type: this.type,
elementBinders: apiElementBinders,
variableBindings: this.variableBindings
});
},
- _isEmptyElement: function(el) {
- var childNodes = DOM.childNodes(el);
+ _analyzeChildNodes: function(parentElement, boundTextNodes) {
+ var childNodes = DOM.childNodes(DOM.templateAwareRoot(parentElement));
+ var boundTextNodeIndices = [];
+ var indexInBoundTextNodes = 0;
+ var elementIsEmpty = true;
for (var i = 0; i < childNodes.length; i++) {
var node = childNodes[i];
- if ((DOM.isTextNode(node) && DOM.getText(node).trim().length > 0) || (DOM.isElementNode(node))) {
- return false;
+ if (indexInBoundTextNodes < boundTextNodes.length && node === boundTextNodes[indexInBoundTextNodes]) {
+ boundTextNodeIndices.push(i);
+ indexInBoundTextNodes++;
+ elementIsEmpty = false;
+ } else if ((DOM.isTextNode(node) && DOM.getText(node).trim().length > 0) || (DOM.isElementNode(node))) {
+ elementIsEmpty = false;
}
}
- return true;
+ return new _ChildNodesInfo(boundTextNodeIndices, elementIsEmpty);
}
}, {});
}());
$__export("ProtoViewBuilder", ProtoViewBuilder);
+ _ChildNodesInfo = (function() {
+ function _ChildNodesInfo(boundTextNodeIndices, elementIsEmpty) {
+ this.boundTextNodeIndices = boundTextNodeIndices;
+ this.elementIsEmpty = elementIsEmpty;
+ }
+ return ($traceurRuntime.createClass)(_ChildNodesInfo, {}, {});
+ }());
ElementBinderBuilder = (function() {
function ElementBinderBuilder(index, element, description) {
this.index = index;
@@ -20356,14 +20589,15 @@ System.register("angular2/src/render/dom/view/proto_view_builder", ["angular2/sr
this.distanceToParent = 0;
this.directives = [];
this.nestedProtoView = null;
- this.propertyBindings = MapWrapper.create();
- this.variableBindings = MapWrapper.create();
+ this.propertyBindings = new Map();
+ this.variableBindings = new Map();
+ this.propertyBindingsToDirectives = new Set();
this.eventBindings = [];
this.eventBuilder = new EventBuilder();
- this.textBindingIndices = [];
+ this.textBindingNodes = [];
this.textBindings = [];
this.contentTagSelector = null;
- this.readAttributes = MapWrapper.create();
+ this.readAttributes = new Map();
this.componentId = null;
}
return ($traceurRuntime.createClass)(ElementBinderBuilder, {
@@ -20375,13 +20609,13 @@ System.register("angular2/src/render/dom/view/proto_view_builder", ["angular2/sr
return this;
},
readAttribute: function(attrName) {
- if (isBlank(MapWrapper.get(this.readAttributes, attrName))) {
- MapWrapper.set(this.readAttributes, attrName, DOM.getAttribute(this.element, attrName));
+ if (isBlank(this.readAttributes.get(attrName))) {
+ this.readAttributes.set(attrName, DOM.getAttribute(this.element, attrName));
}
},
bindDirective: function(directiveIndex) {
var directive = new DirectiveBuilder(directiveIndex);
- ListWrapper.push(this.directives, directive);
+ this.directives.push(directive);
return directive;
},
bindNestedProtoView: function(rootElement) {
@@ -20392,22 +20626,25 @@ System.register("angular2/src/render/dom/view/proto_view_builder", ["angular2/sr
return this.nestedProtoView;
},
bindProperty: function(name, expression) {
- MapWrapper.set(this.propertyBindings, name, expression);
+ this.propertyBindings.set(name, expression);
+ },
+ bindPropertyToDirective: function(name) {
+ this.propertyBindingsToDirectives.add(name);
},
bindVariable: function(name, value) {
if (isPresent(this.nestedProtoView)) {
this.nestedProtoView.bindVariable(name, value);
} else {
- MapWrapper.set(this.variableBindings, value, name);
+ this.variableBindings.set(value, name);
}
},
bindEvent: function(name, expression) {
var target = arguments[2] !== (void 0) ? arguments[2] : null;
- ListWrapper.push(this.eventBindings, this.eventBuilder.add(name, expression, target));
+ this.eventBindings.push(this.eventBuilder.add(name, expression, target));
},
- bindText: function(index, expression) {
- ListWrapper.push(this.textBindingIndices, index);
- ListWrapper.push(this.textBindings, expression);
+ bindText: function(textNode, expression) {
+ this.textBindingNodes.push(textNode);
+ this.textBindings.push(expression);
},
setContentTagSelector: function(value) {
this.contentTagSelector = value;
@@ -20421,25 +20658,25 @@ System.register("angular2/src/render/dom/view/proto_view_builder", ["angular2/sr
DirectiveBuilder = (function() {
function DirectiveBuilder(directiveIndex) {
this.directiveIndex = directiveIndex;
- this.propertyBindings = MapWrapper.create();
- this.hostPropertyBindings = MapWrapper.create();
- this.hostActions = [];
+ this.propertyBindings = new Map();
+ this.templatePropertyNames = [];
+ this.hostPropertyBindings = new Map();
this.eventBindings = [];
this.eventBuilder = new EventBuilder();
}
return ($traceurRuntime.createClass)(DirectiveBuilder, {
- bindProperty: function(name, expression) {
- MapWrapper.set(this.propertyBindings, name, expression);
+ bindProperty: function(name, expression, elProp) {
+ this.propertyBindings.set(name, expression);
+ if (isPresent(elProp)) {
+ this.templatePropertyNames.push(elProp);
+ }
},
bindHostProperty: function(name, expression) {
- MapWrapper.set(this.hostPropertyBindings, name, expression);
- },
- bindHostAction: function(actionName, actionExpression, expression) {
- ListWrapper.push(this.hostActions, new HostAction(actionName, actionExpression, expression));
+ this.hostPropertyBindings.set(name, expression);
},
bindEvent: function(name, expression) {
var target = arguments[2] !== (void 0) ? arguments[2] : null;
- ListWrapper.push(this.eventBindings, this.eventBuilder.add(name, expression, target));
+ this.eventBindings.push(this.eventBuilder.add(name, expression, target));
}
}, {});
}());
@@ -20459,9 +20696,9 @@ System.register("angular2/src/render/dom/view/proto_view_builder", ["angular2/sr
var result = new api.EventBinding(fullName, new ASTWithSource(adjustedAst, source.source, source.location));
var event = new Event(name, target, fullName);
if (isBlank(target)) {
- ListWrapper.push(this.localEvents, event);
+ this.localEvents.push(event);
} else {
- ListWrapper.push(this.globalEvents, event);
+ this.globalEvents.push(event);
}
return result;
},
@@ -20476,7 +20713,7 @@ System.register("angular2/src/render/dom/view/proto_view_builder", ["angular2/sr
current = am.receiver;
}
if (isEventAccess) {
- ListWrapper.push(this.locals, ast);
+ this.locals.push(ast);
var index = this.locals.length - 1;
return new AccessMember(this._implicitReceiver, ("" + index), (function(arr) {
return arr[index];
@@ -20500,19 +20737,23 @@ System.register("angular2/src/render/dom/view/proto_view_builder", ["angular2/sr
ListWrapper.concat(this.locals, eventBuilder.locals);
},
_merge: function(host, tobeAdded) {
- var names = ListWrapper.create();
+ var names = [];
for (var i = 0; i < host.length; i++) {
- ListWrapper.push(names, host[i].fullName);
+ names.push(host[i].fullName);
}
for (var j = 0; j < tobeAdded.length; j++) {
if (!ListWrapper.contains(names, tobeAdded[j].fullName)) {
- ListWrapper.push(host, tobeAdded[j]);
+ host.push(tobeAdded[j]);
}
}
}
}, {}, $__super);
}(AstTransformer));
$__export("EventBuilder", EventBuilder);
+ PROPERTY_PARTS_SEPARATOR = new RegExp('\\.');
+ ATTRIBUTE_PREFIX = 'attr';
+ CLASS_PREFIX = 'class';
+ STYLE_PREFIX = 'style';
}
};
});
@@ -20602,7 +20843,7 @@ System.register("angular2/src/render/dom/compiler/directive_parser", ["angular2/
componentDirective = directive;
elementBinder.setComponentId(directive.id);
} else {
- ListWrapper.push(foundDirectiveIndices, directiveIndex);
+ foundDirectiveIndices.push(directiveIndex);
}
}));
ListWrapper.forEach(foundDirectiveIndices, (function(directiveIndex) {
@@ -20619,11 +20860,6 @@ System.register("angular2/src/render/dom/compiler/directive_parser", ["angular2/
$__0._bindDirectiveEvent(eventName, action, current, directiveBinderBuilder);
}));
}
- if (isPresent(dirMetadata.hostActions)) {
- MapWrapper.forEach(dirMetadata.hostActions, (function(action, actionName) {
- $__0._bindHostAction(actionName, action, current, directiveBinderBuilder);
- }));
- }
if (isPresent(dirMetadata.hostProperties)) {
MapWrapper.forEach(dirMetadata.hostProperties, (function(expression, hostPropertyName) {
$__0._bindHostProperty(hostPropertyName, expression, current, directiveBinderBuilder);
@@ -20655,16 +20891,16 @@ System.register("angular2/src/render/dom/compiler/directive_parser", ["angular2/
elProp = bindConfig;
pipes = [];
}
- var bindingAst = MapWrapper.get(compileElement.bindElement().propertyBindings, dashCaseToCamelCase(elProp));
+ elProp = dashCaseToCamelCase(elProp);
+ var bindingAst = compileElement.bindElement().propertyBindings.get(elProp);
if (isBlank(bindingAst)) {
- var attributeValue = MapWrapper.get(compileElement.attrs(), camelCaseToDashCase(elProp));
+ var attributeValue = compileElement.attrs().get(camelCaseToDashCase(elProp));
if (isPresent(attributeValue)) {
bindingAst = this._parser.wrapLiteralPrimitive(attributeValue, compileElement.elementDescription);
}
}
if (isPresent(bindingAst)) {
- var fullExpAstWithBindPipes = this._parser.addPipes(bindingAst, pipes);
- directiveBinderBuilder.bindProperty(dirProperty, fullExpAstWithBindPipes);
+ directiveBinderBuilder.bindProperty(dirProperty, bindingAst, elProp);
}
},
_bindDirectiveEvent: function(eventName, action, compileElement, directiveBinderBuilder) {
@@ -20676,12 +20912,8 @@ System.register("angular2/src/render/dom/compiler/directive_parser", ["angular2/
directiveBinderBuilder.bindEvent(eventName, ast);
}
},
- _bindHostAction: function(actionName, actionExpression, compileElement, directiveBinderBuilder) {
- var ast = this._parser.parseAction(actionExpression, compileElement.elementDescription);
- directiveBinderBuilder.bindHostAction(actionName, actionExpression, ast);
- },
_bindHostProperty: function(hostPropertyName, expression, compileElement, directiveBinderBuilder) {
- var ast = this._parser.parseBinding(expression, ("hostProperties of " + compileElement.elementDescription));
+ var ast = this._parser.parseSimpleBinding(expression, ("hostProperties of " + compileElement.elementDescription));
directiveBinderBuilder.bindHostProperty(hostPropertyName, ast);
},
_addHostAttribute: function(attrName, attrValue, compileElement) {
@@ -21047,7 +21279,7 @@ System.register("angular2/src/forms/model", ["angular2/src/facade/lang", "angula
return this.controls[index];
},
push: function(control) {
- ListWrapper.push(this.controls, control);
+ this.controls.push(control);
control.setParent(this);
this.updateValueAndValidity();
},
@@ -21081,7 +21313,7 @@ System.register("angular2/src/forms/model", ["angular2/src/facade/lang", "angula
};
});
-System.register("angular2/src/forms/directives/ng_control_name", ["angular2/src/facade/lang", "angular2/src/facade/async", "angular2/src/facade/collection", "angular2/angular2", "angular2/di", "angular2/src/forms/directives/control_container", "angular2/src/forms/directives/ng_control", "angular2/src/forms/directives/shared"], function($__export) {
+System.register("angular2/src/forms/directives/ng_control_name", ["angular2/src/facade/lang", "angular2/src/facade/async", "angular2/src/facade/collection", "angular2/angular2", "angular2/di", "angular2/src/forms/directives/control_container", "angular2/src/forms/directives/ng_control", "angular2/src/forms/directives/validators", "angular2/src/forms/directives/shared"], function($__export) {
"use strict";
var __moduleName = "angular2/src/forms/directives/ng_control_name";
var __decorate,
@@ -21095,11 +21327,15 @@ System.register("angular2/src/forms/directives/ng_control_name", ["angular2/src/
Ancestor,
onDestroy,
onChange,
+ Query,
+ QueryList,
forwardRef,
Binding,
ControlContainer,
NgControl,
+ NgValidator,
controlPath,
+ composeNgValidator,
controlNameBinding,
NgControlName;
return {
@@ -21115,6 +21351,8 @@ System.register("angular2/src/forms/directives/ng_control_name", ["angular2/src/
Ancestor = $__m.Ancestor;
onDestroy = $__m.onDestroy;
onChange = $__m.onChange;
+ Query = $__m.Query;
+ QueryList = $__m.QueryList;
}, function($__m) {
forwardRef = $__m.forwardRef;
Binding = $__m.Binding;
@@ -21122,8 +21360,11 @@ System.register("angular2/src/forms/directives/ng_control_name", ["angular2/src/
ControlContainer = $__m.ControlContainer;
}, function($__m) {
NgControl = $__m.NgControl;
+ }, function($__m) {
+ NgValidator = $__m.NgValidator;
}, function($__m) {
controlPath = $__m.controlPath;
+ composeNgValidator = $__m.composeNgValidator;
}],
execute: function() {
__decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
@@ -21157,11 +21398,12 @@ System.register("angular2/src/forms/directives/ng_control_name", ["angular2/src/
return NgControlName;
}))}));
NgControlName = (function($__super) {
- function $__0(_parent) {
+ function $__0(parent, ngValidators) {
$traceurRuntime.superConstructor($__0).call(this);
- this._parent = _parent;
- this.ngModel = new EventEmitter();
+ this.update = new EventEmitter();
this._added = false;
+ this._parent = parent;
+ this.ngValidators = ngValidators;
}
return ($traceurRuntime.createClass)($__0, {
onChange: function(c) {
@@ -21177,7 +21419,7 @@ System.register("angular2/src/forms/directives/ng_control_name", ["angular2/src/
this.formDirective.removeControl(this);
},
viewToModelUpdate: function(newValue) {
- ObservableWrapper.callNext(this.ngModel, newValue);
+ ObservableWrapper.callNext(this.update, newValue);
},
get path() {
return controlPath(this.name, this._parent);
@@ -21187,6 +21429,9 @@ System.register("angular2/src/forms/directives/ng_control_name", ["angular2/src/
},
get control() {
return this.formDirective.getControl(this);
+ },
+ get validator() {
+ return composeNgValidator(this.ngValidators);
}
}, {}, $__super);
}(NgControl));
@@ -21194,11 +21439,11 @@ System.register("angular2/src/forms/directives/ng_control_name", ["angular2/src/
$__export("NgControlName", NgControlName = __decorate([Directive({
selector: '[ng-control]',
hostInjector: [controlNameBinding],
- properties: ['name: ng-control', 'model: ng-model'],
- events: ['ngModel'],
+ properties: ['name: ngControl', 'model: ngModel'],
+ events: ['update: ngModel'],
lifecycle: [onDestroy, onChange],
exportAs: 'form'
- }), __param(0, Ancestor()), __metadata('design:paramtypes', [ControlContainer])], NgControlName));
+ }), __param(0, Ancestor()), __param(1, Query(NgValidator)), __metadata('design:paramtypes', [ControlContainer, QueryList])], NgControlName));
}
};
});
@@ -21416,8 +21661,8 @@ System.register("angular2/src/change_detection/dynamic_change_detector", ["angul
}],
execute: function() {
DynamicChangeDetector = (function($__super) {
- function DynamicChangeDetector(changeControlStrategy, dispatcher, pipeRegistry, protos, directiveRecords) {
- $traceurRuntime.superConstructor(DynamicChangeDetector).call(this);
+ function DynamicChangeDetector(id, changeControlStrategy, dispatcher, pipeRegistry, protos, directiveRecords) {
+ $traceurRuntime.superConstructor(DynamicChangeDetector).call(this, id);
this.changeControlStrategy = changeControlStrategy;
this.dispatcher = dispatcher;
this.pipeRegistry = pipeRegistry;
@@ -21636,8 +21881,7 @@ System.register("angular2/src/change_detection/dynamic_change_detector", ["angul
if (isPresent(storedPipe)) {
storedPipe.onDestroy();
}
- var cdr = proto.mode === RecordType.BINDING_PIPE ? this.ref : null;
- var pipe = this.pipeRegistry.get(proto.name, context, cdr);
+ var pipe = this.pipeRegistry.get(proto.name, context, this.ref);
this._writePipe(proto, pipe);
return pipe;
},
@@ -21700,9 +21944,7 @@ System.register("angular2/src/change_detection/pipes/observable_pipe", ["angular
isBlank,
isPresent,
CONST,
- Pipe,
WrappedValue,
- PipeFactory,
ObservablePipe,
ObservablePipeFactory;
return {
@@ -21713,9 +21955,7 @@ System.register("angular2/src/change_detection/pipes/observable_pipe", ["angular
isPresent = $__m.isPresent;
CONST = $__m.CONST;
}, function($__m) {
- Pipe = $__m.Pipe;
WrappedValue = $__m.WrappedValue;
- PipeFactory = $__m.PipeFactory;
}],
execute: function() {
__decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
@@ -21740,9 +21980,8 @@ System.register("angular2/src/change_detection/pipes/observable_pipe", ["angular
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
return Reflect.metadata(k, v);
};
- ObservablePipe = (function($__super) {
+ ObservablePipe = (function() {
function ObservablePipe(_ref) {
- $traceurRuntime.superConstructor(ObservablePipe).call(this);
this._ref = _ref;
this._latestValue = null;
this._latestReturnedValue = null;
@@ -21794,22 +22033,17 @@ System.register("angular2/src/change_detection/pipes/observable_pipe", ["angular
this._latestValue = value;
this._ref.requestCheck();
}
- }, {}, $__super);
- }(Pipe));
+ }, {});
+ }());
$__export("ObservablePipe", ObservablePipe);
- ObservablePipeFactory = (function($__super) {
- function $__1() {
- $traceurRuntime.superConstructor($__1).call(this);
+ ObservablePipeFactory = (($traceurRuntime.createClass)(function() {}, {
+ supports: function(obs) {
+ return ObservableWrapper.isObservable(obs);
+ },
+ create: function(cdRef) {
+ return new ObservablePipe(cdRef);
}
- return ($traceurRuntime.createClass)($__1, {
- supports: function(obs) {
- return ObservableWrapper.isObservable(obs);
- },
- create: function(cdRef) {
- return new ObservablePipe(cdRef);
- }
- }, {}, $__super);
- }(PipeFactory));
+ }, {}));
$__export("ObservablePipeFactory", ObservablePipeFactory);
$__export("ObservablePipeFactory", ObservablePipeFactory = __decorate([CONST(), __metadata('design:paramtypes', [])], ObservablePipeFactory));
}
@@ -21825,6 +22059,7 @@ System.register("angular2/src/di/binding", ["angular2/src/facade/lang", "angular
isBlank,
isPresent,
CONST,
+ CONST_EXPR,
BaseException,
stringify,
isArray,
@@ -21898,7 +22133,7 @@ System.register("angular2/src/di/binding", ["angular2/src/facade/lang", "angular
if (isPresent(paramAnnotation.token)) {
token = paramAnnotation.token;
}
- ListWrapper.push(depProps, paramAnnotation);
+ depProps.push(paramAnnotation);
}
}
token = resolveForwardRef(token);
@@ -21918,6 +22153,7 @@ System.register("angular2/src/di/binding", ["angular2/src/facade/lang", "angular
isBlank = $__m.isBlank;
isPresent = $__m.isPresent;
CONST = $__m.CONST;
+ CONST_EXPR = $__m.CONST_EXPR;
BaseException = $__m.BaseException;
stringify = $__m.stringify;
isArray = $__m.isArray;
@@ -21974,7 +22210,7 @@ System.register("angular2/src/di/binding", ["angular2/src/facade/lang", "angular
}});
}());
$__export("Dependency", Dependency);
- _EMPTY_LIST = [];
+ _EMPTY_LIST = CONST_EXPR([]);
Binding = (($traceurRuntime.createClass)(function(token, $__3) {
var $__4 = $__3,
toClass = $__4.toClass,
@@ -22067,7 +22303,7 @@ System.register("angular2/src/di/binding", ["angular2/src/facade/lang", "angular
};
});
-System.register("angular2/src/core/compiler/view_manager_utils", ["angular2/di", "angular2/src/facade/collection", "angular2/src/core/compiler/element_injector", "angular2/src/facade/lang", "angular2/src/core/compiler/view", "angular2/src/core/compiler/directive_resolver"], function($__export) {
+System.register("angular2/src/core/compiler/view_manager_utils", ["angular2/di", "angular2/src/facade/collection", "angular2/src/core/compiler/element_injector", "angular2/src/facade/lang", "angular2/src/core/compiler/view"], function($__export) {
"use strict";
var __moduleName = "angular2/src/core/compiler/view_manager_utils";
var __decorate,
@@ -22078,9 +22314,7 @@ System.register("angular2/src/core/compiler/view_manager_utils", ["angular2/di",
eli,
isPresent,
isBlank,
- BaseException,
viewModule,
- DirectiveResolver,
AppViewManagerUtils;
return {
setters: [function($__m) {
@@ -22093,11 +22327,8 @@ System.register("angular2/src/core/compiler/view_manager_utils", ["angular2/di",
}, function($__m) {
isPresent = $__m.isPresent;
isBlank = $__m.isBlank;
- BaseException = $__m.BaseException;
}, function($__m) {
viewModule = $__m;
- }, function($__m) {
- DirectiveResolver = $__m.DirectiveResolver;
}],
execute: function() {
__decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
@@ -22122,17 +22353,10 @@ System.register("angular2/src/core/compiler/view_manager_utils", ["angular2/di",
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
return Reflect.metadata(k, v);
};
- AppViewManagerUtils = (($traceurRuntime.createClass)(function(_directiveResolver) {
- this._directiveResolver = _directiveResolver;
- }, {
+ AppViewManagerUtils = (($traceurRuntime.createClass)(function() {}, {
getComponentInstance: function(parentView, boundElementIndex) {
- var binder = parentView.proto.elementBinders[boundElementIndex];
var eli = parentView.elementInjectors[boundElementIndex];
- if (binder.hasDynamicComponent()) {
- return eli.getDynamicallyLoadedComponent();
- } else {
- return eli.getComponent();
- }
+ return eli.getComponent();
},
createView: function(protoView, renderView, viewManager, renderer) {
var view = new viewModule.AppView(renderer, protoView, protoView.protoLocals);
@@ -22153,7 +22377,7 @@ System.register("angular2/src/core/compiler/view_manager_utils", ["angular2/di",
elementInjector = protoElementInjector.instantiate(parentElementInjector);
} else {
elementInjector = protoElementInjector.instantiate(null);
- ListWrapper.push(rootElementInjectors, elementInjector);
+ rootElementInjectors.push(elementInjector);
}
}
elementInjectors[binderIdx] = elementInjector;
@@ -22186,37 +22410,6 @@ System.register("angular2/src/core/compiler/view_manager_utils", ["angular2/di",
var injector = arguments[1] !== (void 0) ? arguments[1] : null;
this._hydrateView(hostView, injector, null, new Object(), null);
},
- attachAndHydrateFreeHostView: function(parentComponentHostView, parentComponentBoundElementIndex, hostView) {
- var injector = arguments[3] !== (void 0) ? arguments[3] : null;
- var hostElementInjector = parentComponentHostView.elementInjectors[parentComponentBoundElementIndex];
- var parentView = parentComponentHostView.componentChildViews[parentComponentBoundElementIndex];
- parentView.changeDetector.addChild(hostView.changeDetector);
- ListWrapper.push(parentView.freeHostViews, hostView);
- this._hydrateView(hostView, injector, hostElementInjector, new Object(), null);
- },
- detachFreeHostView: function(parentView, hostView) {
- parentView.changeDetector.removeChild(hostView.changeDetector);
- ListWrapper.remove(parentView.freeHostViews, hostView);
- },
- attachAndHydrateFreeEmbeddedView: function(parentView, boundElementIndex, view) {
- var injector = arguments[3] !== (void 0) ? arguments[3] : null;
- parentView.changeDetector.addChild(view.changeDetector);
- var viewContainer = this._getOrCreateViewContainer(parentView, boundElementIndex);
- ListWrapper.push(viewContainer.freeViews, view);
- var elementInjector = parentView.elementInjectors[boundElementIndex];
- for (var i = view.rootElementInjectors.length - 1; i >= 0; i--) {
- view.rootElementInjectors[i].link(elementInjector);
- }
- this._hydrateView(view, injector, elementInjector, parentView.context, parentView.locals);
- },
- detachFreeEmbeddedView: function(parentView, boundElementIndex, view) {
- var viewContainer = parentView.viewContainers[boundElementIndex];
- view.changeDetector.remove();
- ListWrapper.remove(viewContainer.freeViews, view);
- for (var i = 0; i < view.rootElementInjectors.length; ++i) {
- view.rootElementInjectors[i].unlink();
- }
- },
attachViewInContainer: function(parentView, boundElementIndex, contextView, contextBoundElementIndex, atIndex, view) {
if (isBlank(contextView)) {
contextView = parentView;
@@ -22233,7 +22426,11 @@ System.register("angular2/src/core/compiler/view_manager_utils", ["angular2/di",
}
var elementInjector = contextView.elementInjectors[contextBoundElementIndex];
for (var i = view.rootElementInjectors.length - 1; i >= 0; i--) {
- view.rootElementInjectors[i].linkAfter(elementInjector, sibling);
+ if (isPresent(elementInjector.parent)) {
+ view.rootElementInjectors[i].linkAfter(elementInjector.parent, sibling);
+ } else {
+ contextView.rootElementInjectors.push(view.rootElementInjectors[i]);
+ }
}
},
detachViewInContainer: function(parentView, boundElementIndex, atIndex) {
@@ -22242,7 +22439,13 @@ System.register("angular2/src/core/compiler/view_manager_utils", ["angular2/di",
view.changeDetector.remove();
ListWrapper.removeAt(viewContainer.views, atIndex);
for (var i = 0; i < view.rootElementInjectors.length; ++i) {
- view.rootElementInjectors[i].unlink();
+ var inj = view.rootElementInjectors[i];
+ if (isPresent(inj.parent)) {
+ inj.unlink();
+ } else {
+ var removeIdx = ListWrapper.indexOf(parentView.rootElementInjectors, inj);
+ ListWrapper.removeAt(parentView.rootElementInjectors, removeIdx);
+ }
}
},
hydrateViewInContainer: function(parentView, boundElementIndex, contextView, contextBoundElementIndex, atIndex, injector) {
@@ -22252,21 +22455,11 @@ System.register("angular2/src/core/compiler/view_manager_utils", ["angular2/di",
}
var viewContainer = parentView.viewContainers[boundElementIndex];
var view = viewContainer.views[atIndex];
- var elementInjector = contextView.elementInjectors[contextBoundElementIndex].getHost();
- this._hydrateView(view, injector, elementInjector, contextView.context, contextView.locals);
- },
- hydrateDynamicComponentInElementInjector: function(hostView, boundElementIndex, componentBinding) {
- var injector = arguments[3] !== (void 0) ? arguments[3] : null;
- var elementInjector = hostView.elementInjectors[boundElementIndex];
- if (isPresent(elementInjector.getDynamicallyLoadedComponent())) {
- throw new BaseException(("There already is a dynamic component loaded at element " + boundElementIndex));
+ var elementInjector = contextView.elementInjectors[contextBoundElementIndex];
+ if (isBlank(elementInjector.getHost()) && isBlank(injector)) {
+ injector = elementInjector.getShadowDomAppInjector();
}
- if (isBlank(injector)) {
- injector = elementInjector.getLightDomAppInjector();
- }
- var annotation = this._directiveResolver.resolve(componentBinding.token);
- var componentDirective = eli.DirectiveBinding.createFromBinding(componentBinding, annotation);
- elementInjector.dynamicallyCreateComponent(componentDirective, injector);
+ this._hydrateView(view, injector, elementInjector.getHost(), contextView.context, contextView.locals);
},
_hydrateView: function(view, appInjector, hostElementInjector, context, parentLocals) {
if (isBlank(appInjector)) {
@@ -22279,25 +22472,27 @@ System.register("angular2/src/core/compiler/view_manager_utils", ["angular2/di",
view.locals.parent = parentLocals;
var binders = view.proto.elementBinders;
for (var i = 0; i < binders.length; ++i) {
- var binder = binders[i];
var elementInjector = view.elementInjectors[i];
if (isPresent(elementInjector)) {
elementInjector.hydrate(appInjector, hostElementInjector, view.preBuiltObjects[i]);
+ this._populateViewLocals(view, elementInjector);
this._setUpEventEmitters(view, elementInjector, i);
this._setUpHostActions(view, elementInjector, i);
- if (isPresent(binder.directiveVariableBindings)) {
- MapWrapper.forEach(binder.directiveVariableBindings, (function(directiveIndex, name) {
- if (isBlank(directiveIndex)) {
- view.locals.set(name, elementInjector.getElementRef().domElement);
- } else {
- view.locals.set(name, elementInjector.getDirectiveAtIndex(directiveIndex));
- }
- }));
- }
}
}
view.changeDetector.hydrate(view.context, view.locals, view);
},
+ _populateViewLocals: function(view, elementInjector) {
+ if (isPresent(elementInjector.getDirectiveVariableBindings())) {
+ MapWrapper.forEach(elementInjector.getDirectiveVariableBindings(), (function(directiveIndex, name) {
+ if (isBlank(directiveIndex)) {
+ view.locals.set(name, elementInjector.getElementRef().nativeElement);
+ } else {
+ view.locals.set(name, elementInjector.getDirectiveAtIndex(directiveIndex));
+ }
+ }));
+ }
+ },
_getOrCreateViewContainer: function(parentView, boundElementIndex) {
var viewContainer = parentView.viewContainers[boundElementIndex];
if (isBlank(viewContainer)) {
@@ -22344,7 +22539,171 @@ System.register("angular2/src/core/compiler/view_manager_utils", ["angular2/di",
}
}, {}));
$__export("AppViewManagerUtils", AppViewManagerUtils);
- $__export("AppViewManagerUtils", AppViewManagerUtils = __decorate([Injectable(), __metadata('design:paramtypes', [DirectiveResolver])], AppViewManagerUtils));
+ $__export("AppViewManagerUtils", AppViewManagerUtils = __decorate([Injectable(), __metadata('design:paramtypes', [])], AppViewManagerUtils));
+ }
+ };
+});
+
+System.register("angular2/src/render/dom/compiler/view_loader", ["angular2/di", "angular2/src/facade/lang", "angular2/src/facade/collection", "angular2/src/facade/async", "angular2/src/dom/dom_adapter", "angular2/src/render/xhr", "angular2/src/render/dom/compiler/style_inliner", "angular2/src/render/dom/compiler/style_url_resolver"], function($__export) {
+ "use strict";
+ var __moduleName = "angular2/src/render/dom/compiler/view_loader";
+ var __decorate,
+ __metadata,
+ Injectable,
+ isBlank,
+ isPresent,
+ BaseException,
+ isPromise,
+ Map,
+ ListWrapper,
+ PromiseWrapper,
+ DOM,
+ XHR,
+ StyleInliner,
+ StyleUrlResolver,
+ ViewLoader;
+ function _insertCssTexts(element, cssTexts) {
+ if (cssTexts.length == 0)
+ return ;
+ var insertBefore = DOM.firstChild(element);
+ for (var i = cssTexts.length - 1; i >= 0; i--) {
+ var styleEl = DOM.createStyleElement(cssTexts[i]);
+ if (isPresent(insertBefore)) {
+ DOM.insertBefore(insertBefore, styleEl);
+ } else {
+ DOM.appendChild(element, styleEl);
+ }
+ insertBefore = styleEl;
+ }
+ }
+ return {
+ setters: [function($__m) {
+ Injectable = $__m.Injectable;
+ }, function($__m) {
+ isBlank = $__m.isBlank;
+ isPresent = $__m.isPresent;
+ BaseException = $__m.BaseException;
+ isPromise = $__m.isPromise;
+ }, function($__m) {
+ Map = $__m.Map;
+ ListWrapper = $__m.ListWrapper;
+ }, function($__m) {
+ PromiseWrapper = $__m.PromiseWrapper;
+ }, function($__m) {
+ DOM = $__m.DOM;
+ }, function($__m) {
+ XHR = $__m.XHR;
+ }, function($__m) {
+ StyleInliner = $__m.StyleInliner;
+ }, function($__m) {
+ StyleUrlResolver = $__m.StyleUrlResolver;
+ }],
+ execute: function() {
+ __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
+ return Reflect.decorate(decorators, target, key, desc);
+ switch (arguments.length) {
+ case 2:
+ return decorators.reduceRight(function(o, d) {
+ return (d && d(o)) || o;
+ }, target);
+ case 3:
+ return decorators.reduceRight(function(o, d) {
+ return (d && d(target, key)), void 0;
+ }, void 0);
+ case 4:
+ return decorators.reduceRight(function(o, d) {
+ return (d && d(target, key, o)) || o;
+ }, desc);
+ }
+ };
+ __metadata = (this && this.__metadata) || function(k, v) {
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
+ return Reflect.metadata(k, v);
+ };
+ ViewLoader = (($traceurRuntime.createClass)(function(_xhr, _styleInliner, _styleUrlResolver) {
+ this._xhr = _xhr;
+ this._styleInliner = _styleInliner;
+ this._styleUrlResolver = _styleUrlResolver;
+ this._cache = new Map();
+ }, {
+ load: function(view) {
+ var $__0 = this;
+ var tplElAndStyles = [this._loadHtml(view)];
+ if (isPresent(view.styles)) {
+ view.styles.forEach((function(cssText) {
+ var textOrPromise = $__0._resolveAndInlineCssText(cssText, view.templateAbsUrl);
+ tplElAndStyles.push(textOrPromise);
+ }));
+ }
+ if (isPresent(view.styleAbsUrls)) {
+ view.styleAbsUrls.forEach((function(url) {
+ var promise = $__0._loadText(url).then((function(cssText) {
+ return $__0._resolveAndInlineCssText(cssText, view.templateAbsUrl);
+ }));
+ tplElAndStyles.push(promise);
+ }));
+ }
+ return PromiseWrapper.all(tplElAndStyles).then((function(res) {
+ var tplEl = res[0];
+ var cssTexts = ListWrapper.slice(res, 1);
+ _insertCssTexts(DOM.content(tplEl), cssTexts);
+ return tplEl;
+ }));
+ },
+ _loadText: function(url) {
+ var response = this._cache.get(url);
+ if (isBlank(response)) {
+ response = PromiseWrapper.catchError(this._xhr.get(url), (function(_) {
+ return PromiseWrapper.reject(new BaseException(("Failed to fetch url \"" + url + "\"")), null);
+ }));
+ this._cache.set(url, response);
+ }
+ return response;
+ },
+ _loadHtml: function(view) {
+ var $__0 = this;
+ var html;
+ if (isPresent(view.template)) {
+ html = PromiseWrapper.resolve(view.template);
+ } else if (isPresent(view.templateAbsUrl)) {
+ html = this._loadText(view.templateAbsUrl);
+ } else {
+ throw new BaseException('View should have either the templateUrl or template property set');
+ }
+ return html.then((function(html) {
+ var tplEl = DOM.createTemplate(html);
+ var styleEls = DOM.querySelectorAll(DOM.content(tplEl), 'STYLE');
+ var promises = [];
+ for (var i = 0; i < styleEls.length; i++) {
+ var promise = $__0._resolveAndInlineElement(styleEls[i], view.templateAbsUrl);
+ if (isPromise(promise)) {
+ promises.push(promise);
+ }
+ }
+ return promises.length > 0 ? PromiseWrapper.all(promises).then((function(_) {
+ return tplEl;
+ })) : tplEl;
+ }));
+ },
+ _resolveAndInlineElement: function(styleEl, baseUrl) {
+ var textOrPromise = this._resolveAndInlineCssText(DOM.getText(styleEl), baseUrl);
+ if (isPromise(textOrPromise)) {
+ return textOrPromise.then((function(css) {
+ DOM.setText(styleEl, css);
+ }));
+ } else {
+ DOM.setText(styleEl, textOrPromise);
+ return null;
+ }
+ },
+ _resolveAndInlineCssText: function(cssText, baseUrl) {
+ cssText = this._styleUrlResolver.resolveUrls(cssText, baseUrl);
+ return this._styleInliner.inlineImports(cssText, baseUrl);
+ }
+ }, {}));
+ $__export("ViewLoader", ViewLoader);
+ $__export("ViewLoader", ViewLoader = __decorate([Injectable(), __metadata('design:paramtypes', [XHR, StyleInliner, StyleUrlResolver])], ViewLoader));
}
};
});
@@ -22369,9 +22728,8 @@ System.register("angular2/src/render/dom/shadow_dom/emulated_unscoped_shadow_dom
}],
execute: function() {
EmulatedUnscopedShadowDomStrategy = (function($__super) {
- function EmulatedUnscopedShadowDomStrategy(styleUrlResolver, styleHost) {
+ function EmulatedUnscopedShadowDomStrategy(styleHost) {
$traceurRuntime.superConstructor(EmulatedUnscopedShadowDomStrategy).call(this);
- this.styleUrlResolver = styleUrlResolver;
this.styleHost = styleHost;
}
return ($traceurRuntime.createClass)(EmulatedUnscopedShadowDomStrategy, {
@@ -22386,11 +22744,7 @@ System.register("angular2/src/render/dom/shadow_dom/emulated_unscoped_shadow_dom
},
processStyleElement: function(hostComponentId, templateUrl, styleEl) {
var cssText = DOM.getText(styleEl);
- cssText = this.styleUrlResolver.resolveUrls(cssText, templateUrl);
- DOM.setText(styleEl, cssText);
- DOM.remove(styleEl);
insertSharedStyleText(cssText, this.styleHost, styleEl);
- return null;
}
}, {}, $__super);
}(ShadowDomStrategy));
@@ -22510,20 +22864,19 @@ System.register("angular2/src/render/dom/dom_renderer", ["angular2/di", "angular
}
return new DomViewRef(this._createView(hostProtoView, element));
},
- detachFreeView: function(viewRef) {
- var view = resolveInternalDomView(viewRef);
- this._removeViewNodes(view);
- },
createView: function(protoViewRef) {
var protoView = resolveInternalDomProtoView(protoViewRef);
return new DomViewRef(this._createView(protoView, null));
},
destroyView: function(view) {},
- attachComponentView: function(hostViewRef, elementIndex, componentViewRef) {
- var hostView = resolveInternalDomView(hostViewRef);
+ getNativeElementSync: function(location) {
+ return resolveInternalDomView(location.renderView).boundElements[location.boundElementIndex].element;
+ },
+ attachComponentView: function(location, componentViewRef) {
+ var hostView = resolveInternalDomView(location.renderView);
var componentView = resolveInternalDomView(componentViewRef);
- var element = hostView.boundElements[elementIndex].element;
- var lightDom = hostView.boundElements[elementIndex].lightDom;
+ var element = hostView.boundElements[location.boundElementIndex].element;
+ var lightDom = hostView.boundElements[location.boundElementIndex].lightDom;
if (isPresent(lightDom)) {
lightDom.attachShadowDomView(componentView);
}
@@ -22541,28 +22894,28 @@ System.register("angular2/src/render/dom/dom_renderer", ["angular2/di", "angular
getRootNodes: function(viewRef) {
return resolveInternalDomView(viewRef).rootNodes;
},
- detachComponentView: function(hostViewRef, boundElementIndex, componentViewRef) {
- var hostView = resolveInternalDomView(hostViewRef);
+ detachComponentView: function(location, componentViewRef) {
+ var hostView = resolveInternalDomView(location.renderView);
var componentView = resolveInternalDomView(componentViewRef);
this._removeViewNodes(componentView);
- var lightDom = hostView.boundElements[boundElementIndex].lightDom;
+ var lightDom = hostView.boundElements[location.boundElementIndex].lightDom;
if (isPresent(lightDom)) {
lightDom.detachShadowDomView();
}
componentView.hostLightDom = null;
componentView.shadowRoot = null;
},
- attachViewInContainer: function(parentViewRef, boundElementIndex, atIndex, viewRef) {
- var parentView = resolveInternalDomView(parentViewRef);
+ attachViewInContainer: function(location, atIndex, viewRef) {
+ var parentView = resolveInternalDomView(location.renderView);
var view = resolveInternalDomView(viewRef);
- var viewContainer = this._getOrCreateViewContainer(parentView, boundElementIndex);
+ var viewContainer = this._getOrCreateViewContainer(parentView, location.boundElementIndex);
ListWrapper.insert(viewContainer.views, atIndex, view);
view.hostLightDom = parentView.hostLightDom;
- var directParentLightDom = this._directParentLightDom(parentView, boundElementIndex);
+ var directParentLightDom = this._directParentLightDom(parentView, location.boundElementIndex);
if (isBlank(directParentLightDom)) {
var siblingToInsertAfter;
if (atIndex == 0) {
- siblingToInsertAfter = parentView.boundElements[boundElementIndex].element;
+ siblingToInsertAfter = parentView.boundElements[location.boundElementIndex].element;
} else {
siblingToInsertAfter = ListWrapper.last(viewContainer.views[atIndex - 1].rootNodes);
}
@@ -22574,13 +22927,13 @@ System.register("angular2/src/render/dom/dom_renderer", ["angular2/di", "angular
parentView.hostLightDom.redistribute();
}
},
- detachViewInContainer: function(parentViewRef, boundElementIndex, atIndex, viewRef) {
- var parentView = resolveInternalDomView(parentViewRef);
+ detachViewInContainer: function(location, atIndex, viewRef) {
+ var parentView = resolveInternalDomView(location.renderView);
var view = resolveInternalDomView(viewRef);
- var viewContainer = parentView.boundElements[boundElementIndex].viewContainer;
+ var viewContainer = parentView.boundElements[location.boundElementIndex].viewContainer;
var detachedView = viewContainer.views[atIndex];
ListWrapper.removeAt(viewContainer.views, atIndex);
- var directParentLightDom = this._directParentLightDom(parentView, boundElementIndex);
+ var directParentLightDom = this._directParentLightDom(parentView, location.boundElementIndex);
if (isBlank(directParentLightDom)) {
this._removeViewNodes(detachedView);
} else {
@@ -22602,7 +22955,7 @@ System.register("angular2/src/render/dom/dom_renderer", ["angular2/di", "angular
lightDom.redistribute();
}
}
- view.eventHandlerRemovers = ListWrapper.create();
+ view.eventHandlerRemovers = [];
var binders = view.proto.elementBinders;
for (var binderIdx = 0; binderIdx < binders.length; binderIdx++) {
var binder = binders[binderIdx];
@@ -22610,7 +22963,7 @@ System.register("angular2/src/render/dom/dom_renderer", ["angular2/di", "angular
for (var i = 0; i < binder.globalEvents.length; i++) {
var globalEvent = binder.globalEvents[i];
var remover = this._createGlobalEventListener(view, binderIdx, globalEvent.name, globalEvent.target, globalEvent.fullName);
- ListWrapper.push(view.eventHandlerRemovers, remover);
+ view.eventHandlerRemovers.push(remover);
}
}
}
@@ -22626,13 +22979,25 @@ System.register("angular2/src/render/dom/dom_renderer", ["angular2/di", "angular
view.eventHandlerRemovers = null;
view.hydrated = false;
},
- setElementProperty: function(viewRef, elementIndex, propertyName, propertyValue) {
- var view = resolveInternalDomView(viewRef);
- view.setElementProperty(elementIndex, propertyName, propertyValue);
+ setElementProperty: function(location, propertyName, propertyValue) {
+ var view = resolveInternalDomView(location.renderView);
+ view.setElementProperty(location.boundElementIndex, propertyName, propertyValue);
},
- callAction: function(viewRef, elementIndex, actionExpression, actionArgs) {
- var view = resolveInternalDomView(viewRef);
- view.callAction(elementIndex, actionExpression, actionArgs);
+ setElementAttribute: function(location, attributeName, attributeValue) {
+ var view = resolveInternalDomView(location.renderView);
+ view.setElementAttribute(location.boundElementIndex, attributeName, attributeValue);
+ },
+ setElementClass: function(location, className, isAdd) {
+ var view = resolveInternalDomView(location.renderView);
+ view.setElementClass(location.boundElementIndex, className, isAdd);
+ },
+ setElementStyle: function(location, styleName, styleValue) {
+ var view = resolveInternalDomView(location.renderView);
+ view.setElementStyle(location.boundElementIndex, styleName, styleValue);
+ },
+ invokeElementMethod: function(location, methodName, args) {
+ var view = resolveInternalDomView(location.renderView);
+ view.invokeElementMethod(location.boundElementIndex, methodName, args);
},
setText: function(viewRef, textNodeIndex, text) {
var view = resolveInternalDomView(viewRef);
@@ -22761,12 +23126,11 @@ System.register("angular2/src/render/dom/dom_renderer", ["angular2/di", "angular
};
});
-System.register("angular2/src/render/dom/compiler/compile_pipeline", ["angular2/src/facade/lang", "angular2/src/facade/collection", "angular2/src/dom/dom_adapter", "angular2/src/render/dom/compiler/compile_element", "angular2/src/render/dom/compiler/compile_control", "angular2/src/render/dom/view/proto_view_builder", "angular2/src/render/api"], function($__export) {
+System.register("angular2/src/render/dom/compiler/compile_pipeline", ["angular2/src/facade/lang", "angular2/src/dom/dom_adapter", "angular2/src/render/dom/compiler/compile_element", "angular2/src/render/dom/compiler/compile_control", "angular2/src/render/dom/view/proto_view_builder", "angular2/src/render/api"], function($__export) {
"use strict";
var __moduleName = "angular2/src/render/dom/compiler/compile_pipeline";
var isPresent,
isBlank,
- ListWrapper,
DOM,
CompileElement,
CompileControl,
@@ -22777,8 +23141,6 @@ System.register("angular2/src/render/dom/compiler/compile_pipeline", ["angular2/
setters: [function($__m) {
isPresent = $__m.isPresent;
isBlank = $__m.isBlank;
- }, function($__m) {
- ListWrapper = $__m.ListWrapper;
}, function($__m) {
DOM = $__m.DOM;
}, function($__m) {
@@ -22802,7 +23164,7 @@ System.register("angular2/src/render/dom/compiler/compile_pipeline", ["angular2/
if (isBlank(protoViewType)) {
protoViewType = ViewType.COMPONENT;
}
- var results = ListWrapper.create();
+ var results = [];
var rootCompileElement = new CompileElement(rootElement, compilationCtxtDescription);
rootCompileElement.inheritedProtoView = new ProtoViewBuilder(rootElement, protoViewType);
rootCompileElement.isViewRoot = true;
@@ -22864,7 +23226,7 @@ System.register("angular2/src/render/dom/compiler/compile_step_factory", ["angul
execute: function() {
CompileStepFactory = (function() {
function CompileStepFactory() {}
- return ($traceurRuntime.createClass)(CompileStepFactory, {createSteps: function(template, subTaskPromises) {
+ return ($traceurRuntime.createClass)(CompileStepFactory, {createSteps: function(view) {
return null;
}}, {});
}());
@@ -22875,8 +23237,8 @@ System.register("angular2/src/render/dom/compiler/compile_step_factory", ["angul
this._parser = _parser;
this._shadowDomStrategy = _shadowDomStrategy;
}
- return ($traceurRuntime.createClass)(DefaultStepFactory, {createSteps: function(template, subTaskPromises) {
- return [new ViewSplitter(this._parser), new PropertyBindingParser(this._parser), new DirectiveParser(this._parser, template.directives), new TextInterpolationParser(this._parser), new ShadowDomCompileStep(this._shadowDomStrategy, template, subTaskPromises)];
+ return ($traceurRuntime.createClass)(DefaultStepFactory, {createSteps: function(view) {
+ return [new ViewSplitter(this._parser), new PropertyBindingParser(this._parser), new DirectiveParser(this._parser, view.directives), new TextInterpolationParser(this._parser), new ShadowDomCompileStep(this._shadowDomStrategy, view)];
}}, {}, $__super);
}(CompileStepFactory));
$__export("DefaultStepFactory", DefaultStepFactory);
@@ -22884,62 +23246,54 @@ System.register("angular2/src/render/dom/compiler/compile_step_factory", ["angul
};
});
-System.register("angular2/src/forms/directives", ["angular2/src/facade/lang", "angular2/src/forms/directives/ng_control_name", "angular2/src/forms/directives/ng_form_control", "angular2/src/forms/directives/ng_model", "angular2/src/forms/directives/ng_control_group", "angular2/src/forms/directives/ng_form_model", "angular2/src/forms/directives/ng_form", "angular2/src/forms/directives/default_value_accessor", "angular2/src/forms/directives/checkbox_value_accessor", "angular2/src/forms/directives/select_control_value_accessor", "angular2/src/forms/directives/validators", "angular2/src/forms/directives/ng_control"], function($__export) {
+System.register("angular2/forms", ["angular2/src/forms/model", "angular2/src/forms/directives/ng_control_name", "angular2/src/forms/directives/ng_form_control", "angular2/src/forms/directives/ng_model", "angular2/src/forms/directives/ng_control", "angular2/src/forms/directives/ng_control_group", "angular2/src/forms/directives/ng_form_model", "angular2/src/forms/directives/ng_form", "angular2/src/forms/directives/default_value_accessor", "angular2/src/forms/directives/checkbox_value_accessor", "angular2/src/forms/directives/select_control_value_accessor", "angular2/src/forms/directives", "angular2/src/forms/validators", "angular2/src/forms/directives/validators", "angular2/src/forms/form_builder", "angular2/src/facade/lang"], function($__export) {
"use strict";
- var __moduleName = "angular2/src/forms/directives";
- var CONST_EXPR,
- NgControlName,
- NgFormControl,
- NgModel,
- NgControlGroup,
- NgFormModel,
- NgForm,
- DefaultValueAccessor,
- CheckboxControlValueAccessor,
- SelectControlValueAccessor,
- NgSelectOption,
- NgRequiredValidator,
- formDirectives;
+ var __moduleName = "angular2/forms";
+ var FormBuilder,
+ CONST_EXPR,
+ formInjectables;
return {
setters: [function($__m) {
- CONST_EXPR = $__m.CONST_EXPR;
+ $__export("AbstractControl", $__m.AbstractControl);
+ $__export("Control", $__m.Control);
+ $__export("ControlGroup", $__m.ControlGroup);
+ $__export("ControlArray", $__m.ControlArray);
}, function($__m) {
- NgControlName = $__m.NgControlName;
$__export("NgControlName", $__m.NgControlName);
}, function($__m) {
- NgFormControl = $__m.NgFormControl;
$__export("NgFormControl", $__m.NgFormControl);
}, function($__m) {
- NgModel = $__m.NgModel;
$__export("NgModel", $__m.NgModel);
}, function($__m) {
- NgControlGroup = $__m.NgControlGroup;
+ $__export("NgControl", $__m.NgControl);
+ }, function($__m) {
$__export("NgControlGroup", $__m.NgControlGroup);
}, function($__m) {
- NgFormModel = $__m.NgFormModel;
$__export("NgFormModel", $__m.NgFormModel);
}, function($__m) {
- NgForm = $__m.NgForm;
$__export("NgForm", $__m.NgForm);
}, function($__m) {
- DefaultValueAccessor = $__m.DefaultValueAccessor;
$__export("DefaultValueAccessor", $__m.DefaultValueAccessor);
}, function($__m) {
- CheckboxControlValueAccessor = $__m.CheckboxControlValueAccessor;
$__export("CheckboxControlValueAccessor", $__m.CheckboxControlValueAccessor);
}, function($__m) {
- SelectControlValueAccessor = $__m.SelectControlValueAccessor;
- NgSelectOption = $__m.NgSelectOption;
$__export("SelectControlValueAccessor", $__m.SelectControlValueAccessor);
}, function($__m) {
- NgRequiredValidator = $__m.NgRequiredValidator;
+ $__export("formDirectives", $__m.formDirectives);
+ }, function($__m) {
+ $__export("Validators", $__m.Validators);
+ }, function($__m) {
+ $__export("NgValidator", $__m.NgValidator);
$__export("NgRequiredValidator", $__m.NgRequiredValidator);
}, function($__m) {
- $__export("NgControl", $__m.NgControl);
+ FormBuilder = $__m.FormBuilder;
+ $__export("FormBuilder", $__m.FormBuilder);
+ }, function($__m) {
+ CONST_EXPR = $__m.CONST_EXPR;
}],
execute: function() {
- formDirectives = CONST_EXPR([NgControlName, NgControlGroup, NgFormControl, NgModel, NgFormModel, NgForm, NgSelectOption, DefaultValueAccessor, CheckboxControlValueAccessor, SelectControlValueAccessor, NgRequiredValidator]);
- $__export("formDirectives", formDirectives);
+ formInjectables = CONST_EXPR([FormBuilder]);
+ $__export("formInjectables", formInjectables);
}
};
});
@@ -23029,19 +23383,13 @@ System.register("angular2/src/change_detection/parser/lexer", ["angular2/src/di/
var __decorate,
__metadata,
Injectable,
- ListWrapper,
SetWrapper,
NumberWrapper,
StringJoiner,
StringWrapper,
BaseException,
isPresent,
- TOKEN_TYPE_CHARACTER,
- TOKEN_TYPE_IDENTIFIER,
- TOKEN_TYPE_KEYWORD,
- TOKEN_TYPE_STRING,
- TOKEN_TYPE_OPERATOR,
- TOKEN_TYPE_NUMBER,
+ TokenType,
Lexer,
Token,
EOF,
@@ -23101,22 +23449,22 @@ System.register("angular2/src/change_detection/parser/lexer", ["angular2/src/di/
OPERATORS,
KEYWORDS;
function newCharacterToken(index, code) {
- return new Token(index, TOKEN_TYPE_CHARACTER, code, StringWrapper.fromCharCode(code));
+ return new Token(index, TokenType.CHARACTER, code, StringWrapper.fromCharCode(code));
}
function newIdentifierToken(index, text) {
- return new Token(index, TOKEN_TYPE_IDENTIFIER, 0, text);
+ return new Token(index, TokenType.IDENTIFIER, 0, text);
}
function newKeywordToken(index, text) {
- return new Token(index, TOKEN_TYPE_KEYWORD, 0, text);
+ return new Token(index, TokenType.KEYWORD, 0, text);
}
function newOperatorToken(index, text) {
- return new Token(index, TOKEN_TYPE_OPERATOR, 0, text);
+ return new Token(index, TokenType.OPERATOR, 0, text);
}
function newStringToken(index, text) {
- return new Token(index, TOKEN_TYPE_STRING, 0, text);
+ return new Token(index, TokenType.STRING, 0, text);
}
function newNumberToken(index, n) {
- return new Token(index, TOKEN_TYPE_NUMBER, n, "");
+ return new Token(index, TokenType.NUMBER, n, "");
}
function isWhitespace(code) {
return (code >= $TAB && code <= $SPACE) || (code == $NBSP);
@@ -23156,7 +23504,6 @@ System.register("angular2/src/change_detection/parser/lexer", ["angular2/src/di/
setters: [function($__m) {
Injectable = $__m.Injectable;
}, function($__m) {
- ListWrapper = $__m.ListWrapper;
SetWrapper = $__m.SetWrapper;
}, function($__m) {
NumberWrapper = $__m.NumberWrapper;
@@ -23188,18 +23535,20 @@ System.register("angular2/src/change_detection/parser/lexer", ["angular2/src/di/
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
return Reflect.metadata(k, v);
};
- TOKEN_TYPE_CHARACTER = 1;
- TOKEN_TYPE_IDENTIFIER = 2;
- TOKEN_TYPE_KEYWORD = 3;
- TOKEN_TYPE_STRING = 4;
- TOKEN_TYPE_OPERATOR = 5;
- TOKEN_TYPE_NUMBER = 6;
+ (function(TokenType) {
+ TokenType[TokenType["CHARACTER"] = 0] = "CHARACTER";
+ TokenType[TokenType["IDENTIFIER"] = 1] = "IDENTIFIER";
+ TokenType[TokenType["KEYWORD"] = 2] = "KEYWORD";
+ TokenType[TokenType["STRING"] = 3] = "STRING";
+ TokenType[TokenType["OPERATOR"] = 4] = "OPERATOR";
+ TokenType[TokenType["NUMBER"] = 5] = "NUMBER";
+ })(TokenType || (TokenType = {}));
Lexer = (($traceurRuntime.createClass)(function() {}, {tokenize: function(text) {
var scanner = new _Scanner(text);
var tokens = [];
var token = scanner.scanToken();
while (token != null) {
- ListWrapper.push(tokens, token);
+ tokens.push(token);
token = scanner.scanToken();
}
return tokens;
@@ -23215,61 +23564,64 @@ System.register("angular2/src/change_detection/parser/lexer", ["angular2/src/di/
}
return ($traceurRuntime.createClass)(Token, {
isCharacter: function(code) {
- return (this.type == TOKEN_TYPE_CHARACTER && this.numValue == code);
+ return (this.type == TokenType.CHARACTER && this.numValue == code);
},
isNumber: function() {
- return (this.type == TOKEN_TYPE_NUMBER);
+ return (this.type == TokenType.NUMBER);
},
isString: function() {
- return (this.type == TOKEN_TYPE_STRING);
+ return (this.type == TokenType.STRING);
},
isOperator: function(operater) {
- return (this.type == TOKEN_TYPE_OPERATOR && this.strValue == operater);
+ return (this.type == TokenType.OPERATOR && this.strValue == operater);
},
isIdentifier: function() {
- return (this.type == TOKEN_TYPE_IDENTIFIER);
+ return (this.type == TokenType.IDENTIFIER);
},
isKeyword: function() {
- return (this.type == TOKEN_TYPE_KEYWORD);
+ return (this.type == TokenType.KEYWORD);
},
isKeywordVar: function() {
- return (this.type == TOKEN_TYPE_KEYWORD && this.strValue == "var");
+ return (this.type == TokenType.KEYWORD && this.strValue == "var");
},
isKeywordNull: function() {
- return (this.type == TOKEN_TYPE_KEYWORD && this.strValue == "null");
+ return (this.type == TokenType.KEYWORD && this.strValue == "null");
},
isKeywordUndefined: function() {
- return (this.type == TOKEN_TYPE_KEYWORD && this.strValue == "undefined");
+ return (this.type == TokenType.KEYWORD && this.strValue == "undefined");
},
isKeywordTrue: function() {
- return (this.type == TOKEN_TYPE_KEYWORD && this.strValue == "true");
+ return (this.type == TokenType.KEYWORD && this.strValue == "true");
},
isKeywordIf: function() {
- return (this.type == TOKEN_TYPE_KEYWORD && this.strValue == "if");
+ return (this.type == TokenType.KEYWORD && this.strValue == "if");
},
isKeywordElse: function() {
- return (this.type == TOKEN_TYPE_KEYWORD && this.strValue == "else");
+ return (this.type == TokenType.KEYWORD && this.strValue == "else");
},
isKeywordFalse: function() {
- return (this.type == TOKEN_TYPE_KEYWORD && this.strValue == "false");
+ return (this.type == TokenType.KEYWORD && this.strValue == "false");
},
toNumber: function() {
- return (this.type == TOKEN_TYPE_NUMBER) ? this.numValue : -1;
+ return (this.type == TokenType.NUMBER) ? this.numValue : -1;
},
toString: function() {
- var t = this.type;
- if (t >= TOKEN_TYPE_CHARACTER && t <= TOKEN_TYPE_STRING) {
- return this.strValue;
- } else if (t == TOKEN_TYPE_NUMBER) {
- return this.numValue.toString();
- } else {
- return null;
+ switch (this.type) {
+ case TokenType.CHARACTER:
+ case TokenType.STRING:
+ case TokenType.IDENTIFIER:
+ case TokenType.KEYWORD:
+ return this.strValue;
+ case TokenType.NUMBER:
+ return this.numValue.toString();
+ default:
+ return null;
}
}
}, {});
}());
$__export("Token", Token);
- EOF = new Token(-1, 0, 0, "");
+ EOF = new Token(-1, TokenType.CHARACTER, 0, "");
$__export("EOF", EOF);
$EOF = 0;
$__export("$EOF", $EOF);
@@ -23591,7 +23943,7 @@ System.register("angular2/src/change_detection/parser/parser", ["angular2/src/di
PrefixNot,
Conditional,
If,
- Pipe,
+ BindingPipe,
Assignment,
Chain,
KeyedAccess,
@@ -23606,7 +23958,8 @@ System.register("angular2/src/change_detection/parser/parser", ["angular2/src/di
_implicitReceiver,
INTERPOLATION_REGEXP,
Parser,
- _ParseAST;
+ _ParseAST,
+ SimpleExpressionChecker;
return {
setters: [function($__m) {
Injectable = $__m.Injectable;
@@ -23644,7 +23997,7 @@ System.register("angular2/src/change_detection/parser/parser", ["angular2/src/di
PrefixNot = $__m.PrefixNot;
Conditional = $__m.Conditional;
If = $__m.If;
- Pipe = $__m.Pipe;
+ BindingPipe = $__m.BindingPipe;
Assignment = $__m.Assignment;
Chain = $__m.Chain;
KeyedAccess = $__m.KeyedAccess;
@@ -23697,13 +24050,10 @@ System.register("angular2/src/change_detection/parser/parser", ["angular2/src/di
var ast = new _ParseAST(input, location, tokens, this._reflector, false).parseChain();
return new ASTWithSource(ast, input, location);
},
- addPipes: function(bindingAst, pipes) {
- if (ListWrapper.isEmpty(pipes))
- return bindingAst;
- var res = ListWrapper.reduce(pipes, (function(result, currentPipeName) {
- return new Pipe(result, currentPipeName, [], false);
- }), bindingAst.ast);
- return new ASTWithSource(res, bindingAst.source, bindingAst.location);
+ parseSimpleBinding: function(input, location) {
+ var tokens = this._lexer.tokenize(input);
+ var ast = new _ParseAST(input, location, tokens, this._reflector, false).parseSimpleBinding();
+ return new ASTWithSource(ast, input, location);
},
parseTemplateBindings: function(input, location) {
var tokens = this._lexer.tokenize(input);
@@ -23719,11 +24069,11 @@ System.register("angular2/src/change_detection/parser/parser", ["angular2/src/di
for (var i = 0; i < parts.length; i++) {
var part = parts[i];
if (i % 2 === 0) {
- ListWrapper.push(strings, part);
+ strings.push(part);
} else {
var tokens = this._lexer.tokenize(part);
var ast = new _ParseAST(input, location, tokens, this._reflector, false).parseChain();
- ListWrapper.push(expressions, ast);
+ expressions.push(ast);
}
}
return new ASTWithSource(new Interpolation(strings, expressions), input, location);
@@ -23814,7 +24164,7 @@ System.register("angular2/src/change_detection/parser/parser", ["angular2/src/di
var exprs = [];
while (this.index < this.tokens.length) {
var expr = this.parsePipe();
- ListWrapper.push(exprs, expr);
+ exprs.push(expr);
if (this.optionalCharacter($SEMICOLON)) {
if (!this.parseAction) {
this.error("Binding expression cannot contain chained expression");
@@ -23830,6 +24180,13 @@ System.register("angular2/src/change_detection/parser/parser", ["angular2/src/di
return exprs[0];
return new Chain(exprs);
},
+ parseSimpleBinding: function() {
+ var ast = this.parseChain();
+ if (!SimpleExpressionChecker.check(ast)) {
+ this.error("Simple binding expression can only contain field access and constants'");
+ }
+ return ast;
+ },
parsePipe: function() {
var result = this.parseExpression();
if (this.optionalOperator("|")) {
@@ -23840,9 +24197,9 @@ System.register("angular2/src/change_detection/parser/parser", ["angular2/src/di
var name = this.expectIdentifierOrKeyword();
var args = [];
while (this.optionalCharacter($COLON)) {
- ListWrapper.push(args, this.parsePipe());
+ args.push(this.parsePipe());
}
- result = new Pipe(result, name, args, true);
+ result = new BindingPipe(result, name, args);
} while (this.optionalOperator("|"));
}
return result;
@@ -24035,7 +24392,7 @@ System.register("angular2/src/change_detection/parser/parser", ["angular2/src/di
var result = [];
if (!this.next.isCharacter(terminator)) {
do {
- ListWrapper.push(result, this.parsePipe());
+ result.push(this.parsePipe());
} while (this.optionalCharacter($COMMA));
}
return result;
@@ -24047,9 +24404,9 @@ System.register("angular2/src/change_detection/parser/parser", ["angular2/src/di
if (!this.optionalCharacter($RBRACE)) {
do {
var key = this.expectIdentifierOrKeywordOrString();
- ListWrapper.push(keys, key);
+ keys.push(key);
this.expectCharacter($COLON);
- ListWrapper.push(values, this.parsePipe());
+ values.push(this.parsePipe());
} while (this.optionalCharacter($COMMA));
this.expectCharacter($RBRACE);
}
@@ -24074,7 +24431,7 @@ System.register("angular2/src/change_detection/parser/parser", ["angular2/src/di
return [];
var positionals = [];
do {
- ListWrapper.push(positionals, this.parsePipe());
+ positionals.push(this.parsePipe());
} while (this.optionalCharacter($COMMA));
return positionals;
},
@@ -24093,7 +24450,7 @@ System.register("angular2/src/change_detection/parser/parser", ["angular2/src/di
var exprs = [];
while (this.index < this.tokens.length && !this.next.isCharacter($RBRACE)) {
var expr = this.parseExpression();
- ListWrapper.push(exprs, expr);
+ exprs.push(expr);
if (this.optionalCharacter($SEMICOLON)) {
while (this.optionalCharacter($SEMICOLON)) {}
}
@@ -24144,7 +24501,7 @@ System.register("angular2/src/change_detection/parser/parser", ["angular2/src/di
var source = this.input.substring(start, this.inputIndex);
expression = new ASTWithSource(ast, source, this.location);
}
- ListWrapper.push(bindings, new TemplateBinding(key, keyIsVar, name, expression));
+ bindings.push(new TemplateBinding(key, keyIsVar, name, expression));
if (!this.optionalCharacter($SEMICOLON)) {
this.optionalCharacter($COMMA);
}
@@ -24160,11 +24517,77 @@ System.register("angular2/src/change_detection/parser/parser", ["angular2/src/di
}
}, {});
}());
+ SimpleExpressionChecker = (function() {
+ function SimpleExpressionChecker() {
+ this.simple = true;
+ }
+ return ($traceurRuntime.createClass)(SimpleExpressionChecker, {
+ visitImplicitReceiver: function(ast) {},
+ visitInterpolation: function(ast) {
+ this.simple = false;
+ },
+ visitLiteralPrimitive: function(ast) {},
+ visitAccessMember: function(ast) {},
+ visitSafeAccessMember: function(ast) {
+ this.simple = false;
+ },
+ visitMethodCall: function(ast) {
+ this.simple = false;
+ },
+ visitSafeMethodCall: function(ast) {
+ this.simple = false;
+ },
+ visitFunctionCall: function(ast) {
+ this.simple = false;
+ },
+ visitLiteralArray: function(ast) {
+ this.visitAll(ast.expressions);
+ },
+ visitLiteralMap: function(ast) {
+ this.visitAll(ast.values);
+ },
+ visitBinary: function(ast) {
+ this.simple = false;
+ },
+ visitPrefixNot: function(ast) {
+ this.simple = false;
+ },
+ visitConditional: function(ast) {
+ this.simple = false;
+ },
+ visitPipe: function(ast) {
+ this.simple = false;
+ },
+ visitKeyedAccess: function(ast) {
+ this.simple = false;
+ },
+ visitAll: function(asts) {
+ var res = ListWrapper.createFixedSize(asts.length);
+ for (var i = 0; i < asts.length; ++i) {
+ res[i] = asts[i].visit(this);
+ }
+ return res;
+ },
+ visitChain: function(ast) {
+ this.simple = false;
+ },
+ visitAssignment: function(ast) {
+ this.simple = false;
+ },
+ visitIf: function(ast) {
+ this.simple = false;
+ }
+ }, {check: function(ast) {
+ var s = new SimpleExpressionChecker();
+ ast.visit(s);
+ return s.simple;
+ }});
+ }());
}
};
});
-System.register("angular2/src/change_detection/proto_change_detector", ["angular2/src/facade/lang", "angular2/src/facade/collection", "angular2/src/change_detection/parser/ast", "angular2/src/change_detection/interfaces", "angular2/src/change_detection/change_detection_util", "angular2/src/change_detection/dynamic_change_detector", "angular2/src/change_detection/directive_record", "angular2/src/change_detection/coalesce", "angular2/src/change_detection/proto_record"], function($__export) {
+System.register("angular2/src/change_detection/proto_change_detector", ["angular2/src/facade/lang", "angular2/src/facade/collection", "angular2/src/change_detection/parser/ast", "angular2/src/change_detection/change_detection_util", "angular2/src/change_detection/dynamic_change_detector", "angular2/src/change_detection/directive_record", "angular2/src/change_detection/coalesce", "angular2/src/change_detection/proto_record"], function($__export) {
"use strict";
var __moduleName = "angular2/src/change_detection/proto_change_detector";
var BaseException,
@@ -24172,7 +24595,6 @@ System.register("angular2/src/change_detection/proto_change_detector", ["angular
isString,
ListWrapper,
ImplicitReceiver,
- ProtoChangeDetector,
ChangeDetectionUtil,
DynamicChangeDetector,
DirectiveIndex,
@@ -24351,8 +24773,6 @@ System.register("angular2/src/change_detection/proto_change_detector", ["angular
ListWrapper = $__m.ListWrapper;
}, function($__m) {
ImplicitReceiver = $__m.ImplicitReceiver;
- }, function($__m) {
- ProtoChangeDetector = $__m.ProtoChangeDetector;
}, function($__m) {
ChangeDetectionUtil = $__m.ChangeDetectionUtil;
}, function($__m) {
@@ -24366,16 +24786,15 @@ System.register("angular2/src/change_detection/proto_change_detector", ["angular
RecordType = $__m.RecordType;
}],
execute: function() {
- DynamicProtoChangeDetector = (function($__super) {
+ DynamicProtoChangeDetector = (function() {
function DynamicProtoChangeDetector(_pipeRegistry, definition) {
- $traceurRuntime.superConstructor(DynamicProtoChangeDetector).call(this);
this._pipeRegistry = _pipeRegistry;
this.definition = definition;
this._records = this._createRecords(definition);
}
return ($traceurRuntime.createClass)(DynamicProtoChangeDetector, {
instantiate: function(dispatcher) {
- return new DynamicChangeDetector(this.definition.strategy, dispatcher, this._pipeRegistry, this._records, this.definition.directiveRecords);
+ return new DynamicChangeDetector(this.definition.id, this.definition.strategy, dispatcher, this._pipeRegistry, this._records, this.definition.directiveRecords);
},
_createRecords: function(definition) {
var recordBuilder = new ProtoRecordBuilder();
@@ -24384,8 +24803,8 @@ System.register("angular2/src/change_detection/proto_change_detector", ["angular
}));
return coalesce(recordBuilder.records);
}
- }, {}, $__super);
- }(ProtoChangeDetector));
+ }, {});
+ }());
$__export("DynamicProtoChangeDetector", DynamicProtoChangeDetector);
ProtoRecordBuilder = (function() {
function ProtoRecordBuilder() {
@@ -24407,7 +24826,7 @@ System.register("angular2/src/change_detection/proto_change_detector", ["angular
},
_appendRecords: function(b, variableNames) {
if (b.isDirectiveLifecycle()) {
- ListWrapper.push(this.records, new ProtoRecord(RecordType.DIRECTIVE_LIFECYCLE, b.lifecycleEvent, null, [], [], -1, null, this.records.length + 1, b, null, false, false));
+ this.records.push(new ProtoRecord(RecordType.DIRECTIVE_LIFECYCLE, b.lifecycleEvent, null, [], [], -1, null, this.records.length + 1, b, null, false, false));
} else {
_ConvertAstIntoProtoRecords.append(this.records, b, variableNames);
}
@@ -24489,8 +24908,7 @@ System.register("angular2/src/change_detection/proto_change_detector", ["angular
},
visitPipe: function(ast) {
var value = ast.exp.visit(this);
- var type = ast.inBinding ? RecordType.BINDING_PIPE : RecordType.PIPE;
- return this._addRecord(type, ast.name, ast.name, [], null, value);
+ return this._addRecord(RecordType.PIPE, ast.name, ast.name, [], null, value);
},
visitKeyedAccess: function(ast) {
var obj = ast.obj.visit(this);
@@ -24516,9 +24934,9 @@ System.register("angular2/src/change_detection/proto_change_detector", ["angular
_addRecord: function(type, name, funcOrValue, args, fixedArgs, context) {
var selfIndex = this._records.length + 1;
if (context instanceof DirectiveIndex) {
- ListWrapper.push(this._records, new ProtoRecord(type, name, funcOrValue, args, fixedArgs, -1, context, selfIndex, this._bindingRecord, this._expressionAsString, false, false));
+ this._records.push(new ProtoRecord(type, name, funcOrValue, args, fixedArgs, -1, context, selfIndex, this._bindingRecord, this._expressionAsString, false, false));
} else {
- ListWrapper.push(this._records, new ProtoRecord(type, name, funcOrValue, args, fixedArgs, context, null, selfIndex, this._bindingRecord, this._expressionAsString, false, false));
+ this._records.push(new ProtoRecord(type, name, funcOrValue, args, fixedArgs, context, null, selfIndex, this._bindingRecord, this._expressionAsString, false, false));
}
return selfIndex;
}
@@ -24534,7 +24952,8 @@ System.register("angular2/src/change_detection/proto_change_detector", ["angular
System.register("angular2/src/di/injector", ["angular2/src/facade/collection", "angular2/src/di/binding", "angular2/src/di/exceptions", "angular2/src/facade/lang", "angular2/src/facade/async", "angular2/src/di/key", "angular2/src/di/forward_ref"], function($__export) {
"use strict";
var __moduleName = "angular2/src/di/injector";
- var List,
+ var Map,
+ List,
MapWrapper,
ListWrapper,
ResolvedBinding,
@@ -24587,10 +25006,10 @@ System.register("angular2/src/di/injector", ["angular2/src/facade/collection", "
return resolvedList;
}
function flattenBindings(bindings) {
- var map = _flattenBindings(bindings, MapWrapper.create());
- var res = ListWrapper.create();
+ var map = _flattenBindings(bindings, new Map());
+ var res = [];
MapWrapper.forEach(map, (function(binding, keyId) {
- return ListWrapper.push(res, binding);
+ return res.push(binding);
}));
return res;
}
@@ -24604,7 +25023,7 @@ System.register("angular2/src/di/injector", ["angular2/src/facade/collection", "
function _flattenBindings(bindings, res) {
ListWrapper.forEach(bindings, function(b) {
if (b instanceof ResolvedBinding) {
- MapWrapper.set(res, b.key.id, b);
+ res.set(b.key.id, b);
} else if (b instanceof List) {
_flattenBindings(b, res);
}
@@ -24614,6 +25033,7 @@ System.register("angular2/src/di/injector", ["angular2/src/facade/collection", "
$__export("resolveBindings", resolveBindings);
return {
setters: [function($__m) {
+ Map = $__m.Map;
List = $__m.List;
MapWrapper = $__m.MapWrapper;
ListWrapper = $__m.ListWrapper;
@@ -24745,7 +25165,7 @@ System.register("angular2/src/di/injector", ["angular2/src/facade/collection", "
}, {
resolve: function(bindings) {
var resolvedBindings = resolveBindings(bindings);
- var flatten = _flattenBindings(resolvedBindings, MapWrapper.create());
+ var flatten = _flattenBindings(resolvedBindings, new Map());
return _createListOfBindings(flatten);
},
resolveAndCreate: function(bindings) {
@@ -24876,7 +25296,6 @@ System.register("angular2/src/core/compiler/view_manager", ["angular2/di", "angu
isPresent,
isBlank,
BaseException,
- ViewRef,
internalView,
internalProtoView,
Renderer,
@@ -24892,7 +25311,6 @@ System.register("angular2/src/core/compiler/view_manager", ["angular2/di", "angu
isBlank = $__m.isBlank;
BaseException = $__m.BaseException;
}, function($__m) {
- ViewRef = $__m.ViewRef;
internalView = $__m.internalView;
internalProtoView = $__m.internalProtoView;
}, function($__m) {
@@ -24936,33 +25354,33 @@ System.register("angular2/src/core/compiler/view_manager", ["angular2/di", "angu
getComponentView: function(hostLocation) {
var hostView = internalView(hostLocation.parentView);
var boundElementIndex = hostLocation.boundElementIndex;
- return new ViewRef(hostView.componentChildViews[boundElementIndex]);
+ return hostView.componentChildViews[boundElementIndex].ref;
},
getViewContainer: function(location) {
var hostView = internalView(location.parentView);
return hostView.elementInjectors[location.boundElementIndex].getViewContainerRef();
},
+ getHostElement: function(hostViewRef) {
+ return internalView(hostViewRef).elementRefs[0];
+ },
+ getNamedElementInComponentView: function(hostLocation, variableName) {
+ var hostView = internalView(hostLocation.parentView);
+ var boundElementIndex = hostLocation.boundElementIndex;
+ var componentView = hostView.componentChildViews[boundElementIndex];
+ if (isBlank(componentView)) {
+ throw new BaseException(("There is no component directive at element " + boundElementIndex));
+ }
+ var elementIndex = componentView.proto.variableLocations.get(variableName);
+ if (isBlank(elementIndex)) {
+ throw new BaseException(("Could not find variable " + variableName));
+ }
+ return componentView.elementRefs[elementIndex];
+ },
getComponent: function(hostLocation) {
var hostView = internalView(hostLocation.parentView);
var boundElementIndex = hostLocation.boundElementIndex;
return this._utils.getComponentInstance(hostView, boundElementIndex);
},
- createDynamicComponentView: function(hostLocation, componentProtoViewRef, componentBinding, injector) {
- var componentProtoView = internalProtoView(componentProtoViewRef);
- var hostView = internalView(hostLocation.parentView);
- var boundElementIndex = hostLocation.boundElementIndex;
- var binder = hostView.proto.elementBinders[boundElementIndex];
- if (!binder.hasDynamicComponent()) {
- throw new BaseException(("There is no dynamic component directive at element " + boundElementIndex));
- }
- var componentView = this._createPooledView(componentProtoView);
- this._renderer.attachComponentView(hostView.render, boundElementIndex, componentView.render);
- this._utils.attachComponentView(hostView, boundElementIndex, componentView);
- this._utils.hydrateDynamicComponentInElementInjector(hostView, boundElementIndex, componentBinding, injector);
- this._utils.hydrateComponentView(hostView, boundElementIndex);
- this._viewHydrateRecurse(componentView);
- return new ViewRef(componentView);
- },
createRootHostView: function(hostProtoViewRef, overrideSelector, injector) {
var hostProtoView = internalProtoView(hostProtoViewRef);
var hostElementSelector = overrideSelector;
@@ -24976,7 +25394,7 @@ System.register("angular2/src/core/compiler/view_manager", ["angular2/di", "angu
this._viewListener.viewCreated(hostView);
this._utils.hydrateRootHostView(hostView, injector);
this._viewHydrateRecurse(hostView);
- return new ViewRef(hostView);
+ return hostView.ref;
},
destroyRootHostView: function(hostViewRef) {
var hostView = internalView(hostViewRef);
@@ -24984,42 +25402,6 @@ System.register("angular2/src/core/compiler/view_manager", ["angular2/di", "angu
this._renderer.destroyView(hostView.render);
this._viewListener.viewDestroyed(hostView);
},
- createFreeHostView: function(parentComponentLocation, hostProtoViewRef, injector) {
- var hostProtoView = internalProtoView(hostProtoViewRef);
- var hostView = this._createPooledView(hostProtoView);
- var parentComponentHostView = internalView(parentComponentLocation.parentView);
- var parentComponentBoundElementIndex = parentComponentLocation.boundElementIndex;
- this._utils.attachAndHydrateFreeHostView(parentComponentHostView, parentComponentBoundElementIndex, hostView, injector);
- this._viewHydrateRecurse(hostView);
- return new ViewRef(hostView);
- },
- destroyFreeHostView: function(parentComponentLocation, hostViewRef) {
- var hostView = internalView(hostViewRef);
- var parentView = internalView(parentComponentLocation.parentView).componentChildViews[parentComponentLocation.boundElementIndex];
- this._destroyFreeHostView(parentView, hostView);
- },
- createFreeEmbeddedView: function(location, protoViewRef) {
- var injector = arguments[2] !== (void 0) ? arguments[2] : null;
- var protoView = internalProtoView(protoViewRef);
- var parentView = internalView(location.parentView);
- var boundElementIndex = location.boundElementIndex;
- var view = this._createPooledView(protoView);
- this._utils.attachAndHydrateFreeEmbeddedView(parentView, boundElementIndex, view, injector);
- this._viewHydrateRecurse(view);
- return new ViewRef(view);
- },
- destroyFreeEmbeddedView: function(location, viewRef) {
- var parentView = internalView(location.parentView);
- var boundElementIndex = location.boundElementIndex;
- this._destroyFreeEmbeddedView(parentView, boundElementIndex, internalView(viewRef));
- },
- destroyDynamicComponent: function(location) {
- var hostView = internalView(location.parentView);
- var ei = hostView.elementInjectors[location.boundElementIndex];
- var componentView = hostView.componentChildViews[location.boundElementIndex];
- ei.destroyDynamicComponent();
- this._destroyComponentView(hostView, location.boundElementIndex, componentView);
- },
createViewInContainer: function(viewContainerLocation, atIndex, protoViewRef) {
var context = arguments[3] !== (void 0) ? arguments[3] : null;
var injector = arguments[4] !== (void 0) ? arguments[4] : null;
@@ -25033,11 +25415,11 @@ System.register("angular2/src/core/compiler/view_manager", ["angular2/di", "angu
contextBoundElementIndex = context.boundElementIndex;
}
var view = this._createPooledView(protoView);
- this._renderer.attachViewInContainer(parentView.render, boundElementIndex, atIndex, view.render);
+ this._renderer.attachViewInContainer(viewContainerLocation, atIndex, view.render);
this._utils.attachViewInContainer(parentView, boundElementIndex, contextView, contextBoundElementIndex, atIndex, view);
this._utils.hydrateViewInContainer(parentView, boundElementIndex, contextView, contextBoundElementIndex, atIndex, injector);
this._viewHydrateRecurse(view);
- return new ViewRef(view);
+ return view.ref;
},
destroyViewInContainer: function(viewContainerLocation, atIndex) {
var parentView = internalView(viewContainerLocation.parentView);
@@ -25049,7 +25431,7 @@ System.register("angular2/src/core/compiler/view_manager", ["angular2/di", "angu
var parentView = internalView(viewContainerLocation.parentView);
var boundElementIndex = viewContainerLocation.boundElementIndex;
this._utils.attachViewInContainer(parentView, boundElementIndex, null, null, atIndex, view);
- this._renderer.attachViewInContainer(parentView.render, boundElementIndex, atIndex, view.render);
+ this._renderer.attachViewInContainer(viewContainerLocation, atIndex, view.render);
return viewRef;
},
detachViewInContainer: function(viewContainerLocation, atIndex) {
@@ -25058,8 +25440,8 @@ System.register("angular2/src/core/compiler/view_manager", ["angular2/di", "angu
var viewContainer = parentView.viewContainers[boundElementIndex];
var view = viewContainer.views[atIndex];
this._utils.detachViewInContainer(parentView, boundElementIndex, atIndex);
- this._renderer.detachViewInContainer(parentView.render, boundElementIndex, atIndex, view.render);
- return new ViewRef(view);
+ this._renderer.detachViewInContainer(viewContainerLocation, atIndex, view.render);
+ return view.ref;
},
_createPooledView: function(protoView) {
var view = this._viewPool.getView(protoView);
@@ -25077,7 +25459,7 @@ System.register("angular2/src/core/compiler/view_manager", ["angular2/di", "angu
var binder = binders[binderIdx];
if (binder.hasStaticComponent()) {
var childView = this._createPooledView(binder.nestedProtoView);
- this._renderer.attachComponentView(view.render, binderIdx, childView.render);
+ this._renderer.attachComponentView(view.elementRefs[binderIdx], childView.render);
this._utils.attachComponentView(view, binderIdx, childView);
}
}
@@ -25094,27 +25476,15 @@ System.register("angular2/src/core/compiler/view_manager", ["angular2/di", "angu
var view = viewContainer.views[atIndex];
this._viewDehydrateRecurse(view, false);
this._utils.detachViewInContainer(parentView, boundElementIndex, atIndex);
- this._renderer.detachViewInContainer(parentView.render, boundElementIndex, atIndex, view.render);
+ this._renderer.detachViewInContainer(parentView.elementRefs[boundElementIndex], atIndex, view.render);
this._destroyPooledView(view);
},
_destroyComponentView: function(hostView, boundElementIndex, componentView) {
this._viewDehydrateRecurse(componentView, false);
- this._renderer.detachComponentView(hostView.render, boundElementIndex, componentView.render);
+ this._renderer.detachComponentView(hostView.elementRefs[boundElementIndex], componentView.render);
this._utils.detachComponentView(hostView, boundElementIndex);
this._destroyPooledView(componentView);
},
- _destroyFreeHostView: function(parentView, hostView) {
- this._viewDehydrateRecurse(hostView, true);
- this._renderer.detachFreeView(hostView.render);
- this._utils.detachFreeHostView(parentView, hostView);
- this._destroyPooledView(hostView);
- },
- _destroyFreeEmbeddedView: function(parentView, boundElementIndex, view) {
- this._viewDehydrateRecurse(view, false);
- this._renderer.detachFreeView(view.render);
- this._utils.detachFreeEmbeddedView(parentView, boundElementIndex, view);
- this._destroyPooledView(view);
- },
_viewHydrateRecurse: function(view) {
this._renderer.hydrateView(view.render);
var binders = view.proto.elementBinders;
@@ -25132,7 +25502,7 @@ System.register("angular2/src/core/compiler/view_manager", ["angular2/di", "angu
for (var i = 0; i < binders.length; i++) {
var componentView = view.componentChildViews[i];
if (isPresent(componentView)) {
- if (binders[i].hasDynamicComponent() || forceDestroyComponents) {
+ if (forceDestroyComponents) {
this._destroyComponentView(view, i, componentView);
} else {
this._viewDehydrateRecurse(componentView, false);
@@ -25143,15 +25513,8 @@ System.register("angular2/src/core/compiler/view_manager", ["angular2/di", "angu
for (var j = vc.views.length - 1; j >= 0; j--) {
this._destroyViewInContainer(view, i, j);
}
- for (var j = vc.freeViews.length - 1; j >= 0; j--) {
- this._destroyFreeEmbeddedView(view, i, j);
- }
}
}
- for (var i = view.freeHostViews.length - 1; i >= 0; i--) {
- var hostView = view.freeHostViews[i];
- this._destroyFreeHostView(view, hostView);
- }
}
}, {}));
$__export("AppViewManager", AppViewManager);
@@ -25160,7 +25523,7 @@ System.register("angular2/src/core/compiler/view_manager", ["angular2/di", "angu
};
});
-System.register("angular2/src/render/dom/compiler/compiler", ["angular2/di", "angular2/src/facade/async", "angular2/src/facade/lang", "angular2/src/dom/dom_adapter", "angular2/src/render/api", "angular2/src/render/dom/compiler/compile_pipeline", "angular2/src/render/dom/compiler/template_loader", "angular2/src/render/dom/compiler/compile_step_factory", "angular2/change_detection", "angular2/src/render/dom/shadow_dom/shadow_dom_strategy", "angular2/src/render/dom/view/property_setter_factory"], function($__export) {
+System.register("angular2/src/render/dom/compiler/compiler", ["angular2/di", "angular2/src/facade/async", "angular2/src/facade/lang", "angular2/src/dom/dom_adapter", "angular2/src/render/api", "angular2/src/render/dom/compiler/compile_pipeline", "angular2/src/render/dom/compiler/view_loader", "angular2/src/render/dom/compiler/compile_step_factory", "angular2/change_detection", "angular2/src/render/dom/shadow_dom/shadow_dom_strategy"], function($__export) {
"use strict";
var __moduleName = "angular2/src/render/dom/compiler/compiler";
var __decorate,
@@ -25173,11 +25536,10 @@ System.register("angular2/src/render/dom/compiler/compiler", ["angular2/di", "an
ViewType,
RenderCompiler,
CompilePipeline,
- TemplateLoader,
+ ViewLoader,
DefaultStepFactory,
Parser,
ShadowDomStrategy,
- PropertySetterFactory,
DomCompiler,
DefaultDomCompiler;
return {
@@ -25196,15 +25558,13 @@ System.register("angular2/src/render/dom/compiler/compiler", ["angular2/di", "an
}, function($__m) {
CompilePipeline = $__m.CompilePipeline;
}, function($__m) {
- TemplateLoader = $__m.TemplateLoader;
+ ViewLoader = $__m.ViewLoader;
}, function($__m) {
DefaultStepFactory = $__m.DefaultStepFactory;
}, function($__m) {
Parser = $__m.Parser;
}, function($__m) {
ShadowDomStrategy = $__m.ShadowDomStrategy;
- }, function($__m) {
- PropertySetterFactory = $__m.PropertySetterFactory;
}],
execute: function() {
__decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
@@ -25230,20 +25590,19 @@ System.register("angular2/src/render/dom/compiler/compiler", ["angular2/di", "an
return Reflect.metadata(k, v);
};
DomCompiler = (function($__super) {
- function DomCompiler(_stepFactory, _templateLoader) {
+ function DomCompiler(_stepFactory, _viewLoader) {
$traceurRuntime.superConstructor(DomCompiler).call(this);
this._stepFactory = _stepFactory;
- this._templateLoader = _templateLoader;
- this._propertySetterFactory = new PropertySetterFactory();
+ this._viewLoader = _viewLoader;
}
return ($traceurRuntime.createClass)(DomCompiler, {
- compile: function(template) {
+ compile: function(view) {
var $__0 = this;
- var tplPromise = this._templateLoader.load(template);
+ var tplPromise = this._viewLoader.load(view);
return PromiseWrapper.then(tplPromise, (function(el) {
- return $__0._compileTemplate(template, el, ViewType.COMPONENT);
+ return $__0._compileTemplate(view, el, ViewType.COMPONENT);
}), (function(e) {
- throw new BaseException(("Failed to load the template for \"" + template.componentId + "\" : " + e));
+ throw new BaseException(("Failed to load the template for \"" + view.componentId + "\" : " + e));
}));
},
compileHost: function(directiveMetadata) {
@@ -25259,77 +25618,21 @@ System.register("angular2/src/render/dom/compiler/compiler", ["angular2/di", "an
return this._compileTemplate(hostViewDef, element, ViewType.HOST);
},
_compileTemplate: function(viewDef, tplElement, protoViewType) {
- var subTaskPromises = [];
- var pipeline = new CompilePipeline(this._stepFactory.createSteps(viewDef, subTaskPromises));
+ var pipeline = new CompilePipeline(this._stepFactory.createSteps(viewDef));
var compileElements = pipeline.process(tplElement, protoViewType, viewDef.componentId);
- var protoView = compileElements[0].inheritedProtoView.build(this._propertySetterFactory);
- if (subTaskPromises.length > 0) {
- return PromiseWrapper.all(subTaskPromises).then((function(_) {
- return protoView;
- }));
- } else {
- return PromiseWrapper.resolve(protoView);
- }
+ return PromiseWrapper.resolve(compileElements[0].inheritedProtoView.build());
}
}, {}, $__super);
}(RenderCompiler));
$__export("DomCompiler", DomCompiler);
DefaultDomCompiler = (function($__super) {
- function $__1(parser, shadowDomStrategy, templateLoader) {
- $traceurRuntime.superConstructor($__1).call(this, new DefaultStepFactory(parser, shadowDomStrategy), templateLoader);
+ function $__1(parser, shadowDomStrategy, viewLoader) {
+ $traceurRuntime.superConstructor($__1).call(this, new DefaultStepFactory(parser, shadowDomStrategy), viewLoader);
}
return ($traceurRuntime.createClass)($__1, {}, {}, $__super);
}(DomCompiler));
$__export("DefaultDomCompiler", DefaultDomCompiler);
- $__export("DefaultDomCompiler", DefaultDomCompiler = __decorate([Injectable(), __metadata('design:paramtypes', [Parser, ShadowDomStrategy, TemplateLoader])], DefaultDomCompiler));
- }
- };
-});
-
-System.register("angular2/forms", ["angular2/src/forms/model", "angular2/src/forms/directives", "angular2/src/forms/validators", "angular2/src/forms/directives/validators", "angular2/src/forms/form_builder", "angular2/src/facade/lang"], function($__export) {
- "use strict";
- var __moduleName = "angular2/forms";
- var FormBuilder,
- CONST_EXPR,
- formInjectables;
- var $__exportNames = {formInjectables: true};
- var $__exportNames = {formInjectables: true};
- var $__exportNames = {formInjectables: true};
- var $__exportNames = {formInjectables: true};
- var $__exportNames = {formInjectables: true};
- return {
- setters: [function($__m) {
- Object.keys($__m).forEach(function(p) {
- if (!$__exportNames[p])
- $__export(p, $__m[p]);
- });
- }, function($__m) {
- Object.keys($__m).forEach(function(p) {
- if (!$__exportNames[p])
- $__export(p, $__m[p]);
- });
- }, function($__m) {
- Object.keys($__m).forEach(function(p) {
- if (!$__exportNames[p])
- $__export(p, $__m[p]);
- });
- }, function($__m) {
- Object.keys($__m).forEach(function(p) {
- if (!$__exportNames[p])
- $__export(p, $__m[p]);
- });
- }, function($__m) {
- FormBuilder = $__m.FormBuilder;
- Object.keys($__m).forEach(function(p) {
- if (!$__exportNames[p])
- $__export(p, $__m[p]);
- });
- }, function($__m) {
- CONST_EXPR = $__m.CONST_EXPR;
- }],
- execute: function() {
- formInjectables = CONST_EXPR([FormBuilder]);
- $__export("formInjectables", formInjectables);
+ $__export("DefaultDomCompiler", DefaultDomCompiler = __decorate([Injectable(), __metadata('design:paramtypes', [Parser, ShadowDomStrategy, ViewLoader])], DefaultDomCompiler));
}
};
});
@@ -25457,25 +25760,23 @@ System.register("angular2/src/http/http", ["angular2/src/di/decorators", "angula
System.register("angular2/di", ["angular2/src/di/annotations", "angular2/src/di/decorators", "angular2/src/di/forward_ref", "angular2/src/di/injector", "angular2/src/di/binding", "angular2/src/di/key", "angular2/src/di/exceptions", "angular2/src/di/opaque_token"], function($__export) {
"use strict";
var __moduleName = "angular2/di";
- var $__exportNames = {undefined: true};
- var $__exportNames = {undefined: true};
- var $__exportNames = {undefined: true};
return {
setters: [function($__m) {
- Object.keys($__m).forEach(function(p) {
- if (!$__exportNames[p])
- $__export(p, $__m[p]);
- });
+ $__export("InjectAnnotation", $__m.InjectAnnotation);
+ $__export("InjectPromiseAnnotation", $__m.InjectPromiseAnnotation);
+ $__export("InjectLazyAnnotation", $__m.InjectLazyAnnotation);
+ $__export("OptionalAnnotation", $__m.OptionalAnnotation);
+ $__export("InjectableAnnotation", $__m.InjectableAnnotation);
+ $__export("DependencyAnnotation", $__m.DependencyAnnotation);
}, function($__m) {
- Object.keys($__m).forEach(function(p) {
- if (!$__exportNames[p])
- $__export(p, $__m[p]);
- });
+ $__export("Inject", $__m.Inject);
+ $__export("InjectPromise", $__m.InjectPromise);
+ $__export("InjectLazy", $__m.InjectLazy);
+ $__export("Optional", $__m.Optional);
+ $__export("Injectable", $__m.Injectable);
}, function($__m) {
- Object.keys($__m).forEach(function(p) {
- if (!$__exportNames[p])
- $__export(p, $__m[p]);
- });
+ $__export("forwardRef", $__m.forwardRef);
+ $__export("resolveForwardRef", $__m.resolveForwardRef);
}, function($__m) {
$__export("resolveBindings", $__m.resolveBindings);
$__export("Injector", $__m.Injector);
@@ -25533,7 +25834,6 @@ System.register("angular2/src/core/compiler/element_injector", ["angular2/src/fa
ViewContainerRef,
ElementRef,
ProtoViewRef,
- ViewRef,
Directive,
Component,
onChange,
@@ -25607,7 +25907,6 @@ System.register("angular2/src/core/compiler/element_injector", ["angular2/src/fa
ElementRef = $__m.ElementRef;
}, function($__m) {
ProtoViewRef = $__m.ProtoViewRef;
- ViewRef = $__m.ViewRef;
}, function($__m) {
Directive = $__m.Directive;
Component = $__m.Component;
@@ -25710,7 +26009,7 @@ System.register("angular2/src/core/compiler/element_injector", ["angular2/src/fa
var res = [];
var child = this._head;
while (child != null) {
- ListWrapper.push(res, child);
+ res.push(child);
child = child._next;
}
return res;
@@ -25796,7 +26095,7 @@ System.register("angular2/src/core/compiler/element_injector", ["angular2/src/fa
return isPresent(this.metadata) && isPresent(this.metadata.events) ? this.metadata.events : [];
},
get hostActions() {
- return isPresent(this.metadata) && isPresent(this.metadata.hostActions) ? this.metadata.hostActions : MapWrapper.create();
+ return isPresent(this.metadata) && isPresent(this.metadata.hostActions) ? this.metadata.hostActions : new Map();
},
get changeDetection() {
return this.metadata.changeDetection;
@@ -25834,7 +26133,7 @@ System.register("angular2/src/core/compiler/element_injector", ["angular2/src/fa
var readAttributes = [];
ListWrapper.forEach(deps, (function(dep) {
if (isPresent(dep.attributeName)) {
- ListWrapper.push(readAttributes, dep.attributeName);
+ readAttributes.push(dep.attributeName);
}
}));
return readAttributes;
@@ -25870,15 +26169,15 @@ System.register("angular2/src/core/compiler/element_injector", ["angular2/src/fa
}());
$__export("EventEmitterAccessor", EventEmitterAccessor);
HostActionAccessor = (function() {
- function HostActionAccessor(actionExpression, getter) {
- this.actionExpression = actionExpression;
+ function HostActionAccessor(methodName, getter) {
+ this.methodName = methodName;
this.getter = getter;
}
return ($traceurRuntime.createClass)(HostActionAccessor, {subscribe: function(view, boundElementIndex, directive) {
var $__0 = this;
var eventEmitter = this.getter(directive);
- return ObservableWrapper.subscribe(eventEmitter, (function(actionObj) {
- return view.callAction(boundElementIndex, $__0.actionExpression, actionObj);
+ return ObservableWrapper.subscribe(eventEmitter, (function(actionArgs) {
+ return view.invokeElementMethod(boundElementIndex, $__0.methodName, actionArgs);
}));
}}, {});
}());
@@ -25918,7 +26217,7 @@ System.register("angular2/src/core/compiler/element_injector", ["angular2/src/fa
var res = [];
var db = this.binding;
MapWrapper.forEach(db.hostActions, (function(actionExpression, actionName) {
- ListWrapper.push(res, new HostActionAccessor(actionExpression, reflector.getter(actionName)));
+ res.push(new HostActionAccessor(actionExpression, reflector.getter(actionName)));
}));
return res;
}
@@ -25926,11 +26225,12 @@ System.register("angular2/src/core/compiler/element_injector", ["angular2/src/fa
}());
$__export("BindingData", BindingData);
ProtoElementInjector = (function() {
- function ProtoElementInjector(parent, index, bd, distanceToParent, _firstBindingIsComponent) {
+ function ProtoElementInjector(parent, index, bd, distanceToParent, _firstBindingIsComponent, directiveVariableBindings) {
this.parent = parent;
this.index = index;
this.distanceToParent = distanceToParent;
this._firstBindingIsComponent = _firstBindingIsComponent;
+ this.directiveVariableBindings = directiveVariableBindings;
var length = bd.length;
this.eventEmitterAccessors = ListWrapper.createFixedSize(length);
this.hostActionAccessors = ListWrapper.createFixedSize(length);
@@ -25950,29 +26250,24 @@ System.register("angular2/src/core/compiler/element_injector", ["angular2/src/fa
return this._strategy.getBindingAtIndex(index);
}
}, {
- create: function(parent, index, bindings, firstBindingIsComponent, distanceToParent) {
+ create: function(parent, index, bindings, firstBindingIsComponent, distanceToParent, directiveVariableBindings) {
var bd = [];
ProtoElementInjector._createDirectiveBindingData(bindings, bd, firstBindingIsComponent);
if (firstBindingIsComponent) {
ProtoElementInjector._createViewInjectorBindingData(bindings, bd);
}
ProtoElementInjector._createHostInjectorBindingData(bindings, bd, firstBindingIsComponent);
- return new ProtoElementInjector(parent, index, bd, distanceToParent, firstBindingIsComponent);
+ return new ProtoElementInjector(parent, index, bd, distanceToParent, firstBindingIsComponent, directiveVariableBindings);
},
_createDirectiveBindingData: function(dirBindings, bd, firstBindingIsComponent) {
ListWrapper.forEach(dirBindings, (function(dirBinding) {
- ListWrapper.push(bd, ProtoElementInjector._createBindingData(firstBindingIsComponent, dirBinding, dirBindings, dirBinding));
+ bd.push(ProtoElementInjector._createBindingData(firstBindingIsComponent, dirBinding, dirBindings, dirBinding));
}));
},
_createHostInjectorBindingData: function(dirBindings, bd, firstBindingIsComponent) {
- var visitedIds = MapWrapper.create();
ListWrapper.forEach(dirBindings, (function(dirBinding) {
ListWrapper.forEach(dirBinding.resolvedHostInjectables, (function(b) {
- if (MapWrapper.contains(visitedIds, b.key.id)) {
- throw new BaseException(("Multiple directives defined the same host injectable: \"" + stringify(b.key.token) + "\""));
- }
- MapWrapper.set(visitedIds, b.key.id, true);
- ListWrapper.push(bd, ProtoElementInjector._createBindingData(firstBindingIsComponent, dirBinding, dirBindings, ProtoElementInjector._createBinding(b)));
+ bd.push(ProtoElementInjector._createBindingData(firstBindingIsComponent, dirBinding, dirBindings, ProtoElementInjector._createBinding(b)));
}));
}));
},
@@ -25983,7 +26278,7 @@ System.register("angular2/src/core/compiler/element_injector", ["angular2/src/fa
_createViewInjectorBindingData: function(bindings, bd) {
var db = bindings[0];
ListWrapper.forEach(db.resolvedViewInjectables, (function(b) {
- return ListWrapper.push(bd, new BindingData(ProtoElementInjector._createBinding(b), SHADOW_DOM));
+ return bd.push(new BindingData(ProtoElementInjector._createBinding(b), SHADOW_DOM));
}));
},
_createBinding: function(b) {
@@ -26182,24 +26477,19 @@ System.register("angular2/src/core/compiler/element_injector", ["angular2/src/fa
this._lightDomAppInjector = null;
this._shadowDomAppInjector = null;
this._strategy.callOnDestroy();
- this.destroyDynamicComponent();
this._strategy.clearInstances();
this._constructionCounter = 0;
},
- destroyDynamicComponent: function() {
- if (isPresent(this._dynamicallyCreatedComponentBinding) && this._dynamicallyCreatedComponentBinding.callOnDestroy) {
- this._dynamicallyCreatedComponent.onDestroy();
- this._dynamicallyCreatedComponentBinding = null;
- this._dynamicallyCreatedComponent = null;
- }
- },
onAllChangesDone: function() {
- if (isPresent(this._query0) && this._query0.originator === this)
+ if (isPresent(this._query0) && this._query0.originator === this) {
this._query0.list.fireCallbacks();
- if (isPresent(this._query1) && this._query1.originator === this)
+ }
+ if (isPresent(this._query1) && this._query1.originator === this) {
this._query1.list.fireCallbacks();
- if (isPresent(this._query2) && this._query2.originator === this)
+ }
+ if (isPresent(this._query2) && this._query2.originator === this) {
this._query2.list.fireCallbacks();
+ }
},
hydrate: function(injector, host, preBuiltObjects) {
var p = this._proto;
@@ -26211,8 +26501,17 @@ System.register("angular2/src/core/compiler/element_injector", ["angular2/src/fa
}
this._checkShadowDomAppInjector(this._shadowDomAppInjector);
this._strategy.hydrate();
+ this._addVarBindingsToQueries();
this.hydrated = true;
},
+ hasVariableBinding: function(name) {
+ var vb = this._proto.directiveVariableBindings;
+ return isPresent(vb) && vb.has(name);
+ },
+ getVariableBinding: function(name) {
+ var index = this._proto.directiveVariableBindings.get(name);
+ return isPresent(index) ? this.getDirectiveAtIndex(index) : this.getElementRef();
+ },
_createShadowDomAppInjector: function(componentDirective, appInjector) {
if (!ListWrapper.isEmpty(componentDirective.resolvedAppInjectables)) {
return appInjector.createChildFromResolved(componentDirective.resolvedAppInjectables);
@@ -26220,12 +26519,6 @@ System.register("angular2/src/core/compiler/element_injector", ["angular2/src/fa
return appInjector;
}
},
- dynamicallyCreateComponent: function(componentDirective, parentInjector) {
- this._shadowDomAppInjector = this._createShadowDomAppInjector(componentDirective, parentInjector);
- this._dynamicallyCreatedComponentBinding = componentDirective;
- this._dynamicallyCreatedComponent = this._new(this._dynamicallyCreatedComponentBinding);
- return this._dynamicallyCreatedComponent;
- },
_checkShadowDomAppInjector: function(shadowDomAppInjector) {
if (this._proto._firstBindingIsComponent && isBlank(shadowDomAppInjector)) {
throw new BaseException('A shadowDomAppInjector is required as this ElementInjector contains a component');
@@ -26234,14 +26527,8 @@ System.register("angular2/src/core/compiler/element_injector", ["angular2/src/fa
}
},
get: function(token) {
- if (this._isDynamicallyLoadedComponent(token)) {
- return this._dynamicallyCreatedComponent;
- }
return this._getByKey(Key.get(token), self, false, null);
},
- _isDynamicallyLoadedComponent: function(token) {
- return isPresent(this._dynamicallyCreatedComponentBinding) && Key.get(token) === this._dynamicallyCreatedComponentBinding.key;
- },
hasDirective: function(type) {
return this._strategy.getObjByKeyId(Key.get(type).id, LIGHT_DOM_AND_SHADOW_DOM) !== _undefined;
},
@@ -26251,27 +26538,24 @@ System.register("angular2/src/core/compiler/element_injector", ["angular2/src/fa
getHostActionAccessors: function() {
return this._proto.hostActionAccessors;
},
+ getDirectiveVariableBindings: function() {
+ return this._proto.directiveVariableBindings;
+ },
getComponent: function() {
return this._strategy.getComponent();
},
getElementRef: function() {
- return new ElementRef(new ViewRef(this._preBuiltObjects.view), this._proto.index);
+ return this._preBuiltObjects.view.elementRefs[this._proto.index];
},
getViewContainerRef: function() {
return new ViewContainerRef(this._preBuiltObjects.viewManager, this.getElementRef());
},
- getDynamicallyLoadedComponent: function() {
- return this._dynamicallyCreatedComponent;
- },
directParent: function() {
return this._proto.distanceToParent < 2 ? this.parent : null;
},
_isComponentKey: function(key) {
return this._strategy.isComponentKey(key);
},
- _isDynamicallyLoadedComponentKey: function(key) {
- return isPresent(this._dynamicallyCreatedComponentBinding) && key.id === this._dynamicallyCreatedComponentBinding.key.id;
- },
_new: function(binding) {
if (this._constructionCounter++ > this._strategy.getMaxDirectives()) {
throw new CyclicDependencyError(binding.key);
@@ -26376,8 +26660,8 @@ System.register("angular2/src/core/compiler/element_injector", ["angular2/src/fa
},
_buildAttribute: function(dep) {
var attributes = this._proto.attributes;
- if (isPresent(attributes) && MapWrapper.contains(attributes, dep.attributeName)) {
- return MapWrapper.get(attributes, dep.attributeName);
+ if (isPresent(attributes) && attributes.has(dep.attributeName)) {
+ return attributes.get(dep.attributeName);
} else {
return null;
}
@@ -26390,6 +26674,21 @@ System.register("angular2/src/core/compiler/element_injector", ["angular2/src/fa
}
}
},
+ _addVarBindingsToQueries: function() {
+ this._addVarBindingsToQuery(this._query0);
+ this._addVarBindingsToQuery(this._query1);
+ this._addVarBindingsToQuery(this._query2);
+ },
+ _addVarBindingsToQuery: function(queryRef) {
+ if (isBlank(queryRef) || !queryRef.query.isVarBindingQuery)
+ return ;
+ var vb = queryRef.query.varBindings;
+ for (var i = 0; i < vb.length; ++i) {
+ if (this.hasVariableBinding(vb[i])) {
+ queryRef.list.add(this.getVariableBinding(vb[i]));
+ }
+ }
+ },
_createQueryRef: function(query) {
var queryList = new QueryList();
if (isBlank(this._query0)) {
@@ -26402,16 +26701,19 @@ System.register("angular2/src/core/compiler/element_injector", ["angular2/src/fa
throw new QueryError();
},
_addToQueries: function(obj, token) {
- if (isPresent(this._query0) && (this._query0.query.directive === token)) {
+ if (isPresent(this._query0) && (this._query0.query.selector === token)) {
this._query0.list.add(obj);
}
- if (isPresent(this._query1) && (this._query1.query.directive === token)) {
+ if (isPresent(this._query1) && (this._query1.query.selector === token)) {
this._query1.list.add(obj);
}
- if (isPresent(this._query2) && (this._query2.query.directive === token)) {
+ if (isPresent(this._query2) && (this._query2.query.selector === token)) {
this._query2.list.add(obj);
}
},
+ addDirectivesMatchingQuery: function(query, list) {
+ this._strategy.addDirectivesMatchingQuery(query, list);
+ },
_buildQueries: function() {
if (isPresent(this._proto)) {
this._strategy.buildQueries();
@@ -26463,15 +26765,15 @@ System.register("angular2/src/core/compiler/element_injector", ["angular2/src/fa
var queriesToUpdate = [];
if (isPresent(this.parent._query0)) {
this._pruneQueryFromTree(this.parent._query0);
- ListWrapper.push(queriesToUpdate, this.parent._query0);
+ queriesToUpdate.push(this.parent._query0);
}
if (isPresent(this.parent._query1)) {
this._pruneQueryFromTree(this.parent._query1);
- ListWrapper.push(queriesToUpdate, this.parent._query1);
+ queriesToUpdate.push(this.parent._query1);
}
if (isPresent(this.parent._query2)) {
this._pruneQueryFromTree(this.parent._query2);
- ListWrapper.push(queriesToUpdate, this.parent._query2);
+ queriesToUpdate.push(this.parent._query2);
}
this.remove();
ListWrapper.forEach(queriesToUpdate, (function(q) {
@@ -26490,7 +26792,7 @@ System.register("angular2/src/core/compiler/element_injector", ["angular2/src/fa
if (queryRef.query.descendants == false) {
if (this == queryRef.originator) {
this._addQueryToTreeSelfAndRecurse(queryRef);
- } else if (this.parent == queryRef.originator && this._proto.distanceToParent == 1) {
+ } else if (this.parent == queryRef.originator) {
this._assignQueryRef(queryRef);
}
} else {
@@ -26558,8 +26860,6 @@ System.register("angular2/src/core/compiler/element_injector", ["angular2/src/fa
}
if (isPresent(this._host) && this._host._isComponentKey(key)) {
return this._host.getComponent();
- } else if (isPresent(this._host) && this._host._isDynamicallyLoadedComponentKey(key)) {
- return this._host.getDynamicallyLoadedComponent();
} else if (optional) {
return this._appInjector(requestor).getOptional(key);
} else {
@@ -26567,7 +26867,7 @@ System.register("angular2/src/core/compiler/element_injector", ["angular2/src/fa
}
},
_appInjector: function(requestor) {
- if (isPresent(requestor) && (this._isComponentKey(requestor) || this._isDynamicallyLoadedComponentKey(requestor))) {
+ if (isPresent(requestor) && this._isComponentKey(requestor)) {
return this._shadowDomAppInjector;
} else {
return this._lightDomAppInjector;
@@ -26666,26 +26966,27 @@ System.register("angular2/src/core/compiler/element_injector", ["angular2/src/fa
},
hydrate: function() {
var p = this._protoStrategy;
- if (isPresent(p._keyId0))
- this.getObjByKeyId(p._keyId0, LIGHT_DOM_AND_SHADOW_DOM);
- if (isPresent(p._keyId1))
- this.getObjByKeyId(p._keyId1, LIGHT_DOM_AND_SHADOW_DOM);
- if (isPresent(p._keyId2))
- this.getObjByKeyId(p._keyId2, LIGHT_DOM_AND_SHADOW_DOM);
- if (isPresent(p._keyId3))
- this.getObjByKeyId(p._keyId3, LIGHT_DOM_AND_SHADOW_DOM);
- if (isPresent(p._keyId4))
- this.getObjByKeyId(p._keyId4, LIGHT_DOM_AND_SHADOW_DOM);
- if (isPresent(p._keyId5))
- this.getObjByKeyId(p._keyId5, LIGHT_DOM_AND_SHADOW_DOM);
- if (isPresent(p._keyId6))
- this.getObjByKeyId(p._keyId6, LIGHT_DOM_AND_SHADOW_DOM);
- if (isPresent(p._keyId7))
- this.getObjByKeyId(p._keyId7, LIGHT_DOM_AND_SHADOW_DOM);
- if (isPresent(p._keyId8))
- this.getObjByKeyId(p._keyId8, LIGHT_DOM_AND_SHADOW_DOM);
- if (isPresent(p._keyId9))
- this.getObjByKeyId(p._keyId9, LIGHT_DOM_AND_SHADOW_DOM);
+ var e = this._ei;
+ if (isPresent(p._keyId0) && isBlank(this._obj0))
+ this._obj0 = e._new(p._binding0);
+ if (isPresent(p._keyId1) && isBlank(this._obj1))
+ this._obj1 = e._new(p._binding1);
+ if (isPresent(p._keyId2) && isBlank(this._obj2))
+ this._obj2 = e._new(p._binding2);
+ if (isPresent(p._keyId3) && isBlank(this._obj3))
+ this._obj3 = e._new(p._binding3);
+ if (isPresent(p._keyId4) && isBlank(this._obj4))
+ this._obj4 = e._new(p._binding4);
+ if (isPresent(p._keyId5) && isBlank(this._obj5))
+ this._obj5 = e._new(p._binding5);
+ if (isPresent(p._keyId6) && isBlank(this._obj6))
+ this._obj6 = e._new(p._binding6);
+ if (isPresent(p._keyId7) && isBlank(this._obj7))
+ this._obj7 = e._new(p._binding7);
+ if (isPresent(p._keyId8) && isBlank(this._obj8))
+ this._obj8 = e._new(p._binding8);
+ if (isPresent(p._keyId9) && isBlank(this._obj9))
+ this._obj9 = e._new(p._binding9);
},
getComponent: function() {
return this._obj0;
@@ -26726,6 +27027,29 @@ System.register("angular2/src/core/compiler/element_injector", ["angular2/src/fa
this._ei._buildQueriesForDeps(p._binding9.dependencies);
}
},
+ addDirectivesMatchingQuery: function(query, list) {
+ var p = this._protoStrategy;
+ if (isPresent(p._binding0) && p._binding0.key.token === query.selector)
+ list.push(this._obj0);
+ if (isPresent(p._binding1) && p._binding1.key.token === query.selector)
+ list.push(this._obj1);
+ if (isPresent(p._binding2) && p._binding2.key.token === query.selector)
+ list.push(this._obj2);
+ if (isPresent(p._binding3) && p._binding3.key.token === query.selector)
+ list.push(this._obj3);
+ if (isPresent(p._binding4) && p._binding4.key.token === query.selector)
+ list.push(this._obj4);
+ if (isPresent(p._binding5) && p._binding5.key.token === query.selector)
+ list.push(this._obj5);
+ if (isPresent(p._binding6) && p._binding6.key.token === query.selector)
+ list.push(this._obj6);
+ if (isPresent(p._binding7) && p._binding7.key.token === query.selector)
+ list.push(this._obj7);
+ if (isPresent(p._binding8) && p._binding8.key.token === query.selector)
+ list.push(this._obj8);
+ if (isPresent(p._binding9) && p._binding9.key.token === query.selector)
+ list.push(this._obj9);
+ },
getObjByKeyId: function(keyId, visibility) {
var p = this._protoStrategy;
if (p._keyId0 === keyId && (p._visibility0 & visibility) > 0) {
@@ -26842,8 +27166,8 @@ System.register("angular2/src/core/compiler/element_injector", ["angular2/src/fa
hydrate: function() {
var p = this._protoStrategy;
for (var i = 0; i < p._keyIds.length; i++) {
- if (isPresent(p._keyIds[i])) {
- this.getObjByKeyId(p._keyIds[i], LIGHT_DOM_AND_SHADOW_DOM);
+ if (isPresent(p._keyIds[i]) && isBlank(this._objs[i])) {
+ this._objs[i] = this._ei._new(p._bindings[i]);
}
}
},
@@ -26861,6 +27185,13 @@ System.register("angular2/src/core/compiler/element_injector", ["angular2/src/fa
}
}
},
+ addDirectivesMatchingQuery: function(query, list) {
+ var p = this._protoStrategy;
+ for (var i = 0; i < p._bindings.length; i++) {
+ if (p._bindings[i].key.token === query.selector)
+ list.push(this._objs[i]);
+ }
+ },
getObjByKeyId: function(keyId, visibility) {
var p = this._protoStrategy;
for (var i = 0; i < p._keyIds.length; i++) {
@@ -26920,14 +27251,27 @@ System.register("angular2/src/core/compiler/element_injector", ["angular2/src/fa
visit: function(inj, aggregator) {
if (isBlank(inj) || !inj._hasQuery(this))
return ;
- if (inj.hasDirective(this.query.directive)) {
- ListWrapper.push(aggregator, inj.get(this.query.directive));
+ if (this.query.isVarBindingQuery) {
+ this._aggregateVariableBindings(inj, aggregator);
+ } else {
+ this._aggregateDirective(inj, aggregator);
}
var child = inj._head;
while (isPresent(child)) {
this.visit(child, aggregator);
child = child._next;
}
+ },
+ _aggregateVariableBindings: function(inj, aggregator) {
+ var vb = this.query.varBindings;
+ for (var i = 0; i < vb.length; ++i) {
+ if (inj.hasVariableBinding(vb[i])) {
+ aggregator.push(inj.getVariableBinding(vb[i]));
+ }
+ }
+ },
+ _aggregateDirective: function(inj, aggregator) {
+ inj.addDirectivesMatchingQuery(this.query, aggregator);
}
}, {});
}());
@@ -26935,7 +27279,7 @@ System.register("angular2/src/core/compiler/element_injector", ["angular2/src/fa
};
});
-System.register("angular2/http", ["angular2/di", "angular2/src/http/http", "angular2/src/http/backends/xhr_backend", "angular2/src/http/backends/browser_xhr", "angular2/src/http/base_request_options", "angular2/src/http/backends/mock_backend", "angular2/src/http/static_request", "angular2/src/http/static_response", "angular2/src/http/headers"], function($__export) {
+System.register("angular2/http", ["angular2/di", "angular2/src/http/http", "angular2/src/http/backends/xhr_backend", "angular2/src/http/backends/browser_xhr", "angular2/src/http/base_request_options", "angular2/src/http/backends/mock_backend", "angular2/src/http/static_request", "angular2/src/http/static_response", "angular2/src/http/headers", "angular2/src/http/enums", "angular2/src/http/url_search_params"], function($__export) {
"use strict";
var __moduleName = "angular2/http";
var bind,
@@ -26947,6 +27291,16 @@ System.register("angular2/http", ["angular2/di", "angular2/src/http/http", "angu
BaseRequestOptions,
RequestOptions,
httpInjectables;
+ var $__exportNames = {
+ Http: true,
+ XHRBackend: true,
+ XHRConnection: true,
+ BaseRequestOptions: true,
+ RequestOptions: true,
+ HttpFactory: true,
+ httpInjectables: true,
+ undefined: true
+ };
return {
setters: [function($__m) {
bind = $__m.bind;
@@ -26970,6 +27324,13 @@ System.register("angular2/http", ["angular2/di", "angular2/src/http/http", "angu
$__export("Response", $__m.Response);
}, function($__m) {
$__export("Headers", $__m.Headers);
+ }, function($__m) {
+ Object.keys($__m).forEach(function(p) {
+ if (!$__exportNames[p])
+ $__export(p, $__m[p]);
+ });
+ }, function($__m) {
+ $__export("URLSearchParams", $__m.URLSearchParams);
}],
execute: function() {
$__export("Http", Http), $__export("XHRBackend", XHRBackend), $__export("XHRConnection", XHRConnection), $__export("BaseRequestOptions", BaseRequestOptions), $__export("RequestOptions", RequestOptions), $__export("HttpFactory", HttpFactory);
@@ -27158,7 +27519,7 @@ System.register("angular2/src/change_detection/change_detection", ["angular2/src
};
});
-System.register("angular2/src/core/compiler/compiler", ["angular2/di", "angular2/src/facade/lang", "angular2/src/facade/async", "angular2/src/facade/collection", "angular2/src/core/compiler/directive_resolver", "angular2/src/core/compiler/view_ref", "angular2/src/core/compiler/element_injector", "angular2/src/core/compiler/template_resolver", "angular2/src/core/compiler/component_url_mapper", "angular2/src/core/compiler/proto_view_factory", "angular2/src/services/url_resolver", "angular2/src/render/api"], function($__export) {
+System.register("angular2/src/core/compiler/compiler", ["angular2/di", "angular2/src/facade/lang", "angular2/src/facade/async", "angular2/src/facade/collection", "angular2/src/core/compiler/directive_resolver", "angular2/src/core/compiler/view_ref", "angular2/src/core/compiler/element_injector", "angular2/src/core/compiler/view_resolver", "angular2/src/core/compiler/component_url_mapper", "angular2/src/core/compiler/proto_view_factory", "angular2/src/services/url_resolver", "angular2/src/services/app_root_url", "angular2/src/render/api"], function($__export) {
"use strict";
var __moduleName = "angular2/src/core/compiler/compiler";
var __decorate,
@@ -27176,14 +27537,16 @@ System.register("angular2/src/core/compiler/compiler", ["angular2/di", "angular2
isPromise,
PromiseWrapper,
ListWrapper,
+ Map,
MapWrapper,
DirectiveResolver,
ProtoViewRef,
DirectiveBinding,
- TemplateResolver,
+ ViewResolver,
ComponentUrlMapper,
ProtoViewFactory,
UrlResolver,
+ AppRootUrl,
renderApi,
CompilerCache,
Compiler;
@@ -27205,6 +27568,7 @@ System.register("angular2/src/core/compiler/compiler", ["angular2/di", "angular2
PromiseWrapper = $__m.PromiseWrapper;
}, function($__m) {
ListWrapper = $__m.ListWrapper;
+ Map = $__m.Map;
MapWrapper = $__m.MapWrapper;
}, function($__m) {
DirectiveResolver = $__m.DirectiveResolver;
@@ -27213,13 +27577,15 @@ System.register("angular2/src/core/compiler/compiler", ["angular2/di", "angular2
}, function($__m) {
DirectiveBinding = $__m.DirectiveBinding;
}, function($__m) {
- TemplateResolver = $__m.TemplateResolver;
+ ViewResolver = $__m.ViewResolver;
}, function($__m) {
ComponentUrlMapper = $__m.ComponentUrlMapper;
}, function($__m) {
ProtoViewFactory = $__m.ProtoViewFactory;
}, function($__m) {
UrlResolver = $__m.UrlResolver;
+ }, function($__m) {
+ AppRootUrl = $__m.AppRootUrl;
}, function($__m) {
renderApi = $__m;
}],
@@ -27247,29 +27613,38 @@ System.register("angular2/src/core/compiler/compiler", ["angular2/di", "angular2
return Reflect.metadata(k, v);
};
CompilerCache = (($traceurRuntime.createClass)(function() {
- this._cache = MapWrapper.create();
+ this._cache = new Map();
+ this._hostCache = new Map();
}, {
set: function(component, protoView) {
- MapWrapper.set(this._cache, component, protoView);
+ this._cache.set(component, protoView);
},
get: function(component) {
- var result = MapWrapper.get(this._cache, component);
+ var result = this._cache.get(component);
+ return normalizeBlank(result);
+ },
+ setHost: function(component, protoView) {
+ this._hostCache.set(component, protoView);
+ },
+ getHost: function(component) {
+ var result = this._hostCache.get(component);
return normalizeBlank(result);
},
clear: function() {
- MapWrapper.clear(this._cache);
+ this._cache.clear();
+ this._hostCache.clear();
}
}, {}));
$__export("CompilerCache", CompilerCache);
$__export("CompilerCache", CompilerCache = __decorate([Injectable(), __metadata('design:paramtypes', [])], CompilerCache));
- Compiler = (($traceurRuntime.createClass)(function(reader, cache, templateResolver, componentUrlMapper, urlResolver, render, protoViewFactory) {
+ Compiler = (($traceurRuntime.createClass)(function(reader, cache, viewResolver, componentUrlMapper, urlResolver, render, protoViewFactory, appUrl) {
this._reader = reader;
this._compilerCache = cache;
- this._compiling = MapWrapper.create();
- this._templateResolver = templateResolver;
+ this._compiling = new Map();
+ this._viewResolver = viewResolver;
this._componentUrlMapper = componentUrlMapper;
this._urlResolver = urlResolver;
- this._appUrl = urlResolver.resolve(null, './');
+ this._appUrl = appUrl.value;
this._render = render;
this._protoViewFactory = protoViewFactory;
}, {
@@ -27289,19 +27664,18 @@ System.register("angular2/src/core/compiler/compiler", ["angular2/di", "angular2
var componentBinding = this._bindDirective(componentTypeOrBinding);
Compiler._assertTypeIsComponent(componentBinding);
var directiveMetadata = componentBinding.metadata;
- return this._render.compileHost(directiveMetadata).then((function(hostRenderPv) {
- return $__0._compileNestedProtoViews(componentBinding, hostRenderPv, [componentBinding]);
- })).then((function(appProtoView) {
- return new ProtoViewRef(appProtoView);
- }));
- },
- compile: function(component) {
- var componentBinding = this._bindDirective(component);
- Compiler._assertTypeIsComponent(componentBinding);
- var pvOrPromise = this._compile(componentBinding);
- var pvPromise = isPromise(pvOrPromise) ? pvOrPromise : PromiseWrapper.resolve(pvOrPromise);
- return pvPromise.then((function(appProtoView) {
- return new ProtoViewRef(appProtoView);
+ var hostPvPromise;
+ var component = componentBinding.key.token;
+ var hostAppProtoView = this._compilerCache.getHost(component);
+ if (isPresent(hostAppProtoView)) {
+ hostPvPromise = PromiseWrapper.resolve(hostAppProtoView);
+ } else {
+ hostPvPromise = this._render.compileHost(directiveMetadata).then((function(hostRenderPv) {
+ return $__0._compileNestedProtoViews(componentBinding, hostRenderPv, [componentBinding]);
+ }));
+ }
+ return hostPvPromise.then((function(hostAppProtoView) {
+ return new ProtoViewRef(hostAppProtoView);
}));
},
_compile: function(componentBinding) {
@@ -27311,15 +27685,12 @@ System.register("angular2/src/core/compiler/compiler", ["angular2/di", "angular2
if (isPresent(protoView)) {
return protoView;
}
- var pvPromise = MapWrapper.get(this._compiling, component);
+ var pvPromise = this._compiling.get(component);
if (isPresent(pvPromise)) {
return pvPromise;
}
- var template = this._templateResolver.resolve(component);
- if (isBlank(template)) {
- return null;
- }
- var directives = this._flattenDirectives(template);
+ var view = this._viewResolver.resolve(component);
+ var directives = this._flattenDirectives(view);
for (var i = 0; i < directives.length; i++) {
if (!Compiler._isValidDirective(directives[i])) {
throw new BaseException(("Unexpected directive value '" + stringify(directives[i]) + "' on the View of component '" + stringify(component) + "'"));
@@ -27328,21 +27699,25 @@ System.register("angular2/src/core/compiler/compiler", ["angular2/di", "angular2
var boundDirectives = ListWrapper.map(directives, (function(directive) {
return $__0._bindDirective(directive);
}));
- var renderTemplate = this._buildRenderTemplate(component, template, boundDirectives);
+ var renderTemplate = this._buildRenderTemplate(component, view, boundDirectives);
pvPromise = this._render.compile(renderTemplate).then((function(renderPv) {
return $__0._compileNestedProtoViews(componentBinding, renderPv, boundDirectives);
}));
- MapWrapper.set(this._compiling, component, pvPromise);
+ this._compiling.set(component, pvPromise);
return pvPromise;
},
_compileNestedProtoViews: function(componentBinding, renderPv, directives) {
var $__0 = this;
var protoViews = this._protoViewFactory.createAppProtoViews(componentBinding, renderPv, directives);
var protoView = protoViews[0];
- if (renderPv.type === renderApi.ViewType.COMPONENT && isPresent(componentBinding)) {
+ if (isPresent(componentBinding)) {
var component = componentBinding.key.token;
- this._compilerCache.set(component, protoView);
- MapWrapper.delete(this._compiling, component);
+ if (renderPv.type === renderApi.ViewType.COMPONENT) {
+ this._compilerCache.set(component, protoView);
+ MapWrapper.delete(this._compiling, component);
+ } else {
+ this._compilerCache.setHost(component, protoView);
+ }
}
var nestedPVPromises = [];
ListWrapper.forEach(this._collectComponentElementBinders(protoViews), (function(elementBinder) {
@@ -27352,8 +27727,8 @@ System.register("angular2/src/core/compiler/compiler", ["angular2/di", "angular2
});
var nestedCall = $__0._compile(nestedComponent);
if (isPromise(nestedCall)) {
- ListWrapper.push(nestedPVPromises, nestedCall.then(elementBinderDone));
- } else if (isPresent(nestedCall)) {
+ nestedPVPromises.push(nestedCall.then(elementBinderDone));
+ } else {
elementBinderDone(nestedCall);
}
}));
@@ -27370,7 +27745,7 @@ System.register("angular2/src/core/compiler/compiler", ["angular2/di", "angular2
ListWrapper.forEach(protoViews, (function(protoView) {
ListWrapper.forEach(protoView.elementBinders, (function(elementBinder) {
if (isPresent(elementBinder.componentDirective)) {
- ListWrapper.push(componentElementBinders, elementBinder);
+ componentElementBinders.push(elementBinder);
}
}));
}));
@@ -27415,7 +27790,7 @@ System.register("angular2/src/core/compiler/compiler", ["angular2/di", "angular2
if (isArray(item)) {
this._flattenList(item, out);
} else {
- ListWrapper.push(out, item);
+ out.push(item);
}
}
}
@@ -27430,7 +27805,7 @@ System.register("angular2/src/core/compiler/compiler", ["angular2/di", "angular2
}
}));
$__export("Compiler", Compiler);
- $__export("Compiler", Compiler = __decorate([Injectable(), __metadata('design:paramtypes', [DirectiveResolver, CompilerCache, TemplateResolver, ComponentUrlMapper, UrlResolver, renderApi.RenderCompiler, ProtoViewFactory])], Compiler));
+ $__export("Compiler", Compiler = __decorate([Injectable(), __metadata('design:paramtypes', [DirectiveResolver, CompilerCache, ViewResolver, ComponentUrlMapper, UrlResolver, renderApi.RenderCompiler, ProtoViewFactory, AppRootUrl])], Compiler));
}
};
});
@@ -27457,9 +27832,6 @@ System.register("angular2/change_detection", ["angular2/src/change_detection/par
$__export("ExpressionChangedAfterItHasBeenChecked", $__m.ExpressionChangedAfterItHasBeenChecked);
$__export("ChangeDetectionError", $__m.ChangeDetectionError);
}, function($__m) {
- $__export("ProtoChangeDetector", $__m.ProtoChangeDetector);
- $__export("ChangeDispatcher", $__m.ChangeDispatcher);
- $__export("ChangeDetector", $__m.ChangeDetector);
$__export("ChangeDetection", $__m.ChangeDetection);
$__export("ChangeDetectorDefinition", $__m.ChangeDetectorDefinition);
}, function($__m) {
@@ -27486,8 +27858,7 @@ System.register("angular2/change_detection", ["angular2/src/change_detection/par
$__export("uninitialized", $__m.uninitialized);
}, function($__m) {
$__export("WrappedValue", $__m.WrappedValue);
- $__export("Pipe", $__m.Pipe);
- $__export("PipeFactory", $__m.PipeFactory);
+ $__export("BasePipe", $__m.BasePipe);
}, function($__m) {
$__export("NullPipe", $__m.NullPipe);
$__export("NullPipeFactory", $__m.NullPipeFactory);
@@ -27503,7 +27874,7 @@ System.register("angular2/change_detection", ["angular2/src/change_detection/par
};
});
-System.register("angular2/src/core/application", ["angular2/di", "angular2/src/facade/lang", "angular2/src/dom/browser_adapter", "angular2/src/dom/dom_adapter", "angular2/src/core/compiler/compiler", "angular2/src/reflection/reflection", "angular2/change_detection", "angular2/src/core/exception_handler", "angular2/src/render/dom/compiler/template_loader", "angular2/src/core/compiler/template_resolver", "angular2/src/core/compiler/directive_resolver", "angular2/src/facade/collection", "angular2/src/facade/async", "angular2/src/core/zone/ng_zone", "angular2/src/core/life_cycle/life_cycle", "angular2/src/render/dom/shadow_dom/shadow_dom_strategy", "angular2/src/render/dom/shadow_dom/emulated_unscoped_shadow_dom_strategy", "angular2/src/render/xhr", "angular2/src/render/xhr_impl", "angular2/src/render/dom/events/event_manager", "angular2/src/render/dom/events/key_events", "angular2/src/render/dom/events/hammer_gestures", "angular2/src/core/compiler/component_url_mapper", "angular2/src/services/url_resolver", "angular2/src/render/dom/shadow_dom/style_url_resolver", "angular2/src/render/dom/shadow_dom/style_inliner", "angular2/src/core/compiler/dynamic_component_loader", "angular2/src/core/testability/testability", "angular2/src/core/compiler/view_pool", "angular2/src/core/compiler/view_manager", "angular2/src/core/compiler/view_manager_utils", "angular2/src/core/compiler/view_listener", "angular2/src/core/compiler/proto_view_factory", "angular2/src/render/api", "angular2/src/render/dom/dom_renderer", "angular2/src/render/dom/view/view", "angular2/src/render/dom/compiler/compiler", "angular2/src/core/compiler/view_ref", "angular2/src/core/application_tokens"], function($__export) {
+System.register("angular2/src/core/application", ["angular2/di", "angular2/src/facade/lang", "angular2/src/dom/browser_adapter", "angular2/src/dom/dom_adapter", "angular2/src/core/compiler/compiler", "angular2/src/reflection/reflection", "angular2/change_detection", "angular2/src/core/exception_handler", "angular2/src/render/dom/compiler/view_loader", "angular2/src/render/dom/compiler/style_url_resolver", "angular2/src/render/dom/compiler/style_inliner", "angular2/src/core/compiler/view_resolver", "angular2/src/core/compiler/directive_resolver", "angular2/src/facade/collection", "angular2/src/facade/async", "angular2/src/core/zone/ng_zone", "angular2/src/core/life_cycle/life_cycle", "angular2/src/render/dom/shadow_dom/shadow_dom_strategy", "angular2/src/render/dom/shadow_dom/emulated_unscoped_shadow_dom_strategy", "angular2/src/render/xhr", "angular2/src/render/xhr_impl", "angular2/src/render/dom/events/event_manager", "angular2/src/render/dom/events/key_events", "angular2/src/render/dom/events/hammer_gestures", "angular2/src/core/compiler/component_url_mapper", "angular2/src/services/url_resolver", "angular2/src/services/app_root_url", "angular2/src/core/compiler/dynamic_component_loader", "angular2/src/core/testability/testability", "angular2/src/core/compiler/view_pool", "angular2/src/core/compiler/view_manager", "angular2/src/core/compiler/view_manager_utils", "angular2/src/core/compiler/view_listener", "angular2/src/core/compiler/proto_view_factory", "angular2/src/render/api", "angular2/src/render/dom/dom_renderer", "angular2/src/render/dom/compiler/compiler", "angular2/src/core/compiler/view_ref", "angular2/src/core/application_tokens"], function($__export) {
"use strict";
var __moduleName = "angular2/src/core/application";
var Injector,
@@ -27521,11 +27892,15 @@ System.register("angular2/src/core/application", ["angular2/di", "angular2/src/f
Lexer,
ChangeDetection,
DynamicChangeDetection,
+ JitChangeDetection,
+ PreGeneratedChangeDetection,
PipeRegistry,
defaultPipeRegistry,
ExceptionHandler,
- TemplateLoader,
- TemplateResolver,
+ ViewLoader,
+ StyleUrlResolver,
+ StyleInliner,
+ ViewResolver,
DirectiveResolver,
ListWrapper,
PromiseWrapper,
@@ -27541,8 +27916,7 @@ System.register("angular2/src/core/application", ["angular2/di", "angular2/src/f
HammerGesturesPlugin,
ComponentUrlMapper,
UrlResolver,
- StyleUrlResolver,
- StyleInliner,
+ AppRootUrl,
DynamicComponentLoader,
TestabilityRegistry,
Testability,
@@ -27556,7 +27930,6 @@ System.register("angular2/src/core/application", ["angular2/di", "angular2/src/f
RenderCompiler,
DomRenderer,
DOCUMENT_TOKEN,
- resolveInternalDomView,
DefaultDomCompiler,
internalView,
appComponentRefToken,
@@ -27566,10 +27939,14 @@ System.register("angular2/src/core/application", ["angular2/di", "angular2/src/f
ApplicationRef;
function _injectorBindings(appComponentType) {
var bestChangeDetection = DynamicChangeDetection;
+ if (PreGeneratedChangeDetection.isSupported()) {
+ bestChangeDetection = PreGeneratedChangeDetection;
+ } else if (JitChangeDetection.isSupported()) {
+ bestChangeDetection = JitChangeDetection;
+ }
return [bind(DOCUMENT_TOKEN).toValue(DOM.defaultDoc()), bind(appComponentTypeToken).toValue(appComponentType), bind(appComponentRefToken).toAsyncFactory((function(dynamicComponentLoader, injector, testability, registry) {
return dynamicComponentLoader.loadAsRoot(appComponentType, null, injector).then((function(componentRef) {
- var domView = resolveInternalDomView(componentRef.hostView.render);
- registry.registerApplication(domView.boundElements[0].element, testability);
+ registry.registerApplication(componentRef.location.nativeElement, testability);
return componentRef;
}));
}), [DynamicComponentLoader, Injector, Testability, TestabilityRegistry]), bind(appComponentType).toFactory((function(ref) {
@@ -27579,9 +27956,9 @@ System.register("angular2/src/core/application", ["angular2/di", "angular2/src/f
}), [ExceptionHandler]), bind(EventManager).toFactory((function(ngZone) {
var plugins = [new HammerGesturesPlugin(), new KeyEventsPlugin(), new DomEventsPlugin()];
return new EventManager(plugins, ngZone);
- }), [NgZone]), bind(ShadowDomStrategy).toFactory((function(styleUrlResolver, doc) {
- return new EmulatedUnscopedShadowDomStrategy(styleUrlResolver, doc.head);
- }), [StyleUrlResolver, DOCUMENT_TOKEN]), DomRenderer, DefaultDomCompiler, bind(Renderer).toAlias(DomRenderer), bind(RenderCompiler).toAlias(DefaultDomCompiler), ProtoViewFactory, AppViewPool, bind(APP_VIEW_POOL_CAPACITY).toValue(10000), AppViewManager, AppViewManagerUtils, AppViewListener, Compiler, CompilerCache, TemplateResolver, bind(PipeRegistry).toValue(defaultPipeRegistry), bind(ChangeDetection).toClass(bestChangeDetection), TemplateLoader, DirectiveResolver, Parser, Lexer, ExceptionHandler, bind(XHR).toValue(new XHRImpl()), ComponentUrlMapper, UrlResolver, StyleUrlResolver, StyleInliner, DynamicComponentLoader, Testability];
+ }), [NgZone]), bind(ShadowDomStrategy).toFactory((function(doc) {
+ return new EmulatedUnscopedShadowDomStrategy(doc.head);
+ }), [DOCUMENT_TOKEN]), DomRenderer, DefaultDomCompiler, bind(Renderer).toAlias(DomRenderer), bind(RenderCompiler).toAlias(DefaultDomCompiler), ProtoViewFactory, AppViewPool, bind(APP_VIEW_POOL_CAPACITY).toValue(10000), AppViewManager, AppViewManagerUtils, AppViewListener, Compiler, CompilerCache, ViewResolver, bind(PipeRegistry).toValue(defaultPipeRegistry), bind(ChangeDetection).toClass(bestChangeDetection), ViewLoader, DirectiveResolver, Parser, Lexer, ExceptionHandler, bind(XHR).toValue(new XHRImpl()), ComponentUrlMapper, UrlResolver, StyleUrlResolver, StyleInliner, DynamicComponentLoader, Testability, AppRootUrl];
}
function _createNgZone(givenReporter) {
var defaultErrorReporter = (function(exception, stackTrace) {
@@ -27618,7 +27995,7 @@ System.register("angular2/src/core/application", ["angular2/di", "angular2/src/f
if (isBlank(_rootInjector))
_rootInjector = Injector.resolveAndCreate(_rootBindings);
var mergedBindings = isPresent(bindings) ? ListWrapper.concat(_injectorBindings(appComponentType), bindings) : _injectorBindings(appComponentType);
- ListWrapper.push(mergedBindings, bind(NgZone).toValue(zone));
+ mergedBindings.push(bind(NgZone).toValue(zone));
return _rootInjector.resolveAndCreateChild(mergedBindings);
}
$__export("bootstrap", bootstrap);
@@ -27645,14 +28022,20 @@ System.register("angular2/src/core/application", ["angular2/di", "angular2/src/f
Lexer = $__m.Lexer;
ChangeDetection = $__m.ChangeDetection;
DynamicChangeDetection = $__m.DynamicChangeDetection;
+ JitChangeDetection = $__m.JitChangeDetection;
+ PreGeneratedChangeDetection = $__m.PreGeneratedChangeDetection;
PipeRegistry = $__m.PipeRegistry;
defaultPipeRegistry = $__m.defaultPipeRegistry;
}, function($__m) {
ExceptionHandler = $__m.ExceptionHandler;
}, function($__m) {
- TemplateLoader = $__m.TemplateLoader;
+ ViewLoader = $__m.ViewLoader;
}, function($__m) {
- TemplateResolver = $__m.TemplateResolver;
+ StyleUrlResolver = $__m.StyleUrlResolver;
+ }, function($__m) {
+ StyleInliner = $__m.StyleInliner;
+ }, function($__m) {
+ ViewResolver = $__m.ViewResolver;
}, function($__m) {
DirectiveResolver = $__m.DirectiveResolver;
}, function($__m) {
@@ -27683,9 +28066,7 @@ System.register("angular2/src/core/application", ["angular2/di", "angular2/src/f
}, function($__m) {
UrlResolver = $__m.UrlResolver;
}, function($__m) {
- StyleUrlResolver = $__m.StyleUrlResolver;
- }, function($__m) {
- StyleInliner = $__m.StyleInliner;
+ AppRootUrl = $__m.AppRootUrl;
}, function($__m) {
DynamicComponentLoader = $__m.DynamicComponentLoader;
}, function($__m) {
@@ -27708,8 +28089,6 @@ System.register("angular2/src/core/application", ["angular2/di", "angular2/src/f
}, function($__m) {
DomRenderer = $__m.DomRenderer;
DOCUMENT_TOKEN = $__m.DOCUMENT_TOKEN;
- }, function($__m) {
- resolveInternalDomView = $__m.resolveInternalDomView;
}, function($__m) {
DefaultDomCompiler = $__m.DefaultDomCompiler;
}, function($__m) {
@@ -27824,7 +28203,7 @@ System.register("angular2/core", ["angular2/src/core/annotations/visibility", "a
};
});
-System.register("angular2/angular2", ["angular2/change_detection", "angular2/core", "angular2/annotations", "angular2/directives", "angular2/forms", "angular2/di", "angular2/http", "angular2/src/facade/async", "angular2/src/render/api", "angular2/src/render/dom/dom_renderer"], function($__export) {
+System.register("angular2/angular2", ["angular2/change_detection", "angular2/di", "angular2/core", "angular2/annotations", "angular2/directives", "angular2/forms", "angular2/http", "angular2/src/facade/async", "angular2/src/render/api", "angular2/src/render/dom/dom_renderer"], function($__export) {
"use strict";
var __moduleName = "angular2/angular2";
var $__exportNames = {undefined: true};
@@ -27832,15 +28211,54 @@ System.register("angular2/angular2", ["angular2/change_detection", "angular2/cor
var $__exportNames = {undefined: true};
var $__exportNames = {undefined: true};
var $__exportNames = {undefined: true};
- var $__exportNames = {undefined: true};
- var $__exportNames = {undefined: true};
- var $__exportNames = {undefined: true};
return {
setters: [function($__m) {
- Object.keys($__m).forEach(function(p) {
- if (!$__exportNames[p])
- $__export(p, $__m[p]);
- });
+ $__export("DehydratedException", $__m.DehydratedException);
+ $__export("ExpressionChangedAfterItHasBeenChecked", $__m.ExpressionChangedAfterItHasBeenChecked);
+ $__export("ChangeDetectionError", $__m.ChangeDetectionError);
+ $__export("ChangeDetection", $__m.ChangeDetection);
+ $__export("ON_PUSH", $__m.ON_PUSH);
+ $__export("DEFAULT", $__m.DEFAULT);
+ $__export("ChangeDetectorRef", $__m.ChangeDetectorRef);
+ $__export("PipeRegistry", $__m.PipeRegistry);
+ $__export("WrappedValue", $__m.WrappedValue);
+ $__export("NullPipe", $__m.NullPipe);
+ $__export("NullPipeFactory", $__m.NullPipeFactory);
+ $__export("defaultPipes", $__m.defaultPipes);
+ $__export("DynamicChangeDetection", $__m.DynamicChangeDetection);
+ $__export("JitChangeDetection", $__m.JitChangeDetection);
+ $__export("PreGeneratedChangeDetection", $__m.PreGeneratedChangeDetection);
+ $__export("preGeneratedProtoDetectors", $__m.preGeneratedProtoDetectors);
+ $__export("defaultPipeRegistry", $__m.defaultPipeRegistry);
+ $__export("DirectiveIndex", $__m.DirectiveIndex);
+ $__export("BindingRecord", $__m.BindingRecord);
+ $__export("Locals", $__m.Locals);
+ $__export("ChangeDetectorDefinition", $__m.ChangeDetectorDefinition);
+ $__export("BasePipe", $__m.BasePipe);
+ $__export("DirectiveRecord", $__m.DirectiveRecord);
+ }, function($__m) {
+ $__export("Inject", $__m.Inject);
+ $__export("InjectPromise", $__m.InjectPromise);
+ $__export("InjectLazy", $__m.InjectLazy);
+ $__export("Optional", $__m.Optional);
+ $__export("Injectable", $__m.Injectable);
+ $__export("forwardRef", $__m.forwardRef);
+ $__export("resolveForwardRef", $__m.resolveForwardRef);
+ $__export("Injector", $__m.Injector);
+ $__export("Binding", $__m.Binding);
+ $__export("bind", $__m.bind);
+ $__export("Key", $__m.Key);
+ $__export("NoBindingError", $__m.NoBindingError);
+ $__export("AbstractBindingError", $__m.AbstractBindingError);
+ $__export("AsyncBindingError", $__m.AsyncBindingError);
+ $__export("CyclicDependencyError", $__m.CyclicDependencyError);
+ $__export("InstantiationError", $__m.InstantiationError);
+ $__export("InvalidBindingError", $__m.InvalidBindingError);
+ $__export("NoAnnotationError", $__m.NoAnnotationError);
+ $__export("OpaqueToken", $__m.OpaqueToken);
+ $__export("ResolvedBinding", $__m.ResolvedBinding);
+ $__export("BindingBuilder", $__m.BindingBuilder);
+ $__export("Dependency", $__m.Dependency);
}, function($__m) {
Object.keys($__m).forEach(function(p) {
if (!$__exportNames[p])
@@ -27857,15 +28275,26 @@ System.register("angular2/angular2", ["angular2/change_detection", "angular2/cor
$__export(p, $__m[p]);
});
}, function($__m) {
- Object.keys($__m).forEach(function(p) {
- if (!$__exportNames[p])
- $__export(p, $__m[p]);
- });
- }, function($__m) {
- Object.keys($__m).forEach(function(p) {
- if (!$__exportNames[p])
- $__export(p, $__m[p]);
- });
+ $__export("AbstractControl", $__m.AbstractControl);
+ $__export("Control", $__m.Control);
+ $__export("ControlGroup", $__m.ControlGroup);
+ $__export("ControlArray", $__m.ControlArray);
+ $__export("NgControlName", $__m.NgControlName);
+ $__export("NgFormControl", $__m.NgFormControl);
+ $__export("NgModel", $__m.NgModel);
+ $__export("NgControl", $__m.NgControl);
+ $__export("NgControlGroup", $__m.NgControlGroup);
+ $__export("NgFormModel", $__m.NgFormModel);
+ $__export("NgForm", $__m.NgForm);
+ $__export("DefaultValueAccessor", $__m.DefaultValueAccessor);
+ $__export("CheckboxControlValueAccessor", $__m.CheckboxControlValueAccessor);
+ $__export("SelectControlValueAccessor", $__m.SelectControlValueAccessor);
+ $__export("formDirectives", $__m.formDirectives);
+ $__export("Validators", $__m.Validators);
+ $__export("NgValidator", $__m.NgValidator);
+ $__export("NgRequiredValidator", $__m.NgRequiredValidator);
+ $__export("FormBuilder", $__m.FormBuilder);
+ $__export("formInjectables", $__m.formInjectables);
}, function($__m) {
Object.keys($__m).forEach(function(p) {
if (!$__exportNames[p])