Есть ли способ подключения к jsComponent/собственным компонентам Vaadin модулей JavaScript? импорт, экспорт. Натыкался на @JsModule, но это Vaadin flow, JMIX использует 8
Добрый день.
Добавление зависимостей для Generic JavascriptComponent описано в документации.
Добавить зависимости на JS/CSS для собственных Vaadin компонентов можно используя Vaadin аннотации @com.vaadin.annotations.JavaScript
и @com.vaadin.annotations.StyleSheet
, либо платформенную аннотацию @io.jmix.ui.widget.WebJarResource
(если js/css подключены как зависимость проекта в build.gradle
). JavaDoc’и всех аннотаций имеют исчерпывающее описание.
Глеб
Добрый день! Речь не о простом подключении библиотеки JavaScript, а об импорте модуля.
Приведу пример из моего проекта.
Дескриптор экрана:
<jsComponent id="xeokit"
initFunctionName="ru_dgtserv_realtycontrol_screen_xeokit_javascript_component_Xeokit">
<dependencies>
<dependency path="vaadin://xeokit-sdk.es.min.js"/>
<dependency path="vaadin://xeokit-component.js"/>
</dependencies>
</jsComponent>
xeokit-component.js:
import {Viewer, XKTLoaderPlugin} from "xeokit-sdk.es.min.js";
window.ru_dgtserv_realtycontrol_screen_xeokit_javascript_component_Xeokit = function () {
const viewer = new Viewer({
canvasId: "myCanvas"
});
const xktLoader = new XKTLoaderPlugin(viewer);
/* ... */
};
console log:
Uncaught SyntaxError: export declarations may only appear at top level of a module xeokit-sdk.es.min.js:7:2285285
Uncaught SyntaxError: import declarations may only appear at top level of a module xeokit-component.js:1
К сожалению, Vaadin 8 не поддерживает импорты модулей.