bootgrid: allow usage of Javascript Modules
This PR attempts to generically solve the usage of JS modules. In the specific case of bootgrid, this is necessary for https://github.com/opnsense/core/issues/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 https://github.com/opnsense/core/issues/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.
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
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
there are enough browser choices that support it
Yet!