public function createSubpaletteCondition($subPaletteSelector, array $selectorFieldNames = [])
    {
        $condition = null;

        // Try to find a select value first (case 1).
        $selectorValues     = \explode('_', $subPaletteSelector);
        $selectorFieldName  = \array_shift($selectorValues);
        $selectorValueCount = \count($selectorValues);

        while ($selectorValueCount) {
            if (empty($selectorValues)) {
                break;
            }

            if (\in_array($selectorFieldName, $selectorFieldNames)) {
                $condition = new PropertyValueCondition($selectorFieldName, \implode('_', $selectorValues));
                break;
            }
            $selectorFieldName .= '_' . \array_shift($selectorValues);
        }

        // If case 1 was not successful, try implicitly case 2 must apply.
        if (!$condition) {
            $condition = new PropertyTrueCondition($subPaletteSelector);
        }

        return $condition;
    }