public function getDeps(): array
{
$groupTypes = [];
foreach (WebForm\Internals\FieldDepGroupTable::getDepGroupTypes() as $groupTypeId => $groupTypeName)
{
$groupTypes[] = ['id' => $groupTypeId, 'name' => $groupTypeName];
}
$stringTypes = [
WebForm\Internals\FieldTable::TYPE_ENUM_EMAIL,
WebForm\Internals\FieldTable::TYPE_ENUM_PHONE,
WebForm\Internals\FieldTable::TYPE_ENUM_STRING,
WebForm\Internals\FieldTable::TYPE_ENUM_TEXT,
WebForm\Internals\FieldTable::TYPE_ENUM_TYPED_STRING,
'name',
'last-name',
'second-name',
'company-name',
];
$numberTypes = [
WebForm\Internals\FieldTable::TYPE_ENUM_FLOAT,
WebForm\Internals\FieldTable::TYPE_ENUM_INT,
WebForm\Internals\FieldTable::TYPE_ENUM_MONEY,
];
return [
'group' => [
'types' => $groupTypes
],
'field' => [
'types' => [],
'disallowed' => [
WebForm\Internals\FieldTable::TYPE_ENUM_BR,
WebForm\Internals\FieldTable::TYPE_ENUM_HR,
WebForm\Internals\FieldTable::TYPE_ENUM_RESOURCEBOOKING,
WebForm\Internals\FieldTable::TYPE_ENUM_PAGE,
],
],
'condition' => [
'events' => [
['id' => 'change', 'name' => Loc::getMessage('CRM_WEBFORM_OPTIONS_DICT_COND_EVENT_CHANGE')],
],
'operations' => [
[
'id' => '=',
'name' => Loc::getMessage('CRM_WEBFORM_OPTIONS_DICT_COND_OP_EQUAL'),
'fieldTypes' => [],
'excludeFieldTypes' => [
WebForm\Internals\FieldTable::TYPE_ENUM_BOOL
],
],
[
'id' => '!=',
'name' => Loc::getMessage('CRM_WEBFORM_OPTIONS_DICT_COND_OP_NOTEQUAL'),
'fieldTypes' => [],
'excludeFieldTypes' => [
WebForm\Internals\FieldTable::TYPE_ENUM_BOOL
],
],
[
'id' => '>',
'name' => Loc::getMessage('CRM_WEBFORM_OPTIONS_DICT_COND_OP_GREATER'),
'fieldTypes' => $numberTypes,
],
[
'id' => '>=',
'name' => Loc::getMessage('CRM_WEBFORM_OPTIONS_DICT_COND_OP_GREATEROREQUAL'),
'fieldTypes' => $numberTypes,
],
[
'id' => '<',
'name' => Loc::getMessage('CRM_WEBFORM_OPTIONS_DICT_COND_OP_LESS'),
'fieldTypes' => $numberTypes,
],
[
'id' => '<=',
'name' => Loc::getMessage('CRM_WEBFORM_OPTIONS_DICT_COND_OP_LESSOREQUAL'),
'fieldTypes' => $numberTypes,
],
[
'id' => 'empty',
'name' => Loc::getMessage('CRM_WEBFORM_OPTIONS_DICT_COND_OP_EMPTY1'),
'fieldTypes' => [],
],
[
'id' => 'any',
'name' => Loc::getMessage('CRM_WEBFORM_OPTIONS_DICT_COND_OP_ANY1'),
'fieldTypes' => [],
],
[
'id' => 'contain',
'name' => Loc::getMessage('CRM_WEBFORM_OPTIONS_DICT_COND_OP_CONTAIN'),
'fieldTypes' => $stringTypes,
],
[
'id' => '!contain',
'name' => Loc::getMessage('CRM_WEBFORM_OPTIONS_DICT_COND_OP_NOTCONTAIN'),
'fieldTypes' => $stringTypes,
],
],
],
'action' => [
'types' => [
['id' => 'show', 'name' => Loc::getMessage('CRM_WEBFORM_OPTIONS_DICT_COND_ACTION_SHOW')],
['id' => 'hide', 'name' => Loc::getMessage('CRM_WEBFORM_OPTIONS_DICT_COND_ACTION_HIDE')],
]
]
];
}