Типы Custom

1. Текст

PARAM_TYPE.custom_string

Тип параметра, обозначающий, что введенные данные в поле конфигуратора, будут сохранены в настройках параметра и доступны в виджете как текст. При редактировании параметра пользователю отображается текстовое поле textarea.

Пример:

Описание параметра в виджете:

const PARAMS: WidgetParams = {
 text: {
    title: 'Текст',
    item_type: ITEM_TYPE.custom,
    param_type: PARAM_TYPE.custom_string,
  },
};

В конфигураторе задаем значение: Hello world!

В виджете можно получить значение через: values.text.value

2. JSON

PARAM_TYPE.custom_json

Тип параметра, обозначающий, что введенные данные будут распарсены функцией JSON.parse() и будут доступны в виджете как JSON объект. При редактировании параметра пользователю отображается текстовое поле textarea, а ниже него отображается тот JSON, который будет доступен в виджете. В случае задания неправильного JSON, параметр будет равен пустому объекту {}

Пример:

Описание параметра в виджете:

const PARAMS: WidgetParams = {
 status: {
    title: 'Статусы',
    item_type: ITEM_TYPE.custom,
    param_type: PARAM_TYPE.custom_json,
  },
};

В конфигураторе задаем значение: {«foo»:«bar»}

В виджете можно получить значение через: values.status.value.foo

3. Archer

PARAM_TYPE.custom_archer

Тип предназначен для работы с Archer файлами. Archer website При экспортировании файлов из редактора Archer файлов создается два файла. SVG - со схемой и JSON с описанием параметров.

В конфигураторе виджетов для управления типом параметра custom_archer будет доступна загрузка двух файлов SVG и JSON. JSON файл после загрузки будет преобразован в список параметров, которые можно будет указать стандартным способом, как если бы это были PARAM_TYPE.value

В виджете данные JSON файла будут доступны в параметры values.archer. А SVG и JSON файл, в values.archer.files (values.archer.files.svg и values.archer.files.json соответственно)

4. Расширяемый тип

PARAM_TYPE.custom_external

Данные тип параметра предназначен для расширения списка параметров, с помощью загружаемого JSON файла. Формат JSON файла должен соответствовать типу WidgetParams. Это значит, что описание типов в файле JSON должно быть точно такое же, как и в описании параметров виджета. Единственное исключение, составляет описание типов параметра, которые должны быть описаны как строка. Пример показан ниже.

Данные код:

const PARAMS: WidgetParams = {
battery: {
    title: _('Battery'),
    item_type: ITEM_TYPE.single,
    param_type: PARAM_TYPE.value,
    items: {
      charge: {title: _('Charge')},
      temperature: {title: _('Temperature')}
    }
  },
  };

Должен быть преобразован в:

external.json
{
"battery": {
    "title": "Battery",
    "item_type": "single",
    "param_type": "value",
    "items": {
      "charge": {"title": "Charge"},
      "temperature": {"title": "Temperature"}
    }
  }
}

При таком описании параметра

const PARAMS: WidgetParams = {
 system: {
    title: 'Система',
    item_type: ITEM_TYPE.custom,
    param_type: PARAM_TYPE.custom_external,
  },
};

и в случае загрузке в него JSON файла, указанного выше

В виджете данные будут доступны по цепочке values.system.battery.charge.value и values.system.battery.temperature.value

5. Любой файл

PARAM_TYPE.custom_file

При использовании этого типа вы можете загрузить любой файл(практически, есть ограничение сервиса) и впоследствии его использовать в виджете

К примеру, при таком описании

const PARAMS: WidgetParams = {
 image: {
    title: 'Изображение',
    item_type: ITEM_TYPE.custom,
    param_type: PARAM_TYPE.custom_file,
  },
};

Файл будет доступен в коде виджета по цепочке values.image.files.file