decouple content from aside 100%

This commit is contained in:
Andrew
2015-03-25 20:07:03 -06:00
parent 8e3d03975c
commit b6579f4be2
4 changed files with 17 additions and 32 deletions

View File

@ -1,5 +1,5 @@
.notransition {
.no-transition {
transition: none !important;
}

View File

@ -36,12 +36,6 @@ export class Aside {
config: AsideConfig
) {
this.domElement = element.domElement
this.transformSetter = transformSetter
// this.noTransitionSetter = noTransitionSetter
this.noTransitionSetter = is => { this.domElement.classList[is?'add':'remove']('notransition') }
this.openSetter = is => { this.domElement.classList[is?'add':'remove']('open') }
// TODO inject constant instead of using domElement.getAttribute
// TODO let config / platform handle defaults transparently

View File

@ -11,17 +11,17 @@ class AsideBaseType {
//FIXME(ajoslin): have to wait for for bindings to apply in a component
setTimeout(() => {
this.aside.content.setIsAside(true);
this.aside.content.domElement.classList.add('aside-content')
})
}
setSliding(isSliding) {
this.aside.noTransitionSetter(isSliding);
this.aside.domElement.classList[isSliding ? 'add' : 'remove']('no-transition');
}
setOpen(isOpen) {
this.aside.openSetter(isOpen);
this.aside.domElement.classList[isOpen ? 'add' : 'remove']('open');
}
setTransform(transform) {
this.aside.transformSetter(transform);
this.aside.domElement.style.transform = transform;
}
}
@ -30,27 +30,30 @@ export class AsideOverlayType extends AsideBaseType {}
export class AsidePushType extends AsideBaseType {
setSliding(isSliding) {
super.setSliding(isSliding);
this.aside.content.noTransitionSetter(isSliding);
this.aside.content.domElement.classList[isSliding ? 'add' : 'remove']('no-transition');
}
setOpen(isOpen) {
super.setOpen(isOpen);
this.aside.content.asideOpenSetter(isOpen, this.aside.side);
this.aside.content.domElement.classList[isOpen ? 'add' : 'remove'](
`aside-open-${this.aside.side}`
);
}
setTransform(transform) {
super.setTransform(transform);
this.aside.content.transformSetter(transform);
this.aside.content.domElement.style.transform = transform;
}
}
export class AsideRevealType extends AsideBaseType {
setSliding(isSliding) {
this.aside.content.noTransitionSetter(isSliding);
this.aside.content.domElement.classList[isSliding ? 'add' : 'remove']('no-transition');
}
setOpen(isOpen) {
super.setOpen(isOpen);
this.aside.content.asideOpenSetter(isOpen, this.aside.side);
this.aside.content.domElement.classList[isOpen ? 'add' : 'remove'](
`aside-open-${this.aside.side}`
);
}
setTransform(transform) {
this.aside.content.transformSetter(transform);
this.aside.content.domElement.style.transform = transform;
}
}

View File

@ -11,21 +11,9 @@ import {NgElement, Component, Template, PropertySetter} from 'angular2/angular2'
})
export class Content {
constructor(
@NgElement() ele:NgElement,
@PropertySetter('style.transform') transformSetter: Function,
@PropertySetter('class.notransition') noTransitionSetter: Function
@NgElement() element:NgElement
) {
this.domElement = ele.domElement;
this.domElement = element.domElement;
this.domElement.classList.add('content');
this.noTransitionSetter = is => { this.domElement.classList[is?'add':'remove']('notransition'); }
// this.noTransitionSetter = noTransitionSetter;
this.transformSetter = transformSetter;
this.setIsAside = is => { this.domElement.classList.add('aside-content'); };
this.asideOpenSetter = (is, side) => {
this.domElement.classList[is?'add':'remove'](`aside-open-${side}`);
}
}
}