text: (function (ng, crip, Array, String, Number, Math, RegExp) {
      'use strict';
  
      crip.core
          .config(CoreConfig);
  
      CoreConfig.$inject = [];
  
      function CoreConfig() {
  
          ng.extend(ng, {
              isEmpty: isEmpty,
              hasValue: hasValue,
              hasProperty: hasProperty,
              nodesToArray: nodesToArray
          });
  
          /**
           * Determines is value empty
           *
           * @param value
           * @returns {boolean}
           */
          function isEmpty(value) {
              return ng.isUndefined(value) || value === '' || value === null || value !== value;
          }
  
          /**
           * Determines is value in object
           *
           * @param value
           * @returns {boolean}
           */
          function hasValue(value) {
              return !isEmpty(value);
          }
  
          /**
           * Determines is object containing properties chain
           *
           * @param {object} object
           * @param {...string} properties
           * @returns {boolean}
           */
          function hasProperty(object, properties) {
              var a = arguments;
  
              if (a.length === 0 || isEmpty(a[0]))
                  return false;
  
              var target = a[0];
              for (var arg in a) {
                  if (arg === '0')
                      continue;
  
                  if (!target.hasOwnProperty(a[arg]))
                      return false;
  
                  target = target[a[arg]];
                  if (ng.isUndefined(target))
                      return false;
              }
  
              return true;
          }
  
          /**
           * Annoying method to copy nodes to an array, thanks to IE
           *
           * @param {Node} [nodes]
           * @returns {Array}
           */
          function nodesToArray(nodes) {
              nodes = nodes || [];
  
              var results = [];
              for (var i = 0; i < nodes.length; ++i) {
                  results.push(nodes.item(i));
              }
              return results;
          }
      }
  })(angular, window.crip || (window.crip = {}), Array, String, Number, Math, RegExp);