PermissionGuard now supports redirecting to a specified URL when access is denied and a redirectUrl is provided in route data. Updated guard logic to use map instead of filter/tap, and added corresponding unit tests to verify redirect behavior.
Refactored the splitting of the 'tool' option to use a single regex for whitespace and commas, removing the need for an explicit trim(). This streamlines parsing and improves code clarity.
Introduces TimepickerI18nAdapter to provide localized AM/PM labels for NgbTimepickerI18n. Updates providers and index exports to register and expose the new adapter.
Introduced DatepickerI18nAdapter to provide localized labels for the ng-bootstrap datepicker using Angular's locale and ABP config state. Registered the adapter as the provider for NgbDatepickerI18n and updated the adapters index export.
Replaces the IntersectionObserver-based focus logic with a simpler requestAnimationFrame approach for focusing the first field. This reduces complexity and potential timing issues when focusing the field after view initialization.
Refactored focus logic to ensure the field is only focused when visible. Added IntersectionObserver to handle cases where the element is not immediately visible, improving accessibility and user experience.
Introduces AsyncLocalizationPipe for asynchronous localization and updates modules to use it. LazyLocalizationPipe is now deprecated and extends AsyncLocalizationPipe for backward compatibility.
Ensures that leading and trailing whitespace is removed from the targetProject option before attempting to retrieve the project from the workspace. This prevents errors when users accidentally include extra spaces in the project name.
Ensures the JWT token body is properly padded before decoding by adding '=' characters as needed. This prevents errors when decoding tokens with missing base64 padding.
Expanded guidelines in multiple AI config instruction files to include details and examples for using ABP Angular's ReplaceableComponentsService. This addition covers key features, usage, important notes, and links to full documentation for customizing and replacing default components, layouts, and UI elements.
Updated the ai-config schematic to accept a comma-separated string for the 'tool' option instead of an array. Adjusted validation, parsing, and schema prompts accordingly for improved CLI usability and flexibility.
Introduces abp.message.prompt to display a browser prompt and invoke a callback with the result. Logs a warning indicating the method is not fully implemented.
Replaces individual AI-specific Angular and ABP Framework rules with a single, comprehensive set of full-stack development guidelines. The new rules emphasize modular architecture, strict typing, best practices for both .NET (ABP) and Angular, and ensure consistency, maintainability, and performance across backend and frontend. This change standardizes expectations and coding conventions for all AI assistants in the project.
Introduces a new 'ai-config' schematic that generates configuration files for various AI tools (Claude, Copilot, Cursor, Gemini, Junie, Windsurf) to guide code generation and best practices in Angular and ABP Framework projects. Includes schematic implementation, schema, templates for each tool, and updates to collection.json and build scripts.
Refactors how column widths are computed and applied in ExtensibleTableComponent. The actions column now uses a dedicated method for width, and property columns use a corrected index for width assignment, improving alignment and configurability.
Replaces deprecated HttpClientModule with provideHttpClient and provideHttpClientTesting in breadcrumb tests, removes unused imports and declarations from card, error handler, and validation utils test files for improved clarity and maintainability.
Eliminated manual Angular test environment initialization from multiple test-setup.ts files, relying on jest-preset-angular defaults. Also removed unused 'timer' and 'firstValueFrom' imports from test specs. This simplifies test configuration and reduces boilerplate.
Replaces HttpClientTestingModule imports with provideHttpClient and provideHttpClientTesting in test files for improved Angular test setup. This aligns with updated Angular best practices for providing HTTP client dependencies.
Updated LogoComponent to use LOGO_URL_TOKEN and LOGO_APP_NAME_TOKEN for logo URL and app name, falling back to environment values if tokens are not provided. This improves flexibility and allows for easier customization of the logo and app name.