Skip to content

Conversation

@swhite2
Copy link
Member

@swhite2 swhite2 commented Sep 25, 2025

This PR attempts to generically solve the usage of JS modules. In the specific case of bootgrid, this is necessary for #9006. Specifically, we want to extend the ESM-aware library code of Tabulator, but cannot do so cleanly without import statements.

To use such modules, one can specify:

<script type="module">
import {Something} from "Module";
</script>

In the UIBootgrid case, the single import in default.volt will expose both UIBootgrid and $(<element>).UIBootgrid() for all sub-templates.

The ControllerBase and default volt template have been adjusted to allow for new inclusions as well.

I am aware of the discussion in #7777 and the associated risk with using importmap, which is why I'm opening this as a PR.

Note that this PR switches the Tabulator UMD build to an ESM one.

@swhite2 swhite2 self-assigned this Sep 25, 2025
@swhite2
Copy link
Member Author

swhite2 commented Sep 30, 2025

Update: polyfilling using https://github.com/guybedford/es-module-shims does not seem to work for Pale Moon, so including it to combat incompatibility is not an option

@Monviech
Copy link
Member

I'm okay with using import maps, its a HTML standard now and there are enough browser choices that support it.

https://html.spec.whatwg.org/multipage/webappapis.html#import-maps

https://github.com/WICG/import-maps?tab=readme-ov-file#readme

https://caniuse.com/import-maps

@fichtner
Copy link
Member

there are enough browser choices that support it

Yet!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

4 participants