There is a balance to be struck here between what more advanced users want to be able to do and what the average user needs, taking into account the resources that the average user is putting into serving OH in the first place.
There’s an oh-webview component (and the ability to add an iframe
as a direct component if you don’t like the webview’s limitations). If your preference is for full web development for OH, then you might be better off just creating your own app and visualizing it in MainUI via one of those methods. Or possibly, HABpanel is more what you’re looking for as that offers closer to a full angularJS method for creating OH interfaces.
Yes, the freedom already available in the widget system does tend to spawn increasingly complex ideas and dreams in those of us that enjoy thinking about such things. On the other hand, I also encourage you to keep in mind that part of the beauty of the custom widget system is it’s simplicity for those that want such simplicity while also already being complex enough that there is very little that cannot be done with a little creativity and the occasional workaround.
For example, my confirm button, would have been dead simple to create with a full js implementation. Or, I could have easily added the capability to oh-buttons though a PR (I may still do so eventually). But, even though it took longer, it was quite fun and a great learning experience to think through how to create it just with the available tools and css. With what function is already there, my solution is 99.9% correct (and I strongly doubt anyone else will ever find the .1% issue).
The expression parser that is used is jse-eval which is descended from jsep and compatible with the jsep plugins. There’s info on the jsep site about how to author these plugins. Right now if you look in the widgets mixin file, you will see that widgets currently take advantage of regex, arrow, object, and template plugins.
I personally don’t really see a use for the assignment plugin, but I’m just one point of view.
You can always create new vue based components and just submit them to the repo. Or, always just run your own test-server copy of the UI. Other than that, you probably know far better than I do about if vue templates can be dynamically added to a pre-built app (though I very much doubt it).