Skip to content

Commit

Permalink
DateOnly for Angular Reactive Forms
Browse files Browse the repository at this point in the history
  • Loading branch information
zijianhuang committed Feb 8, 2025
1 parent 7eac9d3 commit 6e4b070
Show file tree
Hide file tree
Showing 166 changed files with 110,848 additions and 110,840 deletions.
2 changes: 1 addition & 1 deletion Fonlow.OpenApiClientGen/Fonlow.OpenApiClientGen.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
<PackageLicenseExpression>MIT</PackageLicenseExpression>
<NeutralLanguage>en</NeutralLanguage>
<Copyright>Copyright © Zijian Huang 2021-$([System.DateTime]::Now.Year)</Copyright>
<Version>3.2.3</Version>
<Version>3.2.4</Version>
<PackageTags>Swagger, Open API Specification, C#, .NET Core, Web API, TypeScript, Angular, YAML</PackageTags>
<PackageReleaseNotes>.NET 9</PackageReleaseNotes>
<AnalysisLevel>latest-all</AnalysisLevel>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,12 @@ namespace Fonlow.TypeScriptCodeDom
public class CodeObjectHelperForNg2FormGroup : CodeObjectHelper
{
readonly CodeNamespaceCollection codeNamespaceCollection;
readonly bool careForDateOnly;
readonly bool ngDateOnlyFormControlEnabled;

public CodeObjectHelperForNg2FormGroup(CodeNamespaceCollection codeNamespaceCollection, bool careForDateOnly = false) : base(true)
public CodeObjectHelperForNg2FormGroup(CodeNamespaceCollection codeNamespaceCollection, bool ngDateOnlyFormControlEnabled = false) : base(true)
{
this.codeNamespaceCollection = codeNamespaceCollection;
this.careForDateOnly = careForDateOnly;
this.ngDateOnlyFormControlEnabled = ngDateOnlyFormControlEnabled;
}

/// <summary>
Expand Down Expand Up @@ -210,6 +210,7 @@ string GetCodeMemberFieldTextForAngularFormGroup(CodeMemberField codeMemberField
bool isFieldDateOnly = false;
var customAttributes = codeMemberField.CustomAttributes;
var fieldName = codeMemberField.Name.EndsWith('?') ? codeMemberField.Name.Substring(0, codeMemberField.Name.Length - 1) : codeMemberField.Name;
var tsTypeName = RefineAngularFormControlTypeName(codeMemberField);
FieldTypeInfo fieldTypeInfo = codeMemberField.Type.UserData[UserDataKeys.FieldTypeInfo] as FieldTypeInfo;
if (fieldTypeInfo.ClrType == typeof(DateOnly) || fieldTypeInfo.ClrType == typeof(DateOnly?))
{
Expand Down Expand Up @@ -259,11 +260,11 @@ string GetCodeMemberFieldTextForAngularFormGroup(CodeMemberField codeMemberField
Console.WriteLine();

var text = String.Join(", ", validatorList);
var tsTypeName = RefineAngularFormControlTypeName(codeMemberField);


if (isFieldDateOnly && careForDateOnly)
if (isFieldDateOnly && ngDateOnlyFormControlEnabled)
{
return $"{fieldName}: CreateDateOnlyFormControl()";
return $"{fieldName}: CreateDateOnlyFormControl()"; // DateOnly field is generally with a date picker component, no validator expected? Until someone find a def with validation rules.
}
else
{
Expand All @@ -273,8 +274,14 @@ string GetCodeMemberFieldTextForAngularFormGroup(CodeMemberField codeMemberField
}
else
{
var tsTypeName = RefineAngularFormControlTypeName(codeMemberField);
return $"{fieldName}: new FormControl<{tsTypeName}>(undefined)";
if (isFieldDateOnly && ngDateOnlyFormControlEnabled)
{
return $"{fieldName}: CreateDateOnlyFormControl()";
}
else
{
return $"{fieldName}: new FormControl<{tsTypeName}>(undefined)";
}
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
<Copyright>Copyright © Zijian Huang 2021-$([System.DateTime]::Now.Year)</Copyright>
<Authors>Zijian Huang</Authors>
<RootNamespace>Fonlow.OpenApiClientGen.NG2FormGroup</RootNamespace>
<Version>2.2</Version>
<Version>2.2.1</Version>
<AnalysisLevel>latest-all</AnalysisLevel>
<PackageReleaseNotes>DateOnly FormControl with NgDateOnlyFormControlEnabled</PackageReleaseNotes>
</PropertyGroup>
Expand Down
Loading

0 comments on commit 6e4b070

Please sign in to comment.