yFiles Gradle Plugin for Kotlin/JS Goal Safe interface implementing OOB YObject support Optimize yFiles imports while ES modules not supported Interface(s) implementing Example // Generated prototype (JS): // MyVisualTemplate.prototype = Object.create(BaseClass(IVisualTemplate).prototype) class MyVisualTemplate: IVisualTemplate { /* body */ } // Generated prototype (JS): // MyArrow.prototype = Object.create(BaseClass(IArrow, IVisualCreator, IBoundsProvider).prototype) class MyArrow: IArrow, IVisualCreator, IBoundsProvider { /* body */ } Requirements Only yFiles interfaces implemented No extended class Custom YObject Example // Generated JS: // Class.fixType(SelectionProvider) class SelectionProvider : YObject { fun isSelected(item: IModelItem): Boolean = /* ... */ } // Generated JS: // Class.fixType(HighlightProvider) class HighlightProvider : YObject { fun isHighlighted(item: IModelItem): Boolean = /* ... */ } Requirements No extended interfaces Class property class MyObject : YObject { companion object : IClassMetadata<MyObject> by classMetadata() } // JS: MyObject.$class MyObject.yclass