UNPKG

angular-material-npfixed

Version:

The Angular Material project is an implementation of Material Design in Angular.js. This project provides a set of reusable, well-tested, and accessible Material Design UI components. Angular Material is supported internally at Google by the Angular.js, M

140 lines (125 loc) 3.33 kB
(function() { 'use strict'; angular .module('panelGroupsDemo', ['ngMaterial']) .controller('PanelGroupsCtrl', PanelGroupsCtrl) .controller('PanelMenuCtrl', PanelMenuCtrl); function PanelGroupsCtrl($mdPanel) { this.settings = { name: 'settings', items: [ 'Home', 'About', 'Contact' ] }; this.favorite = { name: 'favorite', items: [ 'Add to Favorites' ] }; this.more = { name: 'more', items: [ 'Account', 'Sign Out' ] }; this.tools = { name: 'tools', items: [ 'Create', 'Delete' ] }; this.code = { name: 'code', items: [ 'See Source', 'See Commits' ] }; this.menuTemplate = '' + '<div class="menu-panel" md-whiteframe="4">' + ' <div class="menu-content">' + ' <div class="menu-item" ng-repeat="item in ctrl.items">' + ' <button class="md-button">' + ' <span>{{item}}</span>' + ' </button>' + ' </div>' + ' <md-divider></md-divider>' + ' <div class="menu-item">' + ' <button class="md-button" ng-click="ctrl.closeMenu()">' + ' <span>Close Menu</span>' + ' </button>' + ' </div>' + ' </div>' + '</div>'; $mdPanel.newPanelGroup('toolbar', { maxOpen: 2 }); $mdPanel.newPanelGroup('menus', { maxOpen: 3 }); this.showToolbarMenu = function($event, menu) { var template = this.menuTemplate; var position = $mdPanel.newPanelPosition() .relativeTo($event.srcElement) .addPanelPosition( $mdPanel.xPosition.ALIGN_START, $mdPanel.yPosition.BELOW ); var config = { id: 'toolbar_' + menu.name, attachTo: angular.element(document.body), controller: PanelMenuCtrl, controllerAs: 'ctrl', template: template, position: position, panelClass: 'menu-panel-container', locals: { items: menu.items }, openFrom: $event, focusOnOpen: false, zIndex: 100, propagateContainerEvents: true, groupName: ['toolbar', 'menus'] }; $mdPanel.open(config); }; this.showContentMenu = function($event, menu) { var template = this.menuTemplate; var position = $mdPanel.newPanelPosition() .relativeTo($event.srcElement) .addPanelPosition( $mdPanel.xPosition.ALIGN_START, $mdPanel.yPosition.BELOW ); var config = { id: 'content_' + menu.name, attachTo: angular.element(document.body), controller: PanelMenuCtrl, controllerAs: 'ctrl', template: template, position: position, panelClass: 'menu-panel-container', locals: { items: menu.items }, openFrom: $event, focusOnOpen: false, zIndex: 100, propagateContainerEvents: true, groupName: 'menus' }; $mdPanel.open(config); }; } function PanelMenuCtrl(mdPanelRef) { this.closeMenu = function() { mdPanelRef && mdPanelRef.close(); } } })();