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;
}