src/factories/BuilderUtils.js
function(components, input) {
    // Prebuild a list of existing components.
    var existingComponents = {};
    FormioUtils.eachComponent(components, function(component) {
      // If theres no key, we cant compare components.
      if (!component.key) return;

      // A component is pre-existing if the key is unique, or the key is a duplicate and its not flagged as the new component.
      if (
        (component.key !== input.key) ||
        ((component.key === input.key) && (!!component.isNew !== !!input.isNew))
      ) {
        existingComponents[component.key] = component;
      }
    }, true);

    return existingComponents;
  }
function(components, input) {
    // Prebuild a list of existing components.
    var existingComponents = {};
    FormioUtils.eachComponent(components, function(component) {
      // If theres no key, we cant compare components.
      if (!component.key) return;

      // A component is pre-existing if the key is unique, or the key is a duplicate and its not flagged as the new component.
      if (
        (component.key !== input.key) ||
        ((component.key === input.key) && (!!component.isNew !== !!input.isNew))
      ) {
        existingComponents[component.key] = component;
      }
    }, true);

    return existingComponents;
  }
function ( components , input ) { // Prebuild a list of existing components. var existingComponents = { } ; FormioUtils . eachComponent ( components , function ( component ) { // If theres no key, we cant compare components. if ( ! component . key ) return ; // A component is pre-existing if the key is unique, or the key is a duplicate and its not flagged as the new component. if ( ( component . key !== input . key ) || ( ( component . key === input . key ) && ( ! ! component . isNew !== ! ! input . isNew ) ) ) { existingComponents [ component . key ] = component ; } } , true ) ; return existingComponents ; }
Memoize the given form components in a map, using the component keys.

@param {Array} components
An array of the form components.
@param {Object} input
The input component we're trying to uniquify.

@returns {Object}
The memoized form components.
Memoize the given form components in a map using the component keys .