// // @description : // @author : Adarsh Pastakia // @copyright : 2016 // @license : MIT import {autoinject, bindable, containerless, customElement, inlineView} from "aurelia-framework"; import {UIEvent} from "../../utils/ui-event"; @autoinject() @customElement('ui-page') @inlineView(` `) export class UIPage { constructor(public element: Element) { } @bindable() pageClass = ''; @bindable() pageTitle; } @autoinject() @customElement('ui-section') @inlineView(``) export class UISection { constructor(public element: Element) { this.__columnLayout = !element.hasAttribute('row-layout'); if (element.hasAttribute('center')) element.classList.add('ui-align-center'); if (element.hasAttribute('middle')) element.classList.add('ui-align-middle'); } __columnLayout = true; } @autoinject() @containerless() @customElement('ui-router-view') @inlineView(``) export class UIRouterView { constructor(public element: Element) { } } @autoinject() @customElement('ui-content') @inlineView(``) export class UIContent { constructor(public element: Element) { if (element.hasAttribute('scroll')) element.classList.add('ui-scroll'); if (element.hasAttribute('padded')) element.classList.add('ui-pad-all'); } } @autoinject() @customElement('ui-sidebar') @inlineView(``) export class UISidebar { constructor(public element: Element) { if (element.hasAttribute('scroll')) this.__class += ' ui-scroll'; if (element.hasAttribute('padded')) this.__class += ' ui-pad-all'; if (this.__miniDisplay = element.hasAttribute('mini-display')) this.element.classList.add('ui-mini-display'); this.__collapsible = element.hasAttribute('collapsible'); this.__obClick = UIEvent.subscribe('mouseclick', () => { this.element.classList.remove('ui-show-overlay'); }); } bind() { this.collapsed = isTrue(this.collapsed); } detached() { if (this.__obClick) this.__obClick.dispose(); } __obClick; __class = ''; __miniDisplay = false; __collapsible = false; @bindable() label = ""; @bindable() collapsed = false; @bindable() position = "start"; __toggleCollapse($event) { this.collapsed = !this.collapsed; this.element.classList.remove('ui-show-overlay'); $event.cancelBubble = true; return true; } __showOverlay($event) { if (this.__miniDisplay || $event.target != this.element) return true; if (this.collapsed) this.element.classList.add('ui-show-overlay'); else this.element.classList.remove('ui-show-overlay'); } } @autoinject() @customElement('ui-divider') @inlineView(``) export class UIDivider { constructor(public element: Element) { } } @autoinject() @customElement('ui-toolbar') @inlineView(``) export class UIToolbar { constructor(public element: Element) { if (element.hasAttribute('start')) element.classList.add('ui-start'); } }