private function findInvisiblePaletteSelectorProperty(
        Action $action,
        ModelInterface $model,
        array &$invisibleProperties,
        EnvironmentInterface $environment
    ) {
        $palettesDefinition = $environment->getDataDefinition()->getPalettesDefinition();

        if (!empty($invisibleProperties) || 1 > \count($palettesDefinition->getPalettes())) {
            return;
        }

        $propertiesDefinition = $environment->getDataDefinition()->getPropertiesDefinition();

        $session = $this->getSession($action, $environment);

        $palette = $palettesDefinition->findPalette($model);
        foreach ($palette->getProperties() as $paletteProperty) {
            if (!\array_key_exists($paletteProperty->getName(), $session['intersectValues'])) {
                continue;
            }

            $paletteName = $session['intersectValues'][$paletteProperty->getName()];
            if (!$palettesDefinition->hasPaletteByName($paletteName)) {
                continue;
            }

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

            break;
        }
    }