)
}
export const MmuiDynamicTextInputComponent = ({ index, name, attributes, formDataArray, updateFormDataArray, validationFunc = undefined }) => {
const elmtName = name + `_${ index }`,
elmtId = `id_${ elmtName }`,
value = formDataArray[index][name],
onChange = (e) => {
let formDataArrayClone = JSON.parse(JSON.stringify(formDataArray));
formDataArrayClone[ index ][name] = e.target.value;
updateFormDataArray(formDataArrayClone);
}
;
let onBlur;
if(validationFunc){
onBlur = (e) => {
let formDataArrayClone = JSON.parse(JSON.stringify(formDataArray));
formDataArrayClone[ index ][`${name}_errors`] = validationFunc(e.target.value, attributes);
updateFormDataArray(formDataArrayClone);
}
}
return (
)
}
export const MmuiErrorsComponent = ({ fieldId, errors }) => {
let errorsOutput = null;
if( errors ){
let errorsArrayOutput = errors.map((e, index) => {
let key = `error-${index}`;
return (
{e}
)
});
let id = `${fieldId}_errors`;
errorsOutput = (
{errorsArrayOutput}
)
}
return errorsOutput;
}
export function parseInputElementAttributes(element: HTMLInputElement){
const attributes:any = {};
if (element.hasAttributes()) {
let attrs = element.attributes;
for(let i = 0; i < attrs.length; i++) {
switch(attrs[i].name){
case "required":
attributes[attrs[i].name] = true;
break;
case "id":
case "value":
case "min":
case "max":
case "maxlength":
case "step":
attributes[attrs[i].name] = attrs[i].value;
break;
}
}
}
return attributes;
}
export function getInputElementAttributes(selector:string) {
const element = document.querySelector(selector) as HTMLInputElement;
return parseInputElementAttributes(element);
}
export function getChoices(name:string) {
const elements = document.getElementsByName(name);
let choices: Array