Пример

Для примера приведём настройку виджета "Как просто".

Файл .widget

Ниже приведён пример файла HowEasyWidget.widget Виджет будет отображаться в категории магазина "Прочее".

{
   "id": "how-easy",
   "info": {
      "title": "Как просто",
      "description": "Виджет позволит вам получить быстрый доступ к функционалу",
      "category": "Прочее"
   },
   "runtimeConfig": {
      "templateName": "HowEasy/view:View",
      "sourceConfigGetter": "HowEasy/Loader"
   }
}

В примере конфигурации виджета описаны следующие поля:

  • id - уникальный идентификатор виджета.
  • info - описание виджета. Для этих полей требуется локализация.
  • templateName - шаблон отображения виджета.
  • sourceConfigGetter - источник данных (Раздел "sourceConfigGetter").

Файл .widgetgroup

Виджет "Как просто" включен в группу общих виджетов:

// TypeScript
{
  "id": "f2bb34a7-4ab0-42ef-944f-77341060460d",
  "name": "general",
  "widgets": [
    {
      "id": "how-easy"
    }
  ]
}

Так же возможно объединение групп виджетов в другие группы. В примере ниже группа с виджетом "Как просто" включена в группу виджетов главной страницы приложения online:

// TypeScript
{
  "id": "f24dcd35-03c0-40f7-bafd-55e80c02b944",
  "name": "online",
  "groups": [
    {
      "id": "f2bb34a7-4ab0-42ef-944f-77341060460d",
      "name": "general"
    }
  ]
}

sourceConfigGetter

Описание метода получения данных sourceConfigGetter приведён ниже. Данные виджета доступны в опции items.

// TypeScript
import {SbisService, DataSet} from 'Types/source';

function sourceConfigGetter(): object {
    const config = {
        type: 'custom',
        loadDataMethod(): Promise<object> {
            return new Promise((resolve) => {
                const source = new SbisService({
                    endpoint: 'HowEasy'
                });
                return source.call('Data').then((items: DataSet) => {
                    resolve({
                        items: items.getAll()
                    });
                });
            });
        }
    };
    return {
        items: config
    };
}
export default sourceConfigGetter;