UNPKG

@shopgate/engage

Version:
10 lines 2.09 kB
function _slicedToArray(arr,i){return _arrayWithHoles(arr)||_iterableToArrayLimit(arr,i)||_nonIterableRest();}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance");}function _iterableToArrayLimit(arr,i){var _arr=[];var _n=true;var _d=false;var _e=undefined;try{for(var _i=arr[Symbol.iterator](),_s;!(_n=(_s=_i.next()).done);_n=true){_arr.push(_s.value);if(i&&_arr.length===i)break;}}catch(err){_d=true;_e=err;}finally{try{if(!_n&&_i["return"]!=null)_i["return"]();}finally{if(_d)throw _e;}}return _arr;}function _arrayWithHoles(arr){if(Array.isArray(arr))return arr;}import{ELEMENT_TYPE_CHECKBOX,ELEMENT_TYPE_SELECT}from"../Builder.constants";/** * Prepare state of formData for form builder * @param {Object} formElements form elements * @param {Object} defaults form defaults * @returns {Object} */export default(function(){var formElements=arguments.length>0&&arguments[0]!==undefined?arguments[0]:[];var defaults=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};var formDefaults={};// Take only those defaults from props, that are actually represented by an element formElements.forEach(function(element){var defaultState=element.type===ELEMENT_TYPE_CHECKBOX?false:'';if(element.type===ELEMENT_TYPE_SELECT&&!element["default"]){var _Object$keys=Object.keys(element.options);var _Object$keys2=_slicedToArray(_Object$keys,1);defaultState=_Object$keys2[0];}// Use default from element config as a base if(element["default"]!==undefined&&element["default"]!==null){defaultState=element["default"];}// Take defaults from "customAttributes" property or from the higher level, based on element if(element.custom&&defaults.customAttributes!==undefined){if(defaults.customAttributes[element.id]!==undefined){defaultState=defaults.customAttributes[element.id];}}else if(!element.custom&&defaults[element.id]!==undefined){defaultState=defaults[element.id];}// Save default into the form state and into defaults property if one was set if(defaultState!==undefined){formDefaults[element.id]=defaultState;}});return formDefaults;});