Параметры (jobs, crawlers, etc)

Кастомные представления для параметров

Точка расширения UEParameterItem позволяет реализовывать кастомные представления параметров.

Используется в различных экранах настроек, но не используется в карточке записи.

Описание UEParameterItem:

export type UEParameterItem = UeModuleBase & {
    default: {
        component: ComponentType<{
            parameterValue: IValuedParameter;
            parameterDescriptor: IParameterDescriptor;
            isReadOnly: boolean;
        }>;
        resolver: (parameterDescriptor: IParameterDescriptor) => boolean;
    };
}

Пример UEParameterItem: отображение настройки в виде поля с подсветкой SQL-синтаксиса.

interface IProps {
    parameterValue: IValuedParameter;
    parameterDescriptor: IParameterDescriptor;
    isReadOnly: boolean;
}

class SqlField extends React.Component<IProps> {
    override render () {
        const SqlParameter = React.lazy(() => import('./SqlParameter'));

        return (
            <React.Suspense fallback={''}>
                <SqlParameter {...this.props}/>
            </React.Suspense>
        );
    }
}

export const ueSqlField: UEParameterItem = {
    'default': {
        moduleId: 'sqlParameterItem',
        type: UEList.ParameterItem,
        active: true,
        system: false,
        resolver: (parameterDescriptor: IParameterDescriptor) => {
            return parameterDescriptor instanceof CrawlerParameterDescriptor &&
                        parameterDescriptor.viewType.getValue() === ParameterViewType.SQL;
        },
        meta: {},
        component: SqlField
    }
};