export function getFormDataOptions(config: any, formData: any): any[] {
|
if (config?.dataType !== 'formData' || !config.formDataSource) return [];
|
|
const sourceData = formData?.[config.formDataSource];
|
return Array.isArray(sourceData) ? sourceData.map((item) => ({ ...item })) : [];
|
}
|
|
export function getFormDataOptionLabel(config: any, formData: any, value: any): any {
|
const sourceConfig = config?.__config__ || config;
|
const fieldProps = config?.props || sourceConfig?.props;
|
if (sourceConfig?.dataType !== 'formData' || !fieldProps?.value || !fieldProps?.label) return value;
|
|
const options = getFormDataOptions(sourceConfig, formData);
|
const getLabel = (itemValue) => {
|
const option = options.find((item) => item?.[fieldProps.value] === itemValue || String(item?.[fieldProps.value]) === String(itemValue));
|
return option && Object.prototype.hasOwnProperty.call(option, fieldProps.label) ? option[fieldProps.label] : itemValue;
|
};
|
|
return Array.isArray(value) ? value.map(getLabel) : getLabel(value);
|
}
|