Реализовать пользовательский компонент

Добавить внешний пользовательский компонент в библиотеку Freedom UI дизайнера
Средний

Пример реализован для приложения версии 8.0.3 и выше.

Пример. Добавить внешний пользовательский компонент в библиотеку Freedom UI дизайнера. Использовать изображение, которое приведено ниже.

1. Реализовать внешний пользовательский компонент 

Чтобы реализовать внешний пользовательский компонент, воспользуйтесь инструкцией, которая приведена в статье Реализовать внешний пользовательский компонент.

2. Реализовать поле ввода 

Чтобы реализовать поле ввода, воспользуйтесь инструкцией, которая приведена в статье Реализовать бизнес-логику внешнего пользовательского компонента.

3. Реализовать валидацию поля ввода 

Чтобы реализовать валидацию поля ввода, воспользуйтесь инструкцией, которая приведена в статье Реализовать валидацию во внешнем пользовательском компоненте.

4. Добавить компонент в библиотеку Freedom UI дизайнера 

  1. Настройте отображение компонента в библиотеке Freedom UI дизайнера.

    1. Перейдите в файл input.component.ts.
    2. В компонент импортируйте функциональность декоратора CrtInterfaceDesignerItem из библиотеки @creatio-devkit/common.
    3. Отметьте компонент декоратором CrtInterfaceDesignerItem со свойством toolbarConfig, которое отвечает за отображение элемента в библиотеке Freedom UI дизайнера.
    4. Загрузите изображение, которое планируется отображать в библиотеке Freedom UI дизайнера и в свойстве icon укажите путь к изображению, которое планируется отображать в библиотеке Freedom UI дизайнера. В нашем примере изображение содержится в каталоге input.
    5. Сохраните файл.
    Файл input.component.ts
    Код скопирован
    ...
    /* Импорт функциональности декораторов из библиотеки @creatio-devkit/common. */
    import { CrtInput, CrtInterfaceDesignerItem, CrtOutput, CrtValidationInfo, CrtValidationInput, CrtViewElement } from '@creatio-devkit/common';
    ...
    /* Добавляем декоратор CrtViewElement к компоненту InputComponent. */
    @CrtInterfaceDesignerItem({
      /* Отвечает за отображение элемента в библиотеке Freedom UI дизайнера. */
      toolbarConfig: {
        caption: 'Custom Input',
        name: 'CustomInput',
        /* Путь к изображению для компонента. */
        icon: require('!!raw-loader?{esModule:false}!./icon.png'),
        defaultPropertyValues: {
          label: 'Custom input'
        }
      }
    })
    ...
    Полный исходный код файла input.component.ts
  2. Выполните сборку проекта. Для этого в терминале командной строки Microsoft Visual Studio Code выполните команду npm run build.

В результате в каталог dist Angular-проекта будет добавлена сборка с именем sdk_remote_module_package.

Результат выполнения примера 

Чтобы посмотреть результат выполнения примера, в рабочей области страницы приложения Requests откройте страницу [ Страница записи Requests ] ([ Requests form page ]).

В результате выполнения примера компонент [ Пользовательский ввод ] ([ Custom input ]) отображается в библиотеке Freedom UI дизайнера в группе [ Пользовательские компоненты ] ([ Custom components ]).

Также внешний пользовательский компонент отображается во Freedom UI дизайнере при добавлении на холст.