static function addVisualSettings(array $manifest): array
{
$additional = [];
if (self::$provider === self::PROVIDER_GOOGLE)
{
$additional = [
'name' => Loc::getMessage('LANDING_GOOGLE_MAP--STYLE_TITLE'),
'attrs' => [
[
'name' => Loc::getMessage('LANDING_GOOGLE_MAP--STYLE_THEME_TITLE'),
'type' => 'dropdown',
'attribute' => 'data-map-theme',
'items' => [
[
'name' => Loc::getMessage('LANDING_GOOGLE_MAP--STYLE_THEME_DEFAULT'),
'value' => '',
],
[
'name' => Loc::getMessage('LANDING_GOOGLE_MAP--STYLE_THEME_SILVER'),
'value' => 'SILVER',
],
[
'name' => Loc::getMessage('LANDING_GOOGLE_MAP--STYLE_THEME_RETRO'),
'value' => 'RETRO',
],
[
'name' => Loc::getMessage('LANDING_GOOGLE_MAP--STYLE_THEME_DARK'),
'value' => 'DARK',
],
[
'name' => Loc::getMessage('LANDING_GOOGLE_MAP--STYLE_THEME_NIGHT'),
'value' => 'NIGHT',
],
[
'name' => Loc::getMessage('LANDING_GOOGLE_MAP--STYLE_THEME_AUBERGINE'),
'value' => 'AUBERGINE',
],
],
],
[
'name' => Loc::getMessage('LANDING_GOOGLE_MAP--STYLE_ROADS_TITLE'),
'type' => 'dropdown',
'attribute' => 'data-map-roads',
'items' => [
[
'name' => Loc::getMessage('LANDING_GOOGLE_MAP--STYLE_ON'),
'value' => '',
],
[
'name' => Loc::getMessage('LANDING_GOOGLE_MAP--STYLE_OFF'),
'value' => 'off',
],
],
],
[
'name' => Loc::getMessage('LANDING_GOOGLE_MAP--STYLE_LANDMARKS_TITLE'),
'type' => 'dropdown',
'attribute' => 'data-map-landmarks',
'items' => [
[
'name' => Loc::getMessage('LANDING_GOOGLE_MAP--STYLE_ON'),
'value' => '',
],
[
'name' => Loc::getMessage('LANDING_GOOGLE_MAP--STYLE_OFF'),
'value' => 'off',
],
],
],
],
];
}
// check block/nodes style notation
if (!isset($manifest['style']['block']) && !isset($manifest['style']['nodes']))
{
$manifest['style'] = [
'block' => ['type' => Block::DEFAULT_WRAPPER_STYLE],
'nodes' => $manifest['style'],
];
}
if (!empty($additional))
{
if (!isset($manifest['style']['nodes'][self::MAP_SELECTOR]['additional']))
{
$manifest['style']['nodes'][self::MAP_SELECTOR]['additional'] = [];
}
$manifest['style']['nodes'][self::MAP_SELECTOR]['additional'][] = $additional;
}
else
{
unset($manifest['style']['nodes'][self::MAP_SELECTOR]['additional']);
}
return $manifest;
}