{
I"
metadata:ET{I"modules;�T{I"imports;�T[�I"exports;�T{I"
exported;�T[�I"specifiers;�T[�I"usedHelpers;�T[�I"ignored;�TFI"	code;�TI"5'use strict';

Rev.registerMixin('Core', {

  suitSetObject: function suitSetObject(base, flags) {
    var obj = {};
    obj[base] = true;
    for (var _name in flags) {
      obj[base + '--' + _name] = flags[_name];
    }
    return obj;
  },

  suitSet: function suitSet(base, flags) {
    return this.classSet(this.suitSetObject(base, flags));
  },

  getPropsWithout: function getPropsWithout() {
    for (var _len = arguments.length, names = Array(_len), _key = 0; _key < _len; _key++) {
      names[_key] = arguments[_key];
    }

    return _.omit(this.props, names);
  },

  classSet: function classSet(flags) {
    var classNames = [];
    for (var _name2 in flags) {
      if (flags[_name2]) {
        classNames.push(_name2);
      }
    }
    return classNames.join(' ');
  },

  cx: function cx() {
    this.classSet.apply(this, arguments);
  },

  getClassSetObjectFromClassName: function getClassSetObjectFromClassName(className) {
    var obj = {};
    className.split(' ').forEach(function (name) {
      obj[name.trim()] = true;
    });
    return obj;
  },

  classAdd: function classAdd(flags) {
    var obj = this.getClassSetObjectFromClassName(this.props.className || '');
    _.extend(obj, flags);
    return this.classSet(obj);
  },

  mapChildren: function mapChildren(fn) {
    return React.Children.map(this.props.children, fn);
  },

  getNormalizedChildren: function getNormalizedChildren() {
    console.warn('Core mixin method `getNormalizedChildren` is deprecated. Please use `mapChildren` or `React.Children.map`.');
    return this.mapChildren(function (x) {
      return x;
    });
  }

});
//
// suitSet: (base, flags)->
//   classes = {}
//   classes[base] = true
//   for key, value of flags
//     classes["#{base}--#{key}"] = value
//   @cx classes
//
// # Returns a copy of @props sans specific keys
// # Example:
// #   props = @getPropsWithout "className"
// #   <div {...props}><button className={@props.className}>hi</button></div>
// getPropsWithout: ->
//   skipList = {}
//   skipList[name] = true for name in arguments
//   props = {}
//   for name, value of @props
//     props[name] = value unless skipList[name]
//   props
//
// # An object that maps the CSS classes of @props.className from their name to `true`.
// _getClassSetObject: ->
//   return {} unless @props.className
//   classNames = @props.className.split ' '
//   object = {}
//   object[name] = true for name in classNames
//   object
//
// # Like React.addons.classSet but where the existing classes of @props.className are included.
// # (Unless they are overridden by `classToBoolMap`.)
// # Example:
// #   className = @classAdd
// #     active: @props.active
// #     <div className={className}>hi</div>
// classAdd: (classToBoolMap) ->
//   newClassToBoolMap = @_getClassSetObject()
//   newClassToBoolMap[name] = value for name, value of classToBoolMap
//   @classSet newClassToBoolMap
//
// # Alias for `React.addons.classSet`
// classSet: (classNameToBool) ->
//   classNames = []
//   for className, shouldBeIncluded of classNameToBool
//     classNames.push className if shouldBeIncluded
//   classNames.join ' '
//
// # Alias for `@classSet`
// cx: -> @classSet.apply this, arguments
//
// # Returns @props.children always as either `null` or an array.
// # This is because for some reason in React `children` is only an array when
// # there is more than one. Sometimes it's easier to be able to assume it's an
// # array.
// # Example:
// #   <ul>{@getNormalizedChildren().map (i, child) -> <li key={i}>{child}</li>}</ul>
// getNormalizedChildren: ->
//   console.warn "Core mixin method `getNormalizedChildren` is deprecated. Please use `mapChildren` or `React.Children.map`."
//   children = @props.children
//   if children? and not children.length
//     children = [children]
//   children
//
// mapChildren: (fn) -> React.Children.map(@props.children, fn);�TI"ast;�T0I"map;�T0