ng-block-ui icon indicating copy to clipboard operation
ng-block-ui copied to clipboard

BlockUI directive always undefined when included within a library (Angular 16)

Open VincenzoManto opened this issue 1 year ago • 0 comments

Issue with ng-block-ui in Angular 16

Description

Using [email protected] in Angular 16 works as expected when included within an application project, but it fails in libraries.

We include ng-block-ui as follows:

@BlockUI('content-wrapper') blockBody: NgBlockUI;
<div *blockUI="'content-wrapper'" class="content-wrapper"></div>

The spinner displays properly when used within an application, but when the library is compiled in ES2022 and included in an application, it always appears as undefined, regardless of where or when it is checked (in ngOnInit, ngAfterViewInit, constructor, and even in asynchronous subscribe), long after the template rendering.

Environment

  • Angular CLI: 16.2.5

  • Node: 19.6.0 (Unsupported)

  • Package Manager: npm 9.5.0

  • Operating System: Win32 x64

  • Angular: 16.2.8

  • ... animations, common, compiler, compiler-cli, core, forms

  • ... language-service, platform-browser, platform-browser-dynamic

  • ... router

Package Versions

  • @angular-devkit/architect: 0.1602.5
  • @angular-devkit/build-angular: 16.2.5
  • @angular-devkit/core: 16.2.5
  • @angular-devkit/schematics: 16.2.5
  • @angular/cli: 16.2.5
  • @schematics/angular: 16.2.5
  • ng-packagr: 16.2.3
  • rxjs: 6.5.4
  • typescript: 4.9.5
  • zone.js: 0.13.3

Steps to Reproduce

  1. Include ng-block-ui in an Angular library project.
  2. Use @BlockUI decorator and *blockUI directive within library components.
  3. Include the library in an Angular application.
  4. Observe that the spinner always appears as undefined.

Expected Behavior

The ng-block-ui spinner should function correctly in both library and application projects when using the same code.

Additional Information

  • Ensure that you are using compatible versions of Angular and ng-block-ui.
  • Verify the configuration of the module using ng-block-ui within the library.
  • Use a supported version of Node as recommended by Angular.

Please let me know if you need any additional information to help resolve this issue.

VincenzoManto avatar Oct 21 '23 09:10 VincenzoManto