private static FormlyFieldConfig BuildFormlyFieldConfig(PropertyInfo propertyInfo,
                                                                Attribute[] attributes,
                                                                FormlyGenerationSettings setting,
                                                                Type type,
                                                                string?parentKey)
        {
            var formlyFieldConfig = new FormlyFieldConfig
            {
                Key             = ResolveKey(parentKey, propertyInfo.Name, attributes),
                Type            = ResolveFieldType(propertyInfo.PropertyType, attributes),
                DefaultValue    = ResolveDefaultValue(attributes),
                TemplateOptions =
                    ResolveFormlyTemplateOptions(propertyInfo.PropertyType, attributes, setting, type),
                HideExpression       = ResolveHideExpression(attributes),
                ExpressionProperties = ResolveExpressionProperties(attributes),
                Validation           = ResolveValidation(attributes),
                Validators           = ResolveValidators(attributes),
                AsyncValidators      = ResolveAsyncValidators(attributes),
                Wrappers             = ResolveWrappers(attributes),
                ClassName            = ResolveClassName(attributes),
                FieldGroupClassName  = ResolveFieldGroupClassName(attributes),
                FieldGroup           = ResolveFieldGroup(propertyInfo, attributes, setting),
                FieldArray           = ResolveFieldArray(propertyInfo, setting),
            };

            return(formlyFieldConfig);
        }
        private static FormlyFieldConfig BuildFormlyFieldConfigForSimpleArrayElement(Type propertyType)
        {
            var attributes        = Array.Empty <Attribute>();
            var formlyFieldConfig = new FormlyFieldConfig
            {
                Type = ResolveFieldType(propertyType, attributes),
            };

            return(formlyFieldConfig);
        }