/* eslint-disable */ /** * This file was automatically generated by json-schema-to-typescript. * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file, * and run json-schema-to-typescript to regenerate this file. */ /** * The text displayed on the button. Should be short and action-oriented (e.g., 'Go Back', 'View Details', 'Open Settings'). */ export type Label = string; /** * Material icon name displayed alongside the label. Find icon names at https://fonts.google.com/icons (e.g., 'arrow_back', 'open_in_new', 'settings', 'home'). */ export type IconName = string; /** * The destination path when the button is clicked. Leave blank to perform automatic browser back navigation. Supports two dynamic substitution mechanisms: (1) Variable placeholders using double curly braces — define variables in the 'Variables' array below and reference them as {{variableName}} in the route string (e.g., '/device/{{deviceId}}/details' where a variable with label 'deviceId' provides the value). (2) Wildcard segments using a single asterisk '*' as a full path segment — each '*' is replaced at runtime by the segment at the same position from the current browser route (e.g., '/* /settings' navigates to the settings page while preserving the first segment of the current URL). The '*' must be the entire segment to be substituted; partial wildcards like 'test*' are treated as literal text. Routes starting with '/' are absolute; routes without a leading slash are relative to the current location. */ export type Navigation = string; /** * The variable name used in the route string. Reference this in your route using the {{label}} syntax. Use descriptive names like 'temperature', 'status', 'deviceName'. */ export type Label1 = string; /** * The replacement text that will appear in place of {{label}} in the rendered output. Can be a static value or bound to a data column for dynamic updates. */ export type Value = string; /** * Array of variable definitions for dynamic route segment substitution. Each variable has a label (used in the route string as {{label}}) and a value (the replacement text). Values can be static or bound to data columns for real-time updates. */ export type NavigationVariables = { label?: Label1; value?: Value; [k: string]: unknown; }[]; /** * Font size in pixels for the button label text. */ export type FontSize = number; /** * A navigation button widget for in-dashboard navigation between pages or sections. Use this widget to create clickable buttons that navigate users to different dashboard views, external pages, or perform back navigation. Supports Material Design icons and customizable styling. Ideal for creating navigation flows, back buttons, call-to-action links, or any clickable element that should route users to another location. */ export interface NavigationButtonConfiguration { title?: Label; iconName?: IconName; route?: Navigation; variables?: NavigationVariables; style?: ButtonStyle; [k: string]: unknown; } /** * Visual styling options for the button appearance. */ export interface ButtonStyle { fontSize?: FontSize; color?: FontColor; backgroundColor?: BackgroundColor; [k: string]: unknown; } /** * Text color for the button label and icon. */ export interface FontColor { [k: string]: unknown; } /** * Background fill color of the button. */ export interface BackgroundColor { [k: string]: unknown; }