Dynamic Runtime Widget Management in Perspective Dashboard Component

Hi everyone,

I am working on a Perspective-based dashboard in Ignition 8.1.48 and trying to implement a custom widget management system using the Dashboard Component. I want to know if this is achievable within the Dashboard component itself.

In my idea my layout has a fixed 2-column Dashboard as the main area. Each widget inside the dashboard has three control buttons which are a minimize button, an expand button, and a restore button.(is this possible to do because I tried using the props.widget but nothing worked)

When the minimize button is pressed on any widget, that widget should move to a separate vertical tray panel placed beside the main dashboard. The remaining widget in that same row should automatically expand to fill the full row width. When the minimized widget in the tray is clicked, it should return to its original default position in the main dashboard and the expanded widget should shrink back to its original size.

When the expand button is pressed on any widget, that widget should overlap and cover the entire dashboard area hiding all other widgets. When the restore button is pressed it should go back to its default size and position.

My core questions are, first, is it possible to programmatically change a widget's column span at runtime within the Dashboard component using scripts. Second, can we dynamically add or remove widgets from the Dashboard component's widget array through scripting. Third, are there any script hooks or events exposed by the Dashboard component that can be used for this behavior. Fourth, if the Dashboard component cannot support this natively, what would be the recommended Perspective approach to achieve the same layout behavior.

I have already checked self.props.widgets which appears to be read only at runtime and I could not find any onWidgetChange or similar events in the Dashboard component.

Any guidance would be really helpful. Thank you.