Protected subBase 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_')
Protected AddAdds 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
Optional fieldSequence: numberOptional sequence number of the field (used to track minimum sequence for sorting)
Protected camelProtected entityChecks 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
Protected generateGenerates additional form sections based on entity field metadata
The entity to generate sections for
Starting index for tab ordering
Optional categoryIcons: Record<string, string>Optional map of category names to Font Awesome icon classes
Array 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
Protected generateGenerates 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
Protected generateGenerates 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
Protected generateGenerates 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
Protected generateGenerates 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
Protected generateGenerates HTML for a specific form section
The entity containing the fields
The section to generate HTML for
HTML string for the form section
Protected generateGenerates 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
Protected generateGenerates 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
Protected generateGenerates 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
Protected generateGenerates 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
Protected generateGenerates 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
Protected generateGenerates 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
Protected getProtected innerGenerates 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
Protected innerArray of field-based form sections
Array of related entity sections
HTML string for the complete tab strip
Use innerCollapsiblePanelsHTML instead Generates the HTML for the tab strip containing all form sections
Protected innerProtected pascalProtected sanitizeSanitizes 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
Protected strip
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.