@amsterdam/bmi-dms-upload
Version:
A document upload flow that can be implemented in any BMI React application. Documents are stored in DMS. Metadata can be added in the flow.
2 lines • 2.09 kB
JavaScript
export function convertDmsDynamicFormFieldsToMetadataProperty(fields){return fields.map(field=>{const item={key:`${field.id}`,scope:"string",type:"string",label:field.placeholder,options:{format:undefined}};if(field.required){item["bmi-isNotEmpty"]=field.required}if(field.type==="CheckboxType"){item.type="boolean"}if(field.type==="DateType"){item.oneOf=[{format:"date"},{maxLength:0}]}if(field.type==="ChoiceType"){item.type="array";item.uniqueItems=true;item.items={type:"string",enum:field.options};item.customFormat="creatable-array";if(field.defaultValue){item.default=JSON.parse(`["${field.defaultValue}"]`)}else{item.default=[]}}if(field.type==="MultipleChoiceType"){item.type="array";item.uniqueItems=true;item.items={type:"string",enum:field.options};item.customFormat="multi-creatable";if(field.defaultValue){item.default=JSON.parse(field.defaultValue)}else{item.default=[]}}if(field.type==="DateYearType"){item["is-date-year"]=true}return item})}export function convertDmsDynamicFormFieldsToBulkMetadataFields(fields){return fields.map(field=>{var _field_userValue,_ref;const defaultValue=(_ref=(_field_userValue=field.userValue)!==null&&_field_userValue!==void 0?_field_userValue:field.defaultValue)!==null&&_ref!==void 0?_ref:"";let newValue=defaultValue;if(convertDmsTypeToBulkFieldType(field.type)==="select"){newValue=defaultValue?JSON.parse(`["${defaultValue}"]`):[]}if(convertDmsTypeToBulkFieldType(field.type)==="multi-select"){newValue=defaultValue?JSON.parse(defaultValue):[]}if(convertDmsTypeToBulkFieldType(field.type)==="checkbox"){newValue=defaultValue?JSON.parse(defaultValue):false}return{id:`${field.id}`,label:field.placeholder,value:newValue,changeIndividual:false,type:convertDmsTypeToBulkFieldType(field.type),values:field.options,required:field.required}})}const convertDmsTypeToBulkFieldType=type=>{switch(type){case"ChoiceType":return"select";case"MultipleChoiceType":return"multi-select";case"CheckboxType":return"checkbox";case"DateType":return"date";case"DateYearType":return"year";case"TextType":default:return"text"}};
//# sourceMappingURL=utils.js.map