1: <?php
2:
3: namespace LaravelUi5\Core\Ui5\Contracts;
4:
5: use LaravelUi5\Core\Ui5\Capabilities\SluggableInterface;
6: use LaravelUi5\Core\Ui5\Capabilities\SlugSettableInterface;
7:
8: /**
9: * Represents a UI5 Dashboard artifact that aggregates Tiles and Cards into a structured layout.
10: *
11: * Dashboards serve as entry points for visualizing business contexts and overviews,
12: * often composed of reusable UI5 elements. Each dashboard is associated with a static
13: * or dynamic XML fragment that defines the layout structure in a format consumable by
14: * the UI5 runtime (e.g., sap.ui.core.Fragment).
15: *
16: * Implementations are responsible for providing a valid XML blade path which can be rendered
17: * and injected into the SAPUI5 shell container or application shell.
18: */
19: interface Ui5DashboardInterface extends Ui5ArtifactInterface, SluggableInterface, SlugSettableInterface
20: {
21: /**
22: * Returns the absolute or resource-relative path to the dashboard Blade view.
23: *
24: * This view is expected to contain an XML fragment definition, typically using the
25: * <core:FragmentDefinition> root element and appropriate UI5 XML namespaces.
26: *
27: * @return string Path to the XML blade template.
28: */
29: public function getDashboard(): string;
30: }
31: