HEX
Server: Apache/2.4.41 (Ubuntu)
System: Linux wordpress-ubuntu-s-2vcpu-4gb-fra1-01 5.4.0-169-generic #187-Ubuntu SMP Thu Nov 23 14:52:28 UTC 2023 x86_64
User: root (0)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/lipovac/wp-content/plugins/the-events-calendar/common/src/modules/utils/timezone.js
/**
 * External dependencies
 */
import { find, flatten, map, get } from 'lodash';

/**
 * Internal dependencies
 */
import { timezoneHtml } from '@moderntribe/common/utils/globals';

/**
 * Module Code
 */

let timezoneOpts;

export const getTimezoneOpts = () => {
	// Verify if we have it in cache solved
	if ( timezoneOpts ) {
		return timezoneOpts;
	}

	const $timezoneOpts = jQuery( timezoneHtml() );
	const groups = [];
	let number = 0;

	$timezoneOpts.each( ( index, item ) => {
		const $group = jQuery( item );

		if ( ! $group.is( 'optgroup' ) ) {
			return;
		}

		number++;

		const label = $group.attr( 'label' );
		const group = {
			key: label,
			text: label,
			options: [],
		};

		$group.find( 'option' ).each( ( optIndex, optionEl ) => {
			number++;

			const $option = jQuery( optionEl );
			group.options.push( {
				key: $option.val(),
				text: $option.text(),
				index: number,
			} );
		} );

		groups.push( group );
	} );

	// Save it in a cache
	timezoneOpts = groups;

	return groups;
}

export const getItems = ( searchFor ) => {
	const groups = getTimezoneOpts();

	if ( searchFor ) {
		const opts = flatten( map( groups, 'options' ) );
		return find( opts, searchFor );
	}

	return groups;
}