479 lines
14 KiB
JavaScript
479 lines
14 KiB
JavaScript
/*!
|
|
* Laravel Javascript Validation
|
|
*
|
|
* https://github.com/proengsoft/laravel-jsvalidation
|
|
*
|
|
* Timezone Helper functions used by validators
|
|
*
|
|
* Copyright (c) 2017 Proengsoft
|
|
* Released under the MIT license
|
|
*/
|
|
|
|
$.extend(true, laravelValidation, {
|
|
|
|
helpers: {
|
|
|
|
/**
|
|
* Check if the specified timezone is valid.
|
|
*
|
|
* @param value
|
|
* @returns {boolean}
|
|
*/
|
|
isTimezone: function (value) {
|
|
|
|
var timezones={
|
|
"africa": [
|
|
"abidjan",
|
|
"accra",
|
|
"addis_ababa",
|
|
"algiers",
|
|
"asmara",
|
|
"bamako",
|
|
"bangui",
|
|
"banjul",
|
|
"bissau",
|
|
"blantyre",
|
|
"brazzaville",
|
|
"bujumbura",
|
|
"cairo",
|
|
"casablanca",
|
|
"ceuta",
|
|
"conakry",
|
|
"dakar",
|
|
"dar_es_salaam",
|
|
"djibouti",
|
|
"douala",
|
|
"el_aaiun",
|
|
"freetown",
|
|
"gaborone",
|
|
"harare",
|
|
"johannesburg",
|
|
"juba",
|
|
"kampala",
|
|
"khartoum",
|
|
"kigali",
|
|
"kinshasa",
|
|
"lagos",
|
|
"libreville",
|
|
"lome",
|
|
"luanda",
|
|
"lubumbashi",
|
|
"lusaka",
|
|
"malabo",
|
|
"maputo",
|
|
"maseru",
|
|
"mbabane",
|
|
"mogadishu",
|
|
"monrovia",
|
|
"nairobi",
|
|
"ndjamena",
|
|
"niamey",
|
|
"nouakchott",
|
|
"ouagadougou",
|
|
"porto-novo",
|
|
"sao_tome",
|
|
"tripoli",
|
|
"tunis",
|
|
"windhoek"
|
|
],
|
|
"america": [
|
|
"adak",
|
|
"anchorage",
|
|
"anguilla",
|
|
"antigua",
|
|
"araguaina",
|
|
"argentina\/buenos_aires",
|
|
"argentina\/catamarca",
|
|
"argentina\/cordoba",
|
|
"argentina\/jujuy",
|
|
"argentina\/la_rioja",
|
|
"argentina\/mendoza",
|
|
"argentina\/rio_gallegos",
|
|
"argentina\/salta",
|
|
"argentina\/san_juan",
|
|
"argentina\/san_luis",
|
|
"argentina\/tucuman",
|
|
"argentina\/ushuaia",
|
|
"aruba",
|
|
"asuncion",
|
|
"atikokan",
|
|
"bahia",
|
|
"bahia_banderas",
|
|
"barbados",
|
|
"belem",
|
|
"belize",
|
|
"blanc-sablon",
|
|
"boa_vista",
|
|
"bogota",
|
|
"boise",
|
|
"cambridge_bay",
|
|
"campo_grande",
|
|
"cancun",
|
|
"caracas",
|
|
"cayenne",
|
|
"cayman",
|
|
"chicago",
|
|
"chihuahua",
|
|
"costa_rica",
|
|
"creston",
|
|
"cuiaba",
|
|
"curacao",
|
|
"danmarkshavn",
|
|
"dawson",
|
|
"dawson_creek",
|
|
"denver",
|
|
"detroit",
|
|
"dominica",
|
|
"edmonton",
|
|
"eirunepe",
|
|
"el_salvador",
|
|
"fortaleza",
|
|
"glace_bay",
|
|
"godthab",
|
|
"goose_bay",
|
|
"grand_turk",
|
|
"grenada",
|
|
"guadeloupe",
|
|
"guatemala",
|
|
"guayaquil",
|
|
"guyana",
|
|
"halifax",
|
|
"havana",
|
|
"hermosillo",
|
|
"indiana\/indianapolis",
|
|
"indiana\/knox",
|
|
"indiana\/marengo",
|
|
"indiana\/petersburg",
|
|
"indiana\/tell_city",
|
|
"indiana\/vevay",
|
|
"indiana\/vincennes",
|
|
"indiana\/winamac",
|
|
"inuvik",
|
|
"iqaluit",
|
|
"jamaica",
|
|
"juneau",
|
|
"kentucky\/louisville",
|
|
"kentucky\/monticello",
|
|
"kralendijk",
|
|
"la_paz",
|
|
"lima",
|
|
"los_angeles",
|
|
"lower_princes",
|
|
"maceio",
|
|
"managua",
|
|
"manaus",
|
|
"marigot",
|
|
"martinique",
|
|
"matamoros",
|
|
"mazatlan",
|
|
"menominee",
|
|
"merida",
|
|
"metlakatla",
|
|
"mexico_city",
|
|
"miquelon",
|
|
"moncton",
|
|
"monterrey",
|
|
"montevideo",
|
|
"montreal",
|
|
"montserrat",
|
|
"nassau",
|
|
"new_york",
|
|
"nipigon",
|
|
"nome",
|
|
"noronha",
|
|
"north_dakota\/beulah",
|
|
"north_dakota\/center",
|
|
"north_dakota\/new_salem",
|
|
"ojinaga",
|
|
"panama",
|
|
"pangnirtung",
|
|
"paramaribo",
|
|
"phoenix",
|
|
"port-au-prince",
|
|
"port_of_spain",
|
|
"porto_velho",
|
|
"puerto_rico",
|
|
"rainy_river",
|
|
"rankin_inlet",
|
|
"recife",
|
|
"regina",
|
|
"resolute",
|
|
"rio_branco",
|
|
"santa_isabel",
|
|
"santarem",
|
|
"santiago",
|
|
"santo_domingo",
|
|
"sao_paulo",
|
|
"scoresbysund",
|
|
"shiprock",
|
|
"sitka",
|
|
"st_barthelemy",
|
|
"st_johns",
|
|
"st_kitts",
|
|
"st_lucia",
|
|
"st_thomas",
|
|
"st_vincent",
|
|
"swift_current",
|
|
"tegucigalpa",
|
|
"thule",
|
|
"thunder_bay",
|
|
"tijuana",
|
|
"toronto",
|
|
"tortola",
|
|
"vancouver",
|
|
"whitehorse",
|
|
"winnipeg",
|
|
"yakutat",
|
|
"yellowknife"
|
|
],
|
|
"antarctica": [
|
|
"casey",
|
|
"davis",
|
|
"dumontdurville",
|
|
"macquarie",
|
|
"mawson",
|
|
"mcmurdo",
|
|
"palmer",
|
|
"rothera",
|
|
"south_pole",
|
|
"syowa",
|
|
"vostok"
|
|
],
|
|
"arctic": [
|
|
"longyearbyen"
|
|
],
|
|
"asia": [
|
|
"aden",
|
|
"almaty",
|
|
"amman",
|
|
"anadyr",
|
|
"aqtau",
|
|
"aqtobe",
|
|
"ashgabat",
|
|
"baghdad",
|
|
"bahrain",
|
|
"baku",
|
|
"bangkok",
|
|
"beirut",
|
|
"bishkek",
|
|
"brunei",
|
|
"choibalsan",
|
|
"chongqing",
|
|
"colombo",
|
|
"damascus",
|
|
"dhaka",
|
|
"dili",
|
|
"dubai",
|
|
"dushanbe",
|
|
"gaza",
|
|
"harbin",
|
|
"hebron",
|
|
"ho_chi_minh",
|
|
"hong_kong",
|
|
"hovd",
|
|
"irkutsk",
|
|
"jakarta",
|
|
"jayapura",
|
|
"jerusalem",
|
|
"kabul",
|
|
"kamchatka",
|
|
"karachi",
|
|
"kashgar",
|
|
"kathmandu",
|
|
"khandyga",
|
|
"kolkata",
|
|
"krasnoyarsk",
|
|
"kuala_lumpur",
|
|
"kuching",
|
|
"kuwait",
|
|
"macau",
|
|
"magadan",
|
|
"makassar",
|
|
"manila",
|
|
"muscat",
|
|
"nicosia",
|
|
"novokuznetsk",
|
|
"novosibirsk",
|
|
"omsk",
|
|
"oral",
|
|
"phnom_penh",
|
|
"pontianak",
|
|
"pyongyang",
|
|
"qatar",
|
|
"qyzylorda",
|
|
"rangoon",
|
|
"riyadh",
|
|
"sakhalin",
|
|
"samarkand",
|
|
"seoul",
|
|
"shanghai",
|
|
"singapore",
|
|
"taipei",
|
|
"tashkent",
|
|
"tbilisi",
|
|
"tehran",
|
|
"thimphu",
|
|
"tokyo",
|
|
"ulaanbaatar",
|
|
"urumqi",
|
|
"ust-nera",
|
|
"vientiane",
|
|
"vladivostok",
|
|
"yakutsk",
|
|
"yekaterinburg",
|
|
"yerevan"
|
|
],
|
|
"atlantic": [
|
|
"azores",
|
|
"bermuda",
|
|
"canary",
|
|
"cape_verde",
|
|
"faroe",
|
|
"madeira",
|
|
"reykjavik",
|
|
"south_georgia",
|
|
"st_helena",
|
|
"stanley"
|
|
],
|
|
"australia": [
|
|
"adelaide",
|
|
"brisbane",
|
|
"broken_hill",
|
|
"currie",
|
|
"darwin",
|
|
"eucla",
|
|
"hobart",
|
|
"lindeman",
|
|
"lord_howe",
|
|
"melbourne",
|
|
"perth",
|
|
"sydney"
|
|
],
|
|
"europe": [
|
|
"amsterdam",
|
|
"andorra",
|
|
"athens",
|
|
"belgrade",
|
|
"berlin",
|
|
"bratislava",
|
|
"brussels",
|
|
"bucharest",
|
|
"budapest",
|
|
"busingen",
|
|
"chisinau",
|
|
"copenhagen",
|
|
"dublin",
|
|
"gibraltar",
|
|
"guernsey",
|
|
"helsinki",
|
|
"isle_of_man",
|
|
"istanbul",
|
|
"jersey",
|
|
"kaliningrad",
|
|
"kiev",
|
|
"lisbon",
|
|
"ljubljana",
|
|
"london",
|
|
"luxembourg",
|
|
"madrid",
|
|
"malta",
|
|
"mariehamn",
|
|
"minsk",
|
|
"monaco",
|
|
"moscow",
|
|
"oslo",
|
|
"paris",
|
|
"podgorica",
|
|
"prague",
|
|
"riga",
|
|
"rome",
|
|
"samara",
|
|
"san_marino",
|
|
"sarajevo",
|
|
"simferopol",
|
|
"skopje",
|
|
"sofia",
|
|
"stockholm",
|
|
"tallinn",
|
|
"tirane",
|
|
"uzhgorod",
|
|
"vaduz",
|
|
"vatican",
|
|
"vienna",
|
|
"vilnius",
|
|
"volgograd",
|
|
"warsaw",
|
|
"zagreb",
|
|
"zaporozhye",
|
|
"zurich"
|
|
],
|
|
"indian": [
|
|
"antananarivo",
|
|
"chagos",
|
|
"christmas",
|
|
"cocos",
|
|
"comoro",
|
|
"kerguelen",
|
|
"mahe",
|
|
"maldives",
|
|
"mauritius",
|
|
"mayotte",
|
|
"reunion"
|
|
],
|
|
"pacific": [
|
|
"apia",
|
|
"auckland",
|
|
"chatham",
|
|
"chuuk",
|
|
"easter",
|
|
"efate",
|
|
"enderbury",
|
|
"fakaofo",
|
|
"fiji",
|
|
"funafuti",
|
|
"galapagos",
|
|
"gambier",
|
|
"guadalcanal",
|
|
"guam",
|
|
"honolulu",
|
|
"johnston",
|
|
"kiritimati",
|
|
"kosrae",
|
|
"kwajalein",
|
|
"majuro",
|
|
"marquesas",
|
|
"midway",
|
|
"nauru",
|
|
"niue",
|
|
"norfolk",
|
|
"noumea",
|
|
"pago_pago",
|
|
"palau",
|
|
"pitcairn",
|
|
"pohnpei",
|
|
"port_moresby",
|
|
"rarotonga",
|
|
"saipan",
|
|
"tahiti",
|
|
"tarawa",
|
|
"tongatapu",
|
|
"wake",
|
|
"wallis"
|
|
],
|
|
"utc": [
|
|
""
|
|
]
|
|
};
|
|
|
|
var tzparts= value.split('/',2);
|
|
var continent=tzparts[0].toLowerCase();
|
|
var city='';
|
|
if (tzparts[1]) {
|
|
city=tzparts[1].toLowerCase();
|
|
}
|
|
|
|
return (continent in timezones && ( timezones[continent].length===0 || timezones[continent].indexOf(city)!==-1))
|
|
}
|
|
}
|
|
});
|