fieldTypePresent(FormFieldType::AVAILABILITY_PICKER), subGuard: new SchemaHasLinkedEvent(), code: 'availability_picker_requires_event', ), new ConditionalRequirement( predicate: $this->fieldTypePresent(FormFieldType::TAG_PICKER), subGuard: new TagCategoriesConfiguredOnAllPickers(), code: 'tag_picker_requires_tag_categories', ), new AppendStrategyRequiresCollectionTarget($this->registry), new NoAmbiguousTrustLevels(), new IdentityKeyBindingsOnlyInFirstSection(), ]; } /** * @return \Closure(FormSchema): bool */ private function fieldTypePresent(FormFieldType $type): \Closure { $value = $type->value; return static function (FormSchema $schema) use ($value): bool { /** @var FormField $field */ foreach ($schema->fields as $field) { if ($field->field_type === $value) { return true; } } return false; }; } }