File: /var/www/html/insiders/wp-load/wp-content/plugins/gutenmate/block-extensions/core-navigation.php
<?php
/**
* Render block style
*/
add_filter( 'gtm.BlockStyleCompiler.core/navigation', 'gtm_compile_block_css_core_navigation', 10, 3 );
function gtm_compile_block_css_core_navigation( $output, $attributes, $blockName ) {
$shouldHaveSubmenuAppearance = ( $attributes['layout']['orientation'] ?? '' ) == 'horizontal' && ( $attributes['overlayMenu'] ?? '' ) != "always";
$block_style = ['classes' => [], 'style' => []];
if ( version_compare( gtm_get_gutenberg_version(), '12', '<' ) ) {
$block_style['classes'][] = gtm_get_gutenberg_version_class();
}
if ( ! empty( $attributes['showSubmenuIcon'] ) ) {
$block_style['classes'][] = 'gtm-has-core-navigation-show-submenu-icon';
}
/* Top level */
gtm_css_compileCssVar( $block_style, "core-navigation-top-level-item-typography", gtm_css_parseTypographyProps( $attributes['gtmTopLevelItemTypography'] ?? null ) );
gtm_css_compileCssVar( $block_style, "core-navigation-top-level-item-spacing", gtm_css_parseSpacingValue( $attributes['gtmTopLevelItemSpacing'] ?? null ) );
gtm_css_compileCssVar( $block_style, "core-navigation-top-level-icon-size", $attributes['gtmTopLevelIconSize'] ?? null );
gtm_css_compileCssVar( $block_style, "core-navigation-top-level-icon-spacing", gtm_css_parseSpacingValue( $attributes['gtmTopLevelIconSpacing'] ?? null ) );
gtm_css_compileCssVar( $block_style, "core-navigation-top-level-link-radius", gtm_css_parseBorderRadiusValue( $attributes['gtmTopLevelLinkRadius'] ?? null ) );
gtm_css_compileCssVar( $block_style, "core-navigation-top-level-link-padding", gtm_css_parseResponsiveBoxProps( $attributes['gtmTopLevelLinkPadding'] ?? null ) );
gtm_css_compileCssVar( $block_style, "core-navigation-top-level-link-color", gtm_css_parseColorValue( $attributes['gtmTopLevelLinkColor'] ?? null ) );
gtm_css_compileCssVar( $block_style, "core-navigation-top-level-link-bg", gtm_css_parseColorValue( $attributes['gtmTopLevelLinkBg'] ?? null ) );
gtm_css_compileCssVar( $block_style, "core-navigation-top-level-link-hover-color", gtm_css_parseColorValue( $attributes['gtmTopLevelLinkHoverColor'] ?? null ) );
gtm_css_compileCssVar( $block_style, "core-navigation-top-level-link-hover-bg", gtm_css_parseColorValue( $attributes['gtmTopLevelLinkHoverBg'] ?? null ) );
/* Sub level */
gtm_css_compileCssVar( $block_style, "core-navigation-sub-level-item-typography", gtm_css_parseTypographyProps( $attributes['gtmSubLevelItemTypography'] ?? null ) );
gtm_css_compileCssVar( $block_style, "core-navigation-sub-level-item-spacing", gtm_css_parseSpacingValue( $attributes['gtmSubLevelItemSpacing'] ?? null ) );
gtm_css_compileCssVar( $block_style, "core-navigation-sub-level-icon-size", $attributes['gtmSubLevelIconSize'] ?? null );
gtm_css_compileCssVar( $block_style, "core-navigation-sub-level-icon-spacing", gtm_css_parseSpacingValue( $attributes['gtmSubLevelIconSpacing'] ?? null ) );
gtm_css_compileCssVar( $block_style, "core-navigation-sub-level-link-radius", gtm_css_parseBorderRadiusValue( $attributes['gtmSubLevelLinkRadius'] ?? null ) );
gtm_css_compileCssVar( $block_style, "core-navigation-sub-level-link-padding", gtm_css_parseResponsiveBoxProps( $attributes['gtmSubLevelLinkPadding'] ?? null ) );
gtm_css_compileCssVar( $block_style, "core-navigation-sub-level-link-color", gtm_css_parseColorValue( $attributes['gtmSubLevelLinkColor'] ?? null ) );
gtm_css_compileCssVar( $block_style, "core-navigation-sub-level-link-bg", gtm_css_parseColorValue( $attributes['gtmSubLevelLinkBg'] ?? null ) );
gtm_css_compileCssVar( $block_style, "core-navigation-sub-level-link-hover-color", gtm_css_parseColorValue( $attributes['gtmSubLevelLinkHoverColor'] ?? null ) );
gtm_css_compileCssVar( $block_style, "core-navigation-sub-level-link-hover-bg", gtm_css_parseColorValue( $attributes['gtmSubLevelLinkHoverBg'] ?? null ) );
/* Submenu appearance */
gtm_css_compileCssVar( $block_style, "core-navigation-submenu-spacing", gtm_css_parseSpacingValue( $attributes['gtmSubmenuSpacing'] ?? null ) );
gtm_css_compileCssVar( $block_style, "core-navigation-submenu-padding", gtm_css_parseResponsiveBoxProps( $attributes['gtmSubmenuPadding'] ?? null ) );
if ( $shouldHaveSubmenuAppearance ) {
gtm_css_compileCssVar( $block_style, "core-navigation-submenu-width", $attributes['gtmSubmenuWidth'] ?? null );
gtm_css_compileCssVar( $block_style, "core-navigation-submenu-radius", gtm_css_parseBorderRadiusValue( $attributes['gtmSubmenuRadius'] ?? null ) );
gtm_css_compileCssVar( $block_style, "core-navigation-submenu-bg", gtm_css_parseColorValue( $attributes['gtmSubmenuBg'] ?? null ) );
}
/* Overlay menu */
if ( ( $attributes['overlayMenu'] ?? '' ) !== 'never' ) {
gtm_css_compileCssVar( $block_style, "core-navigation-overlay-menu-icon-size", $attributes['gtmOverlayMenuIconSize'] ?? null );
gtm_css_compileCssVar( $block_style, "core-navigation-overlay-menu-close-icon-size", $attributes['gtmOverlayMenuCloseIconSize'] ?? null );
gtm_css_compileCssVar( $block_style, "core-navigation-overlay-menu-submenu-indent", gtm_css_parseSpacingValue( $attributes['gtmOverlayMenuSubmenuIndent'] ?? null ) );
gtm_css_compileCssVar( $block_style, "core-navigation-overlay-menu-icon-color", gtm_css_parseColorValue( $attributes['gtmOverlayMenuIconColor'] ?? null ) );
gtm_css_compileCssVar( $block_style, "core-navigation-overlay-menu-close-icon-color", gtm_css_parseColorValue( $attributes['gtmOverlayMenuCloseIconColor'] ?? null ) );
gtm_css_compileCssVar( $block_style, "core-navigation-overlay-menu-bg", gtm_css_parseColorValue( $attributes['gtmOverlayMenuBg'] ?? null ) );
gtm_css_compileCssVar( $block_style, "core-navigation-overlay-menu-link-color", gtm_css_parseColorValue( $attributes['gtmOverlayMenuLinkColor'] ?? null ) );
gtm_css_compileCssVar( $block_style, "core-navigation-overlay-menu-link-hover-color", gtm_css_parseColorValue( $attributes['gtmOverlayMenuLinkHoverColor'] ?? null ) );
}
// Apply to output
$block_style['style'] = ['{{BLOCK}}' => $block_style['style']];
return [
'classes' => array_merge( $output['classes'], $block_style['classes'] ),
'style' => array_replace_recursive( $output['style'], $block_style['style'] ),
];
}