Hello there,
Both Scheduler Pro and Calendar components share a lot in common: Core, Grid, and Scheduler classes are required by both, and so the two compiled bundles (schedulerpro.lwc.module.js and calendar.lwc.module.js) include duplicate code.
Some of the core components, namely VersionHelper and Widget, expose some of their methods on the window.bryntum namespace object: getVersion, get, query, etc. However, when the two bundles are loaded together the last one to load will overwrite those exposed helper functions and bind them to its own internal instance references. This breaks the functionality for the classes from the other bundle.
For example, the ExternalEventSource class from the Calendar bundle and the UndoRedo class from the Scheduler bundle both call window.bryntum.get(). But the result of this method pretty much depends on the fact that there is only one bundle currently in use.
There are other issues as well, for example widget instance resolution with Widget.getById() only works if the Widget class was imported from the same bundle as the class which was used to create the instance in question.
I appreciate that a bundle encapsulates its content inside an iife, which makes all of the class references internal to it. And each bundle has its own copy of those, so simply exposing everything on the window.bryntum
namespace won't help since the inheritance hierarchy would be broken.
But I'd like to bring this to your attention and request if there would be a possibility to ship a combined bundle in the future.
As an alternative, we could probably build our own "ultimate" bundle from source, but we'd like to avoid this as this approach has potentially high maintenance cost due to the necessity to actively maintain the list of imports and exports with each new release of your component libraries.
Thank you.