ProtectedsubBase name used for generating sub-module names
Get the base name for the sub-modules. Override this method to change the base name.
The base name for sub-modules (default: 'GeneratedForms_SubModule_')
ProtectedAddAdds a new section to the sections array if it doesn't already exist
The entity the section belongs to
Array of existing sections
The type of section to add
The name of the section
OptionalfieldSequence: numberOptional sequence number of the field (used to track minimum sequence for sorting)
ProtectedcamelConverts a string to camelCase and sanitizes it for use as a JavaScript identifier
The string to convert
String in camelCase format, safe for use as object key or variable name
ProtectedcleanupRemoves orphaned Angular entity form directories that no longer correspond to existing entities. This handles cleanup when entities are renamed or deleted.
The path to the Entities directory containing entity form subdirectories
Array of current EntityInfo objects that should have form directories
ProtectedentityChecks if an entity has any fields designated for the top area section
The entity to check
True if the entity has top area fields, false otherwise
ProtectedgenerateGenerates additional form sections based on entity field metadata
The entity to generate sections for
Starting index for tab ordering
OptionalfieldCategories: Record<string, FieldCategoryInfo> | nullArray of generated form sections
Main entry point for generating Angular code for a collection of entities
Array of EntityInfo objects to generate Angular code for
The output directory where generated files will be saved
A prefix to use for the generated module name
The user context for permission checking and personalization
Promise
ProtectedgenerateGenerates the main Angular module that imports all generated components and sub-modules
Array of import statements for generated components
Array of component names with their required related entity items
Array of library imports for related entity modules
Array of form section information
Prefix for the module name
Maximum number of components to include in each sub-module (default: 25)
The generated TypeScript code for the Angular module
ProtectedgenerateGenerates sub-modules to handle large numbers of components by breaking them into smaller chunks
Array of component names with their required related entity items
Array of form section information
Maximum components per sub-module
Prefix for module naming
Generated TypeScript code for all sub-modules and the master module
ProtectedgenerateGenerates organic key tab sections for an entity form. Organic keys enable cross-entity relationships based on shared business data (email, phone, etc.). Each organic key related entity gets its own collapsible panel with an EntityDataGrid.
The entity to generate organic key tabs for
Starting index for tab ordering
Array of organic key tab sections
ProtectedgenerateGenerates the tab name for a related entity tab. Appends the field's display name to the tab name if there are multiple tabs for the same related entity to differentiate them.
The relationship information for the related entity
All related entities sorted by sequence
The generated tab name
ProtectedgenerateGenerates tabs for all related entities that should be displayed in the form
The parent entity
Starting index for tab ordering
User context for permission checking
Promise resolving to array of related entity tab sections
ProtectedgenerateGenerates HTML for a specific form section
The entity containing the fields
The section to generate HTML for
HTML string for the form section
ProtectedgenerateGenerates the complete HTML template for a single entity form
The entity to generate HTML for
User context for permission checking
Promise resolving to an object containing the HTML code and section information
ProtectedgenerateGenerates HTML without a splitter layout for entities without a top area
HTML for the top area section (expected to be empty)
Array of additional form sections
Array of related entity sections
Generated HTML without splitter layout
ProtectedgenerateGenerates HTML with a vertical splitter layout for entities with a top area
HTML for the top area section
Array of additional form sections
Array of related entity sections
Generated HTML with splitter layout
ProtectedgenerateGenerates the TypeScript component code for a single entity
The entity to generate the component for
Array of additional form sections for this entity
Array of related entity sections
Generated TypeScript component code
ProtectedgenerateGenerates the closing section of a sub-module including imports and exports
The sequential number of this sub-module
Array of additional module names to import
TypeScript code for the sub-module ending
ProtectedgenerateGenerates HTML for the top area section of an entity form
The entity to generate top area HTML for
HTML string for the top area section, or empty string if no top area exists
ProtectedgetMaps category names to appropriate Font Awesome icon classes
The category name to map
Font Awesome icon class string
ProtectedinnerGenerates the HTML for collapsible panels containing all form sections
Array of field-based form sections
Array of related entity sections
HTML string for all collapsible panels
ProtectedinnerArray of field-based form sections
Array of related entity sections
HTML string for the complete tab strip
ProtectedinnerGenerates the inner HTML for the top area section
The top area content
HTML string for the top area container, or empty string if no content
ProtectedisChecks whether a virtual field is the name-field-map target of an FK field on the same entity.
For example, if entity has ParentID (FK) with RelatedEntityNameFieldMap = 'Parent',
then the virtual Parent field is redundant on the form since the FK field will display
the name at runtime.
ProtectedpascalConverts a string to PascalCase and sanitizes it for use as a class name
The string to convert
String in PascalCase format, safe for use as a class name
ProtectedremoveRecursively removes a directory and all its contents (files and subdirectories).
The path to the directory to remove
ProtectedsanitizeSanitizes a string to create a valid filename in lowercase format. Removes all non-alphanumeric characters (except spaces) and converts to lowercase. Used for creating component filenames that are safe across all file systems.
Example: "Timeline & Budget" → "timelinebudget"
The string to sanitize
A sanitized lowercase filename string
ProtectedstripRemoves all whitespace from a string
The string to process
String with all whitespace removed
Base class for generating Angular client code for MemberJunction entities. This class handles the generation of Angular components, forms, and modules based on entity metadata. You can sub-class this class to create your own Angular client code generator logic.