PluginProbe
Booking Calendar / 11.9
Booking Calendar v11.9
11.9 11.8.4 11.8.3 11.8.2 11.8.1 11.8 11.7 11.6.1 11.6 11.5 11.4.3 11.4.2 11.4.1 11.4 11.3 11.2.1 11.2 11.1 11.0 10.15.7 10.15.6 10.1.3 10.10 10.10.1 10.10.2 All 205 releases
← All changes | includes/ui_settings/parts/ui__nav_vert.php +235 -84 11.5 → 11.9 View file →
@@ -29,13 +29,21 @@
29 29 ),
30 30 'wpbc-divider-1' => array(
31 31 'type' => 'divider',
32 32 ),
33 - 'wpbc-availability' => array(
33 + );
34 +
35 + $pages_arr['wpbc-resources'] = array(
36 + 'type' => 'menu',
37 + 'title' => __( 'Resources', 'booking' ),
38 + 'font_icon' => 'wpbc-bi-list',
39 + );
40 +
41 +
42 + $pages_arr['wpbc-availability'] = array(
34 43 'type' => 'menu',
35 44 'title' => __( 'Availability', 'booking' ),
36 45 'font_icon' => 'wpbc-bi-calendar-week',
37 - ),
38 46 );
39 47
40 48 if ( class_exists('wpdev_bk_biz_m') ) {
41 49 $pages_arr['wpbc-prices'] = array(
@@ -44,21 +52,9 @@
44 52 'font_icon' => 'wpbc-bi-cash-stack',
45 53 );
46 54 }
47 55
48 - if ( class_exists('wpdev_bk_personal') ) {
49 - $pages_arr['wpbc-resources'] = array(
50 - 'type' => 'menu',
51 - 'title' => __( 'Resources', 'booking' ),// . ' / ' . __( 'unique calendars', 'booking' ),
52 - 'font_icon' => 'wpbc-bi-list',
53 - );
54 - } else {
55 - $pages_arr['wpbc-resources'] = array(
56 - 'type' => 'menu',
57 - 'title' => __( 'Resource', 'booking' ) . ' / ' . __( 'Publish', 'booking' ),
58 - 'font_icon' => 'wpbc-bi-list',
59 - );
60 - }
56 +
61 57 $pages_arr['wpbc-divider-2'] = array(
62 58 'type' => 'divider',
63 59 );
64 60 $pages_arr['wpbc-settings'] = array(
@@ -84,9 +80,9 @@
84 80 );
85 81 $params = wp_parse_args( $args, $defaults );
86 82
87 83 // Ability to click on panel, only if there 'min' class - panel minimized!
88 - echo '<div class="wpbc_ui_el__vert_left_bar__wrapper" onclick0="javascript:if (( jQuery( this ).parent(\'.wpbc_settings_page_wrapper\').hasClass(\'min\') ) && ( ! wpbc_admin_ui__is_in_mobile_screen_size())) { wpbc_admin_ui__sidebar_left__do_max(); }" >';
84 + echo '<div class="wpbc_ui_el__vert_left_bar__wrapper" onclick="javascript:if (( jQuery( this ).parent(\'.wpbc_settings_page_wrapper\').hasClass(\'min\') ) && ( ! wpbc_admin_ui__is_in_mobile_screen_size())) { wpbc_admin_ui__sidebar_left__do_max( true ); }" >';
89 85
90 86 // FixIn: 10.12.1.7.
91 87 wpbc_ui__vert_left_bar__side_button__do_compact();
92 88 wpbc_ui__vert_left_bar__side_button__do_max();
@@ -96,15 +92,33 @@
96 92 'active_tab' => $args ['active_tab'], // calendar_appearance.
97 93 'active_subtab' => $args['active_subtab'], // calendar_appearance_skin.
98 94 );
99 95
96 + if ( function_exists( 'wpbc_booking_modes_v3_compile_sidebar_navigation' ) ) {
97 + $args['page_nav_tabs'] = wpbc_booking_modes_v3_compile_sidebar_navigation( $args['page_nav_tabs'] );
98 + }
99 +
100 100 // Available Main Menu - slug => titles.
101 101 $root_menu_arr = wpbc_ui__get_root_menu_arr();
102 102
103 - if ( function_exists( 'wpbc_booking_modes_resolve_root_navigation' ) ) {
104 - $root_menu_arr = wpbc_booking_modes_resolve_root_navigation( $root_menu_arr, $args['page_nav_tabs'] );
103 + if ( function_exists( 'wpbc_booking_modes_v3_compile_root_navigation' ) ) {
104 + $root_menu_arr = wpbc_booking_modes_v3_compile_root_navigation( $root_menu_arr, $args['page_nav_tabs'] );
105 105 }
106 106
107 + // A mode may display an existing controller route below a different presentation group.
108 + foreach ( $args['page_nav_tabs'] as $presentation_page_slug => $presentation_tabs ) {
109 + if ( ! is_array( $presentation_tabs ) ) {
110 + continue;
111 + }
112 +
113 + foreach ( $presentation_tabs as $presentation_tab ) {
114 + if ( is_array( $presentation_tab ) && ! empty( $presentation_tab['is_active'] ) ) {
115 + $active_page_arr['active_page'] = $presentation_page_slug;
116 + break 2;
117 + }
118 + }
119 + }
120 +
107 121 echo ' <div class="wpbc_ui_el__vert_left_bar__content">';
108 122
109 123 $is_show_all_menus = true;
110 124
@@ -113,10 +127,11 @@
113 127 } else {
114 128
115 129 // wpbc_ui_el__divider_horizontal();
116 130 echo '<div class="wpbc_ui_el__row100 wpbc_ui_el__expand_colapse_btns">';
117 - wpbc_ui__vert_left_bar__do_compact();
118 - wpbc_ui__vert_left_bar__do_max();
131 + wpbc_ui__vert_left_bar__do_min();
132 + //wpbc_ui__vert_left_bar__do_compact();
133 + //wpbc_ui__vert_left_bar__do_max();
119 134 echo '</div>';
120 135
121 136 echo ' <div class="wpbc_ui_el__vert_left_bar__root_sections_container" role="tablist">';
122 137 }
@@ -128,14 +143,32 @@
128 143 continue;
129 144 }
130 145
131 146 $page_title = $root_menu_options_arr['title'];
132 - $is_expanded = ( $main_page_slug === $active_page_arr['active_page'] );
147 + $is_v3_standalone = ! empty( $root_menu_options_arr['mode_standalone'] );
148 + // Respect a V3 root's explicit initial state while retaining the original Settings behavior for V1.
149 + if ( $is_v3_standalone ) {
150 + $is_expanded = true;
151 + } elseif ( isset( $root_menu_options_arr['mode_expanded'] ) ) {
152 + $is_expanded = 'On' === $root_menu_options_arr['mode_expanded']
153 + || ( 'when_active' === $root_menu_options_arr['mode_expanded'] && $main_page_slug === $active_page_arr['active_page'] );
154 + } else {
155 + $is_expanded = ( 'wpbc-settings' !== $main_page_slug ) || ( $main_page_slug === $active_page_arr['active_page'] );
156 + }
133 157
134 158 if ( $is_show_all_menus ) {
135 159 echo ' <div class="wpbc_ui_el__vert_left_bar__root_section_element root_section_element_' . esc_attr( $main_page_slug ) . ' ' . ( ( $is_expanded ) ? 'section_expanded' : '' ) . '">';
136 160
137 - wpbc_ui__vert_menu__show_root_section_header( $main_page_slug, $page_title );
161 + $mode_font_icon = isset( $root_menu_options_arr['mode_font_icon'] ) ? $root_menu_options_arr['mode_font_icon'] : '';
162 + if ( ! $is_v3_standalone ) {
163 + wpbc_ui__vert_menu__show_root_section_header(
164 + $main_page_slug,
165 + $page_title,
166 + $mode_font_icon,
167 + isset( $root_menu_options_arr['mode_expanded'] ),
168 + $is_expanded
169 + );
170 + }
138 171 }
139 172
140 173 echo ' <div class="wpbc_ui_el__vert_left_bar__section wpbc_ui_el__vert_left_bar__section_' .
141 174 esc_attr( $main_page_slug ) .
@@ -159,62 +192,74 @@
159 192 echo '</div>';
160 193 wpbc_ui_el__divider_horizontal();
161 194 }
162 195
163 - foreach ( $page_item_arr as $main_menu_slug => $menu_item_arr ) {
164 - $folder_style = ( ! empty( $menu_item_arr['folder_style'] ) ) ? esc_attr( $menu_item_arr['folder_style'] ) : '';
196 + if ( function_exists( 'wpbc_booking_modes_v3_compile_sidebar_navigation' ) ) {
197 + wpbc_ui__vert_menu__render_v3_nodes( $page_item_arr );
198 + } else {
199 + foreach ( $page_item_arr as $main_menu_slug => $menu_item_arr ) {
200 + $folder_style = ( ! empty( $menu_item_arr['folder_style'] ) ) ? esc_attr( $menu_item_arr['folder_style'] ) : '';
165 201
166 - $folder_css = '';
167 - if ( ( ! empty( $menu_item_arr['subtabs'] ) ) && ( ! empty( $menu_item_arr['is_active'] ) ) ) {
168 - $folder_css .= ' expanded';
169 - }
202 + $folder_css = '';
203 + $is_folder_expanded = ! empty( $menu_item_arr['subtabs'] ) && ! empty( $menu_item_arr['is_active'] );
204 + if ( isset( $menu_item_arr['_wpbc_v3_expanded'] ) ) {
205 + $is_folder_expanded = 'On' === $menu_item_arr['_wpbc_v3_expanded']
206 + || ( 'when_active' === $menu_item_arr['_wpbc_v3_expanded'] && $is_folder_expanded );
207 + }
208 + if ( $is_folder_expanded ) {
209 + $folder_css .= ' expanded';
210 + }
211 + if ( ! empty( $menu_item_arr['_wpbc_v3_branch_css_classes'] ) ) {
212 + $folder_css .= ' ' . $menu_item_arr['_wpbc_v3_branch_css_classes'];
213 + }
170 214
171 - echo '<div class="wpbc_ui_el__level__folder ' . esc_attr( $folder_css ) . '" style="' . esc_attr( $folder_style ) . '">';
215 + echo '<div class="wpbc_ui_el__level__folder ' . esc_attr( $folder_css ) . '" style="' . esc_attr( $folder_style ) . '">';
172 216
173 217
174 - if ( empty( $menu_item_arr['type'] ) ) {
175 - $menu_item_arr['type'] = 'main';
176 - }
218 + if ( empty( $menu_item_arr['type'] ) ) {
219 + $menu_item_arr['type'] = 'main';
220 + }
177 221
178 - switch ( $menu_item_arr['type'] ) {
222 + switch ( $menu_item_arr['type'] ) {
179 223
180 - case 'separator':
181 - wpbc_ui_el__divider_horizontal();
182 - break;
224 + case 'separator':
225 + wpbc_ui_el__divider_horizontal();
226 + break;
183 227
184 - case 'html':
185 - wpbc_ui__vert_menu__item_html( $main_menu_slug, $menu_item_arr );
186 - break;
228 + case 'html':
229 + wpbc_ui__vert_menu__item_html( $main_menu_slug, $menu_item_arr );
230 + break;
187 231
188 - default:
189 - wpbc_ui__vert_menu__item_main( $main_menu_slug, $menu_item_arr );
190 - }
232 + default:
233 + wpbc_ui__vert_menu__item_main( $main_menu_slug, $menu_item_arr );
234 + }
191 235
192 236
193 - foreach ( $menu_item_arr['subtabs'] as $main_submenu_slug => $submenu_item_arr ) {
237 + foreach ( $menu_item_arr['subtabs'] as $main_submenu_slug => $submenu_item_arr ) {
194 238
195 - if ( empty( $submenu_item_arr['type'] ) ) {
196 - $submenu_item_arr['type'] = 'subtab';
197 - }
239 + if ( empty( $submenu_item_arr['type'] ) ) {
240 + $submenu_item_arr['type'] = 'subtab';
241 + }
198 242
199 - switch ( $submenu_item_arr['type'] ) {
243 + switch ( $submenu_item_arr['type'] ) {
200 244
201 - case 'subtab':
202 - wpbc_ui__vert_menu__item_sub( $main_submenu_slug, $submenu_item_arr );
203 - break;
245 + case 'subtab':
246 + wpbc_ui__vert_menu__item_sub( $main_submenu_slug, $submenu_item_arr );
247 + break;
204 248
205 - case 'separator':
206 - wpbc_ui__vert_menu__item_separtor( $main_submenu_slug, $submenu_item_arr );
207 - break;
249 + case 'separator':
250 + wpbc_ui__vert_menu__item_separtor( $main_submenu_slug, $submenu_item_arr );
251 + break;
208 252
209 - case 'html':
210 - wpbc_ui__vert_menu__item_html( $main_submenu_slug, $submenu_item_arr );
211 - break;
253 + case 'html':
254 + wpbc_ui__vert_menu__item_html( $main_submenu_slug, $submenu_item_arr );
255 + break;
212 256
213 - default:
257 + default:
258 + }
214 259 }
260 + echo '</div><!-- wpbc_ui_el__level__folder -->';
215 261 }
216 - echo '</div><!-- wpbc_ui_el__level__folder -->';
217 262 }
218 263
219 264 if ( $is_show_all_menus ) {
220 265 echo ' </div><!-- wpbc_ui_el__vert_left_bar__root_section_element -->';
@@ -227,11 +272,9 @@
227 272 echo ' </div><!-- wpbc_ui_el__vert_left_bar__root_sections_container -->';
228 273 }
229 274
230 275
231 - $is_show_up = wpbc_is_show_up();
232 - // Show upgrade icon only for the Free version here.
233 - $is_show_up = ( $is_show_up && ( ! class_exists( 'wpdev_bk_personal' ) ) );
276 + $is_show_up = wpbc_is_show_free_upgrade();
234 277 if ( $is_show_up ) {
235 278 ?><div class="wpbc_ui_el__vert_left_bar__footer_compensator"></div><?php
236 279 }
237 280
@@ -238,9 +281,9 @@
238 281 echo ' </div><!-- wpbc_ui_el__vert_left_bar__content -->';
239 282 if ( $is_show_up ) {
240 283 $url = wpbc_up_link();
241 284 ?>
242 - <div class="wpbc_ui_el__vert_left_bar__footer_section">
285 + <div class="wpbc_ui_el__vert_left_bar__footer_section" style="visibility: hidden;">
243 286 <a class="wpbc_ui_el_upgrade_button wpbc_button_light wpbc_button_green" href="<?php echo esc_url( $url ); ?>">
244 287 <span class="hide_in_compact_mode"><?php esc_html_e( 'Upgrade to Pro', 'booking' ); ?></span>
245 288 <span class="hide_in_max_mode"><?php esc_html_e( 'Pro', 'booking' ); ?></span>
246 289 </a>
@@ -252,8 +295,80 @@
252 295 wpbc_start_element_scrollable__with_simplebar( '.wpbc_ui_el__vert_left_bar__content' );
253 296 }
254 297
255 298 /**
299 + * Render an arbitrarily nested V3 sidebar through the existing row functions.
300 + *
301 + * Top-level and disclosure nodes retain the existing main-row markup. Nested
302 + * leaves retain the existing subrow markup, so the recursive traversal adds no
303 + * new visual system or navigation-only asset.
304 + *
305 + * @param array $navigation_nodes Prepared V3 navigation nodes.
306 + * @param int $depth Zero-based sidebar depth.
307 + *
308 + * @return void
309 + */
310 +function wpbc_ui__vert_menu__render_v3_nodes( $navigation_nodes, $depth = 0 ) {
311 + foreach ( $navigation_nodes as $menu_slug => $menu_item_arr ) {
312 + if ( ! is_array( $menu_item_arr ) ) {
313 + continue;
314 + }
315 +
316 + $subtabs = isset( $menu_item_arr['subtabs'] ) && is_array( $menu_item_arr['subtabs'] ) ? $menu_item_arr['subtabs'] : array();
317 + $has_children = ! empty( $subtabs );
318 + $item_type = empty( $menu_item_arr['type'] ) ? ( 0 === $depth || $has_children ? 'main' : 'subtab' ) : $menu_item_arr['type'];
319 +
320 + if ( 0 < $depth && ! $has_children ) {
321 + switch ( $item_type ) {
322 + case 'separator':
323 + wpbc_ui__vert_menu__item_separtor( $menu_slug, $menu_item_arr );
324 + break;
325 +
326 + case 'html':
327 + wpbc_ui__vert_menu__item_html( $menu_slug, $menu_item_arr );
328 + break;
329 +
330 + default:
331 + wpbc_ui__vert_menu__item_sub( $menu_slug, $menu_item_arr );
332 + }
333 + continue;
334 + }
335 +
336 + $folder_style = ! empty( $menu_item_arr['folder_style'] ) ? $menu_item_arr['folder_style'] : '';
337 + $folder_css = '';
338 + $is_expanded = $has_children && ! empty( $menu_item_arr['is_active'] );
339 + if ( isset( $menu_item_arr['_wpbc_v3_expanded'] ) ) {
340 + $is_expanded = 'On' === $menu_item_arr['_wpbc_v3_expanded']
341 + || ( 'when_active' === $menu_item_arr['_wpbc_v3_expanded'] && $is_expanded );
342 + }
343 + if ( $is_expanded ) {
344 + $folder_css .= ' expanded';
345 + }
346 + if ( ! empty( $menu_item_arr['_wpbc_v3_branch_css_classes'] ) ) {
347 + $folder_css .= ' ' . $menu_item_arr['_wpbc_v3_branch_css_classes'];
348 + }
349 +
350 + echo '<div class="wpbc_ui_el__level__folder ' . esc_attr( $folder_css ) . '" style="' . esc_attr( $folder_style ) . '">';
351 + switch ( $item_type ) {
352 + case 'separator':
353 + wpbc_ui_el__divider_horizontal();
354 + break;
355 +
356 + case 'html':
357 + wpbc_ui__vert_menu__item_html( $menu_slug, $menu_item_arr );
358 + break;
359 +
360 + default:
361 + wpbc_ui__vert_menu__item_main( $menu_slug, $menu_item_arr );
362 + }
363 + if ( $has_children ) {
364 + wpbc_ui__vert_menu__render_v3_nodes( $subtabs, $depth + 1 );
365 + }
366 + echo '</div><!-- wpbc_ui_el__level__folder -->';
367 + }
368 +}
369 +
370 +/**
256 371 * Set Scrolable Element with Simplebar js library.
257 372 *
258 373 * @param string $jq_element - e.g. '.wpbc_ui_el__vert_left_bar__content'
259 374 * @param string $options - e.g. 'autoHide: false, scrollbarMinSize: 10' - options for the Simplebar. See more: https://www.npmjs.com/package/simplebar#1-documentation
@@ -269,9 +384,15 @@
269 384 <script type="text/javascript">
270 385 (function() { var a = setInterval( function() { if ( ( 'undefined' === typeof jQuery ) || ! window.jQuery ) { return; } clearInterval( a ); jQuery( document ).ready( function () {
271 386 jQuery( '.wpbc_ui_el__vert_left_bar__section' ).css( { "animation-duration": "1ms" } ); // Set animation of showing left siebar from left to right imediate to prevent flipping.
272 387 if ( 'undefined' !== typeof SimpleBar ) {
273 - new SimpleBar( jQuery( '<?php echo esc_attr( $jq_element ); ?>' )[0], { <?php echo esc_attr( $options ); ?> } );
388 + var simplebar_element = jQuery( '<?php echo esc_attr( $jq_element ); ?>' )[0];
389 + if ( simplebar_element ) {
390 + var simplebar_instance = new SimpleBar( simplebar_element, { <?php echo esc_attr( $options ); ?> } );
391 + if ( 'function' === typeof wpbc_admin_ui__sidebar_left__scroll_to_active_item ) {
392 + wpbc_admin_ui__sidebar_left__scroll_to_active_item( simplebar_instance );
393 + }
394 + }
274 395 }
275 396 var wait_timer = setTimeout( function (){
276 397 jQuery( '.wpbc_ui_el__vert_left_bar__section' ).css( { "animation-duration": "200ms" } ); // Set animation to normal value.
277 398 }, 300 );
@@ -289,13 +410,15 @@
289 410 */
290 411 function wpbc_ui__vert_left_bar__do_toggle() {
291 412
292 413 $el_arr = array();
293 - $el_arr['font_icon'] = 'wpbc_icn_menu';
414 + $el_arr['font_icon'] = 'wpbc-bi-layout-sidebar-inset'; // 'wpbc_icn_menu';
294 415 $el_arr['container_style'] = 'padding:0 8px;';
295 416 $el_arr['container_class'] = 'wpbc_ui__top_nav__btn_show_left_vertical_nav';
296 - $el_arr['onclick'] = "if ( jQuery( '.wpbc_ui_el__vert_left_bar__content' ).is( ':visible' ) ) {";
297 - $el_arr['onclick'] .= ' wpbc_admin_ui__sidebar_left__do_min( true ); ';
417 + $el_arr['onclick'] = "if ( jQuery( '.wpbc_page_wrapper_left_max' ).length ) {";
418 + // $el_arr['onclick'] = "if ( jQuery( '.wpbc_ui_el__vert_left_bar__content' ).is( ':visible' ) ) {";
419 + // $el_arr['onclick'] .= ' wpbc_admin_ui__sidebar_left__do_min( true ); ';
420 + $el_arr['onclick'] .= ' wpbc_admin_ui__sidebar_left__do_compact( true ); ';
298 421 $el_arr['onclick'] .= '} else {';
299 422 $el_arr['onclick'] .= ' wpbc_admin_ui__sidebar_left__do_max( true ); ';
300 423 $el_arr['onclick'] .= '}';
301 424 $el_arr['hint'] = array(
@@ -370,14 +493,17 @@
370 493 function wpbc_ui__vert_left_bar__do_min() {
371 494
372 495 $el_arr = array();
373 496 $el_arr['container_style'] = '';
374 - $el_arr['container_class'] = 'wpbc_ui__top_nav__btn_hide_left_vertical_nav';
375 - $el_arr['onclick'] = ' wpbc_admin_ui__sidebar_left__do_min( true ); ';
376 - $el_arr['font_icon'] = 'wpbc_icn_minimize';
497 + $el_arr['container_class'] = '';// 'wpbc_ui__top_nav__btn_hide_left_vertical_nav';
498 + // User Save Preferences of other pages (saved collapsed left menu).
499 + // $el_arr['onclick'] = 'event.stopPropagation(); wpbc_admin_ui__sidebar_left__do_min( true ); ';
500 + // Do NOT - Save User Preferences of other pages (not save collapsed left menu).
501 + $el_arr['onclick'] = 'event.stopPropagation(); wpbc_admin_ui__sidebar_left__do_min(); ';
502 + $el_arr['font_icon'] = 'wpbc_icn_close'; //'wpbc_icn_minimize';
377 503 $el_arr['hint'] = array(
378 - 'title' => __( 'Minimize side menu', 'booking' ),
379 - 'position' => 'bottom',
504 + 'title' => __( 'Hide', 'booking' ),
505 + 'position' => 'right',
380 506 );
381 507 wpbc_ui_el__a( $el_arr );
382 508 }
383 509
@@ -461,24 +587,38 @@
461 587
462 588 /**
463 589 * Show Root Header
464 590 *
465 - * @param string $main_page_slug - slug of all sub menu section.
466 - * @param string $page_title - title of header.
467 - * @param bool $is_expanded - Is expanded or not.
591 + * @param string $main_page_slug Slug of the submenu section.
592 + * @param string $page_title Section title.
593 + * @param string $font_icon Optional sanitized font-icon CSS classes supplied by the selected mode.
594 + * @param bool $is_v3_scoped Whether to use V3's nearest-branch disclosure behavior.
595 + * @param bool $is_expanded Whether the V3 branch is initially expanded.
468 596 *
469 597 * @return void
470 598 */
471 -function wpbc_ui__vert_menu__show_root_section_header( $main_page_slug, $page_title) {
599 +function wpbc_ui__vert_menu__show_root_section_header( $main_page_slug, $page_title, $font_icon = '', $is_v3_scoped = false, $is_expanded = false ) {
472 600
473 601 $css_section = '.root_section_element_' . $main_page_slug;
474 602
475 603 // Section Header.
476 - ?><a class="wpbc_ui_el__row100 wpbc_ui_el__root_section_header_a" href="javascript:void(0)"
477 - onclick="javascript:var is_has_class = jQuery( '<?php echo esc_attr( $css_section ); ?>' ).hasClass('section_expanded'); jQuery( '.wpbc_ui_el__vert_left_bar__root_section_element' ).removeClass('section_expanded'); if (is_has_class) { jQuery( '<?php echo esc_attr( $css_section ); ?>' ).removeClass('section_expanded'); } else {jQuery( '<?php echo esc_attr( $css_section ); ?>' ).addClass('section_expanded');}"
478 - ><?php
604 + ?><a class="wpbc_ui_el__row100 wpbc_ui_el__root_section_header_a"
605 + href="javascript:void(0)"
606 + <?php if ( $is_v3_scoped ) { ?>
607 + aria-expanded="<?php echo $is_expanded ? 'true' : 'false'; ?>"
608 + onkeydown="if ( ' ' === event.key ) { event.preventDefault(); this.click(); }"
609 + onclick="javascript:var wpbc_root=jQuery(this).closest('.wpbc_ui_el__vert_left_bar__root_section_element');var wpbc_open=wpbc_root.hasClass('section_expanded');wpbc_root.toggleClass('section_expanded',!wpbc_open);jQuery(this).attr('aria-expanded',wpbc_open?'false':'true');"
610 + <?php } else { ?>
611 + onclick="javascript:var is_has_class = jQuery( '<?php echo esc_attr( $css_section ); ?>' ).hasClass('section_expanded'); <?php
612 + /* ?> jQuery( '.wpbc_ui_el__vert_left_bar__root_section_element' ).removeClass('section_expanded'); <?php */
613 + ?>if (is_has_class) { jQuery( '<?php echo esc_attr( $css_section ); ?>' ).removeClass('section_expanded'); } else {jQuery( '<?php echo esc_attr( $css_section ); ?>' ).addClass('section_expanded');}"
614 + <?php } ?>
615 + >
616 + <i class="wpbc_ui_el__vert_menu_root_section_icon menu_icon icon-1x wpbc-bi-chevron-right"></i><?php
479 617
480 - ?><i class="wpbc_ui_el__vert_menu_root_section_icon menu_icon icon-1x wpbc-bi-chevron-right"></i><?php
618 + if ( '' !== $font_icon ) {
619 + ?><i class="wpbc_ui_el__vert_menu_root_section_font_icon menu_icon icon-1x <?php echo esc_attr( $font_icon ); ?>" aria-hidden="true"></i><?php
620 + }
481 621
482 622 wpbc_ui__vert_menu__show_section_header( $page_title );
483 623
484 624 ?></a><?php
@@ -561,9 +701,15 @@
561 701 if ( ! empty( $menu_item_arr['subtabs'] ) ) {
562 702 // Folder Item - expand / colapse. Previously: here was : wpbc_admin_ui__sidebar_left__do_max();
563 703 ?>
564 704 <a href="javascript:void(0)"
565 - onclick="javascript: if( ! jQuery( this ).parents('.wpbc_ui_el__level__folder').hasClass('expanded') ) { jQuery( '.wpbc_ui_el__level__folder' ).removeClass('expanded');jQuery( this ).parents('.wpbc_ui_el__level__folder').addClass('expanded'); } else {jQuery( '.wpbc_ui_el__level__folder' ).removeClass('expanded');} "
705 + <?php if ( isset( $menu_item_arr['_wpbc_v3_expanded'] ) ) { ?>
706 + aria-expanded="<?php echo ( 'On' === $menu_item_arr['_wpbc_v3_expanded'] || ( 'when_active' === $menu_item_arr['_wpbc_v3_expanded'] && ! empty( $menu_item_arr['is_active'] ) ) ) ? 'true' : 'false'; ?>"
707 + onkeydown="if ( ' ' === event.key ) { event.preventDefault(); this.click(); }"
708 + onclick="javascript:var wpbc_folder=jQuery(this).closest('.wpbc_ui_el__level__folder');var wpbc_open=wpbc_folder.hasClass('expanded');wpbc_folder.toggleClass('expanded',!wpbc_open);jQuery(this).attr('aria-expanded',wpbc_open?'false':'true');"
709 + <?php } else { ?>
710 + onclick="javascript: if( ! jQuery( this ).parents('.wpbc_ui_el__level__folder').hasClass('expanded') ) { jQuery( '.wpbc_ui_el__level__folder' ).removeClass('expanded');jQuery( this ).parents('.wpbc_ui_el__level__folder').addClass('expanded'); } else {jQuery( '.wpbc_ui_el__level__folder' ).removeClass('expanded');} "
711 + <?php } ?>
566 712 class="wpbc_ui_el__vert_nav_item__a wpbc_ui_el__vert_nav_item__folder">
567 713 <?php if ( ! empty( $menu_item_arr['font_icon'] ) ) { ?>
568 714 <?php // Show icon in max mode, without right tooltip, thanks to '.hide_in_compact_mode'. // FixIn: 10.11.5.8. ?>
569 715 <i class="wpbc_ui_el__vert_nav_icon hide_in_compact_mode menu_icon icon-1x <?php echo esc_attr( $menu_item_arr['font_icon'] ); ?>"
@@ -753,10 +899,15 @@
753 899 */
754 900 function wpbc_ui__vert_left_bar__side_button__do_compact() {
755 901
756 902 ?>
757 - <button class="wpbc_ui__left_sidebar__side_button wpbc_ui__top_nav__btn_hide_left_vertical_nav"
758 - onclick="javascript:wpbc_admin_ui__sidebar_left__do_min( true );" title="<?php esc_attr_e( 'Minimize side menu', 'booking' ); ?>">
903 + <button type="button" class="wpbc_ui__left_sidebar__side_button wpbc_ui__top_nav__btn_hide_left_vertical_nav"
904 + <?php /* Save user preferences ?>
905 + onclick="event.stopPropagation(); wpbc_admin_ui__sidebar_left__do_min( true ); return false;"
906 + <?php /**/ ?>
907 + <?php /* Not Save user preferences - collpased left menu */ ?>
908 + onclick="event.stopPropagation(); wpbc_admin_ui__sidebar_left__do_min(); return false;"
909 + title="<?php esc_attr_e( 'Minimize side menu', 'booking' ); ?>">
759 910 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24">
760 911 <path fill="#6B6B6B" d="M16.5 22a1.003 1.003 0 0 1-.71-.29l-9-9a1 1 0 0 1 0-1.42l9-9a1.004 1.004 0 1 1 1.42 1.42L8.91 12l8.3 8.29A.999.999 0 0 1 16.5 22Z"></path>
761 912 </svg>
762 913 </button>
@@ -769,10 +920,10 @@
769 920 * @return void
770 921 */
771 922 function wpbc_ui__vert_left_bar__side_button__do_max() {
772 923 ?>
773 - <button class="wpbc_ui__left_sidebar__side_button wpbc_ui__hide wpbc_ui__top_nav__btn_open_left_vertical_nav"
774 - onclick="javascript:wpbc_admin_ui__sidebar_left__do_max( true );" title="<?php esc_attr_e( 'Open side menu', 'booking' ); ?>">
924 + <button type="button" class="wpbc_ui__left_sidebar__side_button wpbc_ui__hide wpbc_ui__top_nav__btn_open_left_vertical_nav"
925 + onclick="event.stopPropagation(); wpbc_admin_ui__sidebar_left__do_max( true ); return false;" title="<?php esc_attr_e( 'Open side menu', 'booking' ); ?>">
775 926 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24">
776 927 <path fill="#6B6B6B" d="M16.5 22a1.003 1.003 0 0 1-.71-.29l-9-9a1 1 0 0 1 0-1.42l9-9a1.004 1.004 0 1 1 1.42 1.42L8.91 12l8.3 8.29A.999.999 0 0 1 16.5 22Z"></path>
777 928 </svg>
778 929 </button>