Browse Source
Defines ConnectivityType, InstallStepType, ENTITY_STEP_TYPES, stepTypeAliasMap, DevicePackageInfo, DeviceInstallStep, form field interfaces, and EntityStepProgress types for the device install wizard.pull/15347/head
1 changed files with 134 additions and 0 deletions
@ -0,0 +1,134 @@ |
|||||
|
///
|
||||
|
/// Copyright © 2016-2026 The Thingsboard Authors
|
||||
|
///
|
||||
|
/// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
|
/// you may not use this file except in compliance with the License.
|
||||
|
/// You may obtain a copy of the License at
|
||||
|
///
|
||||
|
/// http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
///
|
||||
|
/// Unless required by applicable law or agreed to in writing, software
|
||||
|
/// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
|
/// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
|
/// See the License for the specific language governing permissions and
|
||||
|
/// limitations under the License.
|
||||
|
///
|
||||
|
|
||||
|
export enum ConnectivityType { |
||||
|
DIRECT_HTTP = 'DIRECT_HTTP', |
||||
|
DIRECT_MQTT = 'DIRECT_MQTT', |
||||
|
DIRECT_COAP = 'DIRECT_COAP', |
||||
|
DIRECT_LWM2M = 'DIRECT_LWM2M', |
||||
|
DIRECT_SNMP = 'DIRECT_SNMP', |
||||
|
GATEWAY_MQTT = 'GATEWAY_MQTT', |
||||
|
GATEWAY_MODBUS = 'GATEWAY_MODBUS', |
||||
|
GATEWAY_OPCUA = 'GATEWAY_OPCUA', |
||||
|
CHIRPSTACK = 'CHIRPSTACK', |
||||
|
INTEGRATION_CHIRPSTACK = 'INTEGRATION_CHIRPSTACK', |
||||
|
INTEGRATION_TTN = 'INTEGRATION_TTN', |
||||
|
INTEGRATION_LORIOT = 'INTEGRATION_LORIOT' |
||||
|
} |
||||
|
|
||||
|
export const connectivityTypeTranslations = new Map<string, string>( |
||||
|
[ |
||||
|
[ConnectivityType.DIRECT_HTTP, 'HTTP'], |
||||
|
[ConnectivityType.DIRECT_MQTT, 'MQTT'], |
||||
|
[ConnectivityType.DIRECT_COAP, 'CoAP'], |
||||
|
[ConnectivityType.DIRECT_LWM2M, 'LwM2M'], |
||||
|
[ConnectivityType.DIRECT_SNMP, 'SNMP'], |
||||
|
[ConnectivityType.GATEWAY_MQTT, 'MQTT Gateway'], |
||||
|
[ConnectivityType.GATEWAY_MODBUS, 'Modbus Gateway'], |
||||
|
[ConnectivityType.GATEWAY_OPCUA, 'OPC-UA Gateway'], |
||||
|
[ConnectivityType.CHIRPSTACK, 'ChirpStack'], |
||||
|
[ConnectivityType.INTEGRATION_CHIRPSTACK, 'ChirpStack (PE)'], |
||||
|
[ConnectivityType.INTEGRATION_TTN, 'The Things Stack'], |
||||
|
[ConnectivityType.INTEGRATION_LORIOT, 'LORIOT'] |
||||
|
] |
||||
|
); |
||||
|
|
||||
|
export enum InstallStepType { |
||||
|
SHOW_INSTRUCTION = 'SHOW_INSTRUCTION', |
||||
|
SHOW_FORM = 'SHOW_FORM', |
||||
|
DEVICE_PROFILE = 'DEVICE_PROFILE', |
||||
|
CONVERTER = 'CONVERTER', |
||||
|
INTEGRATION = 'INTEGRATION', |
||||
|
DEVICE = 'DEVICE', |
||||
|
DASHBOARD = 'DASHBOARD', |
||||
|
RULE_CHAIN = 'RULE_CHAIN' |
||||
|
} |
||||
|
|
||||
|
export const ENTITY_STEP_TYPES: Set<string> = new Set([ |
||||
|
InstallStepType.DEVICE_PROFILE, |
||||
|
InstallStepType.DEVICE, |
||||
|
InstallStepType.DASHBOARD, |
||||
|
InstallStepType.RULE_CHAIN |
||||
|
]); |
||||
|
|
||||
|
export const stepTypeAliasMap: Record<string, string> = { |
||||
|
[InstallStepType.DEVICE_PROFILE]: 'deviceProfile', |
||||
|
[InstallStepType.DEVICE]: 'device', |
||||
|
[InstallStepType.DASHBOARD]: 'dashboard', |
||||
|
[InstallStepType.RULE_CHAIN]: 'ruleChain' |
||||
|
}; |
||||
|
|
||||
|
export interface DeviceInstallStep { |
||||
|
type: InstallStepType; |
||||
|
name: string; |
||||
|
file?: string; |
||||
|
template?: string; |
||||
|
} |
||||
|
|
||||
|
export interface DevicePackageInfo { |
||||
|
name: string; |
||||
|
description: string; |
||||
|
vendor: string; |
||||
|
hardwareType: string; |
||||
|
connectivityTypes: string[]; |
||||
|
installSteps: Record<string, DeviceInstallStep[]>; |
||||
|
} |
||||
|
|
||||
|
export enum FormFieldType { |
||||
|
STRING = 'STRING', |
||||
|
INTEGER = 'INTEGER', |
||||
|
BOOLEAN = 'BOOLEAN', |
||||
|
SELECT = 'SELECT', |
||||
|
PASSWORD = 'PASSWORD' |
||||
|
} |
||||
|
|
||||
|
export interface FormFieldValidator { |
||||
|
pattern: string; |
||||
|
message: string; |
||||
|
} |
||||
|
|
||||
|
export interface FormFieldOption { |
||||
|
value: string; |
||||
|
label: string; |
||||
|
} |
||||
|
|
||||
|
export interface FormFieldDefinition { |
||||
|
key: string; |
||||
|
label: string; |
||||
|
type: FormFieldType; |
||||
|
defaultValue?: any; |
||||
|
required?: boolean; |
||||
|
helpText?: string; |
||||
|
helpImage?: string; |
||||
|
validators?: FormFieldValidator[]; |
||||
|
options?: FormFieldOption[]; |
||||
|
} |
||||
|
|
||||
|
export interface EntityStepOutput { |
||||
|
id: string; |
||||
|
name: string; |
||||
|
token?: string; |
||||
|
} |
||||
|
|
||||
|
export type EntityStepStatus = 'pending' | 'running' | 'success' | 'error'; |
||||
|
|
||||
|
export interface EntityStepProgress { |
||||
|
step: DeviceInstallStep; |
||||
|
status: EntityStepStatus; |
||||
|
resolvedName?: string; |
||||
|
entityOutput?: EntityStepOutput; |
||||
|
errorMessage?: string; |
||||
|
} |
||||
Loading…
Reference in new issue