Activities of "pradeep.pradyumna"

[AI-Bot] said:

  • Issue 1 (z-index / MatDialog overlay): abp-modal is implemented on top of ng-bootstrap’s NgbModal, which appends ngb-modal-window / ngb-modal-backdrop to document.body. When your app (or theme) sets .cdk-overlay-container { z-index: 10000 !important; } and ng-bootstrap modal/backdrop stays at a lower z-index (e.g., 9999), the modal will render behind the CDK overlay stack.
    Supported ABP-side workaround (no need to fork ABP): pass windowClass / backdropClass via the [options] input (ABP spreads options() into NgbModal.open(...)), then override z-index globally.
<abp-modal 
    [(visible)]="openViewDocument" 
    [options]="{ 
      windowClass: 'abp-above-cdk', 
      backdropClass: 'abp-above-cdk-backdrop' 
    }" 
  > 
    <ng-template #abpBody>...</ng-template> 
  </abp-modal> 

Put the CSS in a global stylesheet (recommended), so you don’t need ::ng-deep:

ngb-modal-window.abp-above-cdk { z-index: 10001 !important; } 
  ngb-modal-backdrop.abp-above-cdk-backdrop { z-index: 10001 !important; } 

Notes:

  • Using a component-scoped stylesheet forces you into ::ng-deep because the modal elements are not inside the component’s DOM tree (they’re appended to body).
  • Your current CSS values confirm the root cause: 9999 < 10000, so it will always lose against .cdk-overlay-container. >
  • Issue 2 (contentChild('abpBody') + *ngIf on <ng-template>): In ABP 10.6, abp-modal uses Angular’s signal-based contentChild('abpBody'). That query will not reliably find a template reference that is structurally wrapped (like <ng-template *ngIf ... #abpBody>), because *ngIf on an <ng-template> creates an additional outer template layer.
    Fix in application code: keep exactly one projected <ng-template #abpBody> and move conditional logic inside it (as you already did):
<abp-modal [(visible)]="showModal"> 
    <ng-template #abpBody> 
      <app-edit-form *ngIf="isEditMode"></app-edit-form> 
      <app-view-only *ngIf="!isEditMode"></app-view-only> 
    </ng-template> 
  </abp-modal> 

This pattern aligns with how ABP’s modal is documented/used (single #abpBody template projected into the component).

  • About your requested ABP changes (what is verifiable from sources):
    • From the ABP Angular modal docs, the modal is expected to be used by projecting #abpHeader/#abpBody/#abpFooter templates (single templates) into <abp-modal>. Your “two #abpBody templates toggled by *ngIf” is not a documented usage pattern, and it becomes fragile with signal-based content queries.
    • There is no verified, official ABP documentation (in the retrieved sources) that mentions a zIndex input, container option, or a migration note specifically about contentChild() + *ngIf on <ng-template #abpBody>.

Sources (verified)

  • https://abp.io/docs/latest/framework/ui/angular/modal
  • https://github.com/abpframework/abp/blob/dev/npm/ng-packs/packages/theme-shared/src/lib/components/modal/modal.component.ts
  • https://github.com/abpframework/abp/tree/dev/npm/ng-packs/packages/theme-shared

This response was generated by AI. If it didn’t solve your problem, feel free to post a new answer — our support team will jump in to help you soon.

No AI response, please!

I have shared details over email. Also I have enabled Debug. Post deployment, I will share the fresh logs

[maliming] said: ok : )

Sorry for the delayed response. After including changes as suggested, I still face the same issue.

Do let me know: apart from the identitymodel logs, is there anything else you would like me to share? I could do it over email. Also, let me know if we could connect over a short call I can walk you through the code and changes we have made so far. Thank you!

[maliming] said: TokenValidationParameters

thank you. Yaduraj is on a leave this week and the changes are not yet implemented. I just did and waiting for deployment. I'll update you soon. thank you!

Here are the logs from Identity and Gateway projects:

Identity API:

identitymodel-identity.txt

Gateway API:

identitymodel-gateway.txt

On the email, I'm sending you a copy of the Application and Network tab contents.

thanks!

Hi ABP team,

Is it possible that we could get over a short call, as we 're running short of time and we have critical deliveries dependent on this upgrade we did?

We're facing issues logging into the application post ABP IO upgrade. And I see some of your suggestions are helping but itsn;t fast enough for us to do it over support tickets and meet our deadlines.

Just sharing a summary of .NET and Angular upgrades we did here. UPGRADE_COMPLETION_REPORT.md

ANGULAR-22-ABP-10.6-UPGRADE-COMPLETE-SUMMARY.md

Pls review them and let us know when can we connect today? Thanks!

Angular 22 + ABP 10.6 + TypeScript 6.0 Upgrade Summary

Project: TASConnect Litmus Platform
Period: August 28 - September 1, 2026
PR: #3355
Branch: feature/R26.06_angular22-abp10-upgrade


Executive Summary

Successfully upgraded Angular 17.3.12 → 22.0.8 with ABP 8.3 → 10.6 and TypeScript 5.3 → 6.0 for backend .NET 10 compatibility.

Impact:

  • 740 files modified
  • ~738 components updated with standalone: false
  • 50+ DTOs fixed for TypeScript 6.0
  • 17 modules refactored for pipe/provider architecture

Status: ✅ Compilation: Success (0 errors)
⚠️ Warnings: Sass deprecations (non-blocking)
✅ Dev Server: Starts successfully
✅ Runtime: Application loads correctly


Version Changes

| Package | Before | After | |---------|--------|-------| | Angular | 17.3.12 | 22.0.8 | | TypeScript | 5.3.0 | 6.0.0 | | ABP Framework | 8.3.0 | 10.6.0 | | ng-zorro-antd | 17.4.1 | 22.0.1 | | Angular Material | 17.3.10 | 22.1.4 | | ng-bootstrap | 16.0.0 | 17.0.0 (downgraded from 18 for compatibility) |


Key Phases

Phase 1: Core Upgrade (Aug 28)

  • Upgraded Angular 17 → 22, TypeScript 5 → 6
  • Changed browserTarget → buildTarget in angular.json
  • Disabled strict mode temporarily for gradual migration

Phase 2: ABP Upgrade (Aug 28)

  • Upgraded all ABP packages to 10.6.0
  • Added LOGO_APP_NAME_TOKEN provider (required in ABP 10+)

Phase 3: TypeScript 6.0 Fixes (Aug 28)

  • Fixed TS2612 errors by adding declare keyword to 50+ DTOs
  • Example:
    export class MyDto extends PagedDto {
      declare sorting: string;  // ← Added 'declare'
    }
    

Phase 4: Component Architecture (Sep 1)

  • Added standalone: false to ~738 components
  • Fixed NG5002 two-way binding errors in 3 mat-select elements
  • Updated ngx-image-cropper usage (Module → Component)

Phase 5: Module Fixes (Aug 31 - Sep 1)

  • Broke circular dependency: SharedModule ⟷ CoreSharedModule
  • Removed DateFormatPipe from providers in 17 modules (pipes go in declarations, not providers)
  • Fixed AlphanumericAllowPasteDirective standalone flag

Phase 6: DatePipe Fix (Sep 1) ⭐ LATEST

  • Problem: Blank login page, NG0201 error: "No provider for DatePipe"
  • Cause: ABP's lazy-loaded AccountPublicModule needed DatePipe
  • Solution: Added DatePipe to global providers in app.module.ts

Breaking Changes

1. Component Standalone Declaration (HIGH)

Angular 22 defaults to standalone: true. All NgModule components need standalone: false.

@Component({
  standalone: false,  // ← Required
  selector: 'app-example',
  templateUrl: './example.component.html'
})

2. Two-Way Binding Restrictions (MEDIUM)

Complex expressions in [(value)] no longer supported.

<!-- ❌ Before -->
<mat-select [(value)]="form?.value.field">

<!-- ✅ After -->
<mat-select [formControl]="form?.controls['field']">

3. TypeScript 6.0 Property Redeclaration (HIGH)

Must use declare keyword for inherited properties.

4. Module Resolution (LOW)

Changed from node to bundler in tsconfig.json.

5. Angular.json Schema (LOW)

browserTarget renamed to buildTarget.

6. ABP Logo Configuration (MEDIUM)

Requires explicit LOGO_APP_NAME_TOKEN provider.

7. DatePipe Provider (HIGH) ⭐ NEW

Angular 22 requires DatePipe in global providers for lazy-loaded ABP modules.


Configuration Changes

tsconfig.json:

{
  "compilerOptions": {
    "target": "ES2022",
    "moduleResolution": "bundler",
    "strictPropertyInitialization": false,
    "useDefineForClassFields": false
  }
}

angular.json:

{
  "serve": {
    "options": {
      "buildTarget": "litmus:build"  // Changed from browserTarget
    }
  }
}

app.module.ts:

import { DatePipe } from '@angular/common';

@NgModule({
  providers: [
    DatePipe,  // ← Angular 22 fix for lazy-loaded modules
    // ...
  ]
})

Known Issues & Workarounds

1. ABP @angular/aria/tabs Polyfill ⚠️

Issue: ABP 10.6 imports non-existent @angular/aria/tabs.
Workaround: Create polyfill in node_modules/@angular/aria/tabs/.
Action: Recreate after every npm install.
Doc: See ABP-ANGULAR-22-POLYFILL-WORKAROUND.md

2. Sass Deprecation Warnings ⚠️

Issue: Sass @import will be removed in Dart Sass 3.0.
Impact: Non-blocking warnings.
Future: Migrate to @use and @forward syntax.

3. CommonJS Dependencies ⚠️

Affected: lodash, moment, highcharts, crypto-js, uuid.
Impact: Larger bundle size, no functional issues.

4. ng-bootstrap Version Constraint ✅

Fixed: Using v17 (v18 has afterRender issues).


Testing Requirements

Critical Priority

  • ✅ Login page (fixed with DatePipe)
  • ⬜ User authentication flow
  • ⬜ OAuth/OIDC
  • ⬜ Permission-based routing

High Priority

  • ⬜ File uploads (ABP 10.6 API changes)
  • ⬜ Reactive forms with mat-select
  • ⬜ NGXS state management
  • ⬜ Lazy-loaded modules DI

Medium Priority

  • ⬜ Dashboard/Charts (Highcharts)
  • ⬜ Modals/Dialogs (ng-bootstrap, Material)
  • ⬜ Data tables (ng-zorro)

Deployment Checklist

Pre-Deployment:

  • [ ] Integration tests pass
  • [ ] Browser compatibility verified
  • [ ] Performance acceptable
  • [ ] Code review complete

Build Configuration:

  • [ ] Set NODE_OPTIONS=--max-old-space-size=8192
  • [ ] Production build succeeds
  • [ ] Bundle sizes acceptable

ABP Polyfill:

  • [ ] Create node_modules/@angular/aria/tabs/ polyfill
  • [ ] Verify build with polyfill
  • [ ] Document for CI/CD

Post-Deployment:

  • [ ] Monitor errors (Sentry/CloudWatch)
  • [ ] Track authentication success rate
  • [ ] Watch for DI-related errors

Statistics

Code Changes:

  • 740 files modified
  • ~738 components updated
  • 50+ DTOs fixed
  • 17 modules refactored

Build Metrics:

  • Compilation: ~60s (was ~45s)
  • Node Memory: 8GB (was 4GB)
  • Errors: 0
  • Warnings: 45 (Sass deprecations)

Package Upgrades:

  • 47 total packages upgraded
  • 15 Angular core packages
  • 25 ABP Framework packages
  • 4 UI libraries
  • 3 build tools

Key Commits

  • 58b41a68 - Initial Angular 22 upgrade
  • 3ede8924 - ABP 10.6 upgrade
  • fda8ef48 - TypeScript 6.0 DTO fixes
  • 2ab9bcda - Complete upgrade with standalone:false
  • cdc6f407 - DatePipe provider fix ⭐
  • 377892a5 - DateFormatPipe provider fix (PR review)
  • 33b47d33 - Remove dead @HostListener code

Lessons Learned

What Worked:

  • Phased approach isolated issues
  • Temporarily disabling strict mode allowed gradual migration
  • Global DatePipe provider fixed lazy-loaded module DI issues

Challenges:

  • Angular 21 attempt failed (ABP requires 22.0.x)
  • TypeScript 6.0 required systematic DTO fixes
  • ABP @angular/aria/tabs needed workaround
  • ng-bootstrap v18 incompatible, downgraded to v17

Future:

  • Consider standalone component migration
  • Evaluate @angular/build (esbuild)
  • Monitor ABP for native Angular 22 support
  • Migrate Sass @import to @use/@forward

References

Documentation:

  • Angular 22: https://angular.dev/update-guide
  • TypeScript 6.0: https://devblogs.microsoft.com/typescript/announcing-typescript-6-0/
  • ABP 10.6: https://abp.io/docs/latest/release-info/migration-guides/abp-10-6

Internal Docs:

  • ABP-ANGULAR-22-POLYFILL-WORKAROUND.md
  • ANGULAR-22-ABP-10.6-FIX-SUMMARY.md

Contact: Pradeep.Pradyumna@tasconnect.com


Status: ✅ Complete
Last Updated: September 2, 2026

NO AI response please. Request you to go through the attached markdown files and respond

Showing 1 to 8 of 8 entries
Boost Your Development
ABP Live Training
Packages
See Trainings
Mastering ABP Framework Book
The Official Guide
Mastering
ABP Framework
Learn More
Mastering ABP Framework Book
Made with ❤️ on ABP v10.8.0-preview. Updated on October 21, 2026, 11:09
1
ABP Assistant
🔐 You need to be logged in to use the chatbot. Please log in first.