(function($){
'use strict';
var SalonTimeFilter={
config: {
enabled: true,
refreshInterval: 60000,
datesRefreshInterval: 300000,
showDebug: typeof salon!=='undefined'&&salon.debug==='1',
timeInputSelector: '#_sln_booking_time, select[name="sln[time]"]',
dateInputSelector: '#_sln_booking_date, input[name="sln[date]"]',
},
filterTimer: null,
datesRefreshTimer: null,
lastFilterRun: null,
lastDatesRefresh: null,
filteredCount: 0,
init: function(){
var self=this;
if(!$('#salon-step-date').length){
return;
}
if(!this.config.enabled){
this.log('Time filtering is disabled');
return;
}
this.log('Initializing client-side time filter');
setTimeout(function(){
self.filterPastTimeSlots();
}, 500);
$(document).on('change', this.config.dateInputSelector, function(){
self.log('Date changed, filtering times');
self.filterPastTimeSlots();
});
$(document).on('sln:timepicker:updated', function(){
self.log('Time picker updated, filtering times');
self.filterPastTimeSlots();
});
this.startPeriodicFilter();
this.startPeriodicDatesRefresh();
this.setupVisibilityFilter();
$(document).on('sln:intervals:refreshed', function(event, data){
self.log('External intervals refresh detected, re-filtering times');
self.filterPastTimeSlots();
});
this.log('Time filter initialized successfully');
},
filterPastTimeSlots: function(){
var self=this;
var now=new Date();
var currentDate=this.getSelectedDate();
if(!currentDate){
this.log('No date selected, skipping time filter');
return;
}
var $timeInputs=$(this.config.timeInputSelector);
if(!$timeInputs.length){
this.log('No time input found, skipping filter');
return;
}
var filteredCount=0;
var availableCount=0;
$timeInputs.filter('select').each(function(){
var $select=$(this);
$select.find('option').each(function(){
var $option=$(this);
var timeValue=$option.val();
if(!timeValue||timeValue===''){
return;
}
if(self.isTimeInPast(currentDate, timeValue, now)){
$option.prop('disabled', true).hide();
$option.addClass('sln-time-filtered');
filteredCount++;
}else{
$option.prop('disabled', false).show();
$option.removeClass('sln-time-filtered');
availableCount++;
}});
var selectedValue=$select.val();
if(selectedValue&&self.isTimeInPast(currentDate, selectedValue, now)){
$select.val('').trigger('change');
self.showTimeExpiredNotice();
}});
$timeInputs.filter('input[type="hidden"]').each(function(){
var $input=$(this);
var timeValue=$input.val();
if(timeValue&&self.isTimeInPast(currentDate, timeValue, now)){
$input.val('').trigger('change');
self.showTimeExpiredNotice();
}});
this.filteredCount=filteredCount;
this.lastFilterRun=now;
if(filteredCount > 0){
this.log('Filtered ' + filteredCount + ' past time slots, ' + availableCount + ' slots available');
}else{
this.log('No past time slots found, ' + availableCount + ' slots available');
}
$(document).trigger('sln:timeslots:filtered', {
filtered: filteredCount,
available: availableCount,
timestamp: now
});
},
isTimeInPast: function(dateStr, timeStr, now){
try {
var slotDateTime=new Date(dateStr + ' ' + timeStr);
if(isNaN(slotDateTime.getTime())){
this.log('Invalid datetime: ' + dateStr + ' ' + timeStr);
return false;
}
var bufferMs=5 * 60 * 1000;
return slotDateTime.getTime() <=(now.getTime() + bufferMs);
} catch (e){
this.log('Error parsing datetime: ' + e.message);
return false;
}},
getSelectedDate: function(){
var $dateInput=$(this.config.dateInputSelector);
if(!$dateInput.length){
return null;
}
var dateValue=$dateInput.val();
if(dateValue){
if(dateValue.match(/^\d{4}-\d{2}-\d{2}$/)){
return dateValue;
}
try {
var dateObj=new Date(dateValue);
if(!isNaN(dateObj.getTime())){
return dateObj.toISOString().split('T')[0];
}} catch (e){
this.log('Error parsing date: ' + e.message);
}}
return null;
},
refreshAvailableDates: function(){
var self=this;
if(!$('#salon-step-date').length){
return;
}
var form=$('#salon-step-date').closest('form');
if(!form.length){
self.log('Cannot refresh dates: form not found');
return;
}
self.log('Refreshing available dates from server...');
var data=form.serialize();
if(data.indexOf('customer_timezone')===-1){
try {
var userTimezone=Intl.DateTimeFormat().resolvedOptions().timeZone;
if(userTimezone){
data +="&sln[customer_timezone]=" + encodeURIComponent(userTimezone);
}} catch (e){
}}
data +="&action=salon&method=checkDate&security=" + salon.ajax_nonce;
$.ajax({
url: salon.ajax_url,
data: data,
method: 'POST',
dataType: 'json',
success: function(response){
if(response.success&&response.intervals){
var currentIntervals=$('#salon-step-date').data('intervals');
var updatedIntervals=$.extend({}, currentIntervals, response.intervals);
$('#salon-step-date').data('intervals', updatedIntervals);
if(typeof window.sln_stepDate_items!=='undefined'){
window.sln_stepDate_items.intervals=updatedIntervals;
}
if(typeof sln_updateDatepickerTimepickerSlots==='function'){
sln_updateDatepickerTimepickerSlots(
$,
updatedIntervals,
$('#salon-step-date').data('booking_id')
);
}
self.lastDatesRefresh=new Date();
self.log('Available dates refreshed successfully');
$(document).trigger('sln:dates:refreshed', {
intervals: updatedIntervals,
timestamp: self.lastDatesRefresh
});
}else{
self.log('Dates refresh: empty response from server');
}},
error: function(xhr, status, error){
self.log('Dates refresh failed: ' + status);
}});
},
startPeriodicFilter: function(){
var self=this;
if(this.filterTimer){
clearInterval(this.filterTimer);
}
this.filterTimer=setInterval(function(){
self.log('Periodic filter triggered');
self.filterPastTimeSlots();
}, this.config.refreshInterval);
this.log('Periodic filter started (every ' + (this.config.refreshInterval / 1000) + 's)');
},
startPeriodicDatesRefresh: function(){
var self=this;
if(this.datesRefreshTimer){
clearInterval(this.datesRefreshTimer);
}
this.datesRefreshTimer=setInterval(function(){
self.log('Periodic dates refresh triggered');
self.refreshAvailableDates();
}, this.config.datesRefreshInterval);
this.log('Periodic dates refresh started (every ' + (this.config.datesRefreshInterval / 1000) + 's)');
},
setupVisibilityFilter: function(){
var self=this;
if(typeof document.hidden!=='undefined'){
document.addEventListener('visibilitychange', function(){
if(!document.hidden){
var now=Date.now();
var timeSinceFilter=now - (self.lastFilterRun ? self.lastFilterRun.getTime():0);
var timeSinceDatesRefresh=now - (self.lastDatesRefresh ? self.lastDatesRefresh.getTime():0);
if(timeSinceFilter > 30000){
self.log('Tab became visible, filtering times');
self.filterPastTimeSlots();
}
if(timeSinceDatesRefresh > 120000){
self.log('Tab became visible after long absence, refreshing dates');
self.refreshAvailableDates();
}}
});
}},
showTimeExpiredNotice: function(){
if($('.sln-time-expired-notice').length){
return;
}
var $notice=$('<div class="sln-alert sln-alert--warning sln-time-expired-notice">')
.html('<strong>⏰ Time slot expired</strong><br>' +
'Your previously selected time has passed. Please choose a different time slot.')
.css({
'margin-top': '10px',
'margin-bottom': '10px'
});
var $timeInput=$(this.config.timeInputSelector).first();
if($timeInput.length){
$timeInput.closest('.sln-timepicker, .sln-input').after($notice);
}else{
$('#salon-step-date').prepend($notice);
}
setTimeout(function(){
$notice.fadeOut(function(){
$(this).remove();
});
}, 5000);
},
log: function(message){
if(this.config.showDebug){
console.log('[Salon Time Filter] ' + message);
}},
getStats: function(){
return {
enabled: this.config.enabled,
filteredCount: this.filteredCount,
lastFilterRun: this.lastFilterRun,
lastDatesRefresh: this.lastDatesRefresh,
refreshInterval: this.config.refreshInterval,
datesRefreshInterval: this.config.datesRefreshInterval
};}};
$(document).ready(function(){
SalonTimeFilter.init();
});
window.SalonTimeFilter=SalonTimeFilter;
})(jQuery);
(function(factory){
if(typeof module==="object"&&module.exports) module.exports=factory(); else window.intlTelInput=factory();
})(function(undefined){
"use strict";
return function(){
var allCountries=[ [ "Afghanistan (‫افغانستان‬‎)", "af", "93" ], [ "Albania (Shqipëri)", "al", "355" ], [ "Algeria (‫الجزائر‬‎)", "dz", "213" ], [ "American Samoa", "as", "1", 5, [ "684" ] ], [ "Andorra", "ad", "376" ], [ "Angola", "ao", "244" ], [ "Anguilla", "ai", "1", 6, [ "264" ] ], [ "Antigua and Barbuda", "ag", "1", 7, [ "268" ] ], [ "Argentina", "ar", "54" ], [ "Armenia (Հայաստան)", "am", "374" ], [ "Aruba", "aw", "297" ], [ "Australia", "au", "61", 0 ], [ "Austria (Österreich)", "at", "43" ], [ "Azerbaijan (Azərbaycan)", "az", "994" ], [ "Bahamas", "bs", "1", 8, [ "242" ] ], [ "Bahrain (‫البحرين‬‎)", "bh", "973" ], [ "Bangladesh (বাংলাদেশ)", "bd", "880" ], [ "Barbados", "bb", "1", 9, [ "246" ] ], [ "Belarus (Беларусь)", "by", "375" ], [ "Belgium (België)", "be", "32" ], [ "Belize", "bz", "501" ], [ "Benin (Bénin)", "bj", "229" ], [ "Bermuda", "bm", "1", 10, [ "441" ] ], [ "Bhutan (འབྲུག)", "bt", "975" ], [ "Bolivia", "bo", "591" ], [ "Bosnia and Herzegovina (Босна и Херцеговина)", "ba", "387" ], [ "Botswana", "bw", "267" ], [ "Brazil (Brasil)", "br", "55" ], [ "British Indian Ocean Territory", "io", "246" ], [ "British Virgin Islands", "vg", "1", 11, [ "284" ] ], [ "Brunei", "bn", "673" ], [ "Bulgaria (България)", "bg", "359" ], [ "Burkina Faso", "bf", "226" ], [ "Burundi (Uburundi)", "bi", "257" ], [ "Cambodia (កម្ពុជា)", "kh", "855" ], [ "Cameroon (Cameroun)", "cm", "237" ], [ "Canada", "ca", "1", 1, [ "204", "226", "236", "249", "250", "289", "306", "343", "365", "387", "403", "416", "418", "431", "437", "438", "450", "506", "514", "519", "548", "579", "581", "587", "604", "613", "639", "647", "672", "705", "709", "742", "778", "780", "782", "807", "819", "825", "867", "873", "902", "905" ] ], [ "Cape Verde (Kabu Verdi)", "cv", "238" ], [ "Caribbean Netherlands", "bq", "599", 1, [ "3", "4", "7" ] ], [ "Cayman Islands", "ky", "1", 12, [ "345" ] ], [ "Central African Republic (République centrafricaine)", "cf", "236" ], [ "Chad (Tchad)", "td", "235" ], [ "Chile", "cl", "56" ], [ "China (中国)", "cn", "86" ], [ "Christmas Island", "cx", "61", 2 ], [ "Cocos (Keeling) Islands", "cc", "61", 1 ], [ "Colombia", "co", "57" ], [ "Comoros (‫جزر القمر‬‎)", "km", "269" ], [ "Congo (DRC) (Jamhuri ya Kidemokrasia ya Kongo)", "cd", "243" ], [ "Congo (Republic) (Congo-Brazzaville)", "cg", "242" ], [ "Cook Islands", "ck", "682" ], [ "Costa Rica", "cr", "506" ], [ "Côte d’Ivoire", "ci", "225" ], [ "Croatia (Hrvatska)", "hr", "385" ], [ "Cuba", "cu", "53" ], [ "Curaçao", "cw", "599", 0 ], [ "Cyprus (Κύπρος)", "cy", "357" ], [ "Czech Republic (Česká republika)", "cz", "420" ], [ "Denmark (Danmark)", "dk", "45" ], [ "Djibouti", "dj", "253" ], [ "Dominica", "dm", "1", 13, [ "767" ] ], [ "Dominican Republic (República Dominicana)", "do", "1", 2, [ "809", "829", "849" ] ], [ "Ecuador", "ec", "593" ], [ "Egypt (‫مصر‬‎)", "eg", "20" ], [ "El Salvador", "sv", "503" ], [ "Equatorial Guinea (Guinea Ecuatorial)", "gq", "240" ], [ "Eritrea", "er", "291" ], [ "Estonia (Eesti)", "ee", "372" ], [ "Ethiopia", "et", "251" ], [ "Falkland Islands (Islas Malvinas)", "fk", "500" ], [ "Faroe Islands (Føroyar)", "fo", "298" ], [ "Fiji", "fj", "679" ], [ "Finland (Suomi)", "fi", "358", 0 ], [ "France", "fr", "33" ], [ "French Guiana (Guyane française)", "gf", "594" ], [ "French Polynesia (Polynésie française)", "pf", "689" ], [ "Gabon", "ga", "241" ], [ "Gambia", "gm", "220" ], [ "Georgia (საქართველო)", "ge", "995" ], [ "Germany (Deutschland)", "de", "49" ], [ "Ghana (Gaana)", "gh", "233" ], [ "Gibraltar", "gi", "350" ], [ "Greece (Ελλάδα)", "gr", "30" ], [ "Greenland (Kalaallit Nunaat)", "gl", "299" ], [ "Grenada", "gd", "1", 14, [ "473" ] ], [ "Guadeloupe", "gp", "590", 0 ], [ "Guam", "gu", "1", 15, [ "671" ] ], [ "Guatemala", "gt", "502" ], [ "Guernsey", "gg", "44", 1, [ "1481", "7781", "7839", "7911" ] ], [ "Guinea (Guinée)", "gn", "224" ], [ "Guinea-Bissau (Guiné Bissau)", "gw", "245" ], [ "Guyana", "gy", "592" ], [ "Haiti", "ht", "509" ], [ "Honduras", "hn", "504" ], [ "Hong Kong (香港)", "hk", "852" ], [ "Hungary (Magyarország)", "hu", "36" ], [ "Iceland (Ísland)", "is", "354" ], [ "India (भारत)", "in", "91" ], [ "Indonesia", "id", "62" ], [ "Iran (‫ایران‬‎)", "ir", "98" ], [ "Iraq (‫العراق‬‎)", "iq", "964" ], [ "Ireland", "ie", "353" ], [ "Isle of Man", "im", "44", 2, [ "1624", "74576", "7524", "7924", "7624" ] ], [ "Israel (‫ישראל‬‎)", "il", "972" ], [ "Jamaica", "jm", "1", 4, [ "876", "658" ] ], [ "Japan (日本)", "jp", "81" ], [ "Jersey", "je", "44", 3, [ "1534", "7509", "7700", "7797", "7829", "7937" ] ], [ "Jordan (‫الأردن‬‎)", "jo", "962" ], [ "Kazakhstan (Казахстан)", "kz", "7", 1, [ "33", "7" ] ], [ "Kenya", "ke", "254" ], [ "Kiribati", "ki", "686" ], [ "Kosovo", "xk", "383" ], [ "Kuwait (‫الكويت‬‎)", "kw", "965" ], [ "Kyrgyzstan (Кыргызстан)", "kg", "996" ], [ "Laos (ລາວ)", "la", "856" ], [ "Latvia (Latvija)", "lv", "371" ], [ "Lebanon (‫لبنان‬‎)", "lb", "961" ], [ "Lesotho", "ls", "266" ], [ "Liberia", "lr", "231" ], [ "Libya (‫ليبيا‬‎)", "ly", "218" ], [ "Liechtenstein", "li", "423" ], [ "Lithuania (Lietuva)", "lt", "370" ], [ "Luxembourg", "lu", "352" ], [ "Macau (澳門)", "mo", "853" ], [ "Macedonia (FYROM) (Македонија)", "mk", "389" ], [ "Madagascar (Madagasikara)", "mg", "261" ], [ "Malawi", "mw", "265" ], [ "Malaysia", "my", "60" ], [ "Maldives", "mv", "960" ], [ "Mali", "ml", "223" ], [ "Malta", "mt", "356" ], [ "Marshall Islands", "mh", "692" ], [ "Martinique", "mq", "596" ], [ "Mauritania (‫موريتانيا‬‎)", "mr", "222" ], [ "Mauritius (Moris)", "mu", "230" ], [ "Mayotte", "yt", "262", 1, [ "269", "639" ] ], [ "Mexico (México)", "mx", "52" ], [ "Micronesia", "fm", "691" ], [ "Moldova (Republica Moldova)", "md", "373" ], [ "Monaco", "mc", "377" ], [ "Mongolia (Монгол)", "mn", "976" ], [ "Montenegro (Crna Gora)", "me", "382" ], [ "Montserrat", "ms", "1", 16, [ "664" ] ], [ "Morocco (‫المغرب‬‎)", "ma", "212", 0 ], [ "Mozambique (Moçambique)", "mz", "258" ], [ "Myanmar (Burma) (မြန်မာ)", "mm", "95" ], [ "Namibia (Namibië)", "na", "264" ], [ "Nauru", "nr", "674" ], [ "Nepal (नेपाल)", "np", "977" ], [ "Netherlands (Nederland)", "nl", "31" ], [ "New Caledonia (Nouvelle-Calédonie)", "nc", "687" ], [ "New Zealand", "nz", "64" ], [ "Nicaragua", "ni", "505" ], [ "Niger (Nijar)", "ne", "227" ], [ "Nigeria", "ng", "234" ], [ "Niue", "nu", "683" ], [ "Norfolk Island", "nf", "672" ], [ "North Korea (조선 민주주의 인민 공화국)", "kp", "850" ], [ "Northern Mariana Islands", "mp", "1", 17, [ "670" ] ], [ "Norway (Norge)", "no", "47", 0 ], [ "Oman (‫عُمان‬‎)", "om", "968" ], [ "Pakistan (‫پاکستان‬‎)", "pk", "92" ], [ "Palau", "pw", "680" ], [ "Palestine (‫فلسطين‬‎)", "ps", "970" ], [ "Panama (Panamá)", "pa", "507" ], [ "Papua New Guinea", "pg", "675" ], [ "Paraguay", "py", "595" ], [ "Peru (Perú)", "pe", "51" ], [ "Philippines", "ph", "63" ], [ "Poland (Polska)", "pl", "48" ], [ "Portugal", "pt", "351" ], [ "Puerto Rico", "pr", "1", 3, [ "787", "939" ] ], [ "Qatar (‫قطر‬‎)", "qa", "974" ], [ "Réunion (La Réunion)", "re", "262", 0 ], [ "Romania (România)", "ro", "40" ], [ "Russia (Россия)", "ru", "7", 0 ], [ "Rwanda", "rw", "250" ], [ "Saint Barthélemy", "bl", "590", 1 ], [ "Saint Helena", "sh", "290" ], [ "Saint Kitts and Nevis", "kn", "1", 18, [ "869" ] ], [ "Saint Lucia", "lc", "1", 19, [ "758" ] ], [ "Saint Martin (Saint-Martin (partie française))", "mf", "590", 2 ], [ "Saint Pierre and Miquelon (Saint-Pierre-et-Miquelon)", "pm", "508" ], [ "Saint Vincent and the Grenadines", "vc", "1", 20, [ "784" ] ], [ "Samoa", "ws", "685" ], [ "San Marino", "sm", "378" ], [ "São Tomé and Príncipe (São Tomé e Príncipe)", "st", "239" ], [ "Saudi Arabia (‫المملكة العربية السعودية‬‎)", "sa", "966" ], [ "Senegal (Sénégal)", "sn", "221" ], [ "Serbia (Србија)", "rs", "381" ], [ "Seychelles", "sc", "248" ], [ "Sierra Leone", "sl", "232" ], [ "Singapore", "sg", "65" ], [ "Sint Maarten", "sx", "1", 21, [ "721" ] ], [ "Slovakia (Slovensko)", "sk", "421" ], [ "Slovenia (Slovenija)", "si", "386" ], [ "Solomon Islands", "sb", "677" ], [ "Somalia (Soomaaliya)", "so", "252" ], [ "South Africa", "za", "27" ], [ "South Korea (대한민국)", "kr", "82" ], [ "South Sudan (‫جنوب السودان‬‎)", "ss", "211" ], [ "Spain (España)", "es", "34" ], [ "Sri Lanka (ශ්‍රී ලංකාව)", "lk", "94" ], [ "Sudan (‫السودان‬‎)", "sd", "249" ], [ "Suriname", "sr", "597" ], [ "Svalbard and Jan Mayen", "sj", "47", 1, [ "79" ] ], [ "Swaziland", "sz", "268" ], [ "Sweden (Sverige)", "se", "46" ], [ "Switzerland (Schweiz)", "ch", "41" ], [ "Syria (‫سوريا‬‎)", "sy", "963" ], [ "Taiwan (台灣)", "tw", "886" ], [ "Tajikistan", "tj", "992" ], [ "Tanzania", "tz", "255" ], [ "Thailand (ไทย)", "th", "66" ], [ "Timor-Leste", "tl", "670" ], [ "Togo", "tg", "228" ], [ "Tokelau", "tk", "690" ], [ "Tonga", "to", "676" ], [ "Trinidad and Tobago", "tt", "1", 22, [ "868" ] ], [ "Tunisia (‫تونس‬‎)", "tn", "216" ], [ "Turkey (Türkiye)", "tr", "90" ], [ "Turkmenistan", "tm", "993" ], [ "Turks and Caicos Islands", "tc", "1", 23, [ "649" ] ], [ "Tuvalu", "tv", "688" ], [ "U.S. Virgin Islands", "vi", "1", 24, [ "340" ] ], [ "Uganda", "ug", "256" ], [ "Ukraine (Україна)", "ua", "380" ], [ "United Arab Emirates (‫الإمارات العربية المتحدة‬‎)", "ae", "971" ], [ "United Kingdom", "gb", "44", 0 ], [ "United States", "us", "1", 0 ], [ "Uruguay", "uy", "598" ], [ "Uzbekistan (Oʻzbekiston)", "uz", "998" ], [ "Vanuatu", "vu", "678" ], [ "Vatican City (Città del Vaticano)", "va", "39", 1, [ "06698" ] ], [ "Italy (Italia)", "it", "39", 0 ], [ "Venezuela", "ve", "58" ], [ "Vietnam (Việt Nam)", "vn", "84" ], [ "Wallis and Futuna (Wallis-et-Futuna)", "wf", "681" ], [ "Western Sahara (‫الصحراء الغربية‬‎)", "eh", "212", 1, [ "5288", "5289" ] ], [ "Yemen (‫اليمن‬‎)", "ye", "967" ], [ "Zambia", "zm", "260" ], [ "Zimbabwe", "zw", "263" ], [ "Åland Islands", "ax", "358", 1, [ "18" ] ] ];
for (var i=0; i < allCountries.length; i++){
var c=allCountries[i];
allCountries[i]={
name: c[0],
iso2: c[1],
dialCode: c[2],
priority: c[3]||0,
areaCodes: c[4]||null
};}
"use strict";
function _classCallCheck(instance, Constructor){
if(!(instance instanceof Constructor)){
throw new TypeError("Cannot call a class as a function");
}}
function _defineProperties(target, props){
for (var i=0; i < props.length; i++){
var descriptor=props[i];
descriptor.enumerable=descriptor.enumerable||false;
descriptor.configurable=true;
if("value" in descriptor) descriptor.writable=true;
Object.defineProperty(target, descriptor.key, descriptor);
}}
function _createClass(Constructor, protoProps, staticProps){
if(protoProps) _defineProperties(Constructor.prototype, protoProps);
if(staticProps) _defineProperties(Constructor, staticProps);
return Constructor;
}
var intlTelInputGlobals={
getInstance: function getInstance(input){
var id=input.getAttribute("data-intl-tel-input-id");
return window.intlTelInputGlobals.instances[id];
},
instances: {}};
if(typeof window==="object") window.intlTelInputGlobals=intlTelInputGlobals;
var id=0;
var defaults={
allowDropdown: true,
autoHideDialCode: true,
autoPlaceholder: "polite",
customContainer: "",
customPlaceholder: null,
dropdownContainer: null,
excludeCountries: [],
formatOnDisplay: true,
geoIpLookup: null,
hiddenInput: "",
initialCountry: "",
localizedCountries: null,
nationalMode: true,
onlyCountries: [],
placeholderNumberType: "MOBILE",
preferredCountries: [ "us", "gb" ],
separateDialCode: false,
utilsScript: ""
};
var regionlessNanpNumbers=[ "800", "822", "833", "844", "855", "866", "877", "880", "881", "882", "883", "884", "885", "886", "887", "888", "889" ];
if(typeof window==="object"){
window.addEventListener("load", function(){
window.intlTelInputGlobals.windowLoaded=true;
});
}
var forEachProp=function forEachProp(obj, callback){
var keys=Object.keys(obj);
for (var i=0; i < keys.length; i++){
callback(keys[i], obj[keys[i]]);
}};
var forEachInstance=function forEachInstance(method){
forEachProp(window.intlTelInputGlobals.instances, function(key){
window.intlTelInputGlobals.instances[key][method]();
});
};
var Iti=
function(){
function Iti(input, options){
var _this=this;
_classCallCheck(this, Iti);
this.id=id++;
this.telInput=input;
this.activeItem=null;
this.highlightedItem=null;
var customOptions=options||{};
this.options={};
forEachProp(defaults, function(key, value){
_this.options[key]=customOptions.hasOwnProperty(key) ? customOptions[key]:value;
});
this.hadInitialPlaceholder=Boolean(input.getAttribute("placeholder"));
}
_createClass(Iti, [ {
key: "_init",
value: function _init(){
var _this2=this;
if(this.options.nationalMode) this.options.autoHideDialCode=false;
if(this.options.separateDialCode){
this.options.autoHideDialCode=this.options.nationalMode=false;
}
this.isMobile=/Android.+Mobile|webOS|iPhone|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);
if(this.isMobile){
document.body.classList.add("iti-mobile");
if(!this.options.dropdownContainer) this.options.dropdownContainer=document.body;
}
if(typeof Promise!=="undefined"){
var autoCountryPromise=new Promise(function(resolve, reject){
_this2.resolveAutoCountryPromise=resolve;
_this2.rejectAutoCountryPromise=reject;
});
var utilsScriptPromise=new Promise(function(resolve, reject){
_this2.resolveUtilsScriptPromise=resolve;
_this2.rejectUtilsScriptPromise=reject;
});
this.promise=Promise.all([ autoCountryPromise, utilsScriptPromise ]);
}else{
this.resolveAutoCountryPromise=this.rejectAutoCountryPromise=function(){};
this.resolveUtilsScriptPromise=this.rejectUtilsScriptPromise=function(){};}
this.selectedCountryData={};
this._processCountryData();
this._generateMarkup();
this._setInitialState();
this._initListeners();
this._initRequests();
}}, {
key: "_processCountryData",
value: function _processCountryData(){
this._processAllCountries();
this._processCountryCodes();
this._processPreferredCountries();
if(this.options.localizedCountries) this._translateCountriesByLocale();
if(this.options.onlyCountries.length||this.options.localizedCountries){
this.countries.sort(this._countryNameSort);
}}
}, {
key: "_addCountryCode",
value: function _addCountryCode(iso2, dialCode, priority){
if(dialCode.length > this.dialCodeMaxLen){
this.dialCodeMaxLen=dialCode.length;
}
if(!this.countryCodes.hasOwnProperty(dialCode)){
this.countryCodes[dialCode]=[];
}
for (var i=0; i < this.countryCodes[dialCode].length; i++){
if(this.countryCodes[dialCode][i]===iso2) return;
}
var index=priority!==undefined ? priority:this.countryCodes[dialCode].length;
this.countryCodes[dialCode][index]=iso2;
}}, {
key: "_processAllCountries",
value: function _processAllCountries(){
if(this.options.onlyCountries.length){
var lowerCaseOnlyCountries=this.options.onlyCountries.map(function(country){
return country.toLowerCase();
});
this.countries=allCountries.filter(function(country){
return lowerCaseOnlyCountries.indexOf(country.iso2) > -1;
});
}else if(this.options.excludeCountries.length){
var lowerCaseExcludeCountries=this.options.excludeCountries.map(function(country){
return country.toLowerCase();
});
this.countries=allCountries.filter(function(country){
return lowerCaseExcludeCountries.indexOf(country.iso2)===-1;
});
}else{
this.countries=allCountries;
}}
}, {
key: "_translateCountriesByLocale",
value: function _translateCountriesByLocale(){
for (var i=0; i < this.countries.length; i++){
var iso=this.countries[i].iso2.toLowerCase();
if(this.options.localizedCountries.hasOwnProperty(iso)){
this.countries[i].name=this.options.localizedCountries[iso];
}}
}}, {
key: "_countryNameSort",
value: function _countryNameSort(a, b){
return a.name.localeCompare(b.name);
}}, {
key: "_processCountryCodes",
value: function _processCountryCodes(){
this.dialCodeMaxLen=0;
this.countryCodes={};
for (var i=0; i < this.countries.length; i++){
var c=this.countries[i];
this._addCountryCode(c.iso2, c.dialCode, c.priority);
}
for (var _i=0; _i < this.countries.length; _i++){
var _c=this.countries[_i];
if(_c.areaCodes){
var rootCountryCode=this.countryCodes[_c.dialCode][0];
for (var j=0; j < _c.areaCodes.length; j++){
var areaCode=_c.areaCodes[j];
for (var k=1; k < areaCode.length; k++){
var partialDialCode=_c.dialCode + areaCode.substr(0, k);
this._addCountryCode(rootCountryCode, partialDialCode);
this._addCountryCode(_c.iso2, partialDialCode);
}
this._addCountryCode(_c.iso2, _c.dialCode + areaCode);
}}
}}
}, {
key: "_processPreferredCountries",
value: function _processPreferredCountries(){
this.preferredCountries=[];
for (var i=0; i < this.options.preferredCountries.length; i++){
var countryCode=this.options.preferredCountries[i].toLowerCase();
var countryData=this._getCountryData(countryCode, false, true);
if(countryData) this.preferredCountries.push(countryData);
}}
}, {
key: "_createEl",
value: function _createEl(name, attrs, container){
var el=document.createElement(name);
if(attrs) forEachProp(attrs, function(key, value){
return el.setAttribute(key, value);
});
if(container) container.appendChild(el);
return el;
}}, {
key: "_generateMarkup",
value: function _generateMarkup(){
if(!this.telInput.hasAttribute("autocomplete")&&!(this.telInput.form&&this.telInput.form.hasAttribute("autocomplete"))){
this.telInput.setAttribute("autocomplete", "off");
}
var parentClass="iti";
if(this.options.allowDropdown) parentClass +=" iti--allow-dropdown";
if(this.options.separateDialCode) parentClass +=" iti--separate-dial-code";
if(this.options.customContainer){
parentClass +=" ";
parentClass +=this.options.customContainer;
}
var wrapper=this._createEl("div", {
"class": parentClass
});
this.telInput.parentNode.insertBefore(wrapper, this.telInput);
this.flagsContainer=this._createEl("div", {
"class": "iti__flag-container"
}, wrapper);
wrapper.appendChild(this.telInput);
this.selectedFlag=this._createEl("div", {
"class": "iti__selected-flag",
role: "combobox",
"aria-owns": "iti-".concat(this.id, "__country-listbox"),
"aria-expanded": "false"
}, this.flagsContainer);
this.selectedFlagInner=this._createEl("div", {
"class": "iti__flag"
}, this.selectedFlag);
if(this.options.separateDialCode){
this.selectedDialCode=this._createEl("div", {
"class": "iti__selected-dial-code"
}, this.selectedFlag);
}
if(this.options.allowDropdown){
this.selectedFlag.setAttribute("tabindex", "0");
this.dropdownArrow=this._createEl("div", {
"class": "iti__arrow"
}, this.selectedFlag);
this.countryList=this._createEl("ul", {
"class": "iti__country-list iti__hide",
id: "iti-".concat(this.id, "__country-listbox"),
role: "listbox"
});
if(this.preferredCountries.length){
this._appendListItems(this.preferredCountries, "iti__preferred", true);
this._createEl("li", {
"class": "iti__divider",
role: "separator",
"aria-disabled": "true"
}, this.countryList);
}
this._appendListItems(this.countries, "iti__standard");
if(this.options.dropdownContainer){
this.dropdown=this._createEl("div", {
"class": "iti iti--container"
});
this.dropdown.appendChild(this.countryList);
}else{
this.flagsContainer.appendChild(this.countryList);
}}
if(this.options.hiddenInput){
var hiddenInputName=this.options.hiddenInput;
var name=this.telInput.getAttribute("name");
if(name){
var i=name.lastIndexOf("[");
if(i!==-1) hiddenInputName="".concat(name.substr(0, i), "[").concat(hiddenInputName, "]");
}
this.hiddenInput=this._createEl("input", {
type: "hidden",
name: hiddenInputName
});
wrapper.appendChild(this.hiddenInput);
}}
}, {
key: "_appendListItems",
value: function _appendListItems(countries, className, preferred){
var tmp="";
for (var i=0; i < countries.length; i++){
var c=countries[i];
var idSuffix=preferred ? "-preferred":"";
tmp +="<li class='iti__country ".concat(className, "' tabIndex='-1' id='iti-").concat(this.id, "__item-").concat(c.iso2).concat(idSuffix, "' role='option' data-dial-code='").concat(c.dialCode, "' data-country-code='").concat(c.iso2, "'>");
tmp +="<div class='iti__flag-box'><div class='iti__flag iti__".concat(c.iso2, "'></div></div>");
tmp +="<span class='iti__country-name'>".concat(c.name, "</span>");
tmp +="<span class='iti__dial-code'>+".concat(c.dialCode, "</span>");
tmp +="</li>";
}
this.countryList.insertAdjacentHTML("beforeend", tmp);
}}, {
key: "_setInitialState",
value: function _setInitialState(){
var val=this.telInput.value;
var dialCode=this._getDialCode(val);
var isRegionlessNanp=this._isRegionlessNanp(val);
var _this$options=this.options, initialCountry=_this$options.initialCountry, nationalMode=_this$options.nationalMode, autoHideDialCode=_this$options.autoHideDialCode, separateDialCode=_this$options.separateDialCode;
if(dialCode&&!isRegionlessNanp){
this._updateFlagFromNumber(val);
}else if(initialCountry!=="auto"){
if(initialCountry){
this._setFlag(initialCountry.toLowerCase());
}else{
if(dialCode&&isRegionlessNanp){
this._setFlag("us");
}else{
this.defaultCountry=this.preferredCountries.length ? this.preferredCountries[0].iso2:this.countries[0].iso2;
if(!val){
this._setFlag(this.defaultCountry);
}}
}
if(!val&&!nationalMode&&!autoHideDialCode&&!separateDialCode){
this.telInput.value="+".concat(this.selectedCountryData.dialCode);
}}
if(val) this._updateValFromNumber(val);
}}, {
key: "_initListeners",
value: function _initListeners(){
this._initKeyListeners();
if(this.options.autoHideDialCode) this._initBlurListeners();
if(this.options.allowDropdown) this._initDropdownListeners();
if(this.hiddenInput) this._initHiddenInputListener();
}}, {
key: "_initHiddenInputListener",
value: function _initHiddenInputListener(){
var _this3=this;
this._handleHiddenInputSubmit=function(){
_this3.hiddenInput.value=_this3.getNumber();
};
if(this.telInput.form) this.telInput.form.addEventListener("submit", this._handleHiddenInputSubmit);
}}, {
key: "_getClosestLabel",
value: function _getClosestLabel(){
var el=this.telInput;
while (el&&el.tagName!=="LABEL"){
el=el.parentNode;
}
return el;
}}, {
key: "_initDropdownListeners",
value: function _initDropdownListeners(){
var _this4=this;
this._handleLabelClick=function(e){
if(_this4.countryList.classList.contains("iti__hide")) _this4.telInput.focus(); else e.preventDefault();
};
var label=this._getClosestLabel();
if(label) label.addEventListener("click", this._handleLabelClick);
this._handleClickSelectedFlag=function(){
if(_this4.countryList.classList.contains("iti__hide")&&!_this4.telInput.disabled){
_this4._showDropdown();
}};
this.selectedFlag.addEventListener("click", this._handleClickSelectedFlag);
this._handleFlagsContainerKeydown=function(e){
var isDropdownHidden=_this4.countryList.classList.contains("iti__hide");
if(isDropdownHidden&&[ "ArrowUp", "Up", "ArrowDown", "Down", " ", "Enter" ].indexOf(e.key)!==-1){
e.preventDefault();
e.stopPropagation();
_this4._showDropdown();
}
if(e.key==="Tab") _this4._closeDropdown();
};
this.flagsContainer.addEventListener("keydown", this._handleFlagsContainerKeydown);
}}, {
key: "_initRequests",
value: function _initRequests(){
var _this5=this;
if(this.options.utilsScript&&!window.intlTelInputUtils){
if(window.intlTelInputGlobals.windowLoaded){
window.intlTelInputGlobals.loadUtils(this.options.utilsScript);
}else{
window.addEventListener("load", function(){
window.intlTelInputGlobals.loadUtils(_this5.options.utilsScript);
});
}} else this.resolveUtilsScriptPromise();
if(this.options.initialCountry==="auto") this._loadAutoCountry(); else this.resolveAutoCountryPromise();
}}, {
key: "_loadAutoCountry",
value: function _loadAutoCountry(){
if(window.intlTelInputGlobals.autoCountry){
this.handleAutoCountry();
}else if(!window.intlTelInputGlobals.startedLoadingAutoCountry){
window.intlTelInputGlobals.startedLoadingAutoCountry=true;
if(typeof this.options.geoIpLookup==="function"){
this.options.geoIpLookup(function(countryCode){
window.intlTelInputGlobals.autoCountry=countryCode.toLowerCase();
setTimeout(function(){
return forEachInstance("handleAutoCountry");
});
}, function(){
return forEachInstance("rejectAutoCountryPromise");
});
}}
}}, {
key: "_initKeyListeners",
value: function _initKeyListeners(){
var _this6=this;
this._handleKeyupEvent=function(){
if(_this6._updateFlagFromNumber(_this6.telInput.value)){
_this6._triggerCountryChange();
}};
this.telInput.addEventListener("keyup", this._handleKeyupEvent);
this._handleClipboardEvent=function(){
setTimeout(_this6._handleKeyupEvent);
};
this.telInput.addEventListener("cut", this._handleClipboardEvent);
this.telInput.addEventListener("paste", this._handleClipboardEvent);
}}, {
key: "_cap",
value: function _cap(number){
var max=this.telInput.getAttribute("maxlength");
return max&&number.length > max ? number.substr(0, max):number;
}}, {
key: "_initBlurListeners",
value: function _initBlurListeners(){
var _this7=this;
this._handleSubmitOrBlurEvent=function(){
_this7._removeEmptyDialCode();
};
if(this.telInput.form) this.telInput.form.addEventListener("submit", this._handleSubmitOrBlurEvent);
this.telInput.addEventListener("blur", this._handleSubmitOrBlurEvent);
}}, {
key: "_removeEmptyDialCode",
value: function _removeEmptyDialCode(){
if(this.telInput.value.charAt(0)==="+"){
var numeric=this._getNumeric(this.telInput.value);
if(!numeric||this.selectedCountryData.dialCode===numeric){
this.telInput.value="";
}}
}}, {
key: "_getNumeric",
value: function _getNumeric(s){
return s.replace(/\D/g, "");
}}, {
key: "_trigger",
value: function _trigger(name){
var e=document.createEvent("Event");
e.initEvent(name, true, true);
this.telInput.dispatchEvent(e);
}}, {
key: "_showDropdown",
value: function _showDropdown(){
this.countryList.classList.remove("iti__hide");
this.selectedFlag.setAttribute("aria-expanded", "true");
this._setDropdownPosition();
if(this.activeItem){
this._highlightListItem(this.activeItem, false);
this._scrollTo(this.activeItem, true);
}
this._bindDropdownListeners();
this.dropdownArrow.classList.add("iti__arrow--up");
this._trigger("open:countrydropdown");
}}, {
key: "_toggleClass",
value: function _toggleClass(el, className, shouldHaveClass){
if(shouldHaveClass&&!el.classList.contains(className)) el.classList.add(className); else if(!shouldHaveClass&&el.classList.contains(className)) el.classList.remove(className);
}}, {
key: "_setDropdownPosition",
value: function _setDropdownPosition(){
var _this8=this;
if(this.options.dropdownContainer){
this.options.dropdownContainer.appendChild(this.dropdown);
}
if(!this.isMobile){
var pos=this.telInput.getBoundingClientRect();
var windowTop=window.pageYOffset||document.documentElement.scrollTop;
var inputTop=pos.top + windowTop;
var dropdownHeight=this.countryList.offsetHeight;
var dropdownFitsBelow=inputTop + this.telInput.offsetHeight + dropdownHeight < windowTop + window.innerHeight;
var dropdownFitsAbove=inputTop - dropdownHeight > windowTop;
this._toggleClass(this.countryList, "iti__country-list--dropup", !dropdownFitsBelow&&dropdownFitsAbove);
if(this.options.dropdownContainer){
var extraTop = !dropdownFitsBelow&&dropdownFitsAbove ? 0:this.telInput.offsetHeight;
this.dropdown.style.top="".concat(inputTop + extraTop, "px");
this.dropdown.style.left="".concat(pos.left + document.body.scrollLeft, "px");
this._handleWindowScroll=function(){
return _this8._closeDropdown();
};
window.addEventListener("scroll", this._handleWindowScroll);
}}
}}, {
key: "_getClosestListItem",
value: function _getClosestListItem(target){
var el=target;
while (el&&el!==this.countryList&&!el.classList.contains("iti__country")){
el=el.parentNode;
}
return el===this.countryList ? null:el;
}}, {
key: "_bindDropdownListeners",
value: function _bindDropdownListeners(){
var _this9=this;
this._handleMouseoverCountryList=function(e){
var listItem=_this9._getClosestListItem(e.target);
if(listItem) _this9._highlightListItem(listItem, false);
};
this.countryList.addEventListener("mouseover", this._handleMouseoverCountryList);
this._handleClickCountryList=function(e){
var listItem=_this9._getClosestListItem(e.target);
if(listItem) _this9._selectListItem(listItem);
};
this.countryList.addEventListener("click", this._handleClickCountryList);
var isOpening=true;
this._handleClickOffToClose=function(){
if(!isOpening) _this9._closeDropdown();
isOpening=false;
};
document.documentElement.addEventListener("click", this._handleClickOffToClose);
var query="";
var queryTimer=null;
this._handleKeydownOnDropdown=function(e){
e.preventDefault();
if(e.key==="ArrowUp"||e.key==="Up"||e.key==="ArrowDown"||e.key==="Down") _this9._handleUpDownKey(e.key); else if(e.key==="Enter") _this9._handleEnterKey(); else if(e.key==="Escape") _this9._closeDropdown(); else if(/^[a-zA-ZÀ-ÿа-яА-Я ]$/.test(e.key)){
if(queryTimer) clearTimeout(queryTimer);
query +=e.key.toLowerCase();
_this9._searchForCountry(query);
queryTimer=setTimeout(function(){
query="";
}, 1e3);
}};
document.addEventListener("keydown", this._handleKeydownOnDropdown);
}}, {
key: "_handleUpDownKey",
value: function _handleUpDownKey(key){
var next=key==="ArrowUp"||key==="Up" ? this.highlightedItem.previousElementSibling:this.highlightedItem.nextElementSibling;
if(next){
if(next.classList.contains("iti__divider")){
next=key==="ArrowUp"||key==="Up" ? next.previousElementSibling:next.nextElementSibling;
}
this._highlightListItem(next, true);
}}
}, {
key: "_handleEnterKey",
value: function _handleEnterKey(){
if(this.highlightedItem) this._selectListItem(this.highlightedItem);
}}, {
key: "_searchForCountry",
value: function _searchForCountry(query){
for (var i=0; i < this.countries.length; i++){
if(this._startsWith(this.countries[i].name, query)){
var listItem=this.countryList.querySelector("#iti-".concat(this.id, "__item-").concat(this.countries[i].iso2));
this._highlightListItem(listItem, false);
this._scrollTo(listItem, true);
break;
}}
}}, {
key: "_startsWith",
value: function _startsWith(a, b){
return a.substr(0, b.length).toLowerCase()===b;
}}, {
key: "_updateValFromNumber",
value: function _updateValFromNumber(originalNumber){
var number=originalNumber;
if(this.options.formatOnDisplay&&window.intlTelInputUtils&&this.selectedCountryData){
var useNational = !this.options.separateDialCode&&(this.options.nationalMode||number.charAt(0)!=="+");
var _intlTelInputUtils$nu=intlTelInputUtils.numberFormat, NATIONAL=_intlTelInputUtils$nu.NATIONAL, INTERNATIONAL=_intlTelInputUtils$nu.INTERNATIONAL;
var format=useNational ? NATIONAL:INTERNATIONAL;
number=intlTelInputUtils.formatNumber(number, this.selectedCountryData.iso2, format);
}
number=this._beforeSetNumber(number);
this.telInput.value=number;
}}, {
key: "_updateFlagFromNumber",
value: function _updateFlagFromNumber(originalNumber){
var number=originalNumber;
var selectedDialCode=this.selectedCountryData.dialCode;
var isNanp=selectedDialCode==="1";
if(number&&this.options.nationalMode&&isNanp&&number.charAt(0)!=="+"){
if(number.charAt(0)!=="1") number="1".concat(number);
number="+".concat(number);
}
if(this.options.separateDialCode&&selectedDialCode&&number.charAt(0)!=="+"){
number="+".concat(selectedDialCode).concat(number);
}
var dialCode=this._getDialCode(number);
var numeric=this._getNumeric(number);
var countryCode=null;
if(dialCode){
var countryCodes=this.countryCodes[this._getNumeric(dialCode)];
var alreadySelected=countryCodes.indexOf(this.selectedCountryData.iso2)!==-1&&numeric.length <=dialCode.length - 1;
var isRegionlessNanpNumber=selectedDialCode==="1"&&this._isRegionlessNanp(numeric);
if(!isRegionlessNanpNumber&&!alreadySelected){
for (var j=0; j < countryCodes.length; j++){
if(countryCodes[j]){
countryCode=countryCodes[j];
break;
}}
}}else if(number.charAt(0)==="+"&&numeric.length){
countryCode="";
}else if(!number||number==="+"){
countryCode=this.defaultCountry;
}
if(countryCode!==null){
return this._setFlag(countryCode);
}
return false;
}}, {
key: "_isRegionlessNanp",
value: function _isRegionlessNanp(number){
var numeric=this._getNumeric(number);
if(numeric.charAt(0)==="1"){
var areaCode=numeric.substr(1, 3);
return regionlessNanpNumbers.indexOf(areaCode)!==-1;
}
return false;
}}, {
key: "_highlightListItem",
value: function _highlightListItem(listItem, shouldFocus){
var prevItem=this.highlightedItem;
if(prevItem) prevItem.classList.remove("iti__highlight");
this.highlightedItem=listItem;
this.highlightedItem.classList.add("iti__highlight");
if(shouldFocus) this.highlightedItem.focus();
}}, {
key: "_getCountryData",
value: function _getCountryData(countryCode, ignoreOnlyCountriesOption, allowFail){
var countryList=ignoreOnlyCountriesOption ? allCountries:this.countries;
for (var i=0; i < countryList.length; i++){
if(countryList[i].iso2===countryCode){
return countryList[i];
}}
if(allowFail){
return null;
}
throw new Error("No country data for '".concat(countryCode, "'"));
}}, {
key: "_setFlag",
value: function _setFlag(countryCode){
var prevCountry=this.selectedCountryData.iso2 ? this.selectedCountryData:{};
this.selectedCountryData=countryCode ? this._getCountryData(countryCode, false, false):{};
if(this.selectedCountryData.iso2){
this.defaultCountry=this.selectedCountryData.iso2;
}
this.selectedFlagInner.setAttribute("class", "iti__flag iti__".concat(countryCode));
var title=countryCode ? "".concat(this.selectedCountryData.name, ": +").concat(this.selectedCountryData.dialCode):"Unknown";
this.selectedFlag.setAttribute("title", title);
if(this.options.separateDialCode){
var dialCode=this.selectedCountryData.dialCode ? "+".concat(this.selectedCountryData.dialCode):"";
this.selectedDialCode.innerHTML=dialCode;
var selectedFlagWidth=this.selectedFlag.offsetWidth||this._getHiddenSelectedFlagWidth();
this.telInput.style.paddingLeft="".concat(selectedFlagWidth + 6, "px");
}
this._updatePlaceholder();
if(this.options.allowDropdown){
var prevItem=this.activeItem;
if(prevItem){
prevItem.classList.remove("iti__active");
prevItem.setAttribute("aria-selected", "false");
}
if(countryCode){
var nextItem=this.countryList.querySelector("#iti-".concat(this.id, "__item-").concat(countryCode, "-preferred"))||this.countryList.querySelector("#iti-".concat(this.id, "__item-").concat(countryCode));
nextItem.setAttribute("aria-selected", "true");
nextItem.classList.add("iti__active");
this.activeItem=nextItem;
this.selectedFlag.setAttribute("aria-activedescendant", nextItem.getAttribute("id"));
}}
return prevCountry.iso2!==countryCode;
}}, {
key: "_getHiddenSelectedFlagWidth",
value: function _getHiddenSelectedFlagWidth(){
var containerClone=this.telInput.parentNode.cloneNode();
containerClone.style.visibility="hidden";
document.body.appendChild(containerClone);
var selectedFlagClone=this.selectedFlag.cloneNode(true);
containerClone.appendChild(selectedFlagClone);
var width=selectedFlagClone.offsetWidth;
containerClone.parentNode.removeChild(containerClone);
return width;
}}, {
key: "_updatePlaceholder",
value: function _updatePlaceholder(){
var shouldSetPlaceholder=this.options.autoPlaceholder==="aggressive"||!this.hadInitialPlaceholder&&this.options.autoPlaceholder==="polite";
if(window.intlTelInputUtils&&shouldSetPlaceholder){
var numberType=intlTelInputUtils.numberType[this.options.placeholderNumberType];
var placeholder=this.selectedCountryData.iso2 ? intlTelInputUtils.getExampleNumber(this.selectedCountryData.iso2, this.options.nationalMode, numberType):"";
placeholder=this._beforeSetNumber(placeholder);
if(typeof this.options.customPlaceholder==="function"){
placeholder=this.options.customPlaceholder(placeholder, this.selectedCountryData);
}
this.telInput.setAttribute("placeholder", placeholder);
}}
}, {
key: "_selectListItem",
value: function _selectListItem(listItem){
var flagChanged=this._setFlag(listItem.getAttribute("data-country-code"));
this._closeDropdown();
this._updateDialCode(listItem.getAttribute("data-dial-code"), true);
this.telInput.focus();
var len=this.telInput.value.length;
this.telInput.setSelectionRange(len, len);
if(flagChanged){
this._triggerCountryChange();
}}
}, {
key: "_closeDropdown",
value: function _closeDropdown(){
this.countryList.classList.add("iti__hide");
this.selectedFlag.setAttribute("aria-expanded", "false");
this.dropdownArrow.classList.remove("iti__arrow--up");
document.removeEventListener("keydown", this._handleKeydownOnDropdown);
document.documentElement.removeEventListener("click", this._handleClickOffToClose);
this.countryList.removeEventListener("mouseover", this._handleMouseoverCountryList);
this.countryList.removeEventListener("click", this._handleClickCountryList);
if(this.options.dropdownContainer){
if(!this.isMobile) window.removeEventListener("scroll", this._handleWindowScroll);
if(this.dropdown.parentNode) this.dropdown.parentNode.removeChild(this.dropdown);
}
this._trigger("close:countrydropdown");
}}, {
key: "_scrollTo",
value: function _scrollTo(element, middle){
var container=this.countryList;
var windowTop=window.pageYOffset||document.documentElement.scrollTop;
var containerHeight=container.offsetHeight;
var containerTop=container.getBoundingClientRect().top + windowTop;
var containerBottom=containerTop + containerHeight;
var elementHeight=element.offsetHeight;
var elementTop=element.getBoundingClientRect().top + windowTop;
var elementBottom=elementTop + elementHeight;
var newScrollTop=elementTop - containerTop + container.scrollTop;
var middleOffset=containerHeight / 2 - elementHeight / 2;
if(elementTop < containerTop){
if(middle) newScrollTop -=middleOffset;
container.scrollTop=newScrollTop;
}else if(elementBottom > containerBottom){
if(middle) newScrollTop +=middleOffset;
var heightDifference=containerHeight - elementHeight;
container.scrollTop=newScrollTop - heightDifference;
}}
}, {
key: "_updateDialCode",
value: function _updateDialCode(newDialCodeBare, hasSelectedListItem){
var inputVal=this.telInput.value;
var newDialCode="+".concat(newDialCodeBare);
var newNumber;
if(inputVal.charAt(0)==="+"){
var prevDialCode=this._getDialCode(inputVal);
if(prevDialCode){
newNumber=inputVal.replace(prevDialCode, newDialCode);
}else{
newNumber=newDialCode;
}}else if(this.options.nationalMode||this.options.separateDialCode){
return;
}else{
if(inputVal){
newNumber=newDialCode + inputVal;
}else if(hasSelectedListItem||!this.options.autoHideDialCode){
newNumber=newDialCode;
}else{
return;
}}
this.telInput.value=newNumber;
}}, {
key: "_getDialCode",
value: function _getDialCode(number){
var dialCode="";
if(number.charAt(0)==="+"){
var numericChars="";
for (var i=0; i < number.length; i++){
var c=number.charAt(i);
if(!isNaN(parseInt(c, 10))){
numericChars +=c;
if(this.countryCodes[numericChars]){
dialCode=number.substr(0, i + 1);
}
if(numericChars.length===this.dialCodeMaxLen){
break;
}}
}}
return dialCode;
}}, {
key: "_getFullNumber",
value: function _getFullNumber(){
var val=this.telInput.value.trim();
var dialCode=this.selectedCountryData.dialCode;
var prefix;
var numericVal=this._getNumeric(val);
if(this.options.separateDialCode&&val.charAt(0)!=="+"&&dialCode&&numericVal){
prefix="+".concat(dialCode);
}else{
prefix="";
}
return prefix + val;
}}, {
key: "_beforeSetNumber",
value: function _beforeSetNumber(originalNumber){
var number=originalNumber;
if(this.options.separateDialCode){
var dialCode=this._getDialCode(number);
if(dialCode){
dialCode="+".concat(this.selectedCountryData.dialCode);
var start=number[dialCode.length]===" "||number[dialCode.length]==="-" ? dialCode.length + 1:dialCode.length;
number=number.substr(start);
}}
return this._cap(number);
}}, {
key: "_triggerCountryChange",
value: function _triggerCountryChange(){
this._trigger("countrychange");
}}, {
key: "handleAutoCountry",
value: function handleAutoCountry(){
if(this.options.initialCountry==="auto"){
this.defaultCountry=window.intlTelInputGlobals.autoCountry;
if(!this.telInput.value){
this.setCountry(this.defaultCountry);
}
this.resolveAutoCountryPromise();
}}
}, {
key: "handleUtils",
value: function handleUtils(){
if(window.intlTelInputUtils){
if(this.telInput.value){
this._updateValFromNumber(this.telInput.value);
}
this._updatePlaceholder();
}
this.resolveUtilsScriptPromise();
}}, {
key: "destroy",
value: function destroy(){
var form=this.telInput.form;
if(this.options.allowDropdown){
this._closeDropdown();
this.selectedFlag.removeEventListener("click", this._handleClickSelectedFlag);
this.flagsContainer.removeEventListener("keydown", this._handleFlagsContainerKeydown);
var label=this._getClosestLabel();
if(label) label.removeEventListener("click", this._handleLabelClick);
}
if(this.hiddenInput&&form) form.removeEventListener("submit", this._handleHiddenInputSubmit);
if(this.options.autoHideDialCode){
if(form) form.removeEventListener("submit", this._handleSubmitOrBlurEvent);
this.telInput.removeEventListener("blur", this._handleSubmitOrBlurEvent);
}
this.telInput.removeEventListener("keyup", this._handleKeyupEvent);
this.telInput.removeEventListener("cut", this._handleClipboardEvent);
this.telInput.removeEventListener("paste", this._handleClipboardEvent);
this.telInput.removeAttribute("data-intl-tel-input-id");
var wrapper=this.telInput.parentNode;
wrapper.parentNode.insertBefore(this.telInput, wrapper);
wrapper.parentNode.removeChild(wrapper);
delete window.intlTelInputGlobals.instances[this.id];
}}, {
key: "getExtension",
value: function getExtension(){
if(window.intlTelInputUtils){
return intlTelInputUtils.getExtension(this._getFullNumber(), this.selectedCountryData.iso2);
}
return "";
}}, {
key: "getNumber",
value: function getNumber(format){
if(window.intlTelInputUtils){
var iso2=this.selectedCountryData.iso2;
return intlTelInputUtils.formatNumber(this._getFullNumber(), iso2, format);
}
return "";
}}, {
key: "getNumberType",
value: function getNumberType(){
if(window.intlTelInputUtils){
return intlTelInputUtils.getNumberType(this._getFullNumber(), this.selectedCountryData.iso2);
}
return -99;
}}, {
key: "getSelectedCountryData",
value: function getSelectedCountryData(){
return this.selectedCountryData;
}}, {
key: "getValidationError",
value: function getValidationError(){
if(window.intlTelInputUtils){
var iso2=this.selectedCountryData.iso2;
return intlTelInputUtils.getValidationError(this._getFullNumber(), iso2);
}
return -99;
}}, {
key: "isValidNumber",
value: function isValidNumber(){
var val=this._getFullNumber().trim();
var countryCode=this.options.nationalMode ? this.selectedCountryData.iso2:"";
return window.intlTelInputUtils ? intlTelInputUtils.isValidNumber(val, countryCode):null;
}}, {
key: "setCountry",
value: function setCountry(originalCountryCode){
var countryCode=originalCountryCode.toLowerCase();
if(!this.selectedFlagInner.classList.contains("iti__".concat(countryCode))){
this._setFlag(countryCode);
this._updateDialCode(this.selectedCountryData.dialCode, false);
this._triggerCountryChange();
}}
}, {
key: "setNumber",
value: function setNumber(number){
var flagChanged=this._updateFlagFromNumber(number);
this._updateValFromNumber(number);
if(flagChanged){
this._triggerCountryChange();
}}
}, {
key: "setPlaceholderNumberType",
value: function setPlaceholderNumberType(type){
this.options.placeholderNumberType=type;
this._updatePlaceholder();
}} ]);
return Iti;
}();
intlTelInputGlobals.getCountryData=function(){
return allCountries;
};
var injectScript=function injectScript(path, handleSuccess, handleFailure){
var script=document.createElement("script");
script.onload=function(){
forEachInstance("handleUtils");
if(handleSuccess) handleSuccess();
};
script.onerror=function(){
forEachInstance("rejectUtilsScriptPromise");
if(handleFailure) handleFailure();
};
script.className="iti-load-utils";
script.async=true;
script.src=path;
document.body.appendChild(script);
};
intlTelInputGlobals.loadUtils=function(path){
if(!window.intlTelInputUtils&&!window.intlTelInputGlobals.startedLoadingUtilsScript){
window.intlTelInputGlobals.startedLoadingUtilsScript=true;
if(typeof Promise!=="undefined"){
return new Promise(function(resolve, reject){
return injectScript(path, resolve, reject);
});
}
injectScript(path);
}
return null;
};
intlTelInputGlobals.defaults=defaults;
intlTelInputGlobals.version="17.0.0";
return function(input, options){
var iti=new Iti(input, options);
iti._init();
input.setAttribute("data-intl-tel-input-id", iti.id);
window.intlTelInputGlobals.instances[iti.id]=iti;
return iti;
};}();
});
if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]};return!1}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one("bsTransitionEnd",function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b(),a.support.transition&&(a.event.special.bsTransitionEnd={bindType:a.support.transition.end,delegateType:a.support.transition.end,handle:function(b){return a(b.target).is(this)?b.handleObj.handler.apply(this,arguments):void 0}})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var c=a(this),e=c.data("bs.alert");e||c.data("bs.alert",e=new d(this)),"string"==typeof b&&e[b].call(c)})}var c='[data-dismiss="alert"]',d=function(b){a(b).on("click",c,this.close)};d.VERSION="3.2.0",d.prototype.close=function(b){function c(){f.detach().trigger("closed.bs.alert").remove()}var d=a(this),e=d.attr("data-target");e||(e=d.attr("href"),e=e&&e.replace(/.*(?=#[^\s]*$)/,""));var f=a(e);b&&b.preventDefault(),f.length||(f=d.hasClass("alert")?d:d.parent()),f.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(f.removeClass("in"),a.support.transition&&f.hasClass("fade")?f.one("bsTransitionEnd",c).emulateTransitionEnd(150):c())};var e=a.fn.alert;a.fn.alert=b,a.fn.alert.Constructor=d,a.fn.alert.noConflict=function(){return a.fn.alert=e,this},a(document).on("click.bs.alert.data-api",c,d.prototype.close)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof b&&b;e||d.data("bs.button",e=new c(this,f)),"toggle"==b?e.toggle():b&&e.setState(b)})}var c=function(b,d){this.$element=a(b),this.options=a.extend({},c.DEFAULTS,d),this.isLoading=!1};c.VERSION="3.2.0",c.DEFAULTS={loadingText:"loading..."},c.prototype.setState=function(b){var c="disabled",d=this.$element,e=d.is("input")?"val":"html",f=d.data();b+="Text",null==f.resetText&&d.data("resetText",d[e]()),d[e](null==f[b]?this.options[b]:f[b]),setTimeout(a.proxy(function(){"loadingText"==b?(this.isLoading=!0,d.addClass(c).attr(c,c)):this.isLoading&&(this.isLoading=!1,d.removeClass(c).removeAttr(c))},this),0)},c.prototype.toggle=function(){var a=!0,b=this.$element.closest('[data-toggle="buttons"]');if(b.length){var c=this.$element.find("input");"radio"==c.prop("type")&&(c.prop("checked")&&this.$element.hasClass("active")?a=!1:b.find(".active").removeClass("active")),a&&c.prop("checked",!this.$element.hasClass("active")).trigger("change")}a&&this.$element.toggleClass("active")};var d=a.fn.button;a.fn.button=b,a.fn.button.Constructor=c,a.fn.button.noConflict=function(){return a.fn.button=d,this},a(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(c){var d=a(c.target);d.hasClass("btn")||(d=d.closest(".btn")),b.call(d,"toggle"),c.preventDefault()})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},c.DEFAULTS,d.data(),"object"==typeof b&&b),g="string"==typeof b?b:f.slide;e||d.data("bs.carousel",e=new c(this,f)),"number"==typeof b?e.to(b):g?e[g]():f.interval&&e.pause().cycle()})}var c=function(b,c){this.$element=a(b).on("keydown.bs.carousel",a.proxy(this.keydown,this)),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=this.sliding=this.interval=this.$active=this.$items=null,"hover"==this.options.pause&&this.$element.on("mouseenter.bs.carousel",a.proxy(this.pause,this)).on("mouseleave.bs.carousel",a.proxy(this.cycle,this))};c.VERSION="3.2.0",c.DEFAULTS={interval:5e3,pause:"hover",wrap:!0},c.prototype.keydown=function(a){switch(a.which){case 37:this.prev();break;case 39:this.next();break;default:return}a.preventDefault()},c.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},c.prototype.getItemIndex=function(a){return this.$items=a.parent().children(".item"),this.$items.index(a||this.$active)},c.prototype.to=function(b){var c=this,d=this.getItemIndex(this.$active=this.$element.find(".item.active"));return b>this.$items.length-1||0>b?void 0:this.sliding?this.$element.one("slid.bs.carousel",function(){c.to(b)}):d==b?this.pause().cycle():this.slide(b>d?"next":"prev",a(this.$items[b]))},c.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},c.prototype.next=function(){return this.sliding?void 0:this.slide("next")},c.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},c.prototype.slide=function(b,c){var d=this.$element.find(".item.active"),e=c||d[b](),f=this.interval,g="next"==b?"left":"right",h="next"==b?"first":"last",i=this;if(!e.length){if(!this.options.wrap)return;e=this.$element.find(".item")[h]()}if(e.hasClass("active"))return this.sliding=!1;var j=e[0],k=a.Event("slide.bs.carousel",{relatedTarget:j,direction:g});if(this.$element.trigger(k),!k.isDefaultPrevented()){if(this.sliding=!0,f&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var l=a(this.$indicators.children()[this.getItemIndex(e)]);l&&l.addClass("active")}var m=a.Event("slid.bs.carousel",{relatedTarget:j,direction:g});return a.support.transition&&this.$element.hasClass("slide")?(e.addClass(b),e[0].offsetWidth,d.addClass(g),e.addClass(g),d.one("bsTransitionEnd",function(){e.removeClass([b,g].join(" ")).addClass("active"),d.removeClass(["active",g].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger(m)},0)}).emulateTransitionEnd(1e3*d.css("transition-duration").slice(0,-1))):(d.removeClass("active"),e.addClass("active"),this.sliding=!1,this.$element.trigger(m)),f&&this.cycle(),this}};var d=a.fn.carousel;a.fn.carousel=b,a.fn.carousel.Constructor=c,a.fn.carousel.noConflict=function(){return a.fn.carousel=d,this},a(document).on("click.bs.carousel.data-api","[data-slide], [data-slide-to]",function(c){var d,e=a(this),f=a(e.attr("data-target")||(d=e.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""));if(f.hasClass("carousel")){var g=a.extend({},f.data(),e.data()),h=e.attr("data-slide-to");h&&(g.interval=!1),b.call(f,g),h&&f.data("bs.carousel").to(h),c.preventDefault()}}),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var c=a(this);b.call(c,c.data())})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.collapse"),f=a.extend({},c.DEFAULTS,d.data(),"object"==typeof b&&b);!e&&f.toggle&&"show"==b&&(b=!b),e||d.data("bs.collapse",e=new c(this,f)),"string"==typeof b&&e[b]()})}var c=function(b,d){this.$element=a(b),this.options=a.extend({},c.DEFAULTS,d),this.transitioning=null,this.options.parent&&(this.$parent=a(this.options.parent)),this.options.toggle&&this.toggle()};c.VERSION="3.2.0",c.DEFAULTS={toggle:!0},c.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},c.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var c=a.Event("show.bs.collapse");if(this.$element.trigger(c),!c.isDefaultPrevented()){var d=this.$parent&&this.$parent.find("> .panel > .in");if(d&&d.length){var e=d.data("bs.collapse");if(e&&e.transitioning)return;b.call(d,"hide"),e||d.data("bs.collapse",null)}var f=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[f](0),this.transitioning=1;var g=function(){this.$element.removeClass("collapsing").addClass("collapse in")[f](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return g.call(this);var h=a.camelCase(["scroll",f].join("-"));this.$element.one("bsTransitionEnd",a.proxy(g,this)).emulateTransitionEnd(350)[f](this.$element[0][h])}}},c.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse").removeClass("in"),this.transitioning=1;var d=function(){this.transitioning=0,this.$element.trigger("hidden.bs.collapse").removeClass("collapsing").addClass("collapse")};return a.support.transition?void this.$element[c](0).one("bsTransitionEnd",a.proxy(d,this)).emulateTransitionEnd(350):d.call(this)}}},c.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()};var d=a.fn.collapse;a.fn.collapse=b,a.fn.collapse.Constructor=c,a.fn.collapse.noConflict=function(){return a.fn.collapse=d,this},a(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(c){var d,e=a(this),f=e.attr("data-target")||c.preventDefault()||(d=e.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""),g=a(f),h=g.data("bs.collapse"),i=h?"toggle":e.data(),j=e.attr("data-parent"),k=j&&a(j);h&&h.transitioning||(k&&k.find('[data-toggle="collapse"][data-parent="'+j+'"]').not(e).addClass("collapsed"),e[g.hasClass("in")?"addClass":"removeClass"]("collapsed")),b.call(g,i)})}(jQuery),+function(a){"use strict";function b(b){b&&3===b.which||(a(e).remove(),a(f).each(function(){var d=c(a(this)),e={relatedTarget:this};d.hasClass("open")&&(d.trigger(b=a.Event("hide.bs.dropdown",e)),b.isDefaultPrevented()||d.removeClass("open").trigger("hidden.bs.dropdown",e))}))}function c(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#[A-Za-z]/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}function d(b){return this.each(function(){var c=a(this),d=c.data("bs.dropdown");d||c.data("bs.dropdown",d=new g(this)),"string"==typeof b&&d[b].call(c)})}var e=".dropdown-backdrop",f='[data-toggle="dropdown"]',g=function(b){a(b).on("click.bs.dropdown",this.toggle)};g.VERSION="3.2.0",g.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=c(e),g=f.hasClass("open");if(b(),!g){"ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a('<div class="dropdown-backdrop"/>').insertAfter(a(this)).on("click",b);var h={relatedTarget:this};if(f.trigger(d=a.Event("show.bs.dropdown",h)),d.isDefaultPrevented())return;e.trigger("focus"),f.toggleClass("open").trigger("shown.bs.dropdown",h)}return!1}},g.prototype.keydown=function(b){if(/(38|40|27)/.test(b.keyCode)){var d=a(this);if(b.preventDefault(),b.stopPropagation(),!d.is(".disabled, :disabled")){var e=c(d),g=e.hasClass("open");if(!g||g&&27==b.keyCode)return 27==b.which&&e.find(f).trigger("focus"),d.trigger("click");var h=" li:not(.divider):visible a",i=e.find('[role="menu"]'+h+', [role="listbox"]'+h);if(i.length){var j=i.index(i.filter(":focus"));38==b.keyCode&&j>0&&j--,40==b.keyCode&&j<i.length-1&&j++,~j||(j=0),i.eq(j).trigger("focus")}}}};var h=a.fn.dropdown;a.fn.dropdown=d,a.fn.dropdown.Constructor=g,a.fn.dropdown.noConflict=function(){return a.fn.dropdown=h,this},a(document).on("click.bs.dropdown.data-api",b).on("click.bs.dropdown.data-api",".dropdown form",function(a){a.stopPropagation()}).on("click.bs.dropdown.data-api",f,g.prototype.toggle).on("keydown.bs.dropdown.data-api",f+', [role="menu"], [role="listbox"]',g.prototype.keydown)}(jQuery),+function(a){"use strict";function b(b,d){return this.each(function(){var e=a(this),f=e.data("bs.modal"),g=a.extend({},c.DEFAULTS,e.data(),"object"==typeof b&&b);f||e.data("bs.modal",f=new c(this,g)),"string"==typeof b?f[b](d):g.show&&f.show(d)})}var c=function(b,c){this.options=c,this.$body=a(document.body),this.$element=a(b),this.$backdrop=this.isShown=null,this.scrollbarWidth=0,this.options.remote&&this.$element.find(".modal-content").load(this.options.remote,a.proxy(function(){this.$element.trigger("loaded.bs.modal")},this))};c.VERSION="3.2.0",c.DEFAULTS={backdrop:!0,keyboard:!0,show:!0},c.prototype.toggle=function(a){return this.isShown?this.hide():this.show(a)},c.prototype.show=function(b){var c=this,d=a.Event("show.bs.modal",{relatedTarget:b});this.$element.trigger(d),this.isShown||d.isDefaultPrevented()||(this.isShown=!0,this.checkScrollbar(),this.$body.addClass("modal-open"),this.setScrollbar(),this.escape(),this.$element.on("click.dismiss.bs.modal",'[data-dismiss="modal"]',a.proxy(this.hide,this)),this.backdrop(function(){var d=a.support.transition&&c.$element.hasClass("fade");c.$element.parent().length||c.$element.appendTo(c.$body),c.$element.show().scrollTop(0),d&&c.$element[0].offsetWidth,c.$element.addClass("in").attr("aria-hidden",!1),c.enforceFocus();var e=a.Event("shown.bs.modal",{relatedTarget:b});d?c.$element.find(".modal-dialog").one("bsTransitionEnd",function(){c.$element.trigger("focus").trigger(e)}).emulateTransitionEnd(300):c.$element.trigger("focus").trigger(e)}))},c.prototype.hide=function(b){b&&b.preventDefault(),b=a.Event("hide.bs.modal"),this.$element.trigger(b),this.isShown&&!b.isDefaultPrevented()&&(this.isShown=!1,this.$body.removeClass("modal-open"),this.resetScrollbar(),this.escape(),a(document).off("focusin.bs.modal"),this.$element.removeClass("in").attr("aria-hidden",!0).off("click.dismiss.bs.modal"),a.support.transition&&this.$element.hasClass("fade")?this.$element.one("bsTransitionEnd",a.proxy(this.hideModal,this)).emulateTransitionEnd(300):this.hideModal())},c.prototype.enforceFocus=function(){a(document).off("focusin.bs.modal").on("focusin.bs.modal",a.proxy(function(a){this.$element[0]===a.target||this.$element.has(a.target).length||this.$element.trigger("focus")},this))},c.prototype.escape=function(){this.isShown&&this.options.keyboard?this.$element.on("keyup.dismiss.bs.modal",a.proxy(function(a){27==a.which&&this.hide()},this)):this.isShown||this.$element.off("keyup.dismiss.bs.modal")},c.prototype.hideModal=function(){var a=this;this.$element.hide(),this.backdrop(function(){a.$element.trigger("hidden.bs.modal")})},c.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},c.prototype.backdrop=function(b){var c=this,d=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var e=a.support.transition&&d;if(this.$backdrop=a('<div class="modal-backdrop '+d+'" />').appendTo(this.$element.parent()),this.$element.on("click.dismiss.bs.modal",a.proxy(function(a){a.target===a.currentTarget&&("static"==this.options.backdrop?this.$element[0].focus.call(this.$element[0]):this.hide.call(this))},this)),e&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!b)return;e?this.$backdrop.one("bsTransitionEnd",b).emulateTransitionEnd(150):b()}else if(!this.isShown&&this.$backdrop){this.$backdrop.removeClass("in");var f=function(){c.removeBackdrop(),b&&b()};a.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one("bsTransitionEnd",f).emulateTransitionEnd(150):f()}else b&&b()},c.prototype.checkScrollbar=function(){document.body.clientWidth>=window.innerWidth||(this.scrollbarWidth=this.scrollbarWidth||this.measureScrollbar())},c.prototype.setScrollbar=function(){var a=parseInt(this.$body.css("padding-right")||0,10);this.scrollbarWidth&&this.$body.css("padding-right",a+this.scrollbarWidth)},c.prototype.resetScrollbar=function(){this.$body.css("padding-right","")},c.prototype.measureScrollbar=function(){var a=document.createElement("div");a.className="modal-scrollbar-measure",this.$body.append(a);var b=a.offsetWidth-a.clientWidth;return this.$body[0].removeChild(a),b};var d=a.fn.modal;a.fn.modal=b,a.fn.modal.Constructor=c,a.fn.modal.noConflict=function(){return a.fn.modal=d,this},a(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',function(c){var d=a(this),e=d.attr("href"),f=a(d.attr("data-target")||e&&e.replace(/.*(?=#[^\s]+$)/,"")),g=f.data("bs.modal")?"toggle":a.extend({remote:!/#/.test(e)&&e},f.data(),d.data());d.is("a")&&c.preventDefault(),f.one("show.bs.modal",function(a){a.isDefaultPrevented()||f.one("hidden.bs.modal",function(){d.is(":visible")&&d.trigger("focus")})}),b.call(f,g,this)})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tooltip"),f="object"==typeof b&&b;(e||"destroy"!=b)&&(e||d.data("bs.tooltip",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.type=this.options=this.enabled=this.timeout=this.hoverState=this.$element=null,this.init("tooltip",a,b)};c.VERSION="3.2.0",c.DEFAULTS={animation:!0,placement:"top",selector:!1,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0}},c.prototype.init=function(b,c,d){this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d),this.$viewport=this.options.viewport&&a(this.options.viewport.selector||this.options.viewport);for(var e=this.options.trigger.split(" "),f=e.length;f--;){var g=e[f];if("click"==g)this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this));else if("manual"!=g){var h="hover"==g?"mouseenter":"focusin",i="hover"==g?"mouseleave":"focusout";this.$element.on(h+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+"."+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.getOptions=function(b){return b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),b},c.prototype.getDelegateOptions=function(){var b={},c=this.getDefaults();return this._options&&a.each(this._options,function(a,d){c[a]!=d&&(b[a]=d)}),b},c.prototype.enter=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),clearTimeout(c.timeout),c.hoverState="in",c.options.delay&&c.options.delay.show?void(c.timeout=setTimeout(function(){"in"==c.hoverState&&c.show()},c.options.delay.show)):c.show()},c.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),clearTimeout(c.timeout),c.hoverState="out",c.options.delay&&c.options.delay.hide?void(c.timeout=setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide)):c.hide()},c.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(b);var c=a.contains(document.documentElement,this.$element[0]);if(b.isDefaultPrevented()||!c)return;var d=this,e=this.tip(),f=this.getUID(this.type);this.setContent(),e.attr("id",f),this.$element.attr("aria-describedby",f),this.options.animation&&e.addClass("fade");var g="function"==typeof this.options.placement?this.options.placement.call(this,e[0],this.$element[0]):this.options.placement,h=/\s?auto?\s?/i,i=h.test(g);i&&(g=g.replace(h,"")||"top"),e.detach().css({top:0,left:0,display:"block"}).addClass(g).data("bs."+this.type,this),this.options.container?e.appendTo(this.options.container):e.insertAfter(this.$element);var j=this.getPosition(),k=e[0].offsetWidth,l=e[0].offsetHeight;if(i){var m=g,n=this.$element.parent(),o=this.getPosition(n);g="bottom"==g&&j.top+j.height+l-o.scroll>o.height?"top":"top"==g&&j.top-o.scroll-l<0?"bottom":"right"==g&&j.right+k>o.width?"left":"left"==g&&j.left-k<o.left?"right":g,e.removeClass(m).addClass(g)}var p=this.getCalculatedOffset(g,j,k,l);this.applyPlacement(p,g);var q=function(){d.$element.trigger("shown.bs."+d.type),d.hoverState=null};a.support.transition&&this.$tip.hasClass("fade")?e.one("bsTransitionEnd",q).emulateTransitionEnd(150):q()}},c.prototype.applyPlacement=function(b,c){var d=this.tip(),e=d[0].offsetWidth,f=d[0].offsetHeight,g=parseInt(d.css("margin-top"),10),h=parseInt(d.css("margin-left"),10);isNaN(g)&&(g=0),isNaN(h)&&(h=0),b.top=b.top+g,b.left=b.left+h,a.offset.setOffset(d[0],a.extend({using:function(a){d.css({top:Math.round(a.top),left:Math.round(a.left)})}},b),0),d.addClass("in");var i=d[0].offsetWidth,j=d[0].offsetHeight;"top"==c&&j!=f&&(b.top=b.top+f-j);var k=this.getViewportAdjustedDelta(c,b,i,j);k.left?b.left+=k.left:b.top+=k.top;var l=k.left?2*k.left-e+i:2*k.top-f+j,m=k.left?"left":"top",n=k.left?"offsetWidth":"offsetHeight";d.offset(b),this.replaceArrow(l,d[0][n],m)},c.prototype.replaceArrow=function(a,b,c){this.arrow().css(c,a?50*(1-a/b)+"%":"")},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle();a.find(".tooltip-inner")[this.options.html?"html":"text"](b),a.removeClass("fade in top bottom left right")},c.prototype.hide=function(){function b(){"in"!=c.hoverState&&d.detach(),c.$element.trigger("hidden.bs."+c.type)}var c=this,d=this.tip(),e=a.Event("hide.bs."+this.type);return this.$element.removeAttr("aria-describedby"),this.$element.trigger(e),e.isDefaultPrevented()?void 0:(d.removeClass("in"),a.support.transition&&this.$tip.hasClass("fade")?d.one("bsTransitionEnd",b).emulateTransitionEnd(150):b(),this.hoverState=null,this)},c.prototype.fixTitle=function(){var a=this.$element;(a.attr("title")||"string"!=typeof a.attr("data-original-title"))&&a.attr("data-original-title",a.attr("title")||"").attr("title","")},c.prototype.hasContent=function(){return this.getTitle()},c.prototype.getPosition=function(b){b=b||this.$element;var c=b[0],d="BODY"==c.tagName;return a.extend({},"function"==typeof c.getBoundingClientRect?c.getBoundingClientRect():null,{scroll:d?document.documentElement.scrollTop||document.body.scrollTop:b.scrollTop(),width:d?a(window).width():b.outerWidth(),height:d?a(window).height():b.outerHeight()},d?{top:0,left:0}:b.offset())},c.prototype.getCalculatedOffset=function(a,b,c,d){return"bottom"==a?{top:b.top+b.height,left:b.left+b.width/2-c/2}:"top"==a?{top:b.top-d,left:b.left+b.width/2-c/2}:"left"==a?{top:b.top+b.height/2-d/2,left:b.left-c}:{top:b.top+b.height/2-d/2,left:b.left+b.width}},c.prototype.getViewportAdjustedDelta=function(a,b,c,d){var e={top:0,left:0};if(!this.$viewport)return e;var f=this.options.viewport&&this.options.viewport.padding||0,g=this.getPosition(this.$viewport);if(/right|left/.test(a)){var h=b.top-f-g.scroll,i=b.top+f-g.scroll+d;h<g.top?e.top=g.top-h:i>g.top+g.height&&(e.top=g.top+g.height-i)}else{var j=b.left-f,k=b.left+f+c;j<g.left?e.left=g.left-j:k>g.width&&(e.left=g.left+g.width-k)}return e},c.prototype.getTitle=function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||("function"==typeof c.title?c.title.call(b[0]):c.title)},c.prototype.getUID=function(a){do a+=~~(1e6*Math.random());while(document.getElementById(a));return a},c.prototype.tip=function(){return this.$tip=this.$tip||a(this.options.template)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},c.prototype.validate=function(){this.$element[0].parentNode||(this.hide(),this.$element=null,this.options=null)},c.prototype.enable=function(){this.enabled=!0},c.prototype.disable=function(){this.enabled=!1},c.prototype.toggleEnabled=function(){this.enabled=!this.enabled},c.prototype.toggle=function(b){var c=this;b&&(c=a(b.currentTarget).data("bs."+this.type),c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c))),c.tip().hasClass("in")?c.leave(c):c.enter(c)},c.prototype.destroy=function(){clearTimeout(this.timeout),this.hide().$element.off("."+this.type).removeData("bs."+this.type)};var d=a.fn.tooltip;a.fn.tooltip=b,a.fn.tooltip.Constructor=c,a.fn.tooltip.noConflict=function(){return a.fn.tooltip=d,this}}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof b&&b;(e||"destroy"!=b)&&(e||d.data("bs.popover",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.init("popover",a,b)};if(!a.fn.tooltip)throw new Error("Popover requires tooltip.js");c.VERSION="3.2.0",c.DEFAULTS=a.extend({},a.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'}),c.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),c.prototype.constructor=c,c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content").empty()[this.options.html?"string"==typeof c?"html":"append":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},c.prototype.hasContent=function(){return this.getTitle()||this.getContent()},c.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")},c.prototype.tip=function(){return this.$tip||(this.$tip=a(this.options.template)),this.$tip};var d=a.fn.popover;a.fn.popover=b,a.fn.popover.Constructor=c,a.fn.popover.noConflict=function(){return a.fn.popover=d,this}}(jQuery),+function(a){"use strict";function b(c,d){var e=a.proxy(this.process,this);this.$body=a("body"),this.$scrollElement=a(a(c).is("body")?window:c),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",e),this.refresh(),this.process()}function c(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})}b.VERSION="3.2.0",b.DEFAULTS={offset:10},b.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},b.prototype.refresh=function(){var b="offset",c=0;a.isWindow(this.$scrollElement[0])||(b="position",c=this.$scrollElement.scrollTop()),this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight();var d=this;this.$body.find(this.selector).map(function(){var d=a(this),e=d.data("target")||d.attr("href"),f=/^#./.test(e)&&a(e);return f&&f.length&&f.is(":visible")&&[[f[b]().top+c,e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){d.offsets.push(this[0]),d.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.getScrollHeight(),d=this.options.offset+c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(this.scrollHeight!=c&&this.refresh(),b>=d)return g!=(a=f[f.length-1])&&this.activate(a);if(g&&b<=e[0])return g!=(a=f[0])&&this.activate(a);for(a=e.length;a--;)g!=f[a]&&b>=e[a]&&(!e[a+1]||b<=e[a+1])&&this.activate(f[a])},b.prototype.activate=function(b){this.activeTarget=b,a(this.selector).parentsUntil(this.options.target,".active").removeClass("active");var c=this.selector+'[data-target="'+b+'"],'+this.selector+'[href="'+b+'"]',d=a(c).parents("li").addClass("active");d.parent(".dropdown-menu").length&&(d=d.closest("li.dropdown").addClass("active")),d.trigger("activate.bs.scrollspy")};var d=a.fn.scrollspy;a.fn.scrollspy=c,a.fn.scrollspy.Constructor=b,a.fn.scrollspy.noConflict=function(){return a.fn.scrollspy=d,this},a(window).on("load.bs.scrollspy.data-api",function(){a('[data-spy="scroll"]').each(function(){var b=a(this);c.call(b,b.data())})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tab");e||d.data("bs.tab",e=new c(this)),"string"==typeof b&&e[b]()})}var c=function(b){this.element=a(b)};c.VERSION="3.2.0",c.prototype.show=function(){var b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.data("target");if(d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,"")),!b.parent("li").hasClass("active")){var e=c.find(".active:last a")[0],f=a.Event("show.bs.tab",{relatedTarget:e});if(b.trigger(f),!f.isDefaultPrevented()){var g=a(d);this.activate(b.closest("li"),c),this.activate(g,g.parent(),function(){b.trigger({type:"shown.bs.tab",relatedTarget:e})})}}},c.prototype.activate=function(b,c,d){function e(){f.removeClass("active").find("> .dropdown-menu > .active").removeClass("active"),b.addClass("active"),g?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu")&&b.closest("li.dropdown").addClass("active"),d&&d()}var f=c.find("> .active"),g=d&&a.support.transition&&f.hasClass("fade");g?f.one("bsTransitionEnd",e).emulateTransitionEnd(150):e(),f.removeClass("in")};var d=a.fn.tab;a.fn.tab=b,a.fn.tab.Constructor=c,a.fn.tab.noConflict=function(){return a.fn.tab=d,this},a(document).on("click.bs.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"]',function(c){c.preventDefault(),b.call(a(this),"show")})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof b&&b;e||d.data("bs.affix",e=new c(this,f)),"string"==typeof b&&e[b]()})}var c=function(b,d){this.options=a.extend({},c.DEFAULTS,d),this.$target=a(this.options.target).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(b),this.affixed=this.unpin=this.pinnedOffset=null,this.checkPosition()};c.VERSION="3.2.0",c.RESET="affix affix-top affix-bottom",c.DEFAULTS={offset:0,target:window},c.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(c.RESET).addClass("affix");var a=this.$target.scrollTop(),b=this.$element.offset();return this.pinnedOffset=b.top-a},c.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},c.prototype.checkPosition=function(){if(this.$element.is(":visible")){var b=a(document).height(),d=this.$target.scrollTop(),e=this.$element.offset(),f=this.options.offset,g=f.top,h=f.bottom;"object"!=typeof f&&(h=g=f),"function"==typeof g&&(g=f.top(this.$element)),"function"==typeof h&&(h=f.bottom(this.$element));var i=null!=this.unpin&&d+this.unpin<=e.top?!1:null!=h&&e.top+this.$element.height()>=b-h?"bottom":null!=g&&g>=d?"top":!1;if(this.affixed!==i){null!=this.unpin&&this.$element.css("top","");var j="affix"+(i?"-"+i:""),k=a.Event(j+".bs.affix");this.$element.trigger(k),k.isDefaultPrevented()||(this.affixed=i,this.unpin="bottom"==i?this.getPinnedOffset():null,this.$element.removeClass(c.RESET).addClass(j).trigger(a.Event(j.replace("affix","affixed"))),"bottom"==i&&this.$element.offset({top:b-this.$element.height()-h}))}}};var d=a.fn.affix;a.fn.affix=b,a.fn.affix.Constructor=c,a.fn.affix.noConflict=function(){return a.fn.affix=d,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var c=a(this),d=c.data();d.offset=d.offset||{},d.offsetBottom&&(d.offset.bottom=d.offsetBottom),d.offsetTop&&(d.offset.top=d.offsetTop),b.call(c,d)})})}(jQuery);
!(function($){
function UTCDate(){
return new Date(Date.UTC.apply(Date, arguments));
}
function UTCToday(){
var today=new Date();
return UTCDate(
today.getUTCFullYear(),
today.getUTCMonth(),
today.getUTCDate(),
today.getUTCHours(),
today.getUTCMinutes(),
today.getUTCSeconds(),
0
);
}
var Datetimepicker=function(element, options){
var that=this;
this.element=$(element);
this.container=options.container||"body";
this.language =
options.language||this.element.data("locale")||"en";
this.language=this.language in dates ? this.language:"en";
this.isRTL=dates[this.language].rtl||false;
this.formatType =
options.formatType ||
this.element.data("format-type") ||
"standard";
this.format=DPGlobal.parseFormat(options.format ||
this.element.data("date-format") ||
dates[this.language].format ||
DPGlobal.getDefaultFormat(this.formatType, "input"),
this.formatType
);
this.isInline=false;
this.isVisible=false;
this.isInput=this.element.is("input");
this.bootcssVer=3; //this.isInput ? (this.element.is('.form-control') ? 3:2):(this.bootcssVer=this.element.is('.input-group') ? 3:2);
this.component=this.element.is(".date")
? this.bootcssVer==3
? this.element
.find(".input-group-addon .glyphicon-th, .input-group-addon .glyphicon-time, .input-group-addon .glyphicon-calendar"
)
.parent()
: this.element
.find(".add-on .icon-th, .add-on .icon-time, .add-on .icon-calendar"
)
.parent()
: false;
this.componentReset=this.element.is(".date")
? this.bootcssVer==3
? this.element
.find(".input-group-addon .glyphicon-remove")
.parent()
: this.element.find(".add-on .icon-remove").parent()
: false;
this.hasInput=this.component&&this.element.find("input").length;
if(this.component&&this.component.length===0){
this.component=false;
}
this.linkField =
options.linkField||this.element.data("link-field")||false;
this.linkFormat=DPGlobal.parseFormat(options.linkFormat ||
this.element.data("link-format") ||
DPGlobal.getDefaultFormat(this.formatType, "link"),
this.formatType
);
this.minuteStep =
parseInt(options.minuteStep)||this.element.data("minute-step")||5;
this.pickerPosition =
options.pickerPosition ||
this.element.data("picker-position") ||
"bottom-right";
this.showMeridian =
options.showMeridian||this.element.data("show-meridian")||false;
this.initialDate=options.initialDate||new Date();
this._attachEvents();
this.formatViewType="datetime";
if("formatViewType" in options){
this.formatViewType=options.formatViewType;
}else if("formatViewType" in this.element.data()){
this.formatViewType=this.element.data("formatViewType");
}
this.minView=0;
if("minView" in options){
this.minView=options.minView;
}else if("minView" in this.element.data()){
this.minView=this.element.data("min-view");
}
this.minView=DPGlobal.convertViewMode(this.minView);
this.maxView=DPGlobal.modes.length - 1;
if("maxView" in options){
this.maxView=options.maxView;
}else if("maxView" in this.element.data()){
this.maxView=this.element.data("max-view");
}
this.maxView=DPGlobal.convertViewMode(this.maxView);
this.wheelViewModeNavigation=false;
if("wheelViewModeNavigation" in options){
this.wheelViewModeNavigation=options.wheelViewModeNavigation;
}else if("wheelViewModeNavigation" in this.element.data()){
this.wheelViewModeNavigation=this.element.data("view-mode-wheel-navigation"
);
}
this.wheelViewModeNavigationInverseDirection=false;
if("wheelViewModeNavigationInverseDirection" in options){
this.wheelViewModeNavigationInverseDirection =
options.wheelViewModeNavigationInverseDirection;
}else if("wheelViewModeNavigationInverseDirection" in this.element.data()
){
this.wheelViewModeNavigationInverseDirection=this.element.data("view-mode-wheel-navigation-inverse-dir"
);
}
this.wheelViewModeNavigationDelay=100;
if("wheelViewModeNavigationDelay" in options){
this.wheelViewModeNavigationDelay =
options.wheelViewModeNavigationDelay;
}else if("wheelViewModeNavigationDelay" in this.element.data()){
this.wheelViewModeNavigationDelay=this.element.data("view-mode-wheel-navigation-delay"
);
}
this.startViewMode=2;
if("startView" in options){
this.startViewMode=options.startView;
}else if("startView" in this.element.data()){
this.startViewMode=this.element.data("start-view");
}
this.startViewMode=DPGlobal.convertViewMode(this.startViewMode);
this.viewMode=this.startViewMode;
this.viewSelect=this.minView;
if("viewSelect" in options){
this.viewSelect=options.viewSelect;
}else if("viewSelect" in this.element.data()){
this.viewSelect=this.element.data("view-select");
}
this.viewSelect=DPGlobal.convertViewMode(this.viewSelect);
this.forceParse=true;
if("forceParse" in options){
this.forceParse=options.forceParse;
}else if("dateForceParse" in this.element.data()){
this.forceParse=this.element.data("date-force-parse");
}
this.picker=$(
this.bootcssVer==3 ? DPGlobal.templateV3:DPGlobal.template
)
.appendTo(this.isInline ? this.element:this.container) // 'body')
.on({
click: $.proxy(this.click, this),
mousedown: $.proxy(this.mousedown, this),
});
if(this.wheelViewModeNavigation){
if($.fn.mousewheel){
this.picker.on({ mousewheel: $.proxy(this.mousewheel, this) });
}else{
console.log("Mouse Wheel event is not supported. Please include the jQuery Mouse Wheel plugin before enabling this option"
);
}}
if(this.isInline){
this.picker.addClass("datetimepicker-inline");
}else{
this.picker.addClass("datetimepicker-dropdown-" +
this.pickerPosition +
" dropdown-menu"
);
}
if(this.isRTL){
this.picker.addClass("datetimepicker-rtl");
if(this.bootcssVer==3){
this.picker
.find(".prev span, .next span")
.toggleClass("glyphicon-arrow-left glyphicon-arrow-right");
}else{
this.picker
.find(".prev i, .next i")
.toggleClass("icon-arrow-left icon-arrow-right");
}}
$(document).on("mousedown", function(e){
if($(e.target).closest(".datetimepicker").length===0){
that.hide();
}});
this.autoclose=false;
if("autoclose" in options){
this.autoclose=options.autoclose;
}else if("dateAutoclose" in this.element.data()){
this.autoclose=this.element.data("date-autoclose");
}
this.keyboardNavigation=true;
if("keyboardNavigation" in options){
this.keyboardNavigation=options.keyboardNavigation;
}else if("dateKeyboardNavigation" in this.element.data()){
this.keyboardNavigation=this.element.data("date-keyboard-navigation"
);
}
this.todayBtn =
options.todayBtn||this.element.data("date-today-btn")||false;
this.todayHighlight =
options.todayHighlight ||
this.element.data("date-today-highlight") ||
false;
this.weekStart =
(options.weekStart ||
this.element.data("date-weekstart") ||
dates[this.language].weekStart ||
0) % 7;
this.weekEnd=(this.weekStart + 6) % 7;
this.startDate=-Infinity;
this.endDate=Infinity;
this.daysOfWeekDisabled=[];
this.setStartDate(options.startDate||this.element.data("date-startdate")
);
this.setEndDate(options.endDate||this.element.data("date-enddate"));
this.setDaysOfWeekDisabled(options.daysOfWeekDisabled ||
this.element.data("date-days-of-week-disabled")
);
this.fillDow();
this.fillMonths();
this.update();
this.showMode();
if(this.isInline){
this.show();
}};
Datetimepicker.prototype={
constructor: Datetimepicker,
_events: [],
_attachEvents: function(){
this._detachEvents();
if(this.isInput){
this._events=[
[
this.element,
{
focus: $.proxy(this.show, this),
keyup: $.proxy(this.update, this),
keydown: $.proxy(this.keydown, this),
},
],
];
}else if(this.component&&this.hasInput){
this._events=[
[
this.element.find("input"),
{
focus: $.proxy(this.show, this),
keyup: $.proxy(this.update, this),
keydown: $.proxy(this.keydown, this),
},
],
[
this.component,
{
click: $.proxy(this.show, this),
},
],
];
if(this.componentReset){
this._events.push([
this.componentReset,
{ click: $.proxy(this.reset, this) },
]);
}}else if(this.element.is("div")){
this.isInline=true;
}else{
this._events=[
[
this.element,
{
click: $.proxy(this.show, this),
},
],
];
}
for (var i=0, el, ev; i < this._events.length; i++){
el=this._events[i][0];
ev=this._events[i][1];
el.on(ev);
}},
_detachEvents: function(){
for (var i=0, el, ev; i < this._events.length; i++){
el=this._events[i][0];
ev=this._events[i][1];
el.off(ev);
}
this._events=[];
},
show: function(e){
this.picker.show();
this.height=this.component
? this.component.outerHeight()
: this.element.outerHeight();
if(this.forceParse){
this.update();
}
this.place();
$(window).on("resize", $.proxy(this.place, this));
if(e){
e.stopPropagation();
e.preventDefault();
}
this.isVisible=true;
this.element.trigger({
type: "show",
date: this.date,
});
},
hide: function(e){
if(!this.isVisible) return;
if(this.isInline) return;
this.picker.hide();
$(window).off("resize", this.place);
this.viewMode=this.startViewMode;
this.showMode();
if(!this.isInput){
$(document).off("mousedown", this.hide);
}
this.isVisible=false;
this.element.trigger({
type: "hide",
date: this.date,
});
},
remove: function(){
this._detachEvents();
this.picker.remove();
delete this.picker;
delete this.element.data().datetimepicker;
},
getDate: function(){
var d=this.getUTCDate();
return new Date(d.getTime() + d.getTimezoneOffset() * 60000);
},
getUTCDate: function(){
return this.date;
},
setDate: function(d){
this.setUTCDate(new Date(d.getTime() - d.getTimezoneOffset() * 60000)
);
},
setUTCDate: function(d){
if(d >=this.startDate&&d <=this.endDate){
this.date=d;
this.setValue();
this.viewDate=this.date;
this.fill();
}else{
this.element.trigger({
type: "outOfRange",
date: d,
startDate: this.startDate,
endDate: this.endDate,
});
}},
setFormat: function(format){
this.format=DPGlobal.parseFormat(format, this.formatType);
var element;
if(this.isInput){
element=this.element;
}else if(this.component){
element=this.element.find("input");
}
if(element&&element.val()){
this.setValue();
}},
setValue: function(){
var formatted=this.getFormattedDate();
if(!this.isInput){
if(this.component){
this.element.find("input").val(formatted);
}
this.element.data("date", formatted);
}else{
this.element.val(formatted);
}
if(this.linkField){
$("#" + this.linkField).val(this.getFormattedDate(this.linkFormat)
);
}},
getFormattedDate: function(format){
if(format==undefined) format=this.format;
return DPGlobal.formatDate(this.date,
format,
this.language,
this.formatType
);
},
setStartDate: function(startDate){
this.startDate=startDate||-Infinity;
if(this.startDate!==-Infinity){
this.startDate=DPGlobal.parseDate(this.startDate,
this.format,
this.language,
this.formatType
);
}
this.update();
this.updateNavArrows();
},
setEndDate: function(endDate){
this.endDate=endDate||Infinity;
if(this.endDate!==Infinity){
this.endDate=DPGlobal.parseDate(this.endDate,
this.format,
this.language,
this.formatType
);
}
this.update();
this.updateNavArrows();
},
setDaysOfWeekDisabled: function(daysOfWeekDisabled){
this.daysOfWeekDisabled=daysOfWeekDisabled||[];
if(!Array.isArray(this.daysOfWeekDisabled)){
this.daysOfWeekDisabled=this.daysOfWeekDisabled.split(/,\s*/);
}
this.daysOfWeekDisabled=$.map(this.daysOfWeekDisabled, function(
d
){
return parseInt(d, 10);
});
this.update();
this.updateNavArrows();
},
place: function(){
if(this.isInline) return;
var index_highest=0;
$("div").each(function(){
var index_current=parseInt($(this).css("zIndex"), 10);
if(index_current > index_highest){
index_highest=index_current;
}});
var zIndex=index_highest + 10;
var offset, top, left, containerOffset;
if(this.container instanceof $){
containerOffset=this.container.offset();
}else{
containerOffset=$(this.container).offset();
}
if(this.component){
offset=this.component.offset();
left=offset.left;
if(this.pickerPosition=="bottom-left" ||
this.pickerPosition=="top-left"
){
left +=
this.component.outerWidth() - this.picker.outerWidth();
}}else{
offset=this.element.offset();
left=offset.left;
}
if(left + 220 > document.body.clientWidth){
left=document.body.clientWidth - 220;
}
if(this.pickerPosition=="top-left" ||
this.pickerPosition=="top-right"
){
top=offset.top - this.picker.outerHeight();
}else{
top=offset.top + this.height;
}
top=top - containerOffset.top;
left=left - containerOffset.left;
width="24em";
this.picker.css({
top: top,
left: left,
zIndex: zIndex,
});
this.element.trigger({
type: "place",
date: this.date,
});
},
update: function(){
var date,
fromArgs=false;
if(arguments &&
arguments.length &&
(typeof arguments[0]==="string" ||
arguments[0] instanceof Date)
){
date=arguments[0];
fromArgs=true;
}else{
date =
(this.isInput
? this.element.val()
: this.element.find("input").val()) ||
this.element.data("date") ||
this.initialDate;
if(typeof date=="string"||date instanceof String){
date=date.replace(/^\s+|\s+$/g, "");
}}
if(!date){
date=new Date();
fromArgs=false;
}
this.date=DPGlobal.parseDate(date,
this.format,
this.language,
this.formatType
);
if(fromArgs) this.setValue();
if(this.date < this.startDate){
this.viewDate=new Date(this.startDate);
}else if(this.date > this.endDate){
this.viewDate=new Date(this.endDate);
}else{
this.viewDate=new Date(this.date);
}
this.fill();
},
fillDow: function(){
var dowCnt=this.weekStart,
html="<tr>";
while (dowCnt < this.weekStart + 7){
html +=
'<th class="dow">' +
dates[this.language].daysMin[dowCnt++ % 7] +
"</th>";
}
html +="</tr>";
this.picker.find(".datetimepicker-days thead").append(html);
},
fillMonths: function(){
var html="",
i=0;
while (i < 12){
html +=
'<span class="month">' +
dates[this.language].monthsShort[i++] +
"</span>";
}
this.picker.find(".datetimepicker-months td").html(html);
},
fill: function(){
if(this.date==null||this.viewDate==null){
return;
}
var d=new Date(this.viewDate),
year=d.getUTCFullYear(),
month=d.getUTCMonth(),
dayMonth=d.getUTCDate(),
hours=d.getUTCHours(),
minutes=d.getUTCMinutes(),
startYear =
this.startDate!==-Infinity
? this.startDate.getUTCFullYear()
: -Infinity,
startMonth =
this.startDate!==-Infinity
? this.startDate.getUTCMonth()
: -Infinity,
endYear =
this.endDate!==Infinity
? this.endDate.getUTCFullYear()
: Infinity,
endMonth =
this.endDate!==Infinity
? this.endDate.getUTCMonth()
: Infinity,
currentDate=new UTCDate(
this.date.getUTCFullYear(),
this.date.getUTCMonth(),
this.date.getUTCDate()
).valueOf(),
today=new Date();
this.fillHead(dates, year, month, dayMonth, hours, minutes);
this.picker
.find("tfoot th.today")
.text(dates[this.language].today)
.toggle(this.todayBtn!==false);
this.updateNavArrows();
this.fillMonths();
var prevMonth=UTCDate(year, month - 1, 28, 0, 0, 0, 0),
day=DPGlobal.getDaysInMonth(prevMonth.getUTCFullYear(),
prevMonth.getUTCMonth()
);
prevMonth.setUTCDate(day);
prevMonth.setUTCDate(day - ((prevMonth.getUTCDay() - this.weekStart + 7) % 7)
);
var nextMonth=new Date(prevMonth);
nextMonth.setUTCDate(nextMonth.getUTCDate() + 42);
nextMonth=nextMonth.valueOf();
var html=[];
var clsName;
while (prevMonth.valueOf() < nextMonth){
if(prevMonth.getUTCDay()==this.weekStart){
html.push("<tr>");
}
clsName="";
if(prevMonth.getUTCFullYear() < year ||
(prevMonth.getUTCFullYear()==year &&
prevMonth.getUTCMonth() < month)
){
clsName +=" old";
}else if(prevMonth.getUTCFullYear() > year ||
(prevMonth.getUTCFullYear()==year &&
prevMonth.getUTCMonth() > month)
){
clsName +=" new";
}
if(this.todayHighlight &&
prevMonth.getUTCFullYear()==today.getFullYear() &&
prevMonth.getUTCMonth()==today.getMonth() &&
prevMonth.getUTCDate()==today.getDate()
){
clsName +=" today";
}
if(prevMonth.valueOf()==currentDate){
clsName +=" active";
}
if(prevMonth.valueOf() + 86400000 <=this.startDate ||
prevMonth.valueOf() > this.endDate ||
$.inArray(prevMonth.getUTCDay(),
this.daysOfWeekDisabled
)!==-1
){
clsName +=" disabled";
}
if(prevMonth.getUTCMonth()!=d.getUTCMonth()){
html.push("<td></td>");
}else{
var ymdm=prevMonth.getUTCMonth() + 1;
var ymd =
prevMonth.getUTCFullYear() +
"-" +
(parseInt(ymdm) < 10 ? "0":"") +
ymdm +
"-" +
(parseInt(prevMonth.getUTCDate()) < 10 ? "0":"") +
prevMonth.getUTCDate();
html.push('<td data-ymd="' +
ymd +
'" class="day ' +
clsName +
'"><div class="num">' +
prevMonth.getUTCDate() +
'</div><div class="numbg"></div></td>'
);
}
if(prevMonth.getUTCDay()==this.weekEnd){
html.push("</tr>");
}
prevMonth.setUTCDate(prevMonth.getUTCDate() + 1);
}
this.picker
.find(".datetimepicker-days tbody")
.empty()
.append(html.join(""));
this.fillTime(dates, year, month, dayMonth, hours, minutes);
var currentYear=this.date.getUTCFullYear();
var months=this.picker
.find(".datetimepicker-months")
.find("th:eq(1)")
.text(year)
.end()
.find("span")
.removeClass("active");
if(currentYear==year){
months.eq(this.date.getUTCMonth()).addClass("active");
}
if(year < startYear||year > endYear){
months.addClass("disabled");
}
if(year==startYear){
months.slice(0, startMonth).addClass("disabled");
}
if(year==endYear){
months.slice(endMonth + 1).addClass("disabled");
}
html="";
year=parseInt(year / 10, 10) * 10;
var yearCont=this.picker
.find(".datetimepicker-years")
.find("th:eq(1)")
.text(year + "-" + (year + 9))
.end()
.find("td");
year -=1;
for (var i=-1; i < 11; i++){
html +=
'<span class="year' +
(i==-1||i==10 ? " old":"") +
(currentYear==year ? " active":"") +
(year < startYear||year > endYear ? " disabled":"") +
'">' +
year +
"</span>";
year +=1;
}
yearCont.html(html);
this.place();
},
fillHead: function(dates, year, month, dayMonth, hours, minutes){
this.picker
.find(".datetimepicker-days thead th:eq(1)")
.text(dates[this.language].months[month] + " " + year);
if(this.formatViewType=="time"){
var hourConverted=hours % 12 ? hours % 12:12;
var hoursDisplay =
(hourConverted < 10 ? "0":"") + hourConverted;
var minutesDisplay=(minutes < 10 ? "0":"") + minutes;
var meridianDisplay =
dates[this.language].meridiem[hours < 12 ? 0:1];
this.picker
.find(".datetimepicker-minutes thead th:eq(1)")
.text(hoursDisplay +
":" +
minutesDisplay +
" " +
(meridianDisplay
? meridianDisplay.toUpperCase()
: "")
);
}else{
this.picker
.find(".datetimepicker-minutes thead th:eq(1)")
.text(dayMonth +
" " +
dates[this.language].months[month] +
" " +
year
);
}},
fillTime: function(dates, year, month, dayMonth, hours, minutes){
var html=[];
var txt="",
meridian="",
meridianOld="", clsName="";
for (var hoursIter=0; hoursIter < 24; hoursIter++){
for(let minuteIter=0; minuteIter < 60; minuteIter +=this.minuteStep){
var actual=UTCDate(year, month, dayMonth, hoursIter, minuteIter, 0);
clsName="";
if(actual.valueOf() < this.startDate ||
actual.valueOf() > this.endDate
){
clsName +=" disabled";
}
if(this.showMeridian &&
dates[this.language].meridiem.length==2
){
meridian =
hoursIter < 12
? dates[this.language].meridiem[0]
: dates[this.language].meridiem[1];
if(meridian!=meridianOld){
if(meridianOld!=""){
html.push("</fieldset>");
}
html.push('<fieldset class="minute"><legend>' +
meridian.toUpperCase() +
"</legend>"
);
}
meridianOld=meridian;
txt=(hoursIter % 12 ? hoursIter % 12:12) + ':' + (minuteIter < 10 ? "0" + minuteIter:minuteIter);
var ymd=(hoursIter < 10 ? "0" + hoursIter:hoursIter) + ':' + (minuteIter < 10 ? "0" + minuteIter:minuteIter);
html.push('<span data-ymd="' +
ymd +
'" class="minute' +
clsName +
" hour_" +
(hoursIter < 12 ? "am":"pm") +
'">' +
txt +
"</span>"
);
if(hoursIter==23){
html.push("</fieldset>");
}}else{
txt=hoursIter + ":" + (minuteIter < 10 ? "0" + minuteIter:minuteIter);
var ymd=hoursIter < 10 ? "0" + txt:txt;
html.push('<span data-ymd="' +
ymd +
'" class="minute' +
clsName +
'">' +
txt +
"</span>"
);
}}
}
this.picker.find(".datetimepicker-minutes td").html(html.join(""));
},
updateNavArrows: function(){
var d=new Date(this.viewDate),
year=d.getUTCFullYear(),
month=d.getUTCMonth(),
day=d.getUTCDate(),
hour=d.getUTCHours();
switch (this.viewMode){
case 0:
if(this.startDate!==-Infinity &&
year <=this.startDate.getUTCFullYear() &&
month <=this.startDate.getUTCMonth() &&
day <=this.startDate.getUTCDate() &&
hour <=this.startDate.getUTCHours()
){
this.picker.find(".prev").css({ visibility: "hidden" });
}else{
this.picker
.find(".prev")
.css({ visibility: "visible" });
}
if(this.endDate!==Infinity &&
year >=this.endDate.getUTCFullYear() &&
month >=this.endDate.getUTCMonth() &&
day >=this.endDate.getUTCDate() &&
hour >=this.endDate.getUTCHours()
){
this.picker.find(".next").css({ visibility: "hidden" });
}else{
this.picker
.find(".next")
.css({ visibility: "visible" });
}
break;
case 1:
if(this.startDate!==-Infinity &&
year <=this.startDate.getUTCFullYear() &&
month <=this.startDate.getUTCMonth() &&
day <=this.startDate.getUTCDate()
){
this.picker.find(".prev").css({ visibility: "hidden" });
}else{
this.picker
.find(".prev")
.css({ visibility: "visible" });
}
if(this.endDate!==Infinity &&
year >=this.endDate.getUTCFullYear() &&
month >=this.endDate.getUTCMonth() &&
day >=this.endDate.getUTCDate()
){
this.picker.find(".next").css({ visibility: "hidden" });
}else{
this.picker
.find(".next")
.css({ visibility: "visible" });
}
break;
case 2:
if(this.startDate!==-Infinity &&
year <=this.startDate.getUTCFullYear() &&
month <=this.startDate.getUTCMonth()
){
this.picker.find(".prev").css({ visibility: "hidden" });
}else{
this.picker
.find(".prev")
.css({ visibility: "visible" });
}
if(this.endDate!==Infinity &&
year >=this.endDate.getUTCFullYear() &&
month >=this.endDate.getUTCMonth()
){
this.picker.find(".next").css({ visibility: "hidden" });
}else{
this.picker
.find(".next")
.css({ visibility: "visible" });
}
break;
case 3:
case 4:
if(this.startDate!==-Infinity &&
year <=this.startDate.getUTCFullYear()
){
this.picker.find(".prev").css({ visibility: "hidden" });
}else{
this.picker
.find(".prev")
.css({ visibility: "visible" });
}
if(this.endDate!==Infinity &&
year >=this.endDate.getUTCFullYear()
){
this.picker.find(".next").css({ visibility: "hidden" });
}else{
this.picker
.find(".next")
.css({ visibility: "visible" });
}
break;
}},
mousewheel: function(e){
e.preventDefault();
e.stopPropagation();
if(this.wheelPause){
return;
}
this.wheelPause=true;
var originalEvent=e.originalEvent;
var delta=originalEvent.wheelDelta;
var mode=delta > 0 ? 1:delta===0 ? 0:-1;
if(this.wheelViewModeNavigationInverseDirection){
mode=-mode;
}
this.showMode(mode);
setTimeout(
$.proxy(function(){
this.wheelPause=false;
}, this),
this.wheelViewModeNavigationDelay
);
},
click: function(e){
e.stopPropagation();
e.preventDefault();
var target=$(e.target).closest("span, td, th, legend");
if(target.length==1){
if(target.is(".disabled")){
this.element.trigger({
type: "outOfRange",
date: this.viewDate,
startDate: this.startDate,
endDate: this.endDate,
});
return;
}
switch (target[0].nodeName.toLowerCase()){
case "th":
switch (target[0].className){
case "switch":
this.showMode(1);
break;
case "prev":
case "next":
var dir =
DPGlobal.modes[this.viewMode].navStep *
(target[0].className=="prev" ? -1:1);
switch (this.viewMode){
case 0:
this.viewDate=this.moveMinute(this.viewDate,
dir
);
break;
case 1:
this.viewDate=this.moveDate(this.viewDate,
dir
);
break;
case 2:
this.viewDate=this.moveMonth(this.viewDate,
dir
);
break;
case 3:
case 4:
this.viewDate=this.moveYear(this.viewDate,
dir
);
break;
}
this.fill();
break;
case "today":
var date=new Date();
date=UTCDate(
date.getFullYear(),
date.getMonth(),
date.getDate(),
date.getHours(),
date.getMinutes(),
date.getSeconds(),
0
);
if(date < this.startDate)
date=this.startDate;
else if(date > this.endDate)
date=this.endDate;
this.viewMode=this.startViewMode;
this.showMode(0);
this._setDate(date);
this.fill();
if(this.autoclose){
this.hide();
}
break;
}
break;
case "span":
if(!target.is(".disabled")){
var year=this.viewDate.getUTCFullYear(),
month=this.viewDate.getUTCMonth(),
day=this.viewDate.getUTCDate(),
hours=this.viewDate.getUTCHours(),
minutes=this.viewDate.getUTCMinutes(),
seconds=this.viewDate.getUTCSeconds();
if(target.is(".month")){
this.viewDate.setUTCDate(1);
month=target
.parent()
.find("span")
.index(target);
day=this.viewDate.getUTCDate();
this.viewDate.setUTCMonth(month);
this.element.trigger({
type: "changeMonth",
date: this.viewDate,
});
if(this.viewSelect >=3){
this._setDate(UTCDate(
year,
month,
day,
hours,
minutes,
seconds,
0
)
);
}}else if(target.is(".year")){
this.viewDate.setUTCDate(1);
year=parseInt(target.text(), 10)||0;
this.viewDate.setUTCFullYear(year);
this.element.trigger({
type: "changeYear",
date: this.viewDate,
});
if(this.viewSelect >=4){
this._setDate(UTCDate(
year,
month,
day,
hours,
minutes,
seconds,
0
)
);
}}else if(target.is(".minute")){
hours=parseInt(target.text(), 10)||0;
if(target.hasClass("hour_am") ||
target.hasClass("hour_pm")
){
if(hours==12 &&
target.hasClass("hour_am")
){
hours=0;
}else if(hours!=12 &&
target.hasClass("hour_pm")
){
hours +=12;
}}
this.viewDate.setUTCHours(hours);
this.element.trigger({
type: "changeHour",
date: this.viewDate,
});
minutes =
parseInt(
target
.text()
.substr(target.text().indexOf(":") + 1
),
10
)||0;
this.viewDate.setUTCMinutes(minutes);
this.element.trigger({
type: "changeMinute",
date: this.viewDate,
});
if(this.viewSelect >=0){
this._setDate(UTCDate(
year,
month,
day,
hours,
minutes,
seconds,
0
)
);
}}
if(this.viewMode!=1){
var oldViewMode=this.viewMode;
this.showMode(-1);
this.fill();
if(oldViewMode==this.viewMode &&
this.autoclose
){
this.hide();
}}else{
this.fill();
if(this.autoclose){
this.hide();
}}
}
break;
case "td":
if(target.is(".day")&&!target.is(".disabled")){
var day=parseInt(target.text(), 10)||1;
var year=this.viewDate.getUTCFullYear(),
month=this.viewDate.getUTCMonth(),
hours=this.viewDate.getUTCHours(),
minutes=this.viewDate.getUTCMinutes(),
seconds=this.viewDate.getUTCSeconds();
if(target.is(".old")){
if(month===0){
month=11;
year -=1;
}else{
month -=1;
}}else if(target.is(".new")){
if(month==11){
month=0;
year +=1;
}else{
month +=1;
}}
this.viewDate.setUTCFullYear(year);
this.viewDate.setUTCMonth(month, day);
this.element.trigger({
type: "changeDay",
date: this.viewDate,
});
if(this.viewSelect >=2){
this._setDate(UTCDate(
year,
month,
day,
hours,
minutes,
seconds,
0
)
);
}}
var oldViewMode=this.viewMode;
this.showMode(-1);
this.fill();
if(oldViewMode==this.viewMode&&this.autoclose){
this.hide();
}
break;
}}
},
_setDate: function(date, which){
if(!which||which=="date") this.date=date;
if(!which||which=="view") this.viewDate=date;
this.fill();
this.setValue();
var element;
if(this.isInput){
element=this.element;
}else if(this.component){
element=this.element.find("input");
}
if(element){
element.trigger("change");
if(this.autoclose&&(!which||which=="date")){
}}
this.element.trigger({
type: "changeDate",
date: this.date,
});
},
moveMinute: function(date, dir){
if(!dir) return date;
var new_date=new Date(date.valueOf());
new_date.setUTCMinutes(new_date.getUTCMinutes() + dir * this.minuteStep
);
return new_date;
},
moveHour: function(date, dir){
if(!dir) return date;
var new_date=new Date(date.valueOf());
new_date.setUTCHours(new_date.getUTCHours() + dir);
return new_date;
},
moveDate: function(date, dir){
if(!dir) return date;
var new_date=new Date(date.valueOf());
new_date.setUTCDate(new_date.getUTCDate() + dir);
return new_date;
},
moveMonth: function(date, dir){
if(!dir) return date;
var new_date=new Date(date.valueOf()),
day=new_date.getUTCDate(),
month=new_date.getUTCMonth(),
mag=Math.abs(dir),
new_month,
test;
dir=dir > 0 ? 1:-1;
if(mag==1){
test =
dir==-1
?
function(){
return new_date.getUTCMonth()==month;
}
:
function(){
return new_date.getUTCMonth()!=new_month;
};
new_month=month + dir;
new_date.setUTCMonth(new_month);
if(new_month < 0||new_month > 11)
new_month=(new_month + 12) % 12;
}else{
for (var i=0; i < mag; i++)
new_date=this.moveMonth(new_date, dir);
new_month=new_date.getUTCMonth();
new_date.setUTCDate(day);
test=function(){
return new_month!=new_date.getUTCMonth();
};}
while (test()){
new_date.setUTCDate(--day);
new_date.setUTCMonth(new_month);
}
return new_date;
},
moveYear: function(date, dir){
return this.moveMonth(date, dir * 12);
},
dateWithinRange: function(date){
return date >=this.startDate&&date <=this.endDate;
},
keydown: function(e){
if(this.picker.is(":not(:visible)")){
if(e.keyCode==27)
this.show();
return;
}
var dateChanged=false,
dir,
day,
month,
newDate,
newViewDate;
switch (e.keyCode){
case 27:
this.hide();
e.preventDefault();
break;
case 37:
case 39:
if(!this.keyboardNavigation) break;
dir=e.keyCode==37 ? -1:1;
viewMode=this.viewMode;
if(e.ctrlKey){
viewMode +=2;
}else if(e.shiftKey){
viewMode +=1;
}
if(viewMode==4){
newDate=this.moveYear(this.date, dir);
newViewDate=this.moveYear(this.viewDate, dir);
}else if(viewMode==3){
newDate=this.moveMonth(this.date, dir);
newViewDate=this.moveMonth(this.viewDate, dir);
}else if(viewMode==2){
newDate=this.moveDate(this.date, dir);
newViewDate=this.moveDate(this.viewDate, dir);
}else if(viewMode==1){
newDate=this.moveMinute(this.date, dir);
newViewDate=this.moveMinute(this.viewDate, dir);
}
if(this.dateWithinRange(newDate)){
this.date=newDate;
this.viewDate=newViewDate;
this.setValue();
this.update();
e.preventDefault();
dateChanged=true;
}
break;
case 38:
case 40:
if(!this.keyboardNavigation) break;
dir=e.keyCode==38 ? -1:1;
viewMode=this.viewMode;
if(e.ctrlKey){
viewMode +=2;
}else if(e.shiftKey){
viewMode +=1;
}
if(viewMode==4){
newDate=this.moveYear(this.date, dir);
newViewDate=this.moveYear(this.viewDate, dir);
}else if(viewMode==3){
newDate=this.moveMonth(this.date, dir);
newViewDate=this.moveMonth(this.viewDate, dir);
}else if(viewMode==2){
newDate=this.moveDate(this.date, dir * 7);
newViewDate=this.moveDate(this.viewDate, dir * 7);
}else if(viewMode==1){
newDate=this.moveMinute(this.date, dir * 4);
newViewDate=this.moveMinute(this.viewDate, dir * 4);
}
if(this.dateWithinRange(newDate)){
this.date=newDate;
this.viewDate=newViewDate;
this.setValue();
this.update();
e.preventDefault();
dateChanged=true;
}
break;
case 13:
if(this.viewMode!=0){
var oldViewMode=this.viewMode;
this.showMode(-1);
this.fill();
if(oldViewMode==this.viewMode&&this.autoclose){
this.hide();
}}else{
this.fill();
if(this.autoclose){
this.hide();
}}
e.preventDefault();
break;
case 9:
this.hide();
break;
}
if(dateChanged){
var element;
if(this.isInput){
element=this.element;
}else if(this.component){
element=this.element.find("input");
}
if(element){
element.trigger("change");
}
this.element.trigger({
type: "changeDate",
date: this.date,
});
}},
showMode: function(dir){
if(dir){
var newViewMode=Math.max(0,
Math.min(DPGlobal.modes.length - 1, this.viewMode + dir)
);
if(newViewMode >=this.minView &&
newViewMode <=this.maxView
){
this.element.trigger({
type: "changeMode",
date: this.viewDate,
oldViewMode: this.viewMode,
newViewMode: newViewMode,
});
this.viewMode=newViewMode;
}}
this.picker
.find(">div")
.hide()
.filter(".datetimepicker-" + DPGlobal.modes[this.viewMode].clsName
)
.css("display", "block");
this.updateNavArrows();
},
reset: function(e){
this._setDate(null, "date");
},
};
$.fn.datetimepicker=function(option){
var args=Array.apply(null, arguments);
args.shift();
var internal_return;
this.each(function(){
var $this=$(this),
data=$this.data("datetimepicker"),
options=typeof option=="object"&&option;
if(!data){
$this.data("datetimepicker",
(data=new Datetimepicker(
this,
$.extend({}, $.fn.datetimepicker.defaults, options)
))
);
}
if(typeof option=="string" &&
typeof data[option]=="function"
){
internal_return=data[option].apply(data, args);
if(internal_return!==undefined){
return false;
}}
});
if(internal_return!==undefined) return internal_return;
else return this;
};
$.fn.datetimepicker.defaults={};
$.fn.datetimepicker.Constructor=Datetimepicker;
var dates=($.fn.datetimepicker.dates={
en: {
days: [
"Sunday",
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday",
"Saturday",
"Sunday",
],
daysShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"],
daysMin: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa", "Su"],
months: [
"January",
"February",
"March",
"April",
"May",
"June",
"July",
"August",
"September",
"October",
"November",
"December",
],
monthsShort: [
"Jan",
"Feb",
"Mar",
"Apr",
"May",
"Jun",
"Jul",
"Aug",
"Sep",
"Oct",
"Nov",
"Dec",
],
meridiem: ["am", "pm"],
suffix: ["st", "nd", "rd", "th"],
today: "Today",
},
});
var DPGlobal={
modes: [
{
clsName: 'minutes',
navFnc: 'Hours',
navStep: 1,
},
{
clsName: "minutes",
navFnc: "Hours",
navStep: 1,
},
{
clsName: "days",
navFnc: "Month",
navStep: 1,
},
{
clsName: "months",
navFnc: "FullYear",
navStep: 1,
},
{
clsName: "years",
navFnc: "FullYear",
navStep: 10,
},
],
isLeapYear: function(year){
return (year % 4===0&&year % 100!==0)||year % 400===0;
},
getDaysInMonth: function(year, month){
return [
31,
DPGlobal.isLeapYear(year) ? 29:28,
31,
30,
31,
30,
31,
31,
30,
31,
30,
31,
][month];
},
getDefaultFormat: function(type, field){
if(type=="standard"){
if(field=="input") return "yyyy-mm-dd hh:ii";
else return "yyyy-mm-dd hh:ii:ss";
}else if(type=="php"){
if(field=="input") return "Y-m-d H:i";
else return "Y-m-d H:i:s";
}else{
throw new Error("Invalid format type.");
}},
validParts: function(type){
if(type=="standard"){
return /hh?|HH?|p|P|ii?|ss?|dd?|DD?|mm?|MM?|yy(?:yy)?/g;
}else if(type=="php"){
return /[dDjlNwzFmMnStyYaABgGhHis]/g;
}else{
throw new Error("Invalid format type.");
}},
nonpunctuation: /([A-Za-z]+\.)|[^ -\/:-@\[-`{-~\t\n\r]+/g,
parseFormat: function(format, type){
var separators=format
.replace(this.validParts(type), "\0")
.split("\0"),
parts=format.match(this.validParts(type));
if(!separators ||
!separators.length ||
!parts ||
parts.length==0
){
throw new Error("Invalid date format.");
}
return { separators: separators, parts: parts };},
setMinuteStep: function(minuteStep){
if(minuteStep <=0){
throw new Error('Invalide mminute step.');
}
this.minuteStep=parseInt(minuteStep);
var d=new Date(this.viewDate),
year=d.getUTCFullYear(),
month=d.getUTCMonth(),
dayMonth=d.getUTCDate(),
hours=d.getUTCHours(),
minutes=d.getUTCMinutes();
this.fillTime(dates, year, month, dayMonth, hours, minutes);
},
parseDate: function(date, format, language, type){
if(date instanceof Date){
var dateUTC=new Date(
date.valueOf() - date.getTimezoneOffset() * 60000
);
dateUTC.setMilliseconds(0);
return dateUTC;
}
if(/^\d{4}\-\d{1,2}\-\d{1,2}$/.test(date)){
format=this.parseFormat("yyyy-mm-dd", type);
}
if(/^\d{4}\-\d{1,2}\-\d{1,2}[T ]\d{1,2}\:\d{1,2}$/.test(date)){
format=this.parseFormat("yyyy-mm-dd hh:ii", type);
}
if(/^\d{4}\-\d{1,2}\-\d{1,2}[T ]\d{1,2}\:\d{1,2}\:\d{1,2}[Z]{0,1}$/.test(date
)
){
format=this.parseFormat("yyyy-mm-dd hh:ii:ss", type);
}
if(/^[-+]\d+[dmwy]([\s,]+[-+]\d+[dmwy])*$/.test(date)){
var part_re=/([-+]\d+)([dmwy])/,
parts=date.match(/([-+]\d+)([dmwy])/g),
part,
dir;
date=new Date();
for (var i=0; i < parts.length; i++){
part=part_re.exec(parts[i]);
dir=parseInt(part[1]);
switch (part[2]){
case "d":
date.setUTCDate(date.getUTCDate() + dir);
break;
case "m":
date=Datetimepicker.prototype.moveMonth.call(Datetimepicker.prototype,
date,
dir
);
break;
case "w":
date.setUTCDate(date.getUTCDate() + dir * 7);
break;
case "y":
date=Datetimepicker.prototype.moveYear.call(Datetimepicker.prototype,
date,
dir
);
break;
}}
return UTCDate(
date.getUTCFullYear(),
date.getUTCMonth(),
date.getUTCDate(),
date.getUTCHours(),
date.getUTCMinutes(),
date.getUTCSeconds(),
0
);
}
var parts=(date&&date.match(this.nonpunctuation))||[],
date=new Date(0, 0, 0, 0, 0, 0, 0),
parsed={},
setters_order=[
"hh",
"h",
"ii",
"i",
"ss",
"s",
"yyyy",
"yy",
"M",
"MM",
"m",
"mm",
"D",
"DD",
"d",
"dd",
"H",
"HH",
"p",
"P",
],
setters_map={
hh: function(d, v){
return d.setUTCHours(v);
},
h: function(d, v){
return d.setUTCHours(v);
},
HH: function(d, v){
return d.setUTCHours(v==12 ? 0:v);
},
H: function(d, v){
return d.setUTCHours(v==12 ? 0:v);
},
ii: function(d, v){
return d.setUTCMinutes(v);
},
i: function(d, v){
return d.setUTCMinutes(v);
},
ss: function(d, v){
return d.setUTCSeconds(v);
},
s: function(d, v){
return d.setUTCSeconds(v);
},
yyyy: function(d, v){
return d.setUTCFullYear(v);
},
yy: function(d, v){
return d.setUTCFullYear(2000 + v);
},
m: function(d, v){
v -=1;
while (v < 0) v +=12;
v %=12;
d.setUTCMonth(v);
while (d.getUTCMonth()!=v)
if(isNaN(d.getUTCMonth())) return d;
else d.setUTCDate(d.getUTCDate() - 1);
return d;
},
d: function(d, v){
return d.setUTCDate(v);
},
p: function(d, v){
return d.setUTCHours(v==1 ? d.getUTCHours() + 12:d.getUTCHours()
);
},
},
val,
filtered,
part;
setters_map["M"]=setters_map["MM"]=setters_map["mm"] =
setters_map["m"];
setters_map["dd"]=setters_map["d"];
setters_map["P"]=setters_map["p"];
date=UTCDate(
date.getFullYear(),
date.getMonth(),
date.getDate(),
date.getHours(),
date.getMinutes(),
date.getSeconds()
);
if(parts.length==format.parts.length||parts.length > format.parts.length){
for (var i=0, cnt=0; cnt < format.parts.length; i++, cnt++){
val=parseInt(parts[i], 10);
part=format.parts[cnt];
switch (part){
case "MM":
val =
$.inArray(parts[i],
dates[language].months
) + 1;
break;
case "M":
let shortMonths=dates[language].monthsShort[0].split(' ');
val=$.inArray(parts.slice(i, i+shortMonths.length).join(' '),
dates[language].monthsShort
) + 1;
i +=shortMonths.length - 1;
break;
case "p":
case "P":
val=$.inArray(parts[i].toLowerCase(),
dates[language].meridiem
);
break;
}
parsed[part]=val;
}
for (var i=0, s; i < setters_order.length; i++){
s=setters_order[i];
if(s in parsed&&!isNaN(parsed[s]))
setters_map[s](date, parsed[s]);
}}
return date;
},
formatDate: function(date, format, language, type){
if(date==null){
return "";
}
var val;
if(type=="standard"){
val={
yy: date
.getUTCFullYear()
.toString()
.substring(2),
yyyy: date.getUTCFullYear(),
m: date.getUTCMonth() + 1,
M: dates[language].monthsShort[date.getUTCMonth()],
MM: dates[language].months[date.getUTCMonth()],
d: date.getUTCDate(),
D: dates[language].daysShort[date.getUTCDay()],
DD: dates[language].days[date.getUTCDay()],
p:
dates[language].meridiem.length==2
? dates[language].meridiem[
date.getUTCHours() < 12 ? 0:1
]
: "",
h: date.getUTCHours(),
i: date.getUTCMinutes(),
s: date.getUTCSeconds(),
};
if(dates[language].meridiem.length==2){
val.H=val.h % 12==0 ? 12:val.h % 12;
}else{
val.H=val.h;
}
val.HH=(val.H < 10 ? "0":"") + val.H;
val.P=val.p.toUpperCase();
val.hh=(val.h < 10 ? "0":"") + val.h;
val.ii=(val.i < 10 ? "0":"") + val.i;
val.ss=(val.s < 10 ? "0":"") + val.s;
val.dd=(val.d < 10 ? "0":"") + val.d;
val.mm=(val.m < 10 ? "0":"") + val.m;
}else if(type=="php"){
val={
y: date
.getUTCFullYear()
.toString()
.substring(2),
Y: date.getUTCFullYear(),
F: dates[language].months[date.getUTCMonth()],
M: dates[language].monthsShort[date.getUTCMonth()],
n: date.getUTCMonth() + 1,
t: DPGlobal.getDaysInMonth(date.getUTCFullYear(),
date.getUTCMonth()
),
j: date.getUTCDate(),
l: dates[language].days[date.getUTCDay()],
D: dates[language].daysShort[date.getUTCDay()],
w: date.getUTCDay(),
N: date.getUTCDay()==0 ? 7:date.getUTCDay(),
S:
date.getUTCDate() % 10 <=dates[language].suffix.length
? dates[language].suffix[
(date.getUTCDate() % 10) - 1
]
: "",
a:
dates[language].meridiem.length==2
? dates[language].meridiem[
date.getUTCHours() < 12 ? 0:1
]
: "",
g:
date.getUTCHours() % 12==0
? 12
: date.getUTCHours() % 12,
G: date.getUTCHours(),
i: date.getUTCMinutes(),
s: date.getUTCSeconds(),
};
val.m=(val.n < 10 ? "0":"") + val.n;
val.d=(val.j < 10 ? "0":"") + val.j;
val.A=val.a.toString().toUpperCase();
val.h=(val.g < 10 ? "0":"") + val.g;
val.H=(val.G < 10 ? "0":"") + val.G;
val.i=(val.i < 10 ? "0":"") + val.i;
val.s=(val.s < 10 ? "0":"") + val.s;
}else{
throw new Error("Invalid format type.");
}
var date=[],
seps=$.extend([], format.separators);
for (var i=0, cnt=format.parts.length; i < cnt; i++){
if(seps.length){
date.push(seps.shift());
}
date.push(val[format.parts[i]]);
}
if(seps.length){
date.push(seps.shift());
}
return date.join("");
},
convertViewMode: function(viewMode){
switch (viewMode){
case 4:
case "decade":
viewMode=4;
break;
case 3:
case "year":
viewMode=3;
break;
case 2:
case "month":
viewMode=2;
break;
case 1:
case "day":
viewMode=1;
break;
case 0:
case "minute":
viewMode=0;
break;
}
return viewMode;
},
headTemplate:
"<thead>" +
"<tr>" +
'<th class="prev"><div class="numbg"></div></th>' +
'<th colspan="5" class="switch"></th>' +
'<th class="next"><div class="numbg"></div></th>' +
"</tr>" +
"</thead>",
headTemplateV3:
"<thead>" +
"<tr>" +
'<th class="prev"><div class="numbg"></div></th>' +
'<th colspan="5" class="switch"></th>' +
'<th class="next"><div class="numbg"></div></th>' +
"</tr>" +
"</thead>",
contTemplate: '<tbody><tr><td colspan="7"></td></tr></tbody>',
footTemplate:
'<tfoot><tr><th colspan="7" class="today"></th></tr></tfoot>',
};
DPGlobal.template =
'<div class="datetimepicker sln-datetimepicker">' +
'<div class="datetimepicker-minutes">' +
'<table class=" table-condensed">' +
DPGlobal.headTemplate +
DPGlobal.contTemplate +
DPGlobal.footTemplate +
"</table>" +
"</div>" +
'<div class="datetimepicker-days">' +
'<table class=" table-condensed">' +
DPGlobal.headTemplate +
"<tbody></tbody>" +
DPGlobal.footTemplate +
"</table>" +
"</div>" +
'<div class="datetimepicker-months">' +
'<table class="table-condensed">' +
DPGlobal.headTemplate +
DPGlobal.contTemplate +
DPGlobal.footTemplate +
"</table>" +
"</div>" +
'<div class="datetimepicker-years">' +
'<table class="table-condensed">' +
DPGlobal.headTemplate +
DPGlobal.contTemplate +
DPGlobal.footTemplate +
"</table>" +
"</div>" +
"</div>";
DPGlobal.templateV3 =
'<div class="datetimepicker  sln-datetimepicker">' +
'<div class="datetimepicker-minutes">' +
'<table class=" table-condensed">' +
DPGlobal.headTemplateV3 +
DPGlobal.contTemplate +
DPGlobal.footTemplate +
"</table>" +
"</div>" +
'<div class="datetimepicker-days">' +
'<table class=" table-condensed">' +
DPGlobal.headTemplateV3 +
"<tbody></tbody>" +
DPGlobal.footTemplate +
"</table>" +
"</div>" +
'<div class="datetimepicker-months">' +
'<table class="table-condensed">' +
DPGlobal.headTemplateV3 +
DPGlobal.contTemplate +
DPGlobal.footTemplate +
"</table>" +
"</div>" +
'<div class="datetimepicker-years">' +
'<table class="table-condensed">' +
DPGlobal.headTemplateV3 +
DPGlobal.contTemplate +
DPGlobal.footTemplate +
"</table>" +
"</div>" +
"</div>";
$.fn.datetimepicker.DPGlobal=DPGlobal;
$.fn.datetimepicker.noConflict=function(){
$.fn.datetimepicker=old;
return this;
};
$(document).on("focus.datetimepicker.data-api click.datetimepicker.data-api",
'[data-provide="datetimepicker"]',
function(e){
var $this=$(this);
if($this.data("datetimepicker")) return;
e.preventDefault();
$this.datetimepicker("show");
}
);
$(function(){
$('[data-provide="datetimepicker-inline"]').datetimepicker();
});
})(window.jQuery);
;(function($){
$.fn.datetimepicker.dates[sln_calendar_languages.locale]=sln_calendar_languages.locale_data;
})(jQuery);
/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):"object"==typeof module&&module.exports?module.exports=function(b,c){return void 0===c&&(c="undefined"!=typeof window?require("jquery"):require("jquery")(b)),a(c),c}:a(jQuery)}(function(a){var b=function(){if(a&&a.fn&&a.fn.select2&&a.fn.select2.amd)var b=a.fn.select2.amd;var b;return function(){if(!b||!b.requirejs){b?c=b:b={};var a,c,d;!function(b){function e(a,b){return v.call(a,b)}function f(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o=b&&b.split("/"),p=t.map,q=p&&p["*"]||{};if(a){for(a=a.split("/"),g=a.length-1,t.nodeIdCompat&&x.test(a[g])&&(a[g]=a[g].replace(x,"")),"."===a[0].charAt(0)&&o&&(n=o.slice(0,o.length-1),a=n.concat(a)),k=0;k<a.length;k++)if("."===(m=a[k]))a.splice(k,1),k-=1;else if(".."===m){if(0===k||1===k&&".."===a[2]||".."===a[k-1])continue;k>0&&(a.splice(k-1,2),k-=2)}a=a.join("/")}if((o||q)&&p){for(c=a.split("/"),k=c.length;k>0;k-=1){if(d=c.slice(0,k).join("/"),o)for(l=o.length;l>0;l-=1)if((e=p[o.slice(0,l).join("/")])&&(e=e[d])){f=e,h=k;break}if(f)break;!i&&q&&q[d]&&(i=q[d],j=k)}!f&&i&&(f=i,h=j),f&&(c.splice(0,h,f),a=c.join("/"))}return a}function g(a,c){return function(){var d=w.call(arguments,0);return"string"!=typeof d[0]&&1===d.length&&d.push(null),o.apply(b,d.concat([a,c]))}}function h(a){return function(b){return f(b,a)}}function i(a){return function(b){r[a]=b}}function j(a){if(e(s,a)){var c=s[a];delete s[a],u[a]=!0,n.apply(b,c)}if(!e(r,a)&&!e(u,a))throw new Error("No "+a);return r[a]}function k(a){var b,c=a?a.indexOf("!"):-1;return c>-1&&(b=a.substring(0,c),a=a.substring(c+1,a.length)),[b,a]}function l(a){return a?k(a):[]}function m(a){return function(){return t&&t.config&&t.config[a]||{}}}var n,o,p,q,r={},s={},t={},u={},v=Object.prototype.hasOwnProperty,w=[].slice,x=/\.js$/;p=function(a,b){var c,d=k(a),e=d[0],g=b[1];return a=d[1],e&&(e=f(e,g),c=j(e)),e?a=c&&c.normalize?c.normalize(a,h(g)):f(a,g):(a=f(a,g),d=k(a),e=d[0],a=d[1],e&&(c=j(e))),{f:e?e+"!"+a:a,n:a,pr:e,p:c}},q={require:function(a){return g(a)},exports:function(a){var b=r[a];return void 0!==b?b:r[a]={}},module:function(a){return{id:a,uri:"",exports:r[a],config:m(a)}}},n=function(a,c,d,f){var h,k,m,n,o,t,v,w=[],x=typeof d;if(f=f||a,t=l(f),"undefined"===x||"function"===x){for(c=!c.length&&d.length?["require","exports","module"]:c,o=0;o<c.length;o+=1)if(n=p(c[o],t),"require"===(k=n.f))w[o]=q.require(a);else if("exports"===k)w[o]=q.exports(a),v=!0;else if("module"===k)h=w[o]=q.module(a);else if(e(r,k)||e(s,k)||e(u,k))w[o]=j(k);else{if(!n.p)throw new Error(a+" missing "+k);n.p.load(n.n,g(f,!0),i(k),{}),w[o]=r[k]}m=d?d.apply(r[a],w):void 0,a&&(h&&h.exports!==b&&h.exports!==r[a]?r[a]=h.exports:m===b&&v||(r[a]=m))}else a&&(r[a]=d)},a=c=o=function(a,c,d,e,f){if("string"==typeof a)return q[a]?q[a](c):j(p(a,l(c)).f);if(!a.splice){if(t=a,t.deps&&o(t.deps,t.callback),!c)return;c.splice?(a=c,c=d,d=null):a=b}return c=c||function(){},"function"==typeof d&&(d=e,e=f),e?n(b,a,c,d):setTimeout(function(){n(b,a,c,d)},4),o},o.config=function(a){return o(a)},a._defined=r,d=function(a,b,c){if("string"!=typeof a)throw new Error("See almond README: incorrect module build, no module name");b.splice||(c=b,b=[]),e(r,a)||e(s,a)||(s[a]=[a,b,c])},d.amd={jQuery:!0}}(),b.requirejs=a,b.require=c,b.define=d}}(),b.define("almond",function(){}),b.define("jquery",[],function(){var b=a||$;return null==b&&console&&console.error&&console.error("Select2: An instance of jQuery or a jQuery-compatible library was not found. Make sure that you are including jQuery before Select2 on your web page."),b}),b.define("select2/utils",["jquery"],function(a){function b(a){var b=a.prototype,c=[];for(var d in b){"function"==typeof b[d]&&("constructor"!==d&&c.push(d))}return c}var c={};c.Extend=function(a,b){function c(){this.constructor=a}var d={}.hasOwnProperty;for(var e in b)d.call(b,e)&&(a[e]=b[e]);return c.prototype=b.prototype,a.prototype=new c,a.__super__=b.prototype,a},c.Decorate=function(a,c){function d(){var b=Array.prototype.unshift,d=c.prototype.constructor.length,e=a.prototype.constructor;d>0&&(b.call(arguments,a.prototype.constructor),e=c.prototype.constructor),e.apply(this,arguments)}function e(){this.constructor=d}var f=b(c),g=b(a);c.displayName=a.displayName,d.prototype=new e;for(var h=0;h<g.length;h++){var i=g[h];d.prototype[i]=a.prototype[i]}for(var j=(function(a){var b=function(){};a in d.prototype&&(b=d.prototype[a]);var e=c.prototype[a];return function(){return Array.prototype.unshift.call(arguments,b),e.apply(this,arguments)}}),k=0;k<f.length;k++){var l=f[k];d.prototype[l]=j(l)}return d};var d=function(){this.listeners={}};d.prototype.on=function(a,b){this.listeners=this.listeners||{},a in this.listeners?this.listeners[a].push(b):this.listeners[a]=[b]},d.prototype.trigger=function(a){var b=Array.prototype.slice,c=b.call(arguments,1);this.listeners=this.listeners||{},null==c&&(c=[]),0===c.length&&c.push({}),c[0]._type=a,a in this.listeners&&this.invoke(this.listeners[a],b.call(arguments,1)),"*"in this.listeners&&this.invoke(this.listeners["*"],arguments)},d.prototype.invoke=function(a,b){for(var c=0,d=a.length;c<d;c++)a[c].apply(this,b)},c.Observable=d,c.generateChars=function(a){for(var b="",c=0;c<a;c++){b+=Math.floor(36*Math.random()).toString(36)}return b},c.bind=function(a,b){return function(){a.apply(b,arguments)}},c._convertData=function(a){for(var b in a){var c=b.split("-"),d=a;if(1!==c.length){for(var e=0;e<c.length;e++){var f=c[e];f=f.substring(0,1).toLowerCase()+f.substring(1),f in d||(d[f]={}),e==c.length-1&&(d[f]=a[b]),d=d[f]}delete a[b]}}return a},c.hasScroll=function(b,c){var d=a(c),e=c.style.overflowX,f=c.style.overflowY;return(e!==f||"hidden"!==f&&"visible"!==f)&&("scroll"===e||"scroll"===f||(d.innerHeight()<c.scrollHeight||d.innerWidth()<c.scrollWidth))},c.escapeMarkup=function(a){var b={"\\":"&#92;","&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;","/":"&#47;"};return"string"!=typeof a?a:String(a).replace(/[&<>"'\/\\]/g,function(a){return b[a]})},c.appendMany=function(b,c){if("1.7"===a.fn.jquery.substr(0,3)){var d=a();a.map(c,function(a){d=d.add(a)}),c=d}b.append(c)},c.__cache={};var e=0;return c.GetUniqueElementId=function(a){var b=a.getAttribute("data-select2-id");return null==b&&(a.id?(b=a.id,a.setAttribute("data-select2-id",b)):(a.setAttribute("data-select2-id",++e),b=e.toString())),b},c.StoreData=function(a,b,d){var e=c.GetUniqueElementId(a);c.__cache[e]||(c.__cache[e]={}),c.__cache[e][b]=d},c.GetData=function(b,d){var e=c.GetUniqueElementId(b);return d?c.__cache[e]&&null!=c.__cache[e][d]?c.__cache[e][d]:a(b).data(d):c.__cache[e]},c.RemoveData=function(a){var b=c.GetUniqueElementId(a);null!=c.__cache[b]&&delete c.__cache[b]},c}),b.define("select2/results",["jquery","./utils"],function(a,b){function c(a,b,d){this.$element=a,this.data=d,this.options=b,c.__super__.constructor.call(this)}return b.Extend(c,b.Observable),c.prototype.render=function(){var b=a('<ul class="select2-results__options" role="tree"></ul>');return this.options.get("multiple")&&b.attr("aria-multiselectable","true"),this.$results=b,b},c.prototype.clear=function(){this.$results.empty()},c.prototype.displayMessage=function(b){var c=this.options.get("escapeMarkup");this.clear(),this.hideLoading();var d=a('<li role="treeitem" aria-live="assertive" class="select2-results__option"></li>'),e=this.options.get("translations").get(b.message);d.append(c(e(b.args))),d[0].className+=" select2-results__message",this.$results.append(d)},c.prototype.hideMessages=function(){this.$results.find(".select2-results__message").remove()},c.prototype.append=function(a){this.hideLoading();var b=[];if(null==a.results||0===a.results.length)return void(0===this.$results.children().length&&this.trigger("results:message",{message:"noResults"}));a.results=this.sort(a.results);for(var c=0;c<a.results.length;c++){var d=a.results[c],e=this.option(d);b.push(e)}this.$results.append(b)},c.prototype.position=function(a,b){b.find(".select2-results").append(a)},c.prototype.sort=function(a){return this.options.get("sorter")(a)},c.prototype.highlightFirstItem=function(){var a=this.$results.find(".select2-results__option[aria-selected]"),b=a.filter("[aria-selected=true]");b.length>0?b.first().trigger("mouseenter"):a.first().trigger("mouseenter"),this.ensureHighlightVisible()},c.prototype.setClasses=function(){var c=this;this.data.current(function(d){var e=a.map(d,function(a){return a.id.toString()});c.$results.find(".select2-results__option[aria-selected]").each(function(){var c=a(this),d=b.GetData(this,"data"),f=""+d.id;null!=d.element&&d.element.selected||null==d.element&&a.inArray(f,e)>-1?c.attr("aria-selected","true"):c.attr("aria-selected","false")})})},c.prototype.showLoading=function(a){this.hideLoading();var b=this.options.get("translations").get("searching"),c={disabled:!0,loading:!0,text:b(a)},d=this.option(c);d.className+=" loading-results",this.$results.prepend(d)},c.prototype.hideLoading=function(){this.$results.find(".loading-results").remove()},c.prototype.option=function(c){var d=document.createElement("li");d.className="select2-results__option";var e={role:"treeitem","aria-selected":"false"};c.disabled&&(delete e["aria-selected"],e["aria-disabled"]="true"),null==c.id&&delete e["aria-selected"],null!=c._resultId&&(d.id=c._resultId),c.title&&(d.title=c.title),c.children&&(e.role="group",e["aria-label"]=c.text,delete e["aria-selected"]);for(var f in e){var g=e[f];d.setAttribute(f,g)}if(c.children){var h=a(d),i=document.createElement("strong");i.className="select2-results__group";a(i);this.template(c,i);for(var j=[],k=0;k<c.children.length;k++){var l=c.children[k],m=this.option(l);j.push(m)}var n=a("<ul></ul>",{class:"select2-results__options select2-results__options--nested"});n.append(j),h.append(i),h.append(n)}else this.template(c,d);return b.StoreData(d,"data",c),d},c.prototype.bind=function(c,d){var e=this,f=c.id+"-results";this.$results.attr("id",f),c.on("results:all",function(a){e.clear(),e.append(a.data),c.isOpen()&&(e.setClasses(),e.highlightFirstItem())}),c.on("results:append",function(a){e.append(a.data),c.isOpen()&&e.setClasses()}),c.on("query",function(a){e.hideMessages(),e.showLoading(a)}),c.on("select",function(){c.isOpen()&&(e.setClasses(),e.highlightFirstItem())}),c.on("unselect",function(){c.isOpen()&&(e.setClasses(),e.highlightFirstItem())}),c.on("open",function(){e.$results.attr("aria-expanded","true"),e.$results.attr("aria-hidden","false"),e.setClasses(),e.ensureHighlightVisible()}),c.on("close",function(){e.$results.attr("aria-expanded","false"),e.$results.attr("aria-hidden","true"),e.$results.removeAttr("aria-activedescendant")}),c.on("results:toggle",function(){var a=e.getHighlightedResults();0!==a.length&&a.trigger("mouseup")}),c.on("results:select",function(){var a=e.getHighlightedResults();if(0!==a.length){var c=b.GetData(a[0],"data");"true"==a.attr("aria-selected")?e.trigger("close",{}):e.trigger("select",{data:c})}}),c.on("results:previous",function(){var a=e.getHighlightedResults(),b=e.$results.find("[aria-selected]"),c=b.index(a);if(!(c<=0)){var d=c-1;0===a.length&&(d=0);var f=b.eq(d);f.trigger("mouseenter");var g=e.$results.offset().top,h=f.offset().top,i=e.$results.scrollTop()+(h-g);0===d?e.$results.scrollTop(0):h-g<0&&e.$results.scrollTop(i)}}),c.on("results:next",function(){var a=e.getHighlightedResults(),b=e.$results.find("[aria-selected]"),c=b.index(a),d=c+1;if(!(d>=b.length)){var f=b.eq(d);f.trigger("mouseenter");var g=e.$results.offset().top+e.$results.outerHeight(!1),h=f.offset().top+f.outerHeight(!1),i=e.$results.scrollTop()+h-g;0===d?e.$results.scrollTop(0):h>g&&e.$results.scrollTop(i)}}),c.on("results:focus",function(a){a.element.addClass("select2-results__option--highlighted")}),c.on("results:message",function(a){e.displayMessage(a)}),a.fn.mousewheel&&this.$results.on("mousewheel",function(a){var b=e.$results.scrollTop(),c=e.$results.get(0).scrollHeight-b+a.deltaY,d=a.deltaY>0&&b-a.deltaY<=0,f=a.deltaY<0&&c<=e.$results.height();d?(e.$results.scrollTop(0),a.preventDefault(),a.stopPropagation()):f&&(e.$results.scrollTop(e.$results.get(0).scrollHeight-e.$results.height()),a.preventDefault(),a.stopPropagation())}),this.$results.on("mouseup",".select2-results__option[aria-selected]",function(c){var d=a(this),f=b.GetData(this,"data");if("true"===d.attr("aria-selected"))return void(e.options.get("multiple")?e.trigger("unselect",{originalEvent:c,data:f}):e.trigger("close",{}));e.trigger("select",{originalEvent:c,data:f})}),this.$results.on("mouseenter",".select2-results__option[aria-selected]",function(c){var d=b.GetData(this,"data");e.getHighlightedResults().removeClass("select2-results__option--highlighted"),e.trigger("results:focus",{data:d,element:a(this)})})},c.prototype.getHighlightedResults=function(){return this.$results.find(".select2-results__option--highlighted")},c.prototype.destroy=function(){this.$results.remove()},c.prototype.ensureHighlightVisible=function(){var a=this.getHighlightedResults();if(0!==a.length){var b=this.$results.find("[aria-selected]"),c=b.index(a),d=this.$results.offset().top,e=a.offset().top,f=this.$results.scrollTop()+(e-d),g=e-d;f-=2*a.outerHeight(!1),c<=2?this.$results.scrollTop(0):(g>this.$results.outerHeight()||g<0)&&this.$results.scrollTop(f)}},c.prototype.template=function(b,c){var d=this.options.get("templateResult"),e=this.options.get("escapeMarkup"),f=d(b,c);null==f?c.style.display="none":"string"==typeof f?c.innerHTML=e(f):a(c).append(f)},c}),b.define("select2/keys",[],function(){return{BACKSPACE:8,TAB:9,ENTER:13,SHIFT:16,CTRL:17,ALT:18,ESC:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40,DELETE:46}}),b.define("select2/selection/base",["jquery","../utils","../keys"],function(a,b,c){function d(a,b){this.$element=a,this.options=b,d.__super__.constructor.call(this)}return b.Extend(d,b.Observable),d.prototype.render=function(){var c=a('<span class="select2-selection" role="combobox"  aria-haspopup="true" aria-expanded="false"></span>');return this._tabindex=0,null!=b.GetData(this.$element[0],"old-tabindex")?this._tabindex=b.GetData(this.$element[0],"old-tabindex"):null!=this.$element.attr("tabindex")&&(this._tabindex=this.$element.attr("tabindex")),c.attr("title",this.$element.attr("title")),c.attr("tabindex",this._tabindex),this.$selection=c,c},d.prototype.bind=function(a,b){var d=this,e=(a.id,a.id+"-results");this.container=a,this.$selection.on("focus",function(a){d.trigger("focus",a)}),this.$selection.on("blur",function(a){d._handleBlur(a)}),this.$selection.on("keydown",function(a){d.trigger("keypress",a),a.which===c.SPACE&&a.preventDefault()}),a.on("results:focus",function(a){d.$selection.attr("aria-activedescendant",a.data._resultId)}),a.on("selection:update",function(a){d.update(a.data)}),a.on("open",function(){d.$selection.attr("aria-expanded","true"),d.$selection.attr("aria-owns",e),d._attachCloseHandler(a)}),a.on("close",function(){d.$selection.attr("aria-expanded","false"),d.$selection.removeAttr("aria-activedescendant"),d.$selection.removeAttr("aria-owns"),d.$selection.focus(),window.setTimeout(function(){d.$selection.focus()},0),d._detachCloseHandler(a)}),a.on("enable",function(){d.$selection.attr("tabindex",d._tabindex)}),a.on("disable",function(){d.$selection.attr("tabindex","-1")})},d.prototype._handleBlur=function(b){var c=this;window.setTimeout(function(){document.activeElement==c.$selection[0]||a.contains(c.$selection[0],document.activeElement)||c.trigger("blur",b)},1)},d.prototype._attachCloseHandler=function(c){a(document.body).on("mousedown.select2."+c.id,function(c){var d=a(c.target),e=d.closest(".select2");a(".select2.select2-container--open").each(function(){a(this),this!=e[0]&&b.GetData(this,"element").select2("close")})})},d.prototype._detachCloseHandler=function(b){a(document.body).off("mousedown.select2."+b.id)},d.prototype.position=function(a,b){b.find(".selection").append(a)},d.prototype.destroy=function(){this._detachCloseHandler(this.container)},d.prototype.update=function(a){throw new Error("The `update` method must be defined in child classes.")},d}),b.define("select2/selection/single",["jquery","./base","../utils","../keys"],function(a,b,c,d){function e(){e.__super__.constructor.apply(this,arguments)}return c.Extend(e,b),e.prototype.render=function(){var a=e.__super__.render.call(this);return a.addClass("select2-selection--single"),a.html('<span class="select2-selection__rendered"></span><span class="select2-selection__arrow" role="presentation"><b role="presentation"></b></span>'),a},e.prototype.bind=function(a,b){var c=this;e.__super__.bind.apply(this,arguments);var d=a.id+"-container";this.$selection.find(".select2-selection__rendered").attr("id",d).attr("role","textbox").attr("aria-readonly","true"),this.$selection.attr("aria-labelledby",d),this.$selection.on("mousedown",function(a){1===a.which&&c.trigger("toggle",{originalEvent:a})}),this.$selection.on("focus",function(a){}),this.$selection.on("blur",function(a){}),a.on("focus",function(b){a.isOpen()||c.$selection.focus()})},e.prototype.clear=function(){var a=this.$selection.find(".select2-selection__rendered");a.empty(),a.removeAttr("title")},e.prototype.display=function(a,b){var c=this.options.get("templateSelection");return this.options.get("escapeMarkup")(c(a,b))},e.prototype.selectionContainer=function(){return a("<span></span>")},e.prototype.update=function(a){if(0===a.length)return void this.clear();var b=a[0],c=this.$selection.find(".select2-selection__rendered"),d=this.display(b,c);c.empty().append(d),c.attr("title",b.title||b.text)},e}),b.define("select2/selection/multiple",["jquery","./base","../utils"],function(a,b,c){function d(a,b){d.__super__.constructor.apply(this,arguments)}return c.Extend(d,b),d.prototype.render=function(){var a=d.__super__.render.call(this);return a.addClass("select2-selection--multiple"),a.html('<ul class="select2-selection__rendered"></ul>'),a},d.prototype.bind=function(b,e){var f=this;d.__super__.bind.apply(this,arguments),this.$selection.on("click",function(a){f.trigger("toggle",{originalEvent:a})}),this.$selection.on("click",".select2-selection__choice__remove",function(b){if(!f.options.get("disabled")){var d=a(this),e=d.parent(),g=c.GetData(e[0],"data");f.trigger("unselect",{originalEvent:b,data:g})}})},d.prototype.clear=function(){var a=this.$selection.find(".select2-selection__rendered");a.empty(),a.removeAttr("title")},d.prototype.display=function(a,b){var c=this.options.get("templateSelection");return this.options.get("escapeMarkup")(c(a,b))},d.prototype.selectionContainer=function(){return a('<li class="select2-selection__choice"><span class="select2-selection__choice__remove" role="presentation">&times;</span></li>')},d.prototype.update=function(a){if(this.clear(),0!==a.length){for(var b=[],d=0;d<a.length;d++){var e=a[d],f=this.selectionContainer(),g=this.display(e,f);f.append(g),f.attr("title",e.title||e.text),c.StoreData(f[0],"data",e),b.push(f)}var h=this.$selection.find(".select2-selection__rendered");c.appendMany(h,b)}},d}),b.define("select2/selection/placeholder",["../utils"],function(a){function b(a,b,c){this.placeholder=this.normalizePlaceholder(c.get("placeholder")),a.call(this,b,c)}return b.prototype.normalizePlaceholder=function(a,b){return"string"==typeof b&&(b={id:"",text:b}),b},b.prototype.createPlaceholder=function(a,b){var c=this.selectionContainer();return c.html(this.display(b)),c.addClass("select2-selection__placeholder").removeClass("select2-selection__choice"),c},b.prototype.update=function(a,b){var c=1==b.length&&b[0].id!=this.placeholder.id;if(b.length>1||c)return a.call(this,b);this.clear();var d=this.createPlaceholder(this.placeholder);this.$selection.find(".select2-selection__rendered").append(d)},b}),b.define("select2/selection/allowClear",["jquery","../keys","../utils"],function(a,b,c){function d(){}return d.prototype.bind=function(a,b,c){var d=this;a.call(this,b,c),null==this.placeholder&&this.options.get("debug")&&window.console&&console.error&&console.error("Select2: The `allowClear` option should be used in combination with the `placeholder` option."),this.$selection.on("mousedown",".select2-selection__clear",function(a){d._handleClear(a)}),b.on("keypress",function(a){d._handleKeyboardClear(a,b)})},d.prototype._handleClear=function(a,b){if(!this.options.get("disabled")){var d=this.$selection.find(".select2-selection__clear");if(0!==d.length){b.stopPropagation();var e=c.GetData(d[0],"data"),f=this.$element.val();this.$element.val(this.placeholder.id);var g={data:e};if(this.trigger("clear",g),g.prevented)return void this.$element.val(f);for(var h=0;h<e.length;h++)if(g={data:e[h]},this.trigger("unselect",g),g.prevented)return void this.$element.val(f);this.$element.trigger("change"),this.trigger("toggle",{})}}},d.prototype._handleKeyboardClear=function(a,c,d){d.isOpen()||c.which!=b.DELETE&&c.which!=b.BACKSPACE||this._handleClear(c)},d.prototype.update=function(b,d){if(b.call(this,d),!(this.$selection.find(".select2-selection__placeholder").length>0||0===d.length)){var e=a('<span class="select2-selection__clear">&times;</span>');c.StoreData(e[0],"data",d),this.$selection.find(".select2-selection__rendered").prepend(e)}},d}),b.define("select2/selection/search",["jquery","../utils","../keys"],function(a,b,c){function d(a,b,c){a.call(this,b,c)}return d.prototype.render=function(b){var c=a('<li class="select2-search select2-search--inline"><input class="select2-search__field" type="search" tabindex="-1" autocomplete="off" autocorrect="off" autocapitalize="none" spellcheck="false" role="textbox" aria-autocomplete="list" /></li>');this.$searchContainer=c,this.$search=c.find("input");var d=b.call(this);return this._transferTabIndex(),d},d.prototype.bind=function(a,d,e){var f=this;a.call(this,d,e),d.on("open",function(){f.$search.trigger("focus")}),d.on("close",function(){f.$search.val(""),f.$search.removeAttr("aria-activedescendant"),f.$search.trigger("focus")}),d.on("enable",function(){f.$search.prop("disabled",!1),f._transferTabIndex()}),d.on("disable",function(){f.$search.prop("disabled",!0)}),d.on("focus",function(a){f.$search.trigger("focus")}),d.on("results:focus",function(a){f.$search.attr("aria-activedescendant",a.id)}),this.$selection.on("focusin",".select2-search--inline",function(a){f.trigger("focus",a)}),this.$selection.on("focusout",".select2-search--inline",function(a){f._handleBlur(a)}),this.$selection.on("keydown",".select2-search--inline",function(a){if(a.stopPropagation(),f.trigger("keypress",a),f._keyUpPrevented=a.isDefaultPrevented(),a.which===c.BACKSPACE&&""===f.$search.val()){var d=f.$searchContainer.prev(".select2-selection__choice");if(d.length>0){var e=b.GetData(d[0],"data");f.searchRemoveChoice(e),a.preventDefault()}}});var g=document.documentMode,h=g&&g<=11;this.$selection.on("input.searchcheck",".select2-search--inline",function(a){if(h)return void f.$selection.off("input.search input.searchcheck");f.$selection.off("keyup.search")}),this.$selection.on("keyup.search input.search",".select2-search--inline",function(a){if(h&&"input"===a.type)return void f.$selection.off("input.search input.searchcheck");var b=a.which;b!=c.SHIFT&&b!=c.CTRL&&b!=c.ALT&&b!=c.TAB&&f.handleSearch(a)})},d.prototype._transferTabIndex=function(a){this.$search.attr("tabindex",this.$selection.attr("tabindex")),this.$selection.attr("tabindex","-1")},d.prototype.createPlaceholder=function(a,b){this.$search.attr("placeholder",b.text)},d.prototype.update=function(a,b){var c=this.$search[0]==document.activeElement;if(this.$search.attr("placeholder",""),a.call(this,b),this.$selection.find(".select2-selection__rendered").append(this.$searchContainer),this.resizeSearch(),c){this.$element.find("[data-select2-tag]").length?this.$element.focus():this.$search.focus()}},d.prototype.handleSearch=function(){if(this.resizeSearch(),!this._keyUpPrevented){var a=this.$search.val();this.trigger("query",{term:a})}this._keyUpPrevented=!1},d.prototype.searchRemoveChoice=function(a,b){this.trigger("unselect",{data:b}),this.$search.val(b.text),this.handleSearch()},d.prototype.resizeSearch=function(){this.$search.css("width","25px");var a="";if(""!==this.$search.attr("placeholder"))a=this.$selection.find(".select2-selection__rendered").innerWidth();else{a=.75*(this.$search.val().length+1)+"em"}this.$search.css("width",a)},d}),b.define("select2/selection/eventRelay",["jquery"],function(a){function b(){}return b.prototype.bind=function(b,c,d){var e=this,f=["open","opening","close","closing","select","selecting","unselect","unselecting","clear","clearing"],g=["opening","closing","selecting","unselecting","clearing"];b.call(this,c,d),c.on("*",function(b,c){if(-1!==a.inArray(b,f)){c=c||{};var d=a.Event("select2:"+b,{params:c});e.$element.trigger(d),-1!==a.inArray(b,g)&&(c.prevented=d.isDefaultPrevented())}})},b}),b.define("select2/translation",["jquery","require"],function(a,b){function c(a){this.dict=a||{}}return c.prototype.all=function(){return this.dict},c.prototype.get=function(a){return this.dict[a]},c.prototype.extend=function(b){this.dict=a.extend({},b.all(),this.dict)},c._cache={},c.loadPath=function(a){if(!(a in c._cache)){var d=b(a);c._cache[a]=d}return new c(c._cache[a])},c}),b.define("select2/diacritics",[],function(){return{"Ⓐ":"A","Ａ":"A","À":"A","Á":"A","Â":"A","Ầ":"A","Ấ":"A","Ẫ":"A","Ẩ":"A","Ã":"A","Ā":"A","Ă":"A","Ằ":"A","Ắ":"A","Ẵ":"A","Ẳ":"A","Ȧ":"A","Ǡ":"A","Ä":"A","Ǟ":"A","Ả":"A","Å":"A","Ǻ":"A","Ǎ":"A","Ȁ":"A","Ȃ":"A","Ạ":"A","Ậ":"A","Ặ":"A","Ḁ":"A","Ą":"A","Ⱥ":"A","Ɐ":"A","Ꜳ":"AA","Æ":"AE","Ǽ":"AE","Ǣ":"AE","Ꜵ":"AO","Ꜷ":"AU","Ꜹ":"AV","Ꜻ":"AV","Ꜽ":"AY","Ⓑ":"B","Ｂ":"B","Ḃ":"B","Ḅ":"B","Ḇ":"B","Ƀ":"B","Ƃ":"B","Ɓ":"B","Ⓒ":"C","Ｃ":"C","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","Ç":"C","Ḉ":"C","Ƈ":"C","Ȼ":"C","Ꜿ":"C","Ⓓ":"D","Ｄ":"D","Ḋ":"D","Ď":"D","Ḍ":"D","Ḑ":"D","Ḓ":"D","Ḏ":"D","Đ":"D","Ƌ":"D","Ɗ":"D","Ɖ":"D","Ꝺ":"D","Ǳ":"DZ","Ǆ":"DZ","ǲ":"Dz","ǅ":"Dz","Ⓔ":"E","Ｅ":"E","È":"E","É":"E","Ê":"E","Ề":"E","Ế":"E","Ễ":"E","Ể":"E","Ẽ":"E","Ē":"E","Ḕ":"E","Ḗ":"E","Ĕ":"E","Ė":"E","Ë":"E","Ẻ":"E","Ě":"E","Ȅ":"E","Ȇ":"E","Ẹ":"E","Ệ":"E","Ȩ":"E","Ḝ":"E","Ę":"E","Ḙ":"E","Ḛ":"E","Ɛ":"E","Ǝ":"E","Ⓕ":"F","Ｆ":"F","Ḟ":"F","Ƒ":"F","Ꝼ":"F","Ⓖ":"G","Ｇ":"G","Ǵ":"G","Ĝ":"G","Ḡ":"G","Ğ":"G","Ġ":"G","Ǧ":"G","Ģ":"G","Ǥ":"G","Ɠ":"G","Ꞡ":"G","Ᵹ":"G","Ꝿ":"G","Ⓗ":"H","Ｈ":"H","Ĥ":"H","Ḣ":"H","Ḧ":"H","Ȟ":"H","Ḥ":"H","Ḩ":"H","Ḫ":"H","Ħ":"H","Ⱨ":"H","Ⱶ":"H","Ɥ":"H","Ⓘ":"I","Ｉ":"I","Ì":"I","Í":"I","Î":"I","Ĩ":"I","Ī":"I","Ĭ":"I","İ":"I","Ï":"I","Ḯ":"I","Ỉ":"I","Ǐ":"I","Ȉ":"I","Ȋ":"I","Ị":"I","Į":"I","Ḭ":"I","Ɨ":"I","Ⓙ":"J","Ｊ":"J","Ĵ":"J","Ɉ":"J","Ⓚ":"K","Ｋ":"K","Ḱ":"K","Ǩ":"K","Ḳ":"K","Ķ":"K","Ḵ":"K","Ƙ":"K","Ⱪ":"K","Ꝁ":"K","Ꝃ":"K","Ꝅ":"K","Ꞣ":"K","Ⓛ":"L","Ｌ":"L","Ŀ":"L","Ĺ":"L","Ľ":"L","Ḷ":"L","Ḹ":"L","Ļ":"L","Ḽ":"L","Ḻ":"L","Ł":"L","Ƚ":"L","Ɫ":"L","Ⱡ":"L","Ꝉ":"L","Ꝇ":"L","Ꞁ":"L","Ǉ":"LJ","ǈ":"Lj","Ⓜ":"M","Ｍ":"M","Ḿ":"M","Ṁ":"M","Ṃ":"M","Ɱ":"M","Ɯ":"M","Ⓝ":"N","Ｎ":"N","Ǹ":"N","Ń":"N","Ñ":"N","Ṅ":"N","Ň":"N","Ṇ":"N","Ņ":"N","Ṋ":"N","Ṉ":"N","Ƞ":"N","Ɲ":"N","Ꞑ":"N","Ꞥ":"N","Ǌ":"NJ","ǋ":"Nj","Ⓞ":"O","Ｏ":"O","Ò":"O","Ó":"O","Ô":"O","Ồ":"O","Ố":"O","Ỗ":"O","Ổ":"O","Õ":"O","Ṍ":"O","Ȭ":"O","Ṏ":"O","Ō":"O","Ṑ":"O","Ṓ":"O","Ŏ":"O","Ȯ":"O","Ȱ":"O","Ö":"O","Ȫ":"O","Ỏ":"O","Ő":"O","Ǒ":"O","Ȍ":"O","Ȏ":"O","Ơ":"O","Ờ":"O","Ớ":"O","Ỡ":"O","Ở":"O","Ợ":"O","Ọ":"O","Ộ":"O","Ǫ":"O","Ǭ":"O","Ø":"O","Ǿ":"O","Ɔ":"O","Ɵ":"O","Ꝋ":"O","Ꝍ":"O","Ƣ":"OI","Ꝏ":"OO","Ȣ":"OU","Ⓟ":"P","Ｐ":"P","Ṕ":"P","Ṗ":"P","Ƥ":"P","Ᵽ":"P","Ꝑ":"P","Ꝓ":"P","Ꝕ":"P","Ⓠ":"Q","Ｑ":"Q","Ꝗ":"Q","Ꝙ":"Q","Ɋ":"Q","Ⓡ":"R","Ｒ":"R","Ŕ":"R","Ṙ":"R","Ř":"R","Ȑ":"R","Ȓ":"R","Ṛ":"R","Ṝ":"R","Ŗ":"R","Ṟ":"R","Ɍ":"R","Ɽ":"R","Ꝛ":"R","Ꞧ":"R","Ꞃ":"R","Ⓢ":"S","Ｓ":"S","ẞ":"S","Ś":"S","Ṥ":"S","Ŝ":"S","Ṡ":"S","Š":"S","Ṧ":"S","Ṣ":"S","Ṩ":"S","Ș":"S","Ş":"S","Ȿ":"S","Ꞩ":"S","Ꞅ":"S","Ⓣ":"T","Ｔ":"T","Ṫ":"T","Ť":"T","Ṭ":"T","Ț":"T","Ţ":"T","Ṱ":"T","Ṯ":"T","Ŧ":"T","Ƭ":"T","Ʈ":"T","Ⱦ":"T","Ꞇ":"T","Ꜩ":"TZ","Ⓤ":"U","Ｕ":"U","Ù":"U","Ú":"U","Û":"U","Ũ":"U","Ṹ":"U","Ū":"U","Ṻ":"U","Ŭ":"U","Ü":"U","Ǜ":"U","Ǘ":"U","Ǖ":"U","Ǚ":"U","Ủ":"U","Ů":"U","Ű":"U","Ǔ":"U","Ȕ":"U","Ȗ":"U","Ư":"U","Ừ":"U","Ứ":"U","Ữ":"U","Ử":"U","Ự":"U","Ụ":"U","Ṳ":"U","Ų":"U","Ṷ":"U","Ṵ":"U","Ʉ":"U","Ⓥ":"V","Ｖ":"V","Ṽ":"V","Ṿ":"V","Ʋ":"V","Ꝟ":"V","Ʌ":"V","Ꝡ":"VY","Ⓦ":"W","Ｗ":"W","Ẁ":"W","Ẃ":"W","Ŵ":"W","Ẇ":"W","Ẅ":"W","Ẉ":"W","Ⱳ":"W","Ⓧ":"X","Ｘ":"X","Ẋ":"X","Ẍ":"X","Ⓨ":"Y","Ｙ":"Y","Ỳ":"Y","Ý":"Y","Ŷ":"Y","Ỹ":"Y","Ȳ":"Y","Ẏ":"Y","Ÿ":"Y","Ỷ":"Y","Ỵ":"Y","Ƴ":"Y","Ɏ":"Y","Ỿ":"Y","Ⓩ":"Z","Ｚ":"Z","Ź":"Z","Ẑ":"Z","Ż":"Z","Ž":"Z","Ẓ":"Z","Ẕ":"Z","Ƶ":"Z","Ȥ":"Z","Ɀ":"Z","Ⱬ":"Z","Ꝣ":"Z","ⓐ":"a","ａ":"a","ẚ":"a","à":"a","á":"a","â":"a","ầ":"a","ấ":"a","ẫ":"a","ẩ":"a","ã":"a","ā":"a","ă":"a","ằ":"a","ắ":"a","ẵ":"a","ẳ":"a","ȧ":"a","ǡ":"a","ä":"a","ǟ":"a","ả":"a","å":"a","ǻ":"a","ǎ":"a","ȁ":"a","ȃ":"a","ạ":"a","ậ":"a","ặ":"a","ḁ":"a","ą":"a","ⱥ":"a","ɐ":"a","ꜳ":"aa","æ":"ae","ǽ":"ae","ǣ":"ae","ꜵ":"ao","ꜷ":"au","ꜹ":"av","ꜻ":"av","ꜽ":"ay","ⓑ":"b","ｂ":"b","ḃ":"b","ḅ":"b","ḇ":"b","ƀ":"b","ƃ":"b","ɓ":"b","ⓒ":"c","ｃ":"c","ć":"c","ĉ":"c","ċ":"c","č":"c","ç":"c","ḉ":"c","ƈ":"c","ȼ":"c","ꜿ":"c","ↄ":"c","ⓓ":"d","ｄ":"d","ḋ":"d","ď":"d","ḍ":"d","ḑ":"d","ḓ":"d","ḏ":"d","đ":"d","ƌ":"d","ɖ":"d","ɗ":"d","ꝺ":"d","ǳ":"dz","ǆ":"dz","ⓔ":"e","ｅ":"e","è":"e","é":"e","ê":"e","ề":"e","ế":"e","ễ":"e","ể":"e","ẽ":"e","ē":"e","ḕ":"e","ḗ":"e","ĕ":"e","ė":"e","ë":"e","ẻ":"e","ě":"e","ȅ":"e","ȇ":"e","ẹ":"e","ệ":"e","ȩ":"e","ḝ":"e","ę":"e","ḙ":"e","ḛ":"e","ɇ":"e","ɛ":"e","ǝ":"e","ⓕ":"f","ｆ":"f","ḟ":"f","ƒ":"f","ꝼ":"f","ⓖ":"g","ｇ":"g","ǵ":"g","ĝ":"g","ḡ":"g","ğ":"g","ġ":"g","ǧ":"g","ģ":"g","ǥ":"g","ɠ":"g","ꞡ":"g","ᵹ":"g","ꝿ":"g","ⓗ":"h","ｈ":"h","ĥ":"h","ḣ":"h","ḧ":"h","ȟ":"h","ḥ":"h","ḩ":"h","ḫ":"h","ẖ":"h","ħ":"h","ⱨ":"h","ⱶ":"h","ɥ":"h","ƕ":"hv","ⓘ":"i","ｉ":"i","ì":"i","í":"i","î":"i","ĩ":"i","ī":"i","ĭ":"i","ï":"i","ḯ":"i","ỉ":"i","ǐ":"i","ȉ":"i","ȋ":"i","ị":"i","į":"i","ḭ":"i","ɨ":"i","ı":"i","ⓙ":"j","ｊ":"j","ĵ":"j","ǰ":"j","ɉ":"j","ⓚ":"k","ｋ":"k","ḱ":"k","ǩ":"k","ḳ":"k","ķ":"k","ḵ":"k","ƙ":"k","ⱪ":"k","ꝁ":"k","ꝃ":"k","ꝅ":"k","ꞣ":"k","ⓛ":"l","ｌ":"l","ŀ":"l","ĺ":"l","ľ":"l","ḷ":"l","ḹ":"l","ļ":"l","ḽ":"l","ḻ":"l","ſ":"l","ł":"l","ƚ":"l","ɫ":"l","ⱡ":"l","ꝉ":"l","ꞁ":"l","ꝇ":"l","ǉ":"lj","ⓜ":"m","ｍ":"m","ḿ":"m","ṁ":"m","ṃ":"m","ɱ":"m","ɯ":"m","ⓝ":"n","ｎ":"n","ǹ":"n","ń":"n","ñ":"n","ṅ":"n","ň":"n","ṇ":"n","ņ":"n","ṋ":"n","ṉ":"n","ƞ":"n","ɲ":"n","ŉ":"n","ꞑ":"n","ꞥ":"n","ǌ":"nj","ⓞ":"o","ｏ":"o","ò":"o","ó":"o","ô":"o","ồ":"o","ố":"o","ỗ":"o","ổ":"o","õ":"o","ṍ":"o","ȭ":"o","ṏ":"o","ō":"o","ṑ":"o","ṓ":"o","ŏ":"o","ȯ":"o","ȱ":"o","ö":"o","ȫ":"o","ỏ":"o","ő":"o","ǒ":"o","ȍ":"o","ȏ":"o","ơ":"o","ờ":"o","ớ":"o","ỡ":"o","ở":"o","ợ":"o","ọ":"o","ộ":"o","ǫ":"o","ǭ":"o","ø":"o","ǿ":"o","ɔ":"o","ꝋ":"o","ꝍ":"o","ɵ":"o","ƣ":"oi","ȣ":"ou","ꝏ":"oo","ⓟ":"p","ｐ":"p","ṕ":"p","ṗ":"p","ƥ":"p","ᵽ":"p","ꝑ":"p","ꝓ":"p","ꝕ":"p","ⓠ":"q","ｑ":"q","ɋ":"q","ꝗ":"q","ꝙ":"q","ⓡ":"r","ｒ":"r","ŕ":"r","ṙ":"r","ř":"r","ȑ":"r","ȓ":"r","ṛ":"r","ṝ":"r","ŗ":"r","ṟ":"r","ɍ":"r","ɽ":"r","ꝛ":"r","ꞧ":"r","ꞃ":"r","ⓢ":"s","ｓ":"s","ß":"s","ś":"s","ṥ":"s","ŝ":"s","ṡ":"s","š":"s","ṧ":"s","ṣ":"s","ṩ":"s","ș":"s","ş":"s","ȿ":"s","ꞩ":"s","ꞅ":"s","ẛ":"s","ⓣ":"t","ｔ":"t","ṫ":"t","ẗ":"t","ť":"t","ṭ":"t","ț":"t","ţ":"t","ṱ":"t","ṯ":"t","ŧ":"t","ƭ":"t","ʈ":"t","ⱦ":"t","ꞇ":"t","ꜩ":"tz","ⓤ":"u","ｕ":"u","ù":"u","ú":"u","û":"u","ũ":"u","ṹ":"u","ū":"u","ṻ":"u","ŭ":"u","ü":"u","ǜ":"u","ǘ":"u","ǖ":"u","ǚ":"u","ủ":"u","ů":"u","ű":"u","ǔ":"u","ȕ":"u","ȗ":"u","ư":"u","ừ":"u","ứ":"u","ữ":"u","ử":"u","ự":"u","ụ":"u","ṳ":"u","ų":"u","ṷ":"u","ṵ":"u","ʉ":"u","ⓥ":"v","ｖ":"v","ṽ":"v","ṿ":"v","ʋ":"v","ꝟ":"v","ʌ":"v","ꝡ":"vy","ⓦ":"w","ｗ":"w","ẁ":"w","ẃ":"w","ŵ":"w","ẇ":"w","ẅ":"w","ẘ":"w","ẉ":"w","ⱳ":"w","ⓧ":"x","ｘ":"x","ẋ":"x","ẍ":"x","ⓨ":"y","ｙ":"y","ỳ":"y","ý":"y","ŷ":"y","ỹ":"y","ȳ":"y","ẏ":"y","ÿ":"y","ỷ":"y","ẙ":"y","ỵ":"y","ƴ":"y","ɏ":"y","ỿ":"y","ⓩ":"z","ｚ":"z","ź":"z","ẑ":"z","ż":"z","ž":"z","ẓ":"z","ẕ":"z","ƶ":"z","ȥ":"z","ɀ":"z","ⱬ":"z","ꝣ":"z","Ά":"Α","Έ":"Ε","Ή":"Η","Ί":"Ι","Ϊ":"Ι","Ό":"Ο","Ύ":"Υ","Ϋ":"Υ","Ώ":"Ω","ά":"α","έ":"ε","ή":"η","ί":"ι","ϊ":"ι","ΐ":"ι","ό":"ο","ύ":"υ","ϋ":"υ","ΰ":"υ","ω":"ω","ς":"σ"}}),b.define("select2/data/base",["../utils"],function(a){function b(a,c){b.__super__.constructor.call(this)}return a.Extend(b,a.Observable),b.prototype.current=function(a){throw new Error("The `current` method must be defined in child classes.")},b.prototype.query=function(a,b){throw new Error("The `query` method must be defined in child classes.")},b.prototype.bind=function(a,b){},b.prototype.destroy=function(){},b.prototype.generateResultId=function(b,c){var d=b.id+"-result-";return d+=a.generateChars(4),null!=c.id?d+="-"+c.id.toString():d+="-"+a.generateChars(4),d},b}),b.define("select2/data/select",["./base","../utils","jquery"],function(a,b,c){function d(a,b){this.$element=a,this.options=b,d.__super__.constructor.call(this)}return b.Extend(d,a),d.prototype.current=function(a){var b=[],d=this;this.$element.find(":selected").each(function(){var a=c(this),e=d.item(a);b.push(e)}),a(b)},d.prototype.select=function(a){var b=this;if(a.selected=!0,c(a.element).is("option"))return a.element.selected=!0,void this.$element.trigger("change");if(this.$element.prop("multiple"))this.current(function(d){var e=[];a=[a],a.push.apply(a,d);for(var f=0;f<a.length;f++){var g=a[f].id;-1===c.inArray(g,e)&&e.push(g)}b.$element.val(e),b.$element.trigger("change")});else{var d=a.id;this.$element.val(d),this.$element.trigger("change")}},d.prototype.unselect=function(a){var b=this;if(this.$element.prop("multiple")){if(a.selected=!1,c(a.element).is("option"))return a.element.selected=!1,void this.$element.trigger("change");this.current(function(d){for(var e=[],f=0;f<d.length;f++){var g=d[f].id;g!==a.id&&-1===c.inArray(g,e)&&e.push(g)}b.$element.val(e),b.$element.trigger("change")})}},d.prototype.bind=function(a,b){var c=this;this.container=a,a.on("select",function(a){c.select(a.data)}),a.on("unselect",function(a){c.unselect(a.data)})},d.prototype.destroy=function(){this.$element.find("*").each(function(){b.RemoveData(this)})},d.prototype.query=function(a,b){var d=[],e=this;this.$element.children().each(function(){var b=c(this);if(b.is("option")||b.is("optgroup")){var f=e.item(b),g=e.matches(a,f);null!==g&&d.push(g)}}),b({results:d})},d.prototype.addOptions=function(a){b.appendMany(this.$element,a)},d.prototype.option=function(a){var d;a.children?(d=document.createElement("optgroup"),d.label=a.text):(d=document.createElement("option"),void 0!==d.textContent?d.textContent=a.text:d.innerText=a.text),void 0!==a.id&&(d.value=a.id),a.disabled&&(d.disabled=!0),a.selected&&(d.selected=!0),a.title&&(d.title=a.title);var e=c(d),f=this._normalizeItem(a);return f.element=d,b.StoreData(d,"data",f),e},d.prototype.item=function(a){var d={};if(null!=(d=b.GetData(a[0],"data")))return d;if(a.is("option"))d={id:a.val(),text:a.text(),disabled:a.prop("disabled"),selected:a.prop("selected"),title:a.prop("title")};else if(a.is("optgroup")){d={text:a.prop("label"),children:[],title:a.prop("title")};for(var e=a.children("option"),f=[],g=0;g<e.length;g++){var h=c(e[g]),i=this.item(h);f.push(i)}d.children=f}return d=this._normalizeItem(d),d.element=a[0],b.StoreData(a[0],"data",d),d},d.prototype._normalizeItem=function(a){a!==Object(a)&&(a={id:a,text:a}),a=c.extend({},{text:""},a);var b={selected:!1,disabled:!1};return null!=a.id&&(a.id=a.id.toString()),null!=a.text&&(a.text=a.text.toString()),null==a._resultId&&a.id&&null!=this.container&&(a._resultId=this.generateResultId(this.container,a)),c.extend({},b,a)},d.prototype.matches=function(a,b){return this.options.get("matcher")(a,b)},d}),b.define("select2/data/array",["./select","../utils","jquery"],function(a,b,c){function d(a,b){var c=b.get("data")||[];d.__super__.constructor.call(this,a,b),this.addOptions(this.convertToOptions(c))}return b.Extend(d,a),d.prototype.select=function(a){var b=this.$element.find("option").filter(function(b,c){return c.value==a.id.toString()});0===b.length&&(b=this.option(a),this.addOptions(b)),d.__super__.select.call(this,a)},d.prototype.convertToOptions=function(a){function d(a){return function(){return c(this).val()==a.id}}for(var e=this,f=this.$element.find("option"),g=f.map(function(){return e.item(c(this)).id}).get(),h=[],i=0;i<a.length;i++){var j=this._normalizeItem(a[i]);if(c.inArray(j.id,g)>=0){var k=f.filter(d(j)),l=this.item(k),m=c.extend(!0,{},j,l),n=this.option(m);k.replaceWith(n)}else{var o=this.option(j);if(j.children){var p=this.convertToOptions(j.children);b.appendMany(o,p)}h.push(o)}}return h},d}),b.define("select2/data/ajax",["./array","../utils","jquery"],function(a,b,c){function d(a,b){this.ajaxOptions=this._applyDefaults(b.get("ajax")),null!=this.ajaxOptions.processResults&&(this.processResults=this.ajaxOptions.processResults),d.__super__.constructor.call(this,a,b)}return b.Extend(d,a),d.prototype._applyDefaults=function(a){var b={data:function(a){return c.extend({},a,{q:a.term})},transport:function(a,b,d){var e=c.ajax(a);return e.then(b),e.fail(d),e}};return c.extend({},b,a,!0)},d.prototype.processResults=function(a){return a},d.prototype.query=function(a,b){function d(){var d=f.transport(f,function(d){var f=e.processResults(d,a);e.options.get("debug")&&window.console&&console.error&&(f&&f.results&&c.isArray(f.results)||console.error("Select2: The AJAX results did not return an array in the `results` key of the response.")),b(f)},function(){"status"in d&&(0===d.status||"0"===d.status)||e.trigger("results:message",{message:"errorLoading"})});e._request=d}var e=this;null!=this._request&&(c.isFunction(this._request.abort)&&this._request.abort(),this._request=null);var f=c.extend({type:"GET"},this.ajaxOptions);"function"==typeof f.url&&(f.url=f.url.call(this.$element,a)),"function"==typeof f.data&&(f.data=f.data.call(this.$element,a)),this.ajaxOptions.delay&&null!=a.term?(this._queryTimeout&&window.clearTimeout(this._queryTimeout),this._queryTimeout=window.setTimeout(d,this.ajaxOptions.delay)):d()},d}),b.define("select2/data/tags",["jquery"],function(a){function b(b,c,d){var e=d.get("tags"),f=d.get("createTag");void 0!==f&&(this.createTag=f);var g=d.get("insertTag");if(void 0!==g&&(this.insertTag=g),b.call(this,c,d),a.isArray(e))for(var h=0;h<e.length;h++){var i=e[h],j=this._normalizeItem(i),k=this.option(j);this.$element.append(k)}}return b.prototype.query=function(a,b,c){function d(a,f){for(var g=a.results,h=0;h<g.length;h++){var i=g[h],j=null!=i.children&&!d({results:i.children},!0);if((i.text||"").toUpperCase()===(b.term||"").toUpperCase()||j)return!f&&(a.data=g,void c(a))}if(f)return!0;var k=e.createTag(b);if(null!=k){var l=e.option(k);l.attr("data-select2-tag",!0),e.addOptions([l]),e.insertTag(g,k)}a.results=g,c(a)}var e=this;if(this._removeOldTags(),null==b.term||null!=b.page)return void a.call(this,b,c);a.call(this,b,d)},b.prototype.createTag=function(b,c){var d=a.trim(c.term);return""===d?null:{id:d,text:d}},b.prototype.insertTag=function(a,b,c){b.unshift(c)},b.prototype._removeOldTags=function(b){this._lastTag;this.$element.find("option[data-select2-tag]").each(function(){this.selected||a(this).remove()})},b}),b.define("select2/data/tokenizer",["jquery"],function(a){function b(a,b,c){var d=c.get("tokenizer");void 0!==d&&(this.tokenizer=d),a.call(this,b,c)}return b.prototype.bind=function(a,b,c){a.call(this,b,c),this.$search=b.dropdown.$search||b.selection.$search||c.find(".select2-search__field")},b.prototype.query=function(b,c,d){function e(b){var c=g._normalizeItem(b);if(!g.$element.find("option").filter(function(){return a(this).val()===c.id}).length){var d=g.option(c);d.attr("data-select2-tag",!0),g._removeOldTags(),g.addOptions([d])}f(c)}function f(a){g.trigger("select",{data:a})}var g=this;c.term=c.term||"";var h=this.tokenizer(c,this.options,e);h.term!==c.term&&(this.$search.length&&(this.$search.val(h.term),this.$search.focus()),c.term=h.term),b.call(this,c,d)},b.prototype.tokenizer=function(b,c,d,e){for(var f=d.get("tokenSeparators")||[],g=c.term,h=0,i=this.createTag||function(a){return{id:a.term,text:a.term}};h<g.length;){var j=g[h];if(-1!==a.inArray(j,f)){var k=g.substr(0,h),l=a.extend({},c,{term:k}),m=i(l);null!=m?(e(m),g=g.substr(h+1)||"",h=0):h++}else h++}return{term:g}},b}),b.define("select2/data/minimumInputLength",[],function(){function a(a,b,c){this.minimumInputLength=c.get("minimumInputLength"),a.call(this,b,c)}return a.prototype.query=function(a,b,c){if(b.term=b.term||"",b.term.length<this.minimumInputLength)return void this.trigger("results:message",{message:"inputTooShort",args:{minimum:this.minimumInputLength,input:b.term,params:b}});a.call(this,b,c)},a}),b.define("select2/data/maximumInputLength",[],function(){function a(a,b,c){this.maximumInputLength=c.get("maximumInputLength"),a.call(this,b,c)}return a.prototype.query=function(a,b,c){if(b.term=b.term||"",this.maximumInputLength>0&&b.term.length>this.maximumInputLength)return void this.trigger("results:message",{message:"inputTooLong",args:{maximum:this.maximumInputLength,input:b.term,params:b}});a.call(this,b,c)},a}),b.define("select2/data/maximumSelectionLength",[],function(){function a(a,b,c){this.maximumSelectionLength=c.get("maximumSelectionLength"),a.call(this,b,c)}return a.prototype.query=function(a,b,c){var d=this;this.current(function(e){var f=null!=e?e.length:0;if(d.maximumSelectionLength>0&&f>=d.maximumSelectionLength)return void d.trigger("results:message",{message:"maximumSelected",args:{maximum:d.maximumSelectionLength}});a.call(d,b,c)})},a}),b.define("select2/dropdown",["jquery","./utils"],function(a,b){function c(a,b){this.$element=a,this.options=b,c.__super__.constructor.call(this)}return b.Extend(c,b.Observable),c.prototype.render=function(){var b=a('<span class="select2-dropdown"><span class="select2-results"></span></span>');return b.attr("dir",this.options.get("dir")),this.$dropdown=b,b},c.prototype.bind=function(){},c.prototype.position=function(a,b){},c.prototype.destroy=function(){this.$dropdown.remove()},c}),b.define("select2/dropdown/search",["jquery","../utils"],function(a,b){function c(){}return c.prototype.render=function(b){var c=b.call(this),d=a('<span class="select2-search select2-search--dropdown"><input class="select2-search__field" type="search" tabindex="-1" autocomplete="off" autocorrect="off" autocapitalize="none" spellcheck="false" role="textbox" /></span>');return this.$searchContainer=d,this.$search=d.find("input"),c.prepend(d),c},c.prototype.bind=function(b,c,d){var e=this;b.call(this,c,d),this.$search.on("keydown",function(a){e.trigger("keypress",a),e._keyUpPrevented=a.isDefaultPrevented()}),this.$search.on("input",function(b){a(this).off("keyup")}),this.$search.on("keyup input",function(a){e.handleSearch(a)}),c.on("open",function(){e.$search.attr("tabindex",0),e.$search.focus(),window.setTimeout(function(){e.$search.focus()},0)}),c.on("close",function(){e.$search.attr("tabindex",-1),e.$search.val(""),e.$search.blur()}),c.on("focus",function(){c.isOpen()||e.$search.focus()}),c.on("results:all",function(a){if(null==a.query.term||""===a.query.term){e.showSearch(a)?e.$searchContainer.removeClass("select2-search--hide"):e.$searchContainer.addClass("select2-search--hide")}})},c.prototype.handleSearch=function(a){if(!this._keyUpPrevented){var b=this.$search.val();this.trigger("query",{term:b})}this._keyUpPrevented=!1},c.prototype.showSearch=function(a,b){return!0},c}),b.define("select2/dropdown/hidePlaceholder",[],function(){function a(a,b,c,d){this.placeholder=this.normalizePlaceholder(c.get("placeholder")),a.call(this,b,c,d)}return a.prototype.append=function(a,b){b.results=this.removePlaceholder(b.results),a.call(this,b)},a.prototype.normalizePlaceholder=function(a,b){return"string"==typeof b&&(b={id:"",text:b}),b},a.prototype.removePlaceholder=function(a,b){for(var c=b.slice(0),d=b.length-1;d>=0;d--){var e=b[d];this.placeholder.id===e.id&&c.splice(d,1)}return c},a}),b.define("select2/dropdown/infiniteScroll",["jquery"],function(a){function b(a,b,c,d){this.lastParams={},a.call(this,b,c,d),this.$loadingMore=this.createLoadingMore(),this.loading=!1}return b.prototype.append=function(a,b){this.$loadingMore.remove(),this.loading=!1,a.call(this,b),this.showLoadingMore(b)&&this.$results.append(this.$loadingMore)},b.prototype.bind=function(b,c,d){var e=this;b.call(this,c,d),c.on("query",function(a){e.lastParams=a,e.loading=!0}),c.on("query:append",function(a){e.lastParams=a,e.loading=!0}),this.$results.on("scroll",function(){var b=a.contains(document.documentElement,e.$loadingMore[0]);if(!e.loading&&b){e.$results.offset().top+e.$results.outerHeight(!1)+50>=e.$loadingMore.offset().top+e.$loadingMore.outerHeight(!1)&&e.loadMore()}})},b.prototype.loadMore=function(){this.loading=!0;var b=a.extend({},{page:1},this.lastParams);b.page++,this.trigger("query:append",b)},b.prototype.showLoadingMore=function(a,b){return b.pagination&&b.pagination.more},b.prototype.createLoadingMore=function(){var b=a('<li class="select2-results__option select2-results__option--load-more"role="treeitem" aria-disabled="true"></li>'),c=this.options.get("translations").get("loadingMore");return b.html(c(this.lastParams)),b},b}),b.define("select2/dropdown/attachBody",["jquery","../utils"],function(a,b){function c(b,c,d){this.$dropdownParent=d.get("dropdownParent")||a(document.body),b.call(this,c,d)}return c.prototype.bind=function(a,b,c){var d=this,e=!1;a.call(this,b,c),b.on("open",function(){d._showDropdown(),d._attachPositioningHandler(b),e||(e=!0,b.on("results:all",function(){d._positionDropdown(),d._resizeDropdown()}),b.on("results:append",function(){d._positionDropdown(),d._resizeDropdown()}))}),b.on("close",function(){d._hideDropdown(),d._detachPositioningHandler(b)}),this.$dropdownContainer.on("mousedown",function(a){a.stopPropagation()})},c.prototype.destroy=function(a){a.call(this),this.$dropdownContainer.remove()},c.prototype.position=function(a,b,c){b.attr("class",c.attr("class")),b.removeClass("select2"),b.addClass("select2-container--open"),b.css({position:"absolute",top:-999999}),this.$container=c},c.prototype.render=function(b){var c=a("<span></span>"),d=b.call(this);return c.append(d),this.$dropdownContainer=c,c},c.prototype._hideDropdown=function(a){this.$dropdownContainer.detach()},c.prototype._attachPositioningHandler=function(c,d){var e=this,f="scroll.select2."+d.id,g="resize.select2."+d.id,h="orientationchange.select2."+d.id,i=this.$container.parents().filter(b.hasScroll);i.each(function(){b.StoreData(this,"select2-scroll-position",{x:a(this).scrollLeft(),y:a(this).scrollTop()})}),i.on(f,function(c){var d=b.GetData(this,"select2-scroll-position");a(this).scrollTop(d.y)}),a(window).on(f+" "+g+" "+h,function(a){e._positionDropdown(),e._resizeDropdown()})},c.prototype._detachPositioningHandler=function(c,d){var e="scroll.select2."+d.id,f="resize.select2."+d.id,g="orientationchange.select2."+d.id;this.$container.parents().filter(b.hasScroll).off(e),a(window).off(e+" "+f+" "+g)},c.prototype._positionDropdown=function(){var b=a(window),c=this.$dropdown.hasClass("select2-dropdown--above"),d=this.$dropdown.hasClass("select2-dropdown--below"),e=null,f=this.$container.offset();f.bottom=f.top+this.$container.outerHeight(!1);var g={height:this.$container.outerHeight(!1)};g.top=f.top,g.bottom=f.top+g.height;var h={height:this.$dropdown.outerHeight(!1)},i={top:b.scrollTop(),bottom:b.scrollTop()+b.height()},j=i.top<f.top-h.height,k=i.bottom>f.bottom+h.height,l={left:f.left,top:g.bottom},m=this.$dropdownParent;"static"===m.css("position")&&(m=m.offsetParent());var n=m.offset();l.top-=n.top,l.left-=n.left,c||d||(e="below"),k||!j||c?!j&&k&&c&&(e="below"):e="above",("above"==e||c&&"below"!==e)&&(l.top=g.top-n.top-h.height),null!=e&&(this.$dropdown.removeClass("select2-dropdown--below select2-dropdown--above").addClass("select2-dropdown--"+e),this.$container.removeClass("select2-container--below select2-container--above").addClass("select2-container--"+e)),this.$dropdownContainer.css(l)},c.prototype._resizeDropdown=function(){var a={width:this.$container.outerWidth(!1)+"px"};this.options.get("dropdownAutoWidth")&&(a.minWidth=a.width,a.position="relative",a.width="auto"),this.$dropdown.css(a)},c.prototype._showDropdown=function(a){this.$dropdownContainer.appendTo(this.$dropdownParent),this._positionDropdown(),this._resizeDropdown()},c}),b.define("select2/dropdown/minimumResultsForSearch",[],function(){function a(b){for(var c=0,d=0;d<b.length;d++){var e=b[d];e.children?c+=a(e.children):c++}return c}function b(a,b,c,d){this.minimumResultsForSearch=c.get("minimumResultsForSearch"),this.minimumResultsForSearch<0&&(this.minimumResultsForSearch=1/0),a.call(this,b,c,d)}return b.prototype.showSearch=function(b,c){return!(a(c.data.results)<this.minimumResultsForSearch)&&b.call(this,c)},b}),b.define("select2/dropdown/selectOnClose",["../utils"],function(a){function b(){}return b.prototype.bind=function(a,b,c){var d=this;a.call(this,b,c),b.on("close",function(a){d._handleSelectOnClose(a)})},b.prototype._handleSelectOnClose=function(b,c){if(c&&null!=c.originalSelect2Event){var d=c.originalSelect2Event;if("select"===d._type||"unselect"===d._type)return}var e=this.getHighlightedResults();if(!(e.length<1)){var f=a.GetData(e[0],"data");null!=f.element&&f.element.selected||null==f.element&&f.selected||this.trigger("select",{data:f})}},b}),b.define("select2/dropdown/closeOnSelect",[],function(){function a(){}return a.prototype.bind=function(a,b,c){var d=this;a.call(this,b,c),b.on("select",function(a){d._selectTriggered(a)}),b.on("unselect",function(a){d._selectTriggered(a)})},a.prototype._selectTriggered=function(a,b){var c=b.originalEvent;c&&c.ctrlKey||this.trigger("close",{originalEvent:c,originalSelect2Event:b})},a}),b.define("select2/i18n/en",[],function(){return{errorLoading:function(){return"The results could not be loaded."},inputTooLong:function(a){var b=a.input.length-a.maximum,c="Please delete "+b+" character";return 1!=b&&(c+="s"),c},inputTooShort:function(a){return"Please enter "+(a.minimum-a.input.length)+" or more characters"},loadingMore:function(){return"Loading more results…"},maximumSelected:function(a){var b="You can only select "+a.maximum+" item";return 1!=a.maximum&&(b+="s"),b},noResults:function(){return"No results found"},searching:function(){return"Searching…"}}}),b.define("select2/defaults",["jquery","require","./results","./selection/single","./selection/multiple","./selection/placeholder","./selection/allowClear","./selection/search","./selection/eventRelay","./utils","./translation","./diacritics","./data/select","./data/array","./data/ajax","./data/tags","./data/tokenizer","./data/minimumInputLength","./data/maximumInputLength","./data/maximumSelectionLength","./dropdown","./dropdown/search","./dropdown/hidePlaceholder","./dropdown/infiniteScroll","./dropdown/attachBody","./dropdown/minimumResultsForSearch","./dropdown/selectOnClose","./dropdown/closeOnSelect","./i18n/en"],function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C){function D(){this.reset()}return D.prototype.apply=function(l){if(l=a.extend(!0,{},this.defaults,l),null==l.dataAdapter){if(null!=l.ajax?l.dataAdapter=o:null!=l.data?l.dataAdapter=n:l.dataAdapter=m,l.minimumInputLength>0&&(l.dataAdapter=j.Decorate(l.dataAdapter,r)),l.maximumInputLength>0&&(l.dataAdapter=j.Decorate(l.dataAdapter,s)),l.maximumSelectionLength>0&&(l.dataAdapter=j.Decorate(l.dataAdapter,t)),l.tags&&(l.dataAdapter=j.Decorate(l.dataAdapter,p)),null==l.tokenSeparators&&null==l.tokenizer||(l.dataAdapter=j.Decorate(l.dataAdapter,q)),null!=l.query){var C=b(l.amdBase+"compat/query");l.dataAdapter=j.Decorate(l.dataAdapter,C)}if(null!=l.initSelection){var D=b(l.amdBase+"compat/initSelection");l.dataAdapter=j.Decorate(l.dataAdapter,D)}}if(null==l.resultsAdapter&&(l.resultsAdapter=c,null!=l.ajax&&(l.resultsAdapter=j.Decorate(l.resultsAdapter,x)),null!=l.placeholder&&(l.resultsAdapter=j.Decorate(l.resultsAdapter,w)),l.selectOnClose&&(l.resultsAdapter=j.Decorate(l.resultsAdapter,A))),null==l.dropdownAdapter){if(l.multiple)l.dropdownAdapter=u;else{var E=j.Decorate(u,v);l.dropdownAdapter=E}if(0!==l.minimumResultsForSearch&&(l.dropdownAdapter=j.Decorate(l.dropdownAdapter,z)),l.closeOnSelect&&(l.dropdownAdapter=j.Decorate(l.dropdownAdapter,B)),null!=l.dropdownCssClass||null!=l.dropdownCss||null!=l.adaptDropdownCssClass){var F=b(l.amdBase+"compat/dropdownCss");l.dropdownAdapter=j.Decorate(l.dropdownAdapter,F)}l.dropdownAdapter=j.Decorate(l.dropdownAdapter,y)}if(null==l.selectionAdapter){if(l.multiple?l.selectionAdapter=e:l.selectionAdapter=d,null!=l.placeholder&&(l.selectionAdapter=j.Decorate(l.selectionAdapter,f)),l.allowClear&&(l.selectionAdapter=j.Decorate(l.selectionAdapter,g)),l.multiple&&(l.selectionAdapter=j.Decorate(l.selectionAdapter,h)),null!=l.containerCssClass||null!=l.containerCss||null!=l.adaptContainerCssClass){var G=b(l.amdBase+"compat/containerCss");l.selectionAdapter=j.Decorate(l.selectionAdapter,G)}l.selectionAdapter=j.Decorate(l.selectionAdapter,i)}if("string"==typeof l.language)if(l.language.indexOf("-")>0){var H=l.language.split("-"),I=H[0];l.language=[l.language,I]}else l.language=[l.language];if(a.isArray(l.language)){var J=new k;l.language.push("en");for(var K=l.language,L=0;L<K.length;L++){var M=K[L],N={};try{N=k.loadPath(M)}catch(a){try{M=this.defaults.amdLanguageBase+M,N=k.loadPath(M)}catch(a){l.debug&&window.console&&console.warn&&console.warn('Select2: The language file for "'+M+'" could not be automatically loaded. A fallback will be used instead.');continue}}J.extend(N)}l.translations=J}else{var O=k.loadPath(this.defaults.amdLanguageBase+"en"),P=new k(l.language);P.extend(O),l.translations=P}return l},D.prototype.reset=function(){function b(a){function b(a){return l[a]||a}return a.replace(/[^\u0000-\u007E]/g,b)}function c(d,e){if(""===a.trim(d.term))return e;if(e.children&&e.children.length>0){for(var f=a.extend(!0,{},e),g=e.children.length-1;g>=0;g--){null==c(d,e.children[g])&&f.children.splice(g,1)}return f.children.length>0?f:c(d,f)}var h=b(e.text).toUpperCase(),i=b(d.term).toUpperCase();return h.indexOf(i)>-1?e:null}this.defaults={amdBase:"./",amdLanguageBase:"./i18n/",closeOnSelect:!0,debug:!1,dropdownAutoWidth:!1,escapeMarkup:j.escapeMarkup,language:C,matcher:c,minimumInputLength:0,maximumInputLength:0,maximumSelectionLength:0,minimumResultsForSearch:0,selectOnClose:!1,sorter:function(a){return a},templateResult:function(a){return a.text},templateSelection:function(a){return a.text},theme:"default",width:"resolve"}},D.prototype.set=function(b,c){var d=a.camelCase(b),e={};e[d]=c;var f=j._convertData(e);a.extend(!0,this.defaults,f)},new D}),b.define("select2/options",["require","jquery","./defaults","./utils"],function(a,b,c,d){function e(b,e){if(this.options=b,null!=e&&this.fromElement(e),this.options=c.apply(this.options),e&&e.is("input")){var f=a(this.get("amdBase")+"compat/inputData");this.options.dataAdapter=d.Decorate(this.options.dataAdapter,f)}}return e.prototype.fromElement=function(a){var c=["select2"];null==this.options.multiple&&(this.options.multiple=a.prop("multiple")),null==this.options.disabled&&(this.options.disabled=a.prop("disabled")),null==this.options.language&&(a.prop("lang")?this.options.language=a.prop("lang").toLowerCase():a.closest("[lang]").prop("lang")&&(this.options.language=a.closest("[lang]").prop("lang"))),null==this.options.dir&&(a.prop("dir")?this.options.dir=a.prop("dir"):a.closest("[dir]").prop("dir")?this.options.dir=a.closest("[dir]").prop("dir"):this.options.dir="ltr"),a.prop("disabled",this.options.disabled),a.prop("multiple",this.options.multiple),d.GetData(a[0],"select2Tags")&&(this.options.debug&&window.console&&console.warn&&console.warn('Select2: The `data-select2-tags` attribute has been changed to use the `data-data` and `data-tags="true"` attributes and will be removed in future versions of Select2.'),d.StoreData(a[0],"data",d.GetData(a[0],"select2Tags")),d.StoreData(a[0],"tags",!0)),d.GetData(a[0],"ajaxUrl")&&(this.options.debug&&window.console&&console.warn&&console.warn("Select2: The `data-ajax-url` attribute has been changed to `data-ajax--url` and support for the old attribute will be removed in future versions of Select2."),a.attr("ajax--url",d.GetData(a[0],"ajaxUrl")),d.StoreData(a[0],"ajax-Url",d.GetData(a[0],"ajaxUrl")));var e={};e=b.fn.jquery&&"1."==b.fn.jquery.substr(0,2)&&a[0].dataset?b.extend(!0,{},a[0].dataset,d.GetData(a[0])):d.GetData(a[0]);var f=b.extend(!0,{},e);f=d._convertData(f);for(var g in f)b.inArray(g,c)>-1||(b.isPlainObject(this.options[g])?b.extend(this.options[g],f[g]):this.options[g]=f[g]);return this},e.prototype.get=function(a){return this.options[a]},e.prototype.set=function(a,b){this.options[a]=b},e}),b.define("select2/core",["jquery","./options","./utils","./keys"],function(a,b,c,d){var e=function(a,d){null!=c.GetData(a[0],"select2")&&c.GetData(a[0],"select2").destroy(),this.$element=a,this.id=this._generateId(a),d=d||{},this.options=new b(d,a),e.__super__.constructor.call(this);var f=a.attr("tabindex")||0;c.StoreData(a[0],"old-tabindex",f),a.attr("tabindex","-1");var g=this.options.get("dataAdapter");this.dataAdapter=new g(a,this.options);var h=this.render();this._placeContainer(h);var i=this.options.get("selectionAdapter");this.selection=new i(a,this.options),this.$selection=this.selection.render(),this.selection.position(this.$selection,h);var j=this.options.get("dropdownAdapter");this.dropdown=new j(a,this.options),this.$dropdown=this.dropdown.render(),this.dropdown.position(this.$dropdown,h);var k=this.options.get("resultsAdapter");this.results=new k(a,this.options,this.dataAdapter),this.$results=this.results.render(),this.results.position(this.$results,this.$dropdown);var l=this;this._bindAdapters(),this._registerDomEvents(),this._registerDataEvents(),this._registerSelectionEvents(),this._registerDropdownEvents(),this._registerResultsEvents(),this._registerEvents(),this.dataAdapter.current(function(a){l.trigger("selection:update",{data:a})}),a.addClass("select2-hidden-accessible"),a.attr("aria-hidden","true"),this._syncAttributes(),c.StoreData(a[0],"select2",this),a.data("select2",this)};return c.Extend(e,c.Observable),e.prototype._generateId=function(a){var b="";return b=null!=a.attr("id")?a.attr("id"):null!=a.attr("name")?a.attr("name")+"-"+c.generateChars(2):c.generateChars(4),b=b.replace(/(:|\.|\[|\]|,)/g,""),b="select2-"+b},e.prototype._placeContainer=function(a){a.insertAfter(this.$element);var b=this._resolveWidth(this.$element,this.options.get("width"));null!=b&&a.css("width",b)},e.prototype._resolveWidth=function(a,b){var c=/^width:(([-+]?([0-9]*\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i;if("resolve"==b){var d=this._resolveWidth(a,"style");return null!=d?d:this._resolveWidth(a,"element")}if("element"==b){var e=a.outerWidth(!1);return e<=0?"auto":e+"px"}if("style"==b){var f=a.attr("style");if("string"!=typeof f)return null;for(var g=f.split(";"),h=0,i=g.length;h<i;h+=1){var j=g[h].replace(/\s/g,""),k=j.match(c);if(null!==k&&k.length>=1)return k[1]}return null}return b},e.prototype._bindAdapters=function(){this.dataAdapter.bind(this,this.$container),this.selection.bind(this,this.$container),this.dropdown.bind(this,this.$container),this.results.bind(this,this.$container)},e.prototype._registerDomEvents=function(){var b=this;this.$element.on("change.select2",function(){b.dataAdapter.current(function(a){b.trigger("selection:update",{data:a})})}),this.$element.on("focus.select2",function(a){b.trigger("focus",a)}),this._syncA=c.bind(this._syncAttributes,this),this._syncS=c.bind(this._syncSubtree,this),this.$element[0].attachEvent&&this.$element[0].attachEvent("onpropertychange",this._syncA);var d=window.MutationObserver||window.WebKitMutationObserver||window.MozMutationObserver;null!=d?(this._observer=new d(function(c){a.each(c,b._syncA),a.each(c,b._syncS)}),this._observer.observe(this.$element[0],{attributes:!0,childList:!0,subtree:!1})):this.$element[0].addEventListener&&(this.$element[0].addEventListener("DOMAttrModified",b._syncA,!1),this.$element[0].addEventListener("DOMNodeInserted",b._syncS,!1),this.$element[0].addEventListener("DOMNodeRemoved",b._syncS,!1))},e.prototype._registerDataEvents=function(){var a=this;this.dataAdapter.on("*",function(b,c){a.trigger(b,c)})},e.prototype._registerSelectionEvents=function(){var b=this,c=["toggle","focus"];this.selection.on("toggle",function(){b.toggleDropdown()}),this.selection.on("focus",function(a){b.focus(a)}),this.selection.on("*",function(d,e){-1===a.inArray(d,c)&&b.trigger(d,e)})},e.prototype._registerDropdownEvents=function(){var a=this;this.dropdown.on("*",function(b,c){a.trigger(b,c)})},e.prototype._registerResultsEvents=function(){var a=this;this.results.on("*",function(b,c){a.trigger(b,c)})},e.prototype._registerEvents=function(){var a=this;this.on("open",function(){a.$container.addClass("select2-container--open")}),this.on("close",function(){a.$container.removeClass("select2-container--open")}),this.on("enable",function(){a.$container.removeClass("select2-container--disabled")}),this.on("disable",function(){a.$container.addClass("select2-container--disabled")}),this.on("blur",function(){a.$container.removeClass("select2-container--focus")}),this.on("query",function(b){a.isOpen()||a.trigger("open",{}),this.dataAdapter.query(b,function(c){a.trigger("results:all",{data:c,query:b})})}),this.on("query:append",function(b){this.dataAdapter.query(b,function(c){a.trigger("results:append",{data:c,query:b})})}),this.on("keypress",function(b){var c=b.which;a.isOpen()?c===d.ESC||c===d.TAB||c===d.UP&&b.altKey?(a.close(),b.preventDefault()):c===d.ENTER?(a.trigger("results:select",{}),b.preventDefault()):c===d.SPACE&&b.ctrlKey?(a.trigger("results:toggle",{}),b.preventDefault()):c===d.UP?(a.trigger("results:previous",{}),b.preventDefault()):c===d.DOWN&&(a.trigger("results:next",{}),b.preventDefault()):(c===d.ENTER||c===d.SPACE||c===d.DOWN&&b.altKey)&&(a.open(),b.preventDefault())})},e.prototype._syncAttributes=function(){this.options.set("disabled",this.$element.prop("disabled")),this.options.get("disabled")?(this.isOpen()&&this.close(),this.trigger("disable",{})):this.trigger("enable",{})},e.prototype._syncSubtree=function(a,b){var c=!1,d=this;if(!a||!a.target||"OPTION"===a.target.nodeName||"OPTGROUP"===a.target.nodeName){if(b)if(b.addedNodes&&b.addedNodes.length>0)for(var e=0;e<b.addedNodes.length;e++){var f=b.addedNodes[e];f.selected&&(c=!0)}else b.removedNodes&&b.removedNodes.length>0&&(c=!0);else c=!0;c&&this.dataAdapter.current(function(a){d.trigger("selection:update",{data:a})})}},e.prototype.trigger=function(a,b){var c=e.__super__.trigger,d={open:"opening",close:"closing",select:"selecting",unselect:"unselecting",clear:"clearing"};if(void 0===b&&(b={}),a in d){var f=d[a],g={prevented:!1,name:a,args:b};if(c.call(this,f,g),g.prevented)return void(b.prevented=!0)}c.call(this,a,b)},e.prototype.toggleDropdown=function(){this.options.get("disabled")||(this.isOpen()?this.close():this.open())},e.prototype.open=function(){this.isOpen()||this.trigger("query",{})},e.prototype.close=function(){this.isOpen()&&this.trigger("close",{})},e.prototype.isOpen=function(){return this.$container.hasClass("select2-container--open")},e.prototype.hasFocus=function(){return this.$container.hasClass("select2-container--focus")},e.prototype.focus=function(a){this.hasFocus()||(this.$container.addClass("select2-container--focus"),this.trigger("focus",{}))},e.prototype.enable=function(a){this.options.get("debug")&&window.console&&console.warn&&console.warn('Select2: The `select2("enable")` method has been deprecated and will be removed in later Select2 versions. Use $element.prop("disabled") instead.'),null!=a&&0!==a.length||(a=[!0]);var b=!a[0];this.$element.prop("disabled",b)},e.prototype.data=function(){this.options.get("debug")&&arguments.length>0&&window.console&&console.warn&&console.warn('Select2: Data can no longer be set using `select2("data")`. You should consider setting the value instead using `$element.val()`.');var a=[];return this.dataAdapter.current(function(b){a=b}),a},e.prototype.val=function(b){if(this.options.get("debug")&&window.console&&console.warn&&console.warn('Select2: The `select2("val")` method has been deprecated and will be removed in later Select2 versions. Use $element.val() instead.'),null==b||0===b.length)return this.$element.val();var c=b[0];a.isArray(c)&&(c=a.map(c,function(a){return a.toString()})),this.$element.val(c).trigger("change")},e.prototype.destroy=function(){this.$container.remove(),this.$element[0].detachEvent&&this.$element[0].detachEvent("onpropertychange",this._syncA),null!=this._observer?(this._observer.disconnect(),this._observer=null):this.$element[0].removeEventListener&&(this.$element[0].removeEventListener("DOMAttrModified",this._syncA,!1),this.$element[0].removeEventListener("DOMNodeInserted",this._syncS,!1),this.$element[0].removeEventListener("DOMNodeRemoved",this._syncS,!1)),this._syncA=null,this._syncS=null,this.$element.off(".select2"),this.$element.attr("tabindex",c.GetData(this.$element[0],"old-tabindex")),this.$element.removeClass("select2-hidden-accessible"),this.$element.attr("aria-hidden","false"),c.RemoveData(this.$element[0]),this.$element.removeData("select2"),this.dataAdapter.destroy(),this.selection.destroy(),this.dropdown.destroy(),this.results.destroy(),this.dataAdapter=null,this.selection=null,this.dropdown=null,this.results=null},e.prototype.render=function(){var b=a('<span class="select2 select2-container"><span class="selection"></span><span class="dropdown-wrapper" aria-hidden="true"></span></span>');return b.attr("dir",this.options.get("dir")),this.$container=b,this.$container.addClass("select2-container--"+this.options.get("theme")),c.StoreData(b[0],"element",this.$element),b},e}),b.define("select2/compat/utils",["jquery"],function(a){function b(b,c,d){var e,f,g=[];e=a.trim(b.attr("class")),e&&(e=""+e,a(e.split(/\s+/)).each(function(){0===this.indexOf("select2-")&&g.push(this)})),e=a.trim(c.attr("class")),e&&(e=""+e,a(e.split(/\s+/)).each(function(){0!==this.indexOf("select2-")&&null!=(f=d(this))&&g.push(f)})),b.attr("class",g.join(" "))}return{syncCssClasses:b}}),b.define("select2/compat/containerCss",["jquery","./utils"],function(a,b){function c(a){return null}function d(){}return d.prototype.render=function(d){var e=d.call(this),f=this.options.get("containerCssClass")||"";a.isFunction(f)&&(f=f(this.$element));var g=this.options.get("adaptContainerCssClass");if(g=g||c,-1!==f.indexOf(":all:")){f=f.replace(":all:","");var h=g;g=function(a){var b=h(a);return null!=b?b+" "+a:a}}var i=this.options.get("containerCss")||{};return a.isFunction(i)&&(i=i(this.$element)),b.syncCssClasses(e,this.$element,g),e.css(i),e.addClass(f),e},d}),b.define("select2/compat/dropdownCss",["jquery","./utils"],function(a,b){function c(a){return null}function d(){}return d.prototype.render=function(d){var e=d.call(this),f=this.options.get("dropdownCssClass")||"";a.isFunction(f)&&(f=f(this.$element));var g=this.options.get("adaptDropdownCssClass");if(g=g||c,-1!==f.indexOf(":all:")){f=f.replace(":all:","");var h=g;g=function(a){var b=h(a);return null!=b?b+" "+a:a}}var i=this.options.get("dropdownCss")||{};return a.isFunction(i)&&(i=i(this.$element)),b.syncCssClasses(e,this.$element,g),e.css(i),e.addClass(f),e},d}),b.define("select2/compat/initSelection",["jquery"],function(a){function b(a,b,c){c.get("debug")&&window.console&&console.warn&&console.warn("Select2: The `initSelection` option has been deprecated in favor of a custom data adapter that overrides the `current` method. This method is now called multiple times instead of a single time when the instance is initialized. Support will be removed for the `initSelection` option in future versions of Select2"),this.initSelection=c.get("initSelection"),this._isInitialized=!1,a.call(this,b,c)}return b.prototype.current=function(b,c){var d=this;if(this._isInitialized)return void b.call(this,c);this.initSelection.call(null,this.$element,function(b){d._isInitialized=!0,a.isArray(b)||(b=[b]),c(b)})},b}),b.define("select2/compat/inputData",["jquery","../utils"],function(a,b){function c(a,b,c){this._currentData=[],this._valueSeparator=c.get("valueSeparator")||",","hidden"===b.prop("type")&&c.get("debug")&&console&&console.warn&&console.warn("Select2: Using a hidden input with Select2 is no longer supported and may stop working in the future. It is recommended to use a `<select>` element instead."),a.call(this,b,c)}return c.prototype.current=function(b,c){function d(b,c){var e=[];return b.selected||-1!==a.inArray(b.id,c)?(b.selected=!0,e.push(b)):b.selected=!1,b.children&&e.push.apply(e,d(b.children,c)),e}for(var e=[],f=0;f<this._currentData.length;f++){var g=this._currentData[f];e.push.apply(e,d(g,this.$element.val().split(this._valueSeparator)))}c(e)},c.prototype.select=function(b,c){if(this.options.get("multiple")){var d=this.$element.val();d+=this._valueSeparator+c.id,this.$element.val(d),this.$element.trigger("change")}else this.current(function(b){a.map(b,function(a){a.selected=!1})}),this.$element.val(c.id),this.$element.trigger("change")},c.prototype.unselect=function(a,b){var c=this;b.selected=!1,this.current(function(a){for(var d=[],e=0;e<a.length;e++){var f=a[e];b.id!=f.id&&d.push(f.id)}c.$element.val(d.join(c._valueSeparator)),c.$element.trigger("change")})},c.prototype.query=function(a,b,c){for(var d=[],e=0;e<this._currentData.length;e++){var f=this._currentData[e],g=this.matches(b,f);null!==g&&d.push(g)}c({results:d})},c.prototype.addOptions=function(c,d){var e=a.map(d,function(a){return b.GetData(a[0],"data")});this._currentData.push.apply(this._currentData,e)},c}),b.define("select2/compat/matcher",["jquery"],function(a){function b(b){function c(c,d){var e=a.extend(!0,{},d);if(null==c.term||""===a.trim(c.term))return e;if(d.children){for(var f=d.children.length-1;f>=0;f--){var g=d.children[f];b(c.term,g.text,g)||e.children.splice(f,1)}if(e.children.length>0)return e}return b(c.term,d.text,d)?e:null}return c}return b}),b.define("select2/compat/query",[],function(){function a(a,b,c){c.get("debug")&&window.console&&console.warn&&console.warn("Select2: The `query` option has been deprecated in favor of a custom data adapter that overrides the `query` method. Support will be removed for the `query` option in future versions of Select2."),a.call(this,b,c)}return a.prototype.query=function(a,b,c){b.callback=c,this.options.get("query").call(null,b)},a}),b.define("select2/dropdown/attachContainer",[],function(){function a(a,b,c){a.call(this,b,c)}return a.prototype.position=function(a,b,c){c.find(".dropdown-wrapper").append(b),b.addClass("select2-dropdown--below"),c.addClass("select2-container--below")},a}),b.define("select2/dropdown/stopPropagation",[],function(){function a(){}return a.prototype.bind=function(a,b,c){a.call(this,b,c);var d=["blur","change","click","dblclick","focus","focusin","focusout","input","keydown","keyup","keypress","mousedown","mouseenter","mouseleave","mousemove","mouseover","mouseup","search","touchend","touchstart"];this.$dropdown.on(d.join(" "),function(a){a.stopPropagation()})},a}),b.define("select2/selection/stopPropagation",[],function(){function a(){}return a.prototype.bind=function(a,b,c){a.call(this,b,c);var d=["blur","change","click","dblclick","focus","focusin","focusout","input","keydown","keyup","keypress","mousedown","mouseenter","mouseleave","mousemove","mouseover","mouseup","search","touchend","touchstart"];this.$selection.on(d.join(" "),function(a){a.stopPropagation()})},a}),function(c){"function"==typeof b.define&&b.define.amd?b.define("jquery-mousewheel",["jquery"],c):"object"==typeof exports?module.exports=c:c(a)}(function(a){function b(b){var g=b||window.event,h=i.call(arguments,1),j=0,l=0,m=0,n=0,o=0,p=0;if(b=a.event.fix(g),b.type="mousewheel","detail"in g&&(m=-1*g.detail),"wheelDelta"in g&&(m=g.wheelDelta),"wheelDeltaY"in g&&(m=g.wheelDeltaY),"wheelDeltaX"in g&&(l=-1*g.wheelDeltaX),"axis"in g&&g.axis===g.HORIZONTAL_AXIS&&(l=-1*m,m=0),j=0===m?l:m,"deltaY"in g&&(m=-1*g.deltaY,j=m),"deltaX"in g&&(l=g.deltaX,0===m&&(j=-1*l)),0!==m||0!==l){if(1===g.deltaMode){var q=a.data(this,"mousewheel-line-height");j*=q,m*=q,l*=q}else if(2===g.deltaMode){var r=a.data(this,"mousewheel-page-height");j*=r,m*=r,l*=r}if(n=Math.max(Math.abs(m),Math.abs(l)),(!f||n<f)&&(f=n,d(g,n)&&(f/=40)),d(g,n)&&(j/=40,l/=40,m/=40),j=Math[j>=1?"floor":"ceil"](j/f),l=Math[l>=1?"floor":"ceil"](l/f),m=Math[m>=1?"floor":"ceil"](m/f),k.settings.normalizeOffset&&this.getBoundingClientRect){var s=this.getBoundingClientRect();o=b.clientX-s.left,p=b.clientY-s.top}return b.deltaX=l,b.deltaY=m,b.deltaFactor=f,b.offsetX=o,b.offsetY=p,b.deltaMode=0,h.unshift(b,j,l,m),e&&clearTimeout(e),e=setTimeout(c,200),(a.event.dispatch||a.event.handle).apply(this,h)}}function c(){f=null}function d(a,b){return k.settings.adjustOldDeltas&&"mousewheel"===a.type&&b%120==0}var e,f,g=["wheel","mousewheel","DOMMouseScroll","MozMousePixelScroll"],h="onwheel"in document||document.documentMode>=9?["wheel"]:["mousewheel","DomMouseScroll","MozMousePixelScroll"],i=Array.prototype.slice;if(a.event.fixHooks)for(var j=g.length;j;)a.event.fixHooks[g[--j]]=a.event.mouseHooks;var k=a.event.special.mousewheel={version:"3.1.12",setup:function(){if(this.addEventListener)for(var c=h.length;c;)this.addEventListener(h[--c],b,!1);else this.onmousewheel=b;a.data(this,"mousewheel-line-height",k.getLineHeight(this)),a.data(this,"mousewheel-page-height",k.getPageHeight(this))},teardown:function(){if(this.removeEventListener)for(var c=h.length;c;)this.removeEventListener(h[--c],b,!1);else this.onmousewheel=null;a.removeData(this,"mousewheel-line-height"),a.removeData(this,"mousewheel-page-height")},getLineHeight:function(b){var c=a(b),d=c["offsetParent"in a.fn?"offsetParent":"parent"]();return d.length||(d=a("body")),parseInt(d.css("fontSize"),10)||parseInt(c.css("fontSize"),10)||16},getPageHeight:function(b){return a(b).height()},settings:{adjustOldDeltas:!0,normalizeOffset:!0}};a.fn.extend({mousewheel:function(a){return a?this.bind("mousewheel",a):this.trigger("mousewheel")},unmousewheel:function(a){return this.unbind("mousewheel",a)}})}),b.define("jquery.select2",["jquery","jquery-mousewheel","./select2/core","./select2/defaults","./select2/utils"],function(a,b,c,d,e){if(null==a.fn.select2){var f=["open","close","destroy"];a.fn.select2=function(b){if("object"==typeof(b=b||{}))return this.each(function(){var d=a.extend(!0,{},b);new c(a(this),d)}),this;if("string"==typeof b){var d,g=Array.prototype.slice.call(arguments,1);return this.each(function(){var a=e.GetData(this,"select2");null==a&&window.console&&console.error&&console.error("The select2('"+b+"') method was called on an element that is not using Select2."),d=a[b].apply(a,g)}),a.inArray(b,f)>-1?this:d}throw new Error("Invalid arguments for Select2: "+b)}}return null==a.fn.select2.defaults&&(a.fn.select2.defaults=d),c}),{define:b.define,require:b.require}}(),c=b.require("jquery.select2");return a.fn.select2.amd=b,c});