private function matchParentInvisibleProperty(
        ConditionInterface $visibleCondition,
        DataDefinition\Definition\Properties\PropertyInterface $property,
        DataDefinition\Palette\PropertyInterface $legendProperty,
        array &$invisibleProperties,
        EnvironmentInterface $environment
    ) {
        $propertiesDefinition = $environment->getDataDefinition()->getPropertiesDefinition();

        foreach ($visibleCondition->getConditions() as $condition) {
            if ($condition instanceof ConditionChainInterface) {
                $this->matchParentInvisibleProperty(
                    $condition,
                    $property,
                    $legendProperty,
                    $invisibleProperties,
                    $environment
                );
            }

            if (!\method_exists($condition, 'getPropertyName')
                || ($property->getName() !== $condition->getPropertyName())
            ) {
                continue;
            }

            if (isset($invisibleProperties[$legendProperty->getName()])
                || !$propertiesDefinition->hasProperty($legendProperty->getName() . '.dummy')
            ) {
                continue;
            }


            $invisibleProperties[$legendProperty->getName()]
                = $propertiesDefinition->getProperty($legendProperty->getName() . '.dummy');
        }
    }