    *   is finite.
    * * If the value is an array or object, then return
    *   whether the value has an indexed item with content.
-   * * Otherwise, return whether the value is not undefined
-   *   or null.
+   * * Otherwise, return whether the value is neither undefined
+   *   nor null.
    *
    * This method recurses into children to determine whether
    * the children have content.
    *
    * Examples:
    *     ObjectHelper.hasContent(null) // => false
-   *     ObjectHelper.hasContent(NaN) // => true
-   *     ObjectHelper.hasContent(null) // => false
-   *     ObjectHelper.hasContent(null) // => false
+   *     ObjectHelper.hasContent(NaN) // => false
+   *     ObjectHelper.hasContent(3) // => true
+   *     ObjectHelper.hasContent('a') // => true
+   *     ObjectHelper.hasContent([3, 2]) // => true
+   *     ObjectHelper.hasContent([]) // => false
+   *     ObjectHelper.hasContent([null]) // => false
+   *     ObjectHelper.hasContent({a: 1}) // => true
+   *     ObjectHelper.hasContent([{}, [[{}, [5]]]]) // => true
    *
    * @method hasContent
    * @param value {any} the value to check
    * @return {boolean} whether the value has content
   ###
   hasValidContent: _hasValidContent
+
+  ###*
+   * Returns whether the given value is nil, a string,
+   * a number, a date or an array of simple values.
+   *
+   * Examples:
+   *     ObjectHelper.isSimple(null) // => true
+   *     ObjectHelper.isSimple({a: 1}) // => false
+   *     ObjectHelper.isSimple([3]) // => true
+   *     ObjectHelper.isSimple([2, [4, 1]]) // => true
+   *
+   * @method isSimple
+   * @param value {any} the value to check
+   * @return {boolean} whether the value is simple
+  ###
+  isSimple: _isSimple
 
   ###*
    * Pretty prints the given object in a readable format. This function

  else
    true

###*
 * The static ObjectHelper utility.
 *


`import * as _ from "lodash"`
`import * as _s from "underscore.string"`
`import moment from "moment"`

# Define here for reuse below.
_sortValuesByKey = (obj) ->
