Правильная работа svg и ContextMenu

Здравствуйте!
Как красивее организовать работу ContextMenu и картинки в svg формате?
Реализовывал разное содержимое меню в зависимости от типа объекта.
Сделал вот так, но выглядит очень топорно
https://snippet.webix.com/loxjgt0f
Можно ли вызывать контекстное меню не только правым, но и левым кликом?

Здравствуйте, @Roman,

Можно ли вызывать контекстное меню не только правым, но и левым кликом?

Да, можно. Для этого необходимо задать контекст вызова меню и вручную вызвать метод show() - https://snippet.webix.com/ac0es875.

Как красивее организовать работу ContextMenu и картинки в svg формате?

Здесь уже не так однозначно. В любом случае выйдет не очень красиво, т.к. придется обращаться к нативному HTML. В целом, если просто немного подправить, выходит что-то такое: https://snippet.webix.com/n8gkd5g2.

Большое спасибо!
Как потом отследить при обработке события в меню, каким кликом оно было выбрано - левым или правым?

Как потом отследить при обработке события в меню, каким кликом оно было выбрано - левым или правым?

Можно отследить это с помощью контекста вызова:

onBeforeShow: function() {
      var context = this.getContext();
      if (context.which === 1) { //left click
         //do smth
      } else if (context.which === 3) { //right click
         //do smth
      } 
    }

context в данном случае является MouseEvent, с помощью которого можно отследить, какая кнопка была нажата. Ее мы можем получить с помощью context.which. Вот пример: https://snippet.webix.com/wasmk0wn.

Кстати, еще как предложение по улучшению кода, вместо использования spacer для добавления SVG элементов лучше использовать template, т.к. по сути template - это контейнер, в котором можно разместить любые HTML элементы. Также данный компонент имеет отдельные методы для работы с такими элементами. В то время как spacer практически не имеет никакого API, и не предназначен для работы с данными.

Как пример, вот несколько возможных реализация с помощью template:

https://snippet.webix.com/kphfbvki
https://snippet.webix.com/vxgv5ik0

Спасибо! Очень полезно!