Куда делась аннотация HtmlImport?

#vaadin #vaadin20

Вопрос:

Я пытаюсь включить пользовательские значки, как описано в этом сообщении. Но я больше не могу найти @HtmlImport аннотацию (Flow V. 20). Эта аннотация широко использовалась, если бы ее заменили, я бы ожидал найти хотя бы какую-то документацию.

PS Я тоже пробовал @StyleSheet("./styles/iconexp-iconset-svg.html") , немного жалуется:

 Couldn't find route for 'styles/iconexp-iconset-svg.html'
 

Ответ №1:

Bower устарел в пользу импорта npm и HTML в пользу модулей ES в Vaadin 14. Я не помню, когда они были удалены, но они больше не поддерживаются в Vaadin 20.

Вы можете ознакомиться с инструкциями по миграции здесь: https://vaadin.com/docs/v14/guide/upgrading/v10-13/#migration-steps

Ответ №2:

Основываясь на Jouni, вот пример использования @JsModule .

(1) Определите свой набор значков в файле JavaScript.

 import '@polymer/iron-iconset-svg/iron-iconset-svg';

const templateElem = document.createElement('template');

templateElem.innerHTML = `
<iron-iconset-svg name="namespace"><svg><defs>
    <g id="iconname">...</g>
    ...
</defs></svg></iron-iconset-svg>
`;

document.head.appendChild(templateElem.content);
 

(2) Импортируйте файл в свой корневой класс макета.

 @JsModule("./icons.js")
public class RootLayout...
 

Комментарии:

1. Действительно, большое вам спасибо. Я попробую это как можно скорее.