/* 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 main title/brand text displayed in the navigation bar, typically on the left side. Often used for logo text or application name. */ export type TitleSettings = string; /** * The destination path when the title is clicked. Supports two dynamic substitution mechanisms: (1) Variable placeholders using double curly braces — define variables in the 'Title Navigation 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 TitleNavigation = 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 Label = 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 TitleNavigationVariables = { label?: Label; value?: Value; [k: string]: unknown; }[]; /** * Font size in pixels for navigation item labels. */ export type FontSize = number; /** * Font weight for navigation items (100=thin, 400=normal, 700=bold, 900=black). */ export type FontWeight = number; /** * The text displayed for this navigation item. Should be short and descriptive (e.g., 'Dashboard', 'Settings', 'Reports'). */ export type Label1 = string; /** * Material icon name to display alongside the label. Find icon names at https://fonts.google.com/icons (e.g., 'home', 'settings', 'dashboard', 'analytics'). */ export type IconName = string; /** * The destination path when this item is clicked. 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 NavigationRoute = 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 Label2 = 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 Value1 = 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?: Label2; value?: Value1; [k: string]: unknown; }[]; /** * Array of clickable navigation links displayed in the navigation bar. Each item can have a label, icon, and destination route. */ export type NavigationItems = { label?: Label1; iconName?: IconName; route?: NavigationRoute; variables?: NavigationVariables; [k: string]: unknown; }[]; /** * A horizontal navigation bar widget for creating top-level dashboard navigation. Use this widget to provide consistent navigation across dashboard pages with a clickable title and multiple navigation items. Each item can have an icon and routes to different dashboard sections. Supports customizable styling for font size, weight, and colors. Ideal for multi-page dashboards requiring clear navigation structure and branding. */ export interface InputData { title?: TitleSettings; route?: TitleNavigation; variables?: TitleNavigationVariables; style?: ItemStyle; navItems?: NavigationItems; [k: string]: unknown; } /** * Global styling options applied to all navigation items in the bar. */ export interface ItemStyle { fontSize?: FontSize; fontWeight?: FontWeight; color?: FontColor; backgroundColor?: BackgroundColor; [k: string]: unknown; } /** * Text color for navigation item labels. */ export interface FontColor { [k: string]: unknown; } /** * Background color of the navigation bar. */ export interface BackgroundColor { [k: string]: unknown; }