Wijmo appears to be incompatible with Angular 16

Posted by: mark.brodziak on 4 May 2023, 4:40 pm EST

  • Posted 4 May 2023, 4:40 pm EST

    We are using Wijmo 5.20222.877, which we understand to be compatible with Angular Ivy (as of Angular 9). We are declaring our dependencies against @grapecity/wijmo.angular2 packages.

    After attempting to upgrade to Angular 16, we get compilation errors such as:

    error NG6002: 'WjCoreModule' does not appear to be an NgModule class.
    
     node_modules/@grapecity/wijmo.angular2.core/index.d.ts:195:22
        195 export declare class WjCoreModule {
                                 ~~~~~~~~~~~~
        This likely means that the library (@grapecity/wijmo.angular2.core) which declares WjCoreModule is not compatible with Angular Ivy. Check if a newer version of the library is available, and update if so. Also consider checking with the library's authors to see if the library is expected to be compatible with Ivy.
    

    Are you aware of this, and are there plans in the pipeline to add such support? This will block our upgrade until addressed.

  • Posted 4 May 2023, 4:50 pm EST

    As a further hint to the above, we get this in our compilation output under Angular 15:

    Processing legacy "View Engine" libraries:
    - @grapecity/wijmo.angular2.directivebase [esm2015/esm2015] ()
    - @grapecity/wijmo.angular2.core [esm2015/esm2015] ()
    - @grapecity/wijmo.angular2.grid [esm2015/esm2015] ()
    - @grapecity/wijmo.angular2.input [esm2015/esm2015] ()
    - @grapecity/wijmo.angular2.directivebase [esm5/esm5] ()
    - @grapecity/wijmo.angular2.directivebase [main/commonjs] ()
    - @grapecity/wijmo.angular2.core [esm5/esm5] ()
    - @grapecity/wijmo.angular2.core [main/commonjs] ()
    - @grapecity/wijmo.angular2.grid [esm5/esm5] ()
    - @grapecity/wijmo.angular2.grid [main/commonjs] ()
    - @grapecity/wijmo.angular2.input [esm5/esm5] ()
    - @grapecity/wijmo.angular2.input [main/commonjs] ()
    Encourage the library authors to publish an Ivy distribution.
  • Posted 5 May 2023, 12:36 am EST

    We are also having this problem, which occurs on the nightly too. It’s blocking our upgrade path. Do you have a timeline for fixing this?

  • Posted 8 May 2023, 12:00 am EST

    Hi,

    We are currently in the process of testing the compatibility of Wijmo controls with Angular 16 and as of now, we cannot comment on the complete compatibility of Wijmo with Angular 16.

    However, we have reported this issue to our development team with internal tracking id: WJM-26968. We will update you as soon as we have an update from the dev team.

    Regards

  • Posted 9 May 2023, 1:35 pm EST

    Thanks for telling .

  • Posted 14 May 2023, 11:14 am EST

    Note that we attempted updating to 5.20231.888 that was released last week, and this exhibits the same problem (which is unsurprising, as there was no mention in the release blog post).

    We keenly await an update so that we can plan our upgrade path to Angular 16.

  • Posted 15 May 2023, 12:07 am EST

    Hi,

    I have asked the dev team to prioritize this issue, I will update you as soon as I have an update from the dev team.

    Regards

  • Posted 22 May 2023, 12:29 pm EST

    It’s been another week and we still have no update.

    We’d appreciate some kind of timeframe for addressing this incompatibility. Most open source libraries have been able to deal with this fairly easily.

  • Posted 22 May 2023, 5:33 pm EST

    Hi Mark,

    The dev team working on this issue. They are aware of your urgency, and will provide an update soon. I appreciate your patience.

    Regards

  • Posted 26 May 2023, 1:54 am EST

    All, the engineering team is working hard to solve this issue. Let me explain the problem. While Wijmo supported the Ivy engine, some complex features (like CellTemplates in FlexGrid) had dependency on ViewEngine. We have been refactoring these features to only support Ivy. This process also requires our TypeScript dependency to be upgraded. So once this change is made, we will likely no longer support older versions of Angular (ViewEngine versions). As always, we are trying to keep support for both engines, but it looks like we will only be able to support Ivy moving forward. We hope to have a solution on our nightly build soon and then released in June.

    In the meantime, there is a pretty simple workaround. It imports the ViewEngine compiler and builds wijmo modules using it. Attached are instructions for the workaround of using wijmo in Angular 16.

    Thank you all for the patience while we make these changes. Wijmo’s priority is always quality, so we make big changes like this carefully.

    Sincerely -Chris Bannon, Product Manager

  • Posted 28 May 2023, 10:50 am EST

    Thanks for the detailed update, it helps us to understand the situation.

    While we wait for the update, we’d like to try the work-around. The attachment seems to be missing? (or I am looking in the wrong spot).

  • Posted 28 May 2023, 5:34 pm EST

    Hello,

    Please refer to this attachment directed by Chris in the above response. You can follow the steps given in the pdf to work around the issue. In case you face any issues you can let us know.

    Attachment: wj_ng16_workaround.zip

    Regards

  • Posted 29 May 2023, 11:47 pm EST

    Sorry, the original attachment did not work.

    Here are the Angular 16 workaround instructions for wijmo: https://drive.grapecity.com/download?file=ExternalShare/wijmo/wj_ng16_workaround%20v2.0.pdf

  • Posted 31 May 2023, 2:24 pm EST

    The aforementioned workaround seems to have done the trick, which will get us moving as a stop-gap measure. We’ll look forward to moving to the fully Ivy-compatible release once it becomes available.

    In case it helps others, we simplified the approach as listed in the workaround to a simple one-liner in package.json as follows:

    {
      ...
      "scripts": {
        ...
        "postinstall": "npx --package @angular/compiler-cli@15.2.9 --yes ngcc",
        ...
       },
       ...
    }
  • Posted 31 May 2023, 4:59 pm EST

    Hello,

    We are glad that your issues have been resolved. We appreciate you sharing the simplified approach that you used. This might be helpful for other customers who may be experiencing the same issue.

    Regards

  • Posted 1 June 2023, 2:19 pm EST

    Further to this, we’ve found that the suggestion to import ‘@angular/compiler’ in main.ts does not work (or, at least, did not work for us) when running in production mode. Ignoring this instruction and not including this import in main.ts seems to work fine for our use-case.

    In summary, the only change that we require to support the work-around is as per the listed line from package.json in “postinstall”

Need extra support?

Upgrade your support plan and get personal unlimited phone support with our customer engagement team

Learn More

Forum Channels