text: /* */ 
  "format cjs";
  var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
      else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
      return c > 3 && r && Object.defineProperty(target, key, r), r;
  };
  var __metadata = (this && this.__metadata) || function (k, v) {
      if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  };
  import { CONST, isStringMap } from 'angular2/src/facade/lang';
  import { StringMapWrapper } from 'angular2/src/facade/collection';
  import { Injectable, Pipe } from 'angular2/core';
  import { InvalidPipeArgumentException } from './invalid_pipe_argument_exception';
  /**
   *
   *  Generic selector that displays the string that matches the current value.
   *
   *  ## Usage
   *
   *  expression | i18nSelect:mapping
   *
   *  where `mapping` is an object that indicates the text that should be displayed
   *  for different values of the provided `expression`.
   *
   *  ## Example
   *
   *  ```
   *  <div>
   *    {{ gender | i18nSelect: inviteMap }}
   *  </div>
   *
   *  class MyApp {
   *    gender: string = 'male';
   *    inviteMap: any = {
   *      'male': 'Invite her.',
   *      'female': 'Invite him.',
   *      'other': 'Invite them.'
   *    }
   *    ...
   *  }
   *  ```
   */
  export let I18nSelectPipe = class {
      transform(value, args = null) {
          var mapping = args[0];
          if (!isStringMap(mapping)) {
              throw new InvalidPipeArgumentException(I18nSelectPipe, mapping);
          }
          return StringMapWrapper.contains(mapping, value) ? mapping[value] : mapping['other'];
      }
  };
  I18nSelectPipe = __decorate([
      CONST(),
      Pipe({ name: 'i18nSelect', pure: true }),
      Injectable(), 
      __metadata('design:paramtypes', [])
  ], I18nSelectPipe);
  