<!DOCTYPE html>
<html>

  <head>
    <title> Angular 2 Menu – Salesforce - Example  </title>
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="https://www.lightningdesignsystem.com/assets/styles/slds.css">
    <link rel="stylesheet" href="styles.css">
    <script src="https://cdnjs.cloudflare.com/ajax/libs/es6-shim/0.35.0/es6-shim.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.19.25/system-polyfills.js"></script>
    <script src="https://npmcdn.com/angular2@2.0.0-beta.15/es6/dev/src/testing/shims_for_IE.js"></script>
    <script src="https://code.angularjs.org/2.0.0-beta.15/angular2-polyfills.js"></script>
    <script src="https://code.angularjs.org/tools/system.js"></script>
    <script src="https://npmcdn.com/typescript@^1.8.10/lib/typescript.js"></script>
    <script src="https://code.angularjs.org/2.0.0-beta.15/Rx.js"></script>
    <script src="https://code.angularjs.org/2.0.0-beta.15/angular2.dev.js"></script>
    <script src="https://npmcdn.com/ng-lightning@0.7.0/ng-lightning.bundle.js"></script>
    <script>
      System.config({
        transpiler: 'typescript',
        typescriptOptions: { emitDecoratorMetadata: true },
        packages: {'app': {defaultExtension: 'ts'}},
        paths: {
          'tether': 'https://cdnjs.cloudflare.com/ajax/libs/tether/1.2.0/js/tether.js'
        },
      });
      System.import('app/main').then(null, console.error.bind(console));
    </script>
  </head>
 
  <body>
    <h1 style="height:50px; padding : 10px; font-size: 19px">
        Angular 2 Menu – Salesforce - Example     
      </h1>
     <a target="_blank" href="http://www.angulartypescript.com/angular-2-tutorial/" title="Angular 2 Tutorial"> 
     <img src="http://www.angulartypescript.com/wp-content/uploads/2016/03/learn-more-angular-2.png" alt="Smiley face" height="200" width="500">   
    </a>
    <my-app>Loading...</my-app>
  </body>

</html>


<!-- 
Copyright 2016 angulartypescript.com. All Rights Reserved.
Everyone can use this source code; don’t forget to indicate the source please:
http://www.angulartypescript.com/ 
-->
/* Styles go here */

import {bootstrap}  from 'angular2/platform/browser';
import {Component} from 'angular2/core';
import {NGL_DIRECTIVES, provideNglConfig} from 'ng-lightning/ng-lightning';

@Component({
  selector: 'my-app',
  directives: [NGL_DIRECTIVES],
  templateUrl: 'app/angular-2-menu.html'
})
export class Angular2Menu {
 
 open: boolean;
  picks: any[] = [];

  items = [
    { value: 'Element 1', icon: 'BMW 1' },
    { value: 'Element 2', icon: 'BMW 2' },
    { value: 'Element 3', icon: 'BMW 3' },
    { value: 'Element 4', icon: 'BMW 4' },
  ];

  onToggle($event: Event) {
    $event.stopPropagation();
    this.open = true;
  }
   
}

bootstrap(Angular2Menu, [provideNglConfig()]);
<div style="padding-left:10px;padding-top:10px">
<div class="slds-text-heading--label slds-m-bottom--small">Angular 2 Dropdown Menu</div>
<span nglDropdown [(open)]="open">
  <button class="slds-button slds-button--neutral" nglDropdownTrigger>
    <span class="slds-truncate">Select an item</span>
    <ngl-icon icon="down" size="x-small"></ngl-icon>
  </button>
  <div class="slds-dropdown slds-dropdown--left">
    <ul class="dropdown__list" role="menu">
      <li class="slds-dropdown__item" *ngFor="#item of items;">
        <a role="menuitem" nglDropdownItem (click)="selected = item.value; open = false;">
          <p class="slds-truncate">{{item.value}}</p>
          <ngl-icon [icon]="item.icon" size="x-small"></ngl-icon>
        </a>
      </li>
    </ul>
  </div>
</span>

<button type="button" nglButton="neutral" (click)="onToggle($event)">Open</button>
<button type="button" nglButton="neutral" style="margin-left: 0px;" (click)="open = !open">Toggle</button>

<div *ngIf="selected" class="slds-m-top--large">You selected: <b>{{selected}}</b></div>


<div class="slds-text-heading--label slds-m-bottom--small slds-m-top--x-large">Picklist Multi select</div>
<span nglDropdown [(open)]="open2" [(nglPick)]="picks" nglPickMultiple>
  <button class="slds-button slds-button--neutral" nglDropdownTrigger>
    <span class="slds-truncate">{{picks.length ? picks.length + ' options selected' : 'Select an Option'}}</span>
    <ngl-icon icon="down" size="x-small"></ngl-icon>
  </button>
  <div class="slds-dropdown slds-dropdown--left">
    <ul class="dropdown__list" role="menu">
      <li class="slds-dropdown__item" *ngFor="#item of items;" [nglPickOption]="item" nglPickActiveClass="slds-is-selected">
        <a role="menuitem" nglDropdownItem>
          <p class="slds-truncate">
            <ngl-icon icon="check" size="x-small" svgClass="slds-icon--selected slds-m-right--small"></ngl-icon>
            {{item.value}}
          </p>
        </a>
      </li>
    </ul>
  </div>
</span>
</div>