What does the EOL really mean from a practical standpoint? It's not like the code ceases to work from one day to the next. I'm not at all familiar with AngularJS but looking at the commit log, not much has been done to it in the past year other than bumping versions of dependencies. So thought has to go into the situation, but it's not that dire?
In the context of FlexDash I've been looking at a couple of options. One is to iframe the std dashboard for simple migration purposes. Thanks to the fact that the std dashboard can be navigated using the URL hash (
#!/2, ... at the end of the URL) it's actually quite simple to create a combined web site that has some tabs filled by FlexDash and some filled by the std dashboard. The end result only has one instance of the old dashboard regardless of how many tabs there are.
I think the biggest hurdle in the end is custom UI components and custom uses of ui_template. A first step might be to push the iframe stuff a bit further. Could the std dashboard code be chopped down so only enough remains to support a panel of widgets stuck in an iframe? How heavy does that end up being? This could be a practical bridge for users that only have a couple of panels with difficult-to-port widgets.
Beyond that I wonder what it would take to emulate a few of the most common ng directives in whatever a new dashboard might be written (e.g. Vue in FlexDash's case). In addition to the directives I guess there are the CSS styles and specific dimensions of various things in the std dashboard.
If I had to make a decision (thankfully I don't ) I would set an EOL date on the current dashboard that is ~1-2 years out and make do WRT supporting that. If some magic happens WRT AngularJS, that date can always be extended. And then I'd work on an iframe solution to make a transition easier. At the end of the day the burden caused by the AngularJS EOL has to be borne by everyone, the NR team can't realistically do magic.