{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/moment/moment.js","webpack:///external \"jQuery\"","webpack:///./node_modules/moment/locale/en-nz.js","webpack:///./node_modules/moment/locale/eo.js","webpack:///./node_modules/moment/locale/es.js","webpack:///./node_modules/moment/locale/es-do.js","webpack:///./node_modules/moment/locale/es-us.js","webpack:///./node_modules/moment/locale/et.js","webpack:///./node_modules/moment/locale/eu.js","webpack:///./node_modules/moment/locale/fa.js","webpack:///./node_modules/moment/locale/fi.js","webpack:///./node_modules/moment/locale/fo.js","webpack:///./node_modules/moment/locale/fr.js","webpack:///./node_modules/moment/locale/fr-ca.js","webpack:///./node_modules/moment/locale/fr-ch.js","webpack:///./node_modules/moment/locale/fy.js","webpack:///./node_modules/moment/locale/ga.js","webpack:///./node_modules/moment/locale/gd.js","webpack:///./node_modules/moment/locale/gl.js","webpack:///./node_modules/moment/locale/gom-latn.js","webpack:///./node_modules/moment/locale/gu.js","webpack:///./node_modules/moment/locale/he.js","webpack:///./node_modules/moment/locale/hi.js","webpack:///./node_modules/moment/locale/hr.js","webpack:///./node_modules/moment/locale/hu.js","webpack:///./node_modules/moment/locale/hy-am.js","webpack:///./node_modules/moment/locale/id.js","webpack:///./node_modules/moment/locale/is.js","webpack:///./node_modules/moment/locale/it.js","webpack:///./node_modules/moment/locale/it-ch.js","webpack:///./node_modules/moment/locale/ja.js","webpack:///./node_modules/moment/locale/jv.js","webpack:///./node_modules/moment/locale/ka.js","webpack:///./node_modules/moment/locale/kk.js","webpack:///./node_modules/moment/locale/km.js","webpack:///./node_modules/moment/locale/kn.js","webpack:///./node_modules/moment/locale/ko.js","webpack:///./node_modules/moment/locale/ku.js","webpack:///./node_modules/moment/locale/ky.js","webpack:///./node_modules/moment/locale/lb.js","webpack:///./node_modules/moment/locale/lo.js","webpack:///./node_modules/moment/locale/lt.js","webpack:///./node_modules/moment/locale/lv.js","webpack:///./node_modules/moment/locale/me.js","webpack:///./node_modules/moment/locale/mi.js","webpack:///./node_modules/moment/locale/mk.js","webpack:///./node_modules/moment/locale/ml.js","webpack:///./node_modules/moment/locale/mn.js","webpack:///./node_modules/moment/locale/mr.js","webpack:///./node_modules/moment/locale/ms.js","webpack:///./node_modules/moment/locale/ms-my.js","webpack:///./node_modules/moment/locale/mt.js","webpack:///./node_modules/moment/locale/my.js","webpack:///./node_modules/moment/locale/nb.js","webpack:///./node_modules/moment/locale/ne.js","webpack:///./node_modules/moment/locale/nl.js","webpack:///./node_modules/moment/locale/nl-be.js","webpack:///./node_modules/moment/locale/nn.js","webpack:///./node_modules/moment/locale/pa-in.js","webpack:///./node_modules/moment/locale/pl.js","webpack:///./node_modules/moment/locale/pt.js","webpack:///./node_modules/moment/locale/pt-br.js","webpack:///./node_modules/moment/locale/ro.js","webpack:///./node_modules/moment/locale/ru.js","webpack:///./node_modules/moment/locale/sd.js","webpack:///./node_modules/moment/locale/se.js","webpack:///./node_modules/moment/locale/si.js","webpack:///./node_modules/moment/locale/sk.js","webpack:///./node_modules/moment/locale/sl.js","webpack:///./node_modules/moment/locale/sq.js","webpack:///./node_modules/moment/locale/sr.js","webpack:///./node_modules/moment/locale/sr-cyrl.js","webpack:///./node_modules/moment/locale/ss.js","webpack:///./node_modules/moment/locale/sv.js","webpack:///./node_modules/moment/locale/sw.js","webpack:///./node_modules/moment/locale/ta.js","webpack:///./node_modules/moment/locale/te.js","webpack:///./node_modules/moment/locale/tet.js","webpack:///./node_modules/moment/locale/tg.js","webpack:///./node_modules/moment/locale/th.js","webpack:///./node_modules/moment/locale/tl-ph.js","webpack:///./node_modules/moment/locale/tlh.js","webpack:///./node_modules/moment/locale/tr.js","webpack:///./node_modules/moment/locale/tzl.js","webpack:///./node_modules/moment/locale/tzm.js","webpack:///./node_modules/moment/locale/tzm-latn.js","webpack:///./node_modules/moment/locale/ug-cn.js","webpack:///./node_modules/moment/locale/uk.js","webpack:///./node_modules/moment/locale/ur.js","webpack:///./node_modules/moment/locale/uz.js","webpack:///./node_modules/moment/locale/uz-latn.js","webpack:///./node_modules/moment/locale/vi.js","webpack:///./node_modules/moment/locale/x-pseudo.js","webpack:///./node_modules/moment/locale/yo.js","webpack:///./node_modules/moment/locale/zh-cn.js","webpack:///./node_modules/moment/locale/zh-hk.js","webpack:///./node_modules/moment/locale/zh-tw.js","webpack:///./vendor/assets/libs/clipboard/clipboard.js","webpack:///external \"Spinner\"","webpack:///./vendor/assets/libs/bootstrap-datepicker/bootstrap-datepicker.js","webpack:///./node_modules/bootstrap-datepicker/dist/js/bootstrap-datepicker.js","webpack:///./vendor/assets/libs/bootstrap-daterangepicker/bootstrap-daterangepicker.js","webpack:///./node_modules/bootstrap-daterangepicker/daterangepicker.js","webpack:///./vendor/assets/libs/bootstrap-material-datetimepicker/bootstrap-material-datetimepicker.js","webpack:///./node_modules/bootstrap-material-datetimepicker/js/bootstrap-material-datetimepicker.js","webpack:///./vendor/assets/libs/bootstrap-material-datetimepicker/_extension.js","webpack:///./vendor/assets/libs/bootstrap-select/bootstrap-select.js","webpack:///./node_modules/bootstrap-select/js/bootstrap-select.js","webpack:///./vendor/assets/libs/dragula/dragula.js","webpack:///./node_modules/contra/emitter.js","webpack:///./node_modules/atoa/atoa.js","webpack:///./node_modules/contra/debounce.js","webpack:///./node_modules/ticky/ticky-browser.js","webpack:///./node_modules/crossvent/src/crossvent.js","webpack:///./node_modules/custom-event/index.js","webpack:///./node_modules/crossvent/src/eventmap.js","webpack:///./node_modules/dragula/classes.js","webpack:///./vendor/assets/libs/dropzone/dropzone.js","webpack:///./node_modules/jstree/dist/jstree.js","webpack:///./vendor/assets/libs/ladda/ladda.js","webpack:///./vendor/assets/libs/moment/moment.js","webpack:///./node_modules/moment/locale sync ^\\.\\/.*$","webpack:///./vendor/assets/libs/nestable/nestable.js","webpack:///./node_modules/nestable/jquery.nestable.js","webpack:///./vendor/assets/libs/select2/select2.js","webpack:///./node_modules/select2/dist/js/select2.full.js","webpack:///./vendor/assets/libs/sortablejs/sortable.js","webpack:///./vendor/assets/libs/timepicker/timepicker.js","webpack:///./node_modules/timepicker/jquery.timepicker.js","webpack:///./node_modules/spin.js/spin.js","webpack:///./node_modules/dropzone/dist/dropzone.js","webpack:///./engines/auth/app/assets/images/auth/login-background-1.jpg","webpack:///./engines/auth/app/assets/images/auth/login-background-2.jpg","webpack:///./engines/auth/app/assets/images/auth/login-background-3.jpg","webpack:///./engines/auth/app/assets/images/auth/login-background-4.jpg","webpack:///./engines/auth/app/assets/images/auth/login-background-5.jpg","webpack:///./engines/auth/app/assets/images/auth/login-background-6.jpg","webpack:///./engines/auth/app/assets/images/auth/login-background-7.jpg","webpack:///./engines/auth/app/assets/images/auth/login-background-old.jpg","webpack:///external \"moment\"","webpack:///./node_modules/process/browser.js","webpack:///./node_modules/ladda/js/ladda.js","webpack:///./node_modules/sortablejs/Sortable.js","webpack:///(webpack)/buildin/global.js","webpack:///(webpack)/buildin/module.js","webpack:///./node_modules/clipboard/dist/clipboard.js","webpack:///./node_modules/dragula/dragula.js","webpack:///./node_modules/timers-browserify/main.js","webpack:///./node_modules/setimmediate/setImmediate.js","webpack:///./node_modules/moment/locale/af.js","webpack:///./node_modules/moment/locale/ar.js","webpack:///./node_modules/moment/locale/ar-dz.js","webpack:///./node_modules/moment/locale/ar-kw.js","webpack:///./node_modules/moment/locale/ar-ly.js","webpack:///./node_modules/moment/locale/ar-ma.js","webpack:///./node_modules/moment/locale/ar-sa.js","webpack:///./node_modules/moment/locale/ar-tn.js","webpack:///./node_modules/moment/locale/az.js","webpack:///./node_modules/moment/locale/be.js","webpack:///./node_modules/moment/locale/bg.js","webpack:///./node_modules/moment/locale/bm.js","webpack:///./node_modules/moment/locale/bn.js","webpack:///./node_modules/moment/locale/bo.js","webpack:///./node_modules/moment/locale/br.js","webpack:///./node_modules/moment/locale/bs.js","webpack:///./node_modules/moment/locale/ca.js","webpack:///./node_modules/moment/locale/cs.js","webpack:///./node_modules/moment/locale/cv.js","webpack:///./node_modules/moment/locale/cy.js","webpack:///./node_modules/moment/locale/da.js","webpack:///./node_modules/moment/locale/de.js","webpack:///./node_modules/moment/locale/de-at.js","webpack:///./node_modules/moment/locale/de-ch.js","webpack:///./node_modules/moment/locale/dv.js","webpack:///./app/javascript/packs/application.js","webpack:///./node_modules/moment/locale/el.js","webpack:///./node_modules/@rails/ujs/lib/assets/compiled/rails-ujs.js","webpack:///./node_modules/@rails/activestorage/app/assets/javascripts/activestorage.js","webpack:///./app/javascript/channels/index.js","webpack:///./app/javascript/channels sync _channel\\.js$","webpack:///./app/javascript/source/main.js","webpack:///./app/javascript/source/custom.js","webpack:///./node_modules/turbolinks/dist/turbolinks.js","webpack:///./engines/auth/app/assets/images sync ^\\.\\/.*$","webpack:///./node_modules/moment/locale/en-SG.js","webpack:///./node_modules/moment/locale/en-au.js","webpack:///./node_modules/moment/locale/en-ca.js","webpack:///./node_modules/moment/locale/en-gb.js","webpack:///./node_modules/moment/locale/en-ie.js","webpack:///./node_modules/moment/locale/en-il.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","factory","_typeof","iterator","obj","constructor","hookCallback","some","hooks","apply","arguments","isArray","input","Array","toString","isObject","isUndefined","isNumber","isDate","Date","map","arr","fn","res","length","push","hasOwnProp","a","b","extend","valueOf","createUTC","format","locale","strict","createLocalOrUTC","utc","getParsingFlags","_pf","empty","unusedTokens","unusedInput","overflow","charsLeftOver","nullInput","invalidMonth","invalidFormat","userInvalidated","iso","parsedDateParts","meridiem","rfc2822","weekdayMismatch","isValid","_isValid","flags","parsedParts","isNowValid","isNaN","_d","getTime","invalidWeekday","_strict","undefined","bigHour","isFrozen","createInvalid","NaN","fun","this","len","momentProperties","copyConfig","to","from","prop","val","_isAMomentObject","_i","_f","_l","_tzm","_isUTC","_offset","_locale","updateInProgress","Moment","config","updateOffset","isMoment","absFloor","number","Math","ceil","floor","toInt","argumentForCoercion","coercedNumber","isFinite","compareArrays","array1","array2","dontConvert","min","lengthDiff","abs","diffs","warn","msg","suppressDeprecationWarnings","console","deprecate","firstTime","deprecationHandler","arg","args","slice","join","Error","stack","keys","deprecations","deprecateSimple","isFunction","Function","mergeConfigs","parentConfig","childConfig","Locale","set","aliases","addUnitAlias","unit","shorthand","lowerCase","toLowerCase","normalizeUnits","units","normalizeObjectUnits","inputObject","normalizedProp","normalizedInput","priorities","addUnitPriority","priority","zeroFill","targetLength","forceSign","absNumber","zerosToFill","pow","max","substr","formattingTokens","localFormattingTokens","formatFunctions","formatTokenFunctions","addFormatToken","token","padded","ordinal","callback","func","localeData","formatMoment","expandFormat","array","match","replace","mom","output","makeFormatFunction","invalidDate","replaceLongDateFormatTokens","longDateFormat","lastIndex","test","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchOffset","matchShortOffset","matchWord","regexes","addRegexToken","regex","strictRegex","isStrict","getParseRegexForToken","RegExp","regexEscape","matched","p1","p2","p3","p4","tokens","addParseToken","addWeekParseToken","_w","addTimeToArrayFromToken","_a","daysInYear","year","isLeapYear","y","parseTwoDigitYear","parseInt","indexOf","getSetYear","makeGetSet","keepTime","set$1","month","date","daysInMonth","x","modMonth","monthsShort","months","monthsShortRegex","monthsRegex","monthsParse","MONTHS_IN_FORMAT","defaultLocaleMonths","split","defaultLocaleMonthsShort","handleStrictParse","monthName","ii","llc","toLocaleLowerCase","_monthsParse","_longMonthsParse","_shortMonthsParse","setMonth","dayOfMonth","getSetMonth","defaultMonthsShortRegex","defaultMonthsRegex","computeMonthsParse","cmpLenRev","shortPieces","longPieces","mixedPieces","sort","_monthsRegex","_monthsShortRegex","_monthsStrictRegex","_monthsShortStrictRegex","createDate","h","M","ms","getFullYear","setFullYear","createUTCDate","UTC","getUTCFullYear","setUTCFullYear","firstWeekOffset","dow","doy","fwd","getUTCDay","dayOfYearFromWeeks","week","weekday","resYear","resDayOfYear","dayOfYear","weekOfYear","resWeek","weekOffset","weeksInYear","weekOffsetNext","shiftWeekdays","ws","concat","weekdaysMin","weekdaysShort","weekdays","weekdaysMinRegex","weekdaysShortRegex","weekdaysRegex","weekdaysParse","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","handleStrictParse$1","weekdayName","_weekdaysParse","_shortWeekdaysParse","_minWeekdaysParse","day","defaultWeekdaysRegex","defaultWeekdaysShortRegex","defaultWeekdaysMinRegex","computeWeekdaysParse","minp","shortp","longp","minPieces","_weekdaysRegex","_weekdaysShortRegex","_weekdaysMinRegex","_weekdaysStrictRegex","_weekdaysShortStrictRegex","_weekdaysMinStrictRegex","hFormat","hours","lowercase","minutes","matchMeridiem","_meridiemParse","seconds","kInput","_isPm","isPM","_meridiem","pos","pos1","pos2","globalLocale","getSetHour","baseConfig","calendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","LTS","LT","L","LL","LLL","LLLL","dayOfMonthOrdinalParse","relativeTime","future","past","ss","mm","hh","dd","MM","yy","meridiemParse","locales","localeFamilies","normalizeLocale","loadLocale","oldLocale","_abbr","getSetGlobalLocale","e","values","data","getLocale","defineLocale","abbr","_config","parentLocale","forEach","names","j","next","chooseLocale","checkOverflow","_overflowDayOfYear","_overflowWeeks","_overflowWeekday","defaults","configFromArray","currentDate","expectedWeekday","yearToUse","nowValue","now","_useUTC","getUTCMonth","getUTCDate","getMonth","getDate","currentDateArray","w","weekYear","temp","weekdayOverflow","GG","W","E","createLocal","_week","curWeek","gg","_dayOfYear","dayOfYearFromWeekInfo","_nextDay","getDay","setUTCMinutes","getUTCMinutes","extendedIsoRegex","basicIsoRegex","tzRegex","isoDates","isoTimes","aspNetJsonRegex","configFromISO","allowTime","dateFormat","timeFormat","tzFormat","string","exec","configFromStringAndFormat","untruncateYear","yearStr","obsOffsets","UT","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","configFromRFC2822","monthStr","dayStr","hourStr","minuteStr","secondStr","result","parsedArray","weekdayStr","parsedInput","checkWeekday","obsOffset","militaryOffset","numOffset","hm","calculateOffset","ISO_8601","RFC_2822","skipped","stringLength","totalParsedInputLength","hour","isPm","meridiemHour","meridiemFixWrap","prepareConfig","preparse","tempConfig","bestMoment","scoreToBeat","currentScore","score","configFromStringAndArray","createFromInputFallback","configFromString","minute","second","millisecond","configFromObject","configFromInput","isUTC","getOwnPropertyNames","k","isObjectEmpty","add","prototypeMin","other","prototypeMax","pickBy","moments","ordering","Duration","duration","years","quarters","quarter","weeks","isoWeek","days","milliseconds","unitHasDecimal","parseFloat","isDurationValid","_milliseconds","_days","_months","_data","_bubble","isDuration","absRound","round","offset","separator","utcOffset","sign","offsetFromString","chunkOffset","matcher","matches","parts","cloneWithOffset","model","diff","clone","setTime","local","getDateOffset","getTimezoneOffset","isUtc","aspNetRegex","isoRegex","createDuration","ret","diffRes","base","parseIso","isBefore","positiveMomentsDifference","inp","isAfter","createAdder","direction","period","tmp","addSubtract","isAdding","invalid","subtract","monthDiff","wholeMonthDiff","anchor","newLocaleData","defaultFormat","defaultFormatUtc","lang","mod$1","dividend","divisor","localStartOfDate","utcStartOfDate","addWeekYearFormatToken","getSetWeekYearHelper","weeksTarget","setWeekAll","dayOfYearData","isoWeekYear","_dayOfMonthOrdinalParse","_ordinalParse","_dayOfMonthOrdinalParseLenient","getSetDayOfMonth","getSetMinute","getSetSecond","parseMs","getSetMillisecond","proto","preParsePostFormat","time","formats","sod","startOf","calendarFormat","asFloat","that","zoneDelta","endOf","startOfDate","isoWeekday","inputString","postformat","withoutSuffix","humanize","fromNow","toNow","invalidAt","localInput","isBetween","inclusivity","localFrom","localTo","isSame","inputMs","isSameOrAfter","isSameOrBefore","parsingFlags","prioritized","unitsObj","u","getPrioritizedUnits","toArray","toObject","toDate","toISOString","keepOffset","inspect","zone","isLocal","prefix","suffix","toJSON","unix","creationData","isoWeeks","weekInfo","isoWeeksInYear","parseWeekday","parseIsoWeekday","keepLocalTime","keepMinutes","localAdjust","_changeInProgress","parseZone","tZone","hasAlignedHourOffset","isDST","isUtcOffset","zoneAbbr","zoneName","dates","isDSTShifted","_isDSTShifted","proto$1","get$1","index","field","setter","listMonthsImpl","out","listWeekdaysImpl","localeSorted","shift","_calendar","_longDateFormat","formatUpper","toUpperCase","_invalidDate","_ordinal","isFuture","_relativeTime","pastFuture","source","isFormat","_monthsShort","_monthsParseExact","firstDayOfYear","firstDayOfWeek","_weekdays","_weekdaysMin","_weekdaysShort","_weekdaysParseExact","_fullWeekdaysParse","charAt","isLower","langData","mathAbs","addSubtract$1","absCeil","daysToMonths","monthsToDays","makeAs","alias","as","asMilliseconds","asSeconds","asMinutes","asHours","asDays","asWeeks","asMonths","asQuarters","asYears","makeGetter","thresholds","substituteTimeAgo","abs$1","toISOString$1","Y","D","toFixed","total","totalSign","ymSign","daysSign","hmsSign","proto$2","monthsFromDays","withSuffix","posNegDuration","relativeTime$1","toIsoString","version","updateLocale","tmpLocale","relativeTimeRounding","roundingFunction","relativeTimeThreshold","threshold","limit","myMoment","HTML5_FMT","DATETIME_LOCAL","DATETIME_LOCAL_SECONDS","DATETIME_LOCAL_MS","DATE","TIME","TIME_SECONDS","TIME_MS","WEEK","MONTH","window","moment","monthsShortDot","monthsStrictRegex","monthsShortStrictRegex","longMonthsParse","shortMonthsParse","weekdaysParseExact","processRelativeTime","monthsParseExact","ll","lll","llll","symbolMap","numberMap","numbersPast","numbersFuture","translate","verbalNumber","monthsShortWithDots","monthsShortWithoutDots","str","standalone","weekEndings","num","plural","suffixes","0","1","2","3","4","5","6","7","8","9","10","20","30","40","50","60","70","80","90","100","isUpper","eifelerRegelAppliesToNumber","lastDigit","translateSingular","forms","special","relativeTimeWithPlural","relativeTimeWithSingular","translator","words","correctGrammaticalCase","wordKey","last2Digits","relativeTimeMr","monthsNominative","monthsSubjective","momentToFormat","12","13","numbersNouns","numberNoun","hundred","ten","one","word","numberAsNoun","processHoursFunction","$","UTCDate","UTCToday","today","isUTCEquals","date1","date2","method","deprecationMsg","datepicker","deprecated","extras","DateArray","contains","remove","splice","new_array","clear","copy","Datepicker","element","options","_events","_secondaryEvents","_process_options","viewDate","defaultViewDate","focusDate","isInput","is","inputField","find","component","hasClass","isInline","picker","DPGlobal","template","_check_template","templates","leftArrow","html","rightArrow","_buildEvents","_attachEvents","addClass","appendTo","rtl","calendarWeeks","attr","Number","startDate","_o","endDate","daysOfWeekDisabled","daysOfWeekHighlighted","datesDisabled","_allow_update","setViewMode","startView","fillDow","fillMonths","update","show","_resolveViewName","view","each","viewModes","viewMode","inArray","_resolveDaysOfWeek","daysOfWeek","ex","opts","language","minViewMode","maxViewMode","multidate","multidateSeparator","String","weekStart","weekEnd","parseFormat","_local_to_utc","_zero_time","parseDate","assumeNearbyYear","Infinity","plc","orientation","_plc","grep","_applyEvents","evs","el","ch","ev","on","_unapplyEvents","off","events","keyup","proxy","keyCode","keydown","paste","showOnFocus","focus","click","blur","_focused_from","target","immediateUpdates","navArrowsClick","dayCellClick","resize","place","document","hide","_detachEvents","_attachSecondaryEvents","_detachSecondaryEvents","_trigger","event","altdate","local_date","_utc_to_local","trigger","type","ix","formatDate","enableOnReadonly","container","navigator","msMaxTouchPoints","disableTouchKeyboard","detach","forceParse","setValue","destroy","dateString","originalEvent","clipboardData","types","getData","setDate","preventDefault","_zero_utc_time","getDates","getUTCDates","selected_date","clearDates","autoclose","setDates","setUTCDates","setUTCDate","formatted","getFormattedDate","getStartDate","setStartDate","updateNavArrows","getEndDate","setEndDate","setDaysOfWeekDisabled","setDaysOfWeekHighlighted","setDatesDisabled","calendarWidth","outerWidth","calendarHeight","outerHeight","windowWidth","width","scrollTop","appendOffset","parentsZindex","parents","itemZIndex","css","zIndex","zIndexOffset","parent","height","left","top","removeClass","yorient","right","oldDates","fromArgs","dateWithinRange","updateViewDate","change","fill","showWeekDays","dowCnt","daysMin","append","localDate","setRange","range","getClassNames","cls","todayHighlight","dateIsDisabled","_fill_yearsView","selector","cssClass","factor","startYear","endYear","beforeFn","classes","tooltip","before","step","startVal","endVal","focusedVal","selected","currVal","noop","enabled","text","startMonth","endMonth","todaytxt","cleartxt","titleFormat","todayDate","titleBtnVisible","todayBtn","weekOfDateIsDisabled","clearBtn","title","prevMonth","nextMonth","weekDay","clsName","th","yth","calWeek","content","beforeShowDay","uniqueSort","unique","monthsTitle","end","eq","beforeShowMonth","moDate","beforeShowYear","beforeShowDecade","beforeShowCentury","prevIsDisabled","nextIsDisabled","toggleClass","stopPropagation","_setDate","setUTCMonth","timestamp","currentTarget","dir","navStep","moveMonth","_toggle_multidate","toggleActive","which","moveDay","newDate","moveWeek","new_month","new_date","mag","moveYear","moveAvailableDate","newViewDate","dateChanged","keyboardNavigation","ctrlKey","shiftKey","children","filter","DateRangePicker","inputs","jquery","keepEmptyValues","datepickerPlugin","dateUpdated","pickers","updateDates","opts_from_el","re_lower","_","opts_from_locale","locale_opts","updateRanges","updating","dp","keep_empty_values","old","option","internal_return","$this","elopts","locopts","Constructor","en","daysShort","validParts","nonpunctuation","toValue","toDisplay","separators","assumeNearby","part","fn_map","dateAliases","yesterday","tomorrow","filtered","parsed","setters_order","setters_map","yyyy","v","fparts","match_part","cnt","_date","DD","substring","seps","headTemplate","contTemplate","footTemplate","noConflict","fnDaterangepicker","daterangepicker","showWeekNumbers","showISOWeekNumbers","instance","default","cb","parentEl","minDate","maxDate","maxSpan","autoApply","singleDatePicker","showDropdowns","minYear","maxYear","showCustomRangeLabel","timePicker","timePicker24Hour","timePickerIncrement","timePickerSeconds","linkedCalendars","autoUpdateInput","alwaysShowCalendars","ranges","opens","drops","buttonClasses","applyButtonClasses","cancelButtonClasses","applyLabel","cancelLabel","weekLabel","customRangeLabel","monthNames","firstDay","isShowing","leftCalendar","rightCalendar","elem","createElement","innerHTML","rangeHtml","applyClass","cancelClass","dateLimit","isInvalidDate","isCustomDate","start","timepicker","list","prepend","clickPrev","clickNext","clickDate","hoverDate","monthOrYearChanged","timeChanged","clickRange","clickApply","clickCancel","elementChanged","toggle","updateElement","updateMonthsInView","previousRightTime","updateView","renderTimePicker","removeAttr","updateCalendars","updateFormInputs","ampm","renderCalendar","calculateChosenLabel","side","lastMonth","lastYear","daysInLastMonth","dayOfWeek","startDay","curDate","col","row","dateHtml","currentMonth","currentYear","inMinYear","inMaxYear","monthHtml","yearHtml","maxLimit","isCustom","cname","disabled","timeSelector","i_in_24","am_html","pm_html","move","containerTop","parentOffset","parentRightEdge","scrollLeft","clientWidth","containerWidth","containerRight","containerLeft","_outsideClickProxy","outsideClick","oldStartDate","oldEndDate","chosenLabel","closest","showCalendars","hideCalendars","label","getAttribute","dt","customRange","isLeft","leftOrRight","cal","newValue","removeData","implementOptions","defaultOptions","pluginDataName","Plugin","currentView","_attachedEvents","$element","params","disabledDays","shortTime","clearButton","nowButton","cancelText","okText","clearText","nowText","switchOnClick","triggerEvent","monthPicker","setName","init","initDays","initDates","initTemplate","initButtons","_attachEvent","_centerBox","$dtpElement","_onElementClick","_onBackgroundClick","_onCloseClick","_fireCalendar","isAfterMinDate","isBeforeMaxDate","yearPicker","midYear","dtpElement","_onCancelClick","_onOKClick","_onMonthBeforeClick","_onMonthAfterClick","_onYearBeforeClick","_onYearAfterClick","_onActualYearClick","_onYearRangeBeforeClick","_onYearRangeAfterClick","_onYearItemClick","_onClearClick","_onNowClick","initMeridienButtons","_onSelectAM","_onSelectPM","initDate","generateCalendar","_template","constructHTMLCalendar","_onSelectDate","toggleButtons","showDate","initHours","showTime","svgClockElement","createSVGClock","sin","PI","cos","color","svgHourCircle","createSVGElement","cx","cy","svgHourText","textContent","toggleTime","addEventListener","_onSelectHour","className","setAttribute","appendChild","initMinutes","svgMinuteCircle","_onSelectMinute","svgMinuteText","animateHands","H","isHour","hl","svgElement","class","viewBox","svgGElement","transform","svgClockFace","stroke","svgClockCenter","svgMinuteHand","x1","y1","x2","y2","svgHourHand","tag","attrs","createElementNS","checkHour","checkMinute","_return","_minDate","checkTime","_maxDate","rotateElement","deg","WebkitTransform","selectDate","startOfMonth","endOfMonth","iNumDay","iWeek","possible","random","setElementValue","material","startOfYear","endOfYear","isHours","convertHours","_onKeydown","_closeYearPicker","refreshYearItems","curYear","newYear","enableYearPicker","reomveClass","disableYearPicker","setTimeout","tm","_hideCalendar","setMinDate","setMaxDate","enableDays","jQuery","originalPicker","bootstrapMaterialDatePicker","newInstance","$template","DISALLOWED_ATTRIBUTES","uriAttrs","DefaultWhitelist","area","br","code","div","em","hr","h1","h2","h3","h4","h5","h6","img","li","ol","pre","small","span","sub","sup","strong","ul","SAFE_URL_PATTERN","DATA_URL_PATTERN","allowedAttribute","allowedAttributeList","attrName","nodeName","Boolean","nodeValue","regExp","sanitizeHtml","unsafeElements","whiteList","sanitizeFn","whitelistKeys","elements","querySelectorAll","len2","elName","attributeList","attributes","whitelistedAttributes","len3","removeAttribute","parentNode","removeChild","elemCtrProto","Element","objCtr","classListGetter","$elem","force","classListPropDesc","configurable","__defineGetter__","startsWith","testElement","classList","_add","DOMTokenList","_remove","_toggle","getSelectedOptions","select","ignoreDisabled","opt","selectedOptions","tagName","getSelectValues","multiple","$defineProperty","error","search","TypeError","searchString","searchLength","position","charCodeAt","HTMLSelectElement","valHooks","useDefault","_set","changedArguments","EventIsSupported","Event","stringSearch","normalize","stringTypes","searchSuccess","stringType","normalizeToBase","toInteger","triggerNative","eventName","dispatchEvent","bubbles","createEvent","initEvent","fireEvent","createEventObject","eventType","deburredLetters","reLatin","reComboMark","deburrLetter","escaper","testRegexp","replaceRegexp","htmlEscape","keyCodeMap","32","48","49","51","52","53","54","55","56","57","59","65","66","67","68","69","71","72","73","74","75","76","77","78","79","81","82","83","84","85","86","87","88","89","96","97","98","99","101","102","103","104","105","keyCodes","success","major","full","dropdown","VERSION","err","selectId","EVENT_KEY","classNames","DISABLED","DIVIDER","SHOW","DROPUP","MENU","MENURIGHT","MENULEFT","BUTTONCLASS","POPOVERHEADER","ICONBASE","TICKICON","Selector","elementTemplates","subtext","whitespace","createTextNode","fragment","createDocumentFragment","noResults","cloneNode","checkMark","REGEXP_ARROW","REGEXP_TAB_OR_ESCAPE","generateOption","optgroup","nodeType","inline","insertAdjacentHTML","useFragment","subtextElement","iconElement","textElement","icon","iconBase","childNodes","display","showNoResults","searchMatch","searchValue","noneResultsText","$menuInner","firstChild","Selectpicker","$newElement","$button","$menu","selectpicker","main","current","isSearching","keyHistory","resetKeyHistory","sizeInfo","winPad","windowPadding","render","refresh","setStyle","selectAll","deselectAll","_option","BootstrapVersion","toUpdate","DEFAULTS","style","tickIcon","chain","dataAttributes","dataAttr","noneSelectedText","countSelectedText","numSelected","numTotal","maxOptionsText","numAll","numGroup","selectAllText","deselectAllText","doneButton","doneButtonText","multipleSeparator","styleBase","size","selectedTextFormat","hideDisabled","showSubtext","showIcon","showContent","dropupAuto","header","liveSearch","liveSearchPlaceholder","liveSearchNormalize","liveSearchStyle","actionsBox","showTick","caret","maxOptions","mobile","selectOnTab","dropdownAlignRight","virtualScroll","sanitize","id","autofocus","createDropdown","buildData","after","prependTo","$searchbox","checkDisabled","clickListener","liveSearchListener","focusedParent","setWidth","selectPosition","isVirtual","menuInner","emptyMenu","replaceChild","hasAttribute","validity","valid","buildList","multiselectable","inputGroup","drop","searchbox","actionsbox","donebutton","setPositionData","canHighlight","dividerHeight","dropdownHeaderHeight","liHeight","posinset","createView","setSize","prevActive","active","selectedIndex","liIndex","selectedData","menuInnerHeight","scroll","chunkSize","chunkCount","firstChunk","lastChunk","currentChunk","prevPositions","positionIsDifferent","previousElements","chunks","menuIsDifferent","endOfChunk","position0","position1","activeIndex","prevActiveIndex","defocusItem","visibleElements","setOptionStatus","every","marginTop","marginBottom","menuFragment","toSanitize","visibleElementsLen","elText","elementData","lastChild","sanitized","hasScrollBar","menuInnerInnerWidth","offsetWidth","totalMenuWidth","selectWidth","minWidth","actualMenuWidth","newActive","currentActive","focusItem","updateValue","noScroll","liData","noStyle","setPlaceholder","updateIndex","titleOption","isSelected","titleNotAppended","insertBefore","optionSelector","mainData","optID","startIndex","selectOptions","addDivider","previousData","addOption","divider","cssText","inlineStyle","optionClass","optgroupClass","trim","addOptgroup","previous","headerIndex","item","selectData","mainElements","widestOptionLength","buildElement","liElement","combinedLength","widestOption","findLis","showCount","countMax","placeholderSelected","selectedCount","button","buttonInner","querySelector","titleFragment","hasContent","tabIndex","thisData","titleOptions","totalCount","tr8nText","filterExpand","newStyle","status","buttonClass","newElement","previousElementSibling","nextElementSibling","menu","menuInnerInner","dropdownHeader","actions","firstOption","body","scrollBarWidth","offsetHeight","headerHeight","searchHeight","actionsHeight","doneButtonHeight","menuStyle","getComputedStyle","menuWidth","menuPadding","vert","paddingTop","paddingBottom","borderTopWidth","borderBottomWidth","horiz","paddingLeft","paddingRight","borderLeftWidth","borderRightWidth","menuExtras","marginLeft","marginRight","overflowY","selectHeight","getSelectPosition","containerPos","$window","$container","selectOffsetTop","selectOffsetBot","selectOffsetLeft","selectOffsetRight","setMenuSize","isAuto","menuHeight","minHeight","_minHeight","maxHeight","menuInnerMinHeight","estimate","isDropup","divHeight","divLength","dropup","_popper","requestAnimationFrame","$selectClone","btnWidth","$bsContainer","actualHeight","getPlacement","containerPosition","Default","isDisabled","selectedOnly","setDisabled","setSelected","activeIndexIsSet","keepActive","$document","setFocus","checkPopperExists","state","isCreated","_menu","hoverLi","parentElement","hoverData","retainActive","clickedData","clickedIndex","prevValue","prevIndex","prevOption","triggerChange","$option","$optgroup","$optgroupOptions","maxOptionsGrp","maxReached","maxReachedGrp","maxOptionsArr","maxTxt","maxTxtGrp","$notify","q","cache","cacheArr","searchStyle","_searchStyle","normalizeSearch","cacheLen","liPrev","liSelectedIndex","changeAll","previousSelected","currentSelected","isActive","liActive","activeLi","isToggle","$items","updateScroll","downOnTab","isArrowKey","lastIndexOf","liActiveIndex","scrollHeight","cancel","clearTimeout","matchIndex","keydownHandler","bootstrapKeydown","_dataApiKeydownHandler","$selectpicker","atoa","debounce","thing","evt","once","_once","et","emit","emitterSnapshot","ctx","throws","listen","async","ticky","tick","setImmediate","customEvent","eventmap","doc","global","addEvent","capturing","removeEvent","removeEventListener","hardCache","unwrap","wrapper","attachEvent","srcElement","returnValue","cancelBubble","wrapperFactory","wrap","listener","detachEvent","fabricate","detail","makeClassicEvent","NativeCustomEvent","foo","useNative","initCustomEvent","cancelable","eventname","ron","lookupClass","cached","rm","autoDiscover","previewTemplate","jstree","instance_counter","ccp_node","ccp_mode","ccp_inst","themes_loaded","src","Promise","resolve","then","plugins","path","idregex","root","core","plugin","_id","_cnt","_wrk","themes","dots","icons","ellipsis","last_error","working","worker_queue","focused","reference","needle","ignore","inst","_model","is_method","isPlainObject","expr","pseudos","createPseudo","strings","check_callback","animation","url","stripes","variant","responsive","expand_selected_onload","worker","force_text","dblclick_toggle","loaded_state","restore_focus","compute_elements_positions","keyboard","is_open","close_node","get_parent","get_node","get_prev_dom","is_closed","open_node","_firstChild","get_next_dom","open_all","get_container_ul","last","edit","deco","Child","changed","force_full_redraw","redraw_timeout","default_state","loaded","opened","children_d","settings","ready","original_container_html","addBack","contents","get_string","li_height","first","node","_create_prototype_node","load_node","keep_html","URL","revokeObjectURL","teardown","_temp1","_temp2","_node","_kbevent_to_func","altKey","19","27","33","34","35","36","37","38","39","44","45","46","112","113","114","115","116","117","118","119","120","121","122","123","144","145","16","17","18","61","107","109","110","186","187","188","189","190","191","192","219","220","221","222","111","106","173","kb","unbind","tout","was_click","selection","getSelection","sel","removeAllRanges","collapse","toggle_node","activeElement","activate_node","f","vakata","array_unique","chr","fromCharCode","ind","set_theme","set_theme_variant","not","act","hover_node","dehover_node","triggerHandler","get_container","is_function","dom","nextSibling","_nextSibling","_previousSibling","previousSibling","as_dom","get_path","glue","ids","get_text","reverse","parentsUntil","nextAll","get_children_dom","is_parent","is_loaded","is_loading","loading","is_leaf","is_array","_load_nodes","array_filter","failed","_load_node","has_children","hidden","nodes","is_callback","force_reload","done","load_all","to_load","notTextOrCommentNode","parseHTML","ajax","getResponseHeader","_append_json_data","_append_html_data","JSON","stringify","fail","_node_changed","dat","par","chd","dpc","_parse_model_from_html","redraw","force_processing","parse","rslt","df","t_id","t_cnt","parse_flat","ps","unshift","tid","li_attr","a_attr","href","original","parse_nest","postMessage","_rslt","mod","Blob","Worker","createObjectURL","onmessage","terminate","_parse_model_from_flat_json","_parse_model_from_json","_redraw","fe","redraw_node","draw_children","deep","force_render","last_sibling","getElementById","backgroundImage","backgroundPosition","backgroundSize","t1","t2","stop","slideDown","ok","_open_to","slideUp","original_obj","_this","close_all","is_disabled","enable_node","disable_node","is_hidden","hide_node","skip_redraw","show_node","hide_all","show_all","last_clicked","metaKey","deselect_node","select_node","is_selected","deselect_all","supress_event","prevent_open","array_remove_item","select_all","get_selected","get_top_selected","get_bottom_selected","get_state","open","set_state","initial_selection","isEmptyObject","skip_loading","forget_state","refresh_node","set_id","set_text","get_json","flat","get_icon","no_data","no_state","no_li_attr","no_a_attr","no_id","no_children","create_node","check","rename_node","delete_node","lft","array_remove","triger","chk","more","chc","is_multi","functions","move_node","origin","old_par","old_pos","new_par","old_ins","copy_node","cut","get_buffer","can_paste","clear_buffer","default_text","stopImmediatePropagation","nv","replaceWith","fontFamily","fontSize","fontWeight","fontStyle","fontStretch","fontVariant","letterSpacing","wordSpacing","theme_name","theme_url","get_theme","variant_name","get_theme_variant","show_stripes","hide_stripes","toggle_stripes","show_dots","hide_dots","toggle_dots","show_icons","hide_icons","toggle_icons","show_ellipsis","hide_ellipsis","toggle_ellipsis","set_icon","hide_icon","show_icon","with_values","thatFunc","thatArg","funcArgs","deselected","drg","elm","checkbox","visible","three_state","whole_node","keep_selected_style","cascade","tie_selection","cascade_to_disabled","cascade_to_hidden","uto","_undetermined","checked","cur","selectedIds","_cascade_new_checked_state","undetermined","allIds","old_parent","get_undetermined","tt","tmp2","checkbox_disabled","show_checkboxes","checkboxes","hide_checkboxes","toggle_checkboxes","is_undetermined","disable_checkbox","enable_checkbox","is_checked","uncheck_node","check_node","checkedState","selectedChildIds","selectedNodeIds","selectedChildrenIds","get_checked_descendants","childId","self","check_all","uncheck_all","get_checked","get_top_checked","get_bottom_checked","conditionalselect","contextmenu","show_at_node","items","new_node","ey","last_ts","cto","show_contextmenu","pageX","pageY","context","changedTouches","clientX","clientY","_show_contextmenu","right_to_left","vakata_context","position_x","position_y","is_visible","hide_onmouseleave","event_name","_execute","_disabled","action","_parse","sep","separator_before","_class","shortcut","shortcut_label","submenu","separator_after","_show_submenu","xl","dw","dh","relatedTarget","siblings","prevAll","dnd","open_timeout","is_draggable","check_while_dragging","always_copy","inside_pos","drag_selection","touch","large_drop_target","large_drag_target","use_html5","mlt","txt","escape","lastmv","laster","lastev","opento","marker","isDifferentNode","op","pr","ip","is_copy","pn","ins","ref","rel","helper","z","dataTransfer","dropEffect","_get","_clean","strip","vakata_dnd","is_down","is_drag","helper_w","init_x","init_y","scroll_l","scroll_t","scroll_e","scroll_i","is_touch","scroll_speed","scroll_proximity","helper_left","helper_top","threshold_touch","clearInterval","drag","_scroll","init_only","setInterval","elementFromPoint","pageXOffset","pageYOffset","unselectable","onselectstart","touchAction","msTouchAction","MozUserSelect","wh","ww","dl","ht","scrollWidth","massload","toLoad","fuzzy","case_sensitive","show_only_matches","show_only_matches_children","close_opened_onclear","search_leaves_only","search_callback","opn","som","smc","hdn","skip_async","inside","clear_search","lastRequest","abort","caseSensitive","isMatch","pattern","matchmask","pattern_alphabet","match_bitapScore","MATCH_LOCATION","location","MATCH_DISTANCE","distance","MATCH_THRESHOLD","patternLen","mask","accuracy","proximity","binMin","binMid","lastRd","finish","rd","charMatch","textLen","scoreThreshold","bestLoc","binMax","locations","ttl","preserve_loaded","save_state","restore_state","st","storage","sec","clear_state","del","localStorage","setItem","getItem","removeItem","_delete_ids","get_rules","max_children","valid_children","max_depth","get_type","rules","set_type","old_type","old_icon","trim_whitespace","duplicate","counter","wholerow","customElements","HTMLElement","createdCallback","define","webpackContext","req","webpackContextResolve","hasTouch","hasPointerEvents","docEl","documentElement","pointerEvents","supports","listNodeName","itemNodeName","rootClass","listClass","itemClass","dragClass","handleClass","collapsedClass","placeClass","noDragClass","emptyClass","expandBtnHTML","collapseBtnHTML","group","maxDepth","reset","placeEl","setParent","dragEl","collapseItem","expandItem","onStartEvent","handle","isTouch","touches","dragStart","onMoveEvent","dragMove","onEndEvent","dragStop","serialize","_step","_x","_x2","level","depth","serialise","mouse","offsetX","offsetY","startX","startY","lastX","lastY","nowX","nowY","distX","distY","dirAx","dirX","dirY","lastDirX","lastDirY","distAxX","distAxY","moving","dragRootEl","dragDepth","hasNewRoot","pointEl","expandAll","collapseAll","unsetParent","dragItem","prev","newAx","isEmpty","visibility","pointElRoot","isNewRoot","nestable","retval","Zepto","S2","select2","amd","requirejs","require","undef","_req","makeMap","handlers","defined","waiting","defining","hasOwn","aps","jsSuffixRegExp","hasProp","baseName","nameParts","nameSegment","mapValue","foundMap","foundI","foundStarMap","starI","baseParts","starMap","nodeIdCompat","makeRequire","relName","forceSync","makeLoad","depName","callDep","splitPrefix","makeRelParts","makeConfig","relParts","relResourceName","uri","deps","cjsModule","usingExports","callbackType","load","alt","cfg","_defined","_$","Utils","getMethods","theClass","methods","methodName","Extend","ChildClass","SuperClass","__hasProp","BaseConstructor","__super__","Decorate","DecoratorClass","decoratedMethods","superMethods","DecoratedClass","argCount","calledConstructor","displayName","superMethod","calledMethod","originalMethod","decoratedMethod","Observable","listeners","_type","invoke","generateChars","chars","_convertData","originalKey","dataLevel","hasScroll","$el","overflowX","innerHeight","innerWidth","escapeMarkup","markup","replaceMap","'","appendMany","$nodes","$jqNodes","__cache","GetUniqueElementId","select2Id","StoreData","GetData","RemoveData","Results","dataAdapter","$results","displayMessage","hideLoading","$message","message","hideMessages","$options","results","$dropdown","sorter","highlightFirstItem","$selected","ensureHighlightVisible","setClasses","showLoading","loadingMore","$loading","msMatchesSelector","webkitMatchesSelector","_resultId","role","$children","child","$child","$childrenContainer","isOpen","$highlighted","getHighlightedResults","currentIndex","nextIndex","$next","currentOffset","nextTop","nextOffset","nextBottom","mousewheel","bottom","deltaY","isAtTop","isAtBottom","offsetDelta","BACKSPACE","TAB","ENTER","SHIFT","CTRL","ALT","ESC","SPACE","PAGE_UP","PAGE_DOWN","END","HOME","LEFT","UP","RIGHT","DOWN","DELETE","KEYS","BaseSelection","$selection","_tabindex","resultsId","_handleBlur","_attachCloseHandler","_detachCloseHandler","$select","isEnabled","SingleSelection","$rendered","selectionContainer","MultipleSelection","$selections","Placeholder","decorated","placeholder","normalizePlaceholder","createPlaceholder","$placeholder","singlePlaceholder","AllowClear","_handleClear","_handleKeyboardClear","$clear","previousVal","unselectData","prevented","removeAll","$remove","Search","$search","$searchContainer","_transferTabIndex","_keyUpPrevented","isDefaultPrevented","$previousChoice","searchRemoveChoice","msie","documentMode","disableInputEvents","handleSearch","searchHadFocus","resizeSearch","term","EventRelay","relayEvents","preventableEvents","Translation","dict","all","translation","_cache","loadPath","translations","BaseAdapter","query","generateResultId","SelectAdapter","currentData","unselect","addOptions","innerText","normalizedData","_normalizeItem","ArrayAdapter","_dataToConvert","convertToOptions","$existing","existingIds","onlyItem","$existingOption","existingData","newData","$newOption","AjaxAdapter","ajaxOptions","_applyDefaults","processResults","transport","failure","$request","_request","request","delay","_queryTimeout","Tags","tags","createTag","insertTag","_removeOldTags","page","checkChildren","Tokenizer","tokenizer","tokenData","termChar","MinimumInputLength","$e","minimumInputLength","minimum","MaximumInputLength","maximumInputLength","maximum","MaximumSelectionLength","maximumSelectionLength","_checkIfMaximumSelected","successCallback","count","Dropdown","showSearch","HidePlaceholder","removePlaceholder","modifiedData","InfiniteScroll","lastParams","$loadingMore","createLoadingMore","showLoadingMore","loadMoreIfNeeded","isLoadMoreVisible","loadMore","pagination","AttachBody","$dropdownParent","_showDropdown","_attachPositioningHandler","_bindContainerResultHandlers","_hideDropdown","_detachPositioningHandler","$dropdownContainer","_containerResultsHandlersBound","_positionDropdown","_resizeDropdown","scrollEvent","resizeEvent","orientationEvent","$watchers","isCurrentlyAbove","isCurrentlyBelow","newDirection","viewport","enoughRoomAbove","enoughRoomBelow","$offsetParent","offsetParent","isConnected","MinimumResultsForSearch","minimumResultsForSearch","countResults","SelectOnClose","_handleSelectOnClose","originalSelect2Event","$highlightedResults","CloseOnSelect","_selectTriggered","errorLoading","inputTooLong","overChars","inputTooShort","maximumSelected","searching","removeAllItems","ResultsList","SelectionSearch","DIACRITICS","SelectData","ArrayData","AjaxData","DropdownSearch","EnglishTranslation","Defaults","tokenSeparators","Query","amdBase","initSelection","InitSelection","resultsAdapter","selectOnClose","dropdownAdapter","SearchableDropdown","closeOnSelect","dropdownCssClass","dropdownCss","adaptDropdownCssClass","DropdownCSS","selectionAdapter","allowClear","containerCssClass","containerCss","adaptContainerCssClass","ContainerCSS","_resolveLanguage","uniqueLanguages","_processTranslations","debug","stripDiacritics","amdLanguageBase","dropdownAutoWidth","scrollAfterSelect","templateResult","templateSelection","theme","applyFromElement","optionLanguage","defaultLanguage","elementLanguage","parentLanguage","languages","resolvedLanguages","baseLanguage","languageData","camelCase","convertedData","Options","fromElement","InputCompat","excludedData","dataset","upperCaseLetter","letter","attributeName","dataName","dataValue","Select2","_generateId","tabindex","DataAdapter","_placeContainer","SelectionAdapter","DropdownAdapter","ResultsAdapter","_bindAdapters","_registerDomEvents","_registerDataEvents","_registerSelectionEvents","_registerDropdownEvents","_registerResultsEvents","_registerEvents","initialData","_syncAttributes","insertAfter","_resolveWidth","WIDTH","styleWidth","elementWidth","_syncA","_syncS","_syncSubtree","observer","MutationObserver","WebKitMutationObserver","MozMutationObserver","_observer","mutations","observe","childList","subtree","nonRelayEvents","toggleDropdown","close","_isChangeMutation","addedNodes","removedNodes","mutation","actualTrigger","preTriggerMap","preTriggerName","preTriggerArgs","hasFocus","enable","newVal","disconnect","syncCssClasses","$dest","$src","adapter","adapted","replacements","CompatUtils","_containerAdapter","clazz","containerCssAdapter","_cssAdapter","_dropdownAdapter","dropdownCssAdapter","_isInitialized","InputData","_currentData","_valueSeparator","getSelected","allData","AttachContainer","StopPropagation","nullLowestDeltaTimeout","lowestDelta","toFix","toBind","fixHooks","mouseHooks","setup","handler","onmousewheel","getLineHeight","getPageHeight","$parent","adjustOldDeltas","normalizeOffset","orgEvent","delta","deltaX","absDelta","fix","wheelDelta","wheelDeltaY","wheelDeltaX","axis","HORIZONTAL_AXIS","deltaMode","lineHeight","pageHeight","shouldAdjustOldDeltas","getBoundingClientRect","boundingRect","deltaFactor","nullLowestDelta","dispatch","unmousewheel","thisMethods","instanceOptions","_lang","am","pm","AM","PM","decimal","mins","hrs","_DEFAULTS","closeOnWindowScroll","disableTextInput","disableTimeRanges","durationTime","forceRoundTime","maxTime","minTime","noneOption","_moduloSeconds","scrollDefault","selectOnBlur","show2400","showDuration","showOn","stopScrollPropagation","typeaheadHighlight","useSelect","wrapHours","attributeOptions","_parseSettings","_render","_formatValue","_keydownhandler","_keyuphandler","_disableTextInputHandler","_hideKeyboard","_isVisible","_setSelected","listOffset","timeInt","_time2int","_getTimeValue","_findRow","topOffset","currentScroll","_closeHandler","_selectValue","getSecondsFromMidnight","relative_date","time_string","setHours","setMinutes","setSeconds","setMilliseconds","isVisible","prettyTime","_roundAndFormatTime","_int2time","_setTimeValue","_twelveHourTime","wrapped_list","noneElement","_generateNoneElement","durStart","_ONE_DAY","dr","drCur","drLen","stepFunc","timeString","durationString","_int2duration","optionValue","jObj","timeValue","topDelta","rangeError","roundSeconds","cursor","getHours","getMinutes","getSeconds","ampmRegex","__assign","assign","lines","radius","scale","corners","fadeColor","rotate","speed","shadow","Spinner","spin","borderRadius","shadows","boxShadow","xUnits","yUnits","parseBoxShadow","degrees","backgroundLine","background","getColor","transformOrigin","line","normalizeShadow","drawLines","cancelAnimationFrame","animateId","props","idx","normalized","shadows_1","xy","convertOffset","radians","_createClass","defineProperties","descriptor","writable","protoProps","staticProps","_possibleConstructorReturn","ReferenceError","_classCallCheck","Emitter","_callbacks","callbacks","_len","_key","_iterator","_isArray","_ref","Dropzone","_Emitter","__proto__","getPrototypeOf","fallback","clickableElements","files","dropzone","instances","_ret","elementOptions","optionsForElement","forceFallback","isBrowserSupported","acceptedFiles","acceptedMimeTypes","uploadMultiple","chunking","renameFilename","renameFile","file","getExistingFallback","previewsContainer","getElement","clickable","getElements","subClass","superClass","setPrototypeOf","_inherits","withCredentials","timeout","parallelUploads","forceChunking","parallelChunkUploads","retryChunks","retryChunksLimit","maxFilesize","paramName","createImageThumbnails","maxThumbnailFilesize","thumbnailWidth","thumbnailHeight","thumbnailMethod","resizeWidth","resizeHeight","resizeMimeType","resizeQuality","resizeMethod","filesizeBase","maxFiles","headers","ignoreHiddenFiles","autoProcessQueue","autoQueue","addRemoveLinks","hiddenInputContainer","capture","dictDefaultMessage","dictFallbackMessage","dictFallbackText","dictFileTooBig","dictInvalidFileType","dictResponseError","dictCancelUpload","dictUploadCanceled","dictCancelUploadConfirmation","dictRemoveFile","dictRemoveFileConfirmation","dictMaxFilesExceeded","dictFileSizeUnits","tb","gb","mb","xhr","chunk","dzuuid","upload","uuid","dzchunkindex","dztotalfilesize","dzchunksize","dztotalchunkcount","totalChunkCount","dzchunkbyteoffset","accept","chunksUploaded","messageElement","_i2","_iterator2","getElementsByTagName","getFallbackForm","info","srcX","srcY","srcWidth","srcHeight","srcRatio","trgRatio","trgWidth","trgHeight","transformFile","resizeImage","dragstart","dragend","dragenter","dragover","dragleave","addedfile","_this2","previewElement","_i3","_iterator3","_i4","_iterator4","filesize","_removeLink","removeFileEvent","UPLOADING","confirm","removeFile","_i5","_iterator5","removedfile","_updateMaxFilesReachedClass","thumbnail","dataUrl","_i6","_iterator6","thumbnailElement","_i7","_iterator7","errormultiple","processing","processingmultiple","uploadprogress","progress","bytesSent","_i8","_iterator8","totaluploadprogress","sending","sendingmultiple","successmultiple","canceled","canceledmultiple","complete","completemultiple","maxfilesexceeded","maxfilesreached","queuecomplete","addedfiles","_thumbnailQueue","_processingThumbnail","_len2","objects","_key2","_iterator9","_isArray9","_i9","_ref8","accepted","getFilesWithStatus","QUEUED","ADDED","_this3","setupHiddenFileInput","hiddenFileInput","_i10","_iterator10","addFile","webkitURL","_i11","_iterator11","updateTotalUploadProgress","getAddedFiles","getUploadingFiles","getQueuedFiles","noPropagation","efct","effectAllowed","clickableElement","elementInside","disable","removeAllFiles","totalUploadProgress","totalBytesSent","totalBytes","getActiveFiles","_i12","_iterator12","existingFallback","form","fieldsString","_getParamName","fields","getFallback","_i13","_iterator13","_arr","_i14","elementListeners","_this4","removeEventListeners","cancelUpload","setupEventListeners","selectedSize","selectedUnit","getAcceptedFiles","webkitGetAsEntry","_addFilesFromItems","handleFiles","_i15","_iterator14","_this5","_i16","_iterator15","entry","isFile","getAsFile","isDirectory","_addFilesFromDirectory","kind","directory","_this6","dirReader","createReader","errorHandler","log","readEntries","entries","_i17","_iterator16","fullPath","isValidFile","_this7","uuidv4","filename","_renameFile","chunked","_enqueueThumbnail","_errorProcessing","enqueueFile","_i18","_iterator17","_this8","processQueue","_this9","_processThumbnailQueue","_this10","createThumbnail","without","cancelIfNecessary","_i19","_iterator18","_this11","canvas","resizedDataURL","toDataURL","ExifRestore","restore","dataURL","dataURItoBlob","fixOrientation","_this12","fileReader","FileReader","onload","createThumbnailFromUrl","readAsDataURL","crossOrigin","_this13","loadExif","EXIF","getTag","resizeInfo","getContext","drawImageIOSFix","trgX","trgY","onerror","processingLength","queuedFiles","processFiles","processFile","_i20","_iterator19","uploadFiles","groupedFiles","_getFilesWithXhr","_i21","_iterator20","CANCELED","_i22","_iterator21","_groupedFile","_len3","_key3","_this14","_transformFiles","transformedFiles","transformedFile","handleNextChunk","chunkIndex","startedChunkCount","dataBlock","webkitSlice","retries","_uploadData","finishedChunkUpload","allFinished","SUCCESS","_finished","dataBlocks","_i23","_this15","XMLHttpRequest","_i24","_iterator22","resolveOption","_finishedUploading","_handleUploadError","onprogress","_updateFilesUploadProgress","headerName","headerValue","setRequestHeader","formData","FormData","additionalParams","_getChunk","_i25","_iterator23","_file","_addFormElementData","submitRequest","_this16","doneCounter","_loop","_i26","_iterator24","inputName","inputType","_i27","_iterator25","_i28","_iterator26","_file2","_i29","_iterator27","_file3","allFilesFinished","_i30","_iterator28","_file4","_i31","_iterator29","_file5","response","readyState","responseType","responseText","_i32","_iterator30","send","_i33","_iterator31","_i34","_iterator32","ERROR","initClass","camelize","forElement","discover","dropzones","checkElements","_i35","_iterator33","_i36","_iterator34","blacklistedBrowsers","capableBrowser","File","FileList","_i37","_iterator35","userAgent","dataURI","byteString","atob","mimeString","ab","ArrayBuffer","ia","Uint8Array","asc","rejectedItem","els","_i38","_iterator36","_i39","_iterator37","question","rejected","mimeType","baseMimeType","_i40","_iterator38","validType","ACCEPTED","PROCESSING","sx","sy","sw","sh","dx","dy","vertSquashRatio","naturalWidth","ih","naturalHeight","drawImage","getImageData","py","ratio","detectVerticalSquash","KEY_STR","chr1","chr2","chr3","enc1","enc2","enc3","enc4","origFileBase64","resizedFileBase64","rawImage","decode64","segments","slice2Segments","image","exifManipulation","encode64","exifArray","getExifArray","newImageArray","insertExif","seg","imageData","buf","separatePoint","mae","ato","rawImageArray","head","endPoint","_autoDiscoverFunction","win","rem","doScroll","frameElement","poll","contentLoaded","cachedSetTimeout","cachedClearTimeout","process","defaultSetTimout","defaultClearTimeout","runTimeout","currentQueue","queue","draining","queueIndex","cleanUpNextTick","drainQueue","run","runClearTimeout","Item","nextTick","browser","env","argv","versions","addListener","removeListener","removeAllListeners","prependListener","prependOnceListener","binding","cwd","chdir","umask","ALL_INSTANCES","laddaLabel","createRange","selectNodeContents","surroundContents","spinner","timer","spinnerWrapper","spinnerColor","spinnerLines","createSpinner","setProgress","startAfter","isLoading","progressElement","targets","bindElement","stopAll","getAncestorOfTagType","checkValidity","_typeof2","_defineProperty","_extends","_objectSpread","ownKeys","getOwnPropertySymbols","sym","getOwnPropertyDescriptor","_objectWithoutProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","_toConsumableArray","arr2","_arrayWithoutHoles","iter","_iterableToArray","_nonIterableSpread","IE11OrLess","Edge","FireFox","Safari","IOS","ChromeForAndroid","captureMode","passive","getParentOrHost","host","includeCTX","_throttleTimeout","R_SPACE","defaultView","currentStyle","matrix","selfOnly","appliedTransforms","matrixFn","DOMMatrix","WebKitCSSMatrix","CSSMatrix","MSCSSMatrix","getWindowScrollingElement","scrollingElement","getRect","relativeToContainingBlock","relativeToNonStaticParent","undoScale","elRect","containerRect","elMatrix","scaleX","scaleY","isScrolledPast","elSide","parentSide","getParentAutoScrollElement","elSideVal","parentSideVal","getChild","childNum","currentChild","Sortable","ghost","dragged","draggable","lastElementChild","getRelativeScrollOffset","offsetLeft","offsetTop","winScroller","includeSelf","gotSelf","clientHeight","elemCSS","isRectEqual","rect1","rect2","throttle","scrollBy","Polymer","setRect","rect","unsetRect","expando","AnimationStateManager","animationCallbackId","animationStates","captureAnimationState","fromRect","thisAnimationDuration","childMatrix","addAnimationState","removeAnimationState","indexOfObject","animateAll","animating","animationTime","toRect","prevFromRect","prevToRect","animatingRect","targetMatrix","sqrt","calculateRealTime","animate","animationResetTimer","currentRect","translateX","translateY","animatingX","animatingY","repaint","easing","animated","initializeByDefault","PluginManager","mount","pluginEvent","sortable","eventCanceled","eventNameGlobal","pluginName","initializePlugins","initialized","modified","modifyOption","getEventProperties","eventProperties","modifiedValue","optionListeners","rootEl","targetEl","cloneEl","toEl","fromEl","oldIndex","newIndex","oldDraggableIndex","newDraggableIndex","putSortable","extraEventProperties","onName","CustomEvent","pullMode","lastPutMode","allEventProperties","ghostEl","nextEl","lastDownEl","cloneHidden","dragStarted","moved","activeSortable","hideGhostForTarget","_hideGhostForTarget","unhideGhostForTarget","_unhideGhostForTarget","cloneNowHidden","cloneNowShown","dispatchSortableEvent","_dispatchEvent","activeGroup","tapEvt","touchEvt","lastDx","lastDy","tapDistanceLeft","tapDistanceTop","lastTarget","lastDirection","targetMoveDistance","ghostRelativeParent","awaitingDragStarted","ignoreNextClick","sortables","pastFirstInvertThresh","isCircumstantialInvert","ghostRelativeParentInitialScroll","_silent","savedInputChecked","documentExists","PositionGhostAbsolutely","CSSFloatProperty","supportDraggable","supportCssPointerEvents","_detectDirection","elCSS","elWidth","child1","child2","firstChildCSS","secondChildCSS","firstChildWidth","secondChildWidth","flexDirection","gridTemplateColumns","touchingSideChild2","_prepareGroup","toFn","pull","sameGroup","otherGroup","originalGroup","checkPull","checkPut","put","revertClone","nearestEmptyInsertDetectEvent","nearest","emptyInsertThreshold","insideHorizontally","insideVertically","_onDragOver","_checkOutsideTargetEl","_isOutsideThisEl","store","swapThreshold","invertSwap","invertedSwapThreshold","removeCloneOnHide","ghostClass","chosenClass","preventOnFilter","setData","dropBubble","dragoverBubble","dataIdAttr","delayOnTouchOnly","touchStartThreshold","devicePixelRatio","fallbackClass","fallbackOnBody","fallbackTolerance","fallbackOffset","supportPointer","nativeDraggable","_onTapStart","_onMove","dragRect","targetRect","willInsertAfter","retVal","onMoveFn","onMove","draggedRect","related","relatedRect","_disableDraggable","_unsilent","sum","_nextTick","_cancelNextTick","_getDirection","pointerType","originalTarget","shadowRoot","composedPath","_saveInputCheckedState","isContentEditable","criteria","_prepareDragStart","dragStartFn","ownerDocument","_lastX","_lastY","_onDrop","_disableDelayedDragEvents","_triggerDragStart","_disableDelayedDrag","_delayedDragTouchMoveHandler","_dragStartTimer","_onTouchMove","_onDragStart","_dragStarted","_appendGhost","_nulling","_emulateDragOver","ghostMatrix","relativeScrollOffset","cssMatrix","_hideClone","cloneId","_loopId","_dragStartId","revert","vertical","isOwner","canSort","fromSortable","completedFired","dragOverEvent","_ignoreWhileAnimating","completed","elLastChild","_ghostIsLast","targetBeforeFirstSwap","sibling","differentLevel","differentRowCol","dragElS1Opp","dragElS2Opp","dragElOppLength","targetS1Opp","targetS2Opp","targetOppLength","_dragElInRowColumn","side1","scrolledPastTop","scrollBefore","isLastTarget","mouseOnAxis","targetS1","targetS2","invert","_getInsertDirection","_getSwapDirection","dragIndex","moveVector","extra","insertion","_showClone","_offMoveEvents","_offUpEvents","save","handleEvent","_globalDragOver","order","utils","dst","cancelNextTick","detectDirection","scrollEl","scrollRootEl","lastAutoScrollX","lastAutoScrollY","touchEvt$1","pointerElemChangedInterval","autoScrolls","scrolling","clearAutoScrolls","autoScroll","pid","clearPointerElemChangedInterval","lastSwapEl","isFallback","scrollCustomFn","sens","scrollSensitivity","scrollSpeed","scrollThisInstance","scrollFn","layersOut","currentParent","canScrollX","canScrollY","scrollPosX","scrollPosY","vx","vy","layer","scrollOffsetY","scrollOffsetX","bubbleScroll","toSortable","onSpill","Revert","Remove","_ref2","_ref3","_ref4","parentSortable","lastMultiDragSelect","multiDragSortable","dragEl$1","clonesFromRect","clonesHidden","multiDragElements","multiDragClones","initialFolding","folding","insertMultiDragClones","elementsInserted","sortableIndex","removeMultiDragElements","multiDragElement","AutoScroll","_handleAutoScroll","_handleFallbackAutoScroll","dragOverCompleted","dragOverBubble","nulling","ogElemScroller","newElem","Swap","swapClass","dragOverValid","swap","prevSwapEl","n1","n2","i1","i2","isEqualNode","swapItem","MultiDrag","_deselectMultiDrag","_checkKeyDown","_checkKeyUp","selectedClass","multiDragKey","multiDragKeyDown","isMultiDrag","delayStartGlobal","delayEnded","setupClone","showClone","hideClone","_ref5","dragStartGlobal","_ref6","multiDrag","_ref7","dragOver","_ref9","clonesInserted","insertMultiDragElements","_ref10","dragRectAbsolute","clonesHiddenBefore","dragOverAnimationCapture","_ref11","dragMatrix","dragOverAnimationComplete","_ref12","originalEvt","multiDragIndex","nullingGlobal","destroyGlobal","deselect","oldIndicies","newIndicies","clones","g","webpackPolyfill","paths","__webpack_modules__","134","__unused_webpack_module","__webpack_exports__","tiny_emitter","tiny_emitter_default","listen_default","src_select","select_default","_defineProperties","clipboard_action","ClipboardAction","resolveOptions","emitter","selectedText","selectFake","selectTarget","isRTL","fakeElem","border","padding","margin","yPosition","createFakeElement","fakeHandlerCallback","removeFake","fakeHandler","copyText","succeeded","execCommand","handleResult","clearSelection","_action","_target","clipboard_typeof","clipboard_defineProperties","_setPrototypeOf","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","_isNativeReflectConstruct","Super","_getPrototypeOf","NewTarget","_assertThisInitialized","getAttributeValue","attribute","clipboard","Clipboard","_super","clipboard_classCallCheck","listenClick","support","queryCommandSupported","defaultAction","defaultTarget","defaultText","onClick","delegateTarget","clipboardAction","828","matchesSelector","mozMatchesSelector","oMatchesSelector","438","__unused_webpack_exports","_delegate","useCapture","listenerFn","879","nodeList","370","delegate","listenNode","listenNodeList","listenSelector","817","isReadOnly","setSelectionRange","addRange","279","evtArr","evts","liveEvents","TinyEmitter","__webpack_module_cache__","definition","crossvent","touchy","pointerEnabled","mouseup","mousedown","mousemove","msPointerEnabled","whichMouseButton","buttons","getOffset","getScroll","scrollProp","offsetProp","getElementBehindPoint","point","never","always","getRectWidth","getRectHeight","getParent","isEditable","contentEditable","manually","getCoord","coord","targetTouches","getEventHost","missMap","initialContainers","_mirror","_source","_item","_offsetX","_offsetY","_moveX","_moveY","_initialSibling","_currentSibling","_copy","_renderTimer","_grabbed","_lastDropTarget","moves","accepts","invalidTarget","containers","isContainer","copySortSource","revertOnSpill","removeOnSpill","ignoreInputTextSelection","mirrorContainer","drake","manualStart","canMove","dragging","spillOver","spillOut","grab","release","eventualMovements","startBecauseMouseMoved","movements","preventGrabbed","canStart","grabbed","renderMirrorImage","isCopy","ungrab","dropTarget","findDropTarget","isInitialPlacement","cleanup","reverts","initial","removeMirrorImage","elementBehindCursor","immediate","getImmediateChild","getReference","horizontal","outside","Timeout","clearFn","_clearFn","scope","unref","enroll","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","_onTimeout","clearImmediate","registerImmediate","channel","messagePrefix","onGlobalMessage","nextHandle","tasksByHandle","currentlyRunningATask","attachTo","runIfPresent","importScripts","postMessageIsAsynchronous","oldOnMessage","canUsePostMessage","MessageChannel","port1","port2","script","onreadystatechange","task","pluralForm","plurals","pluralize","relativeTimeWithMutation","mutationTable","softMutation","lastNumber","monthsNominativeEl","monthsGenitiveEl","_monthsGenitiveEl","_monthsNominativeEl","calendarEl","_calendarEl","Rails","linkClickSelector","buttonClickSelector","exclude","inputChangeSelector","formSubmitSelector","formInputClickSelector","formDisableSelector","formEnableSelector","fileInputSelector","linkDisableSelector","buttonDisableSelector","nonce","loadCSPNonce","cspNonce","csrfParam","csrfToken","meta","CSRFProtection","refreshCSRFTokens","param","fire","defaultPrevented","stopEverything","AcceptHeaders","createXHR","prepareOptions","processResponse","xml","json","statusText","beforeSend","OPENED","dataType","crossDomain","DONE","parser","DOMParser","parseFromString","isCrossDomain","originAnchor","urlAnchor","protocol","serializeElement","additionalParam","encodeURIComponent","formElements","allowAction","handleConfirm","answer","disableFormElement","disableFormElements","disableLinkElement","enableFormElement","enableFormElements","enableLinkElement","isXhrRedirect","handleDisabledElement","enableElement","disableElement","replacement","originalText","handleMethod","formContent","isRemote","handleRemote","enctype","formSubmitButtonClick","formNoValidate","preventInsignificantClick","insignificantMetaClick","rails","ajaxPrefilter","originalOptions","_rails_loaded","sparkMd5","createCommonjsModule","hex_chr","md5cycle","md5blk","md5blks","md5blk_array","md51","tail","lo","hi","rhex","hex","toUtf8","unescape","hexToBinaryString","bytes","SparkMD5","clamp","targetArray","sourceArray","byteLength","begin","appendBinary","_buff","_length","_hash","raw","buff","_finish","getState","hash","setState","hashBinary","returnUInt8Array","buffer","subarray","utf8Str2ArrayBuffer","md51_array","classCallCheck","createClass","fileSlice","mozSlice","FileChecksum","md5Buffer","fileReaderDidLoad","fileReaderDidError","readNextChunk","binaryDigest","base64digest","btoa","readAsArrayBuffer","findElement","eventInit","toArray$1","BlobRecord","checksum","content_type","byte_size","getMetaValue","requestDidLoad","requestDidError","blob","direct_upload","directUploadData","_xhr","BlobUpload","_blob$directUploadDat","DirectUpload","notify","messages","DirectUploadController","directUpload","hiddenInput","insertAdjacentElement","dispatchError","signed_id","alert","uploadRequestDidProgress","DirectUploadsController","controllers","createDirectUploadControllers","startNextController","controller","submitButtonsByForm","WeakMap","started","didClick","didSubmitForm","didSubmitRemoteElement","handleFormSubmissionEvent","delete","submitForm","ActiveStorage","channels","webpackEmptyContext","themeSettings","layoutHelpers","attachMaterialRipple","detachMaterialRipple","SideNav","firstLoad","newBody","updateNavbarBg","updateSidenavBg","updateFooterBg","_setup","setAutoUpdate","isSmallScreen","setCollapsed","toggleCollapsed","hide_alert_timeout","$elements","tab","tabs","dropzoneControl","max_files","link","onEnd","sort_url","sorted_data_ids","post","pages","Ladda","modal","dropdownParent","isSupported","Turbolinks","supported","history","pushState","visit","clearCache","setProgressBarDelay","copyObject","Node","ELEMENT_NODE","defer","Location","absoluteURL","requestURL","getOrigin","getPath","getPathComponents","getLastPathComponent","getExtension","isHTML","isPrefixedBy","isEqualTo","toCacheKey","_t","HttpRequest","requestCanceled","requestTimedOut","requestFailed","requestLoaded","requestProgressed","referrer","NETWORK_FAILURE","TIMEOUT_FAILURE","sent","notifyApplicationBeforeRequestStart","requestStarted","lengthComputable","endRequest","requestCompletedWithResponse","requestFailedWithStatusCode","notifyApplicationAfterRequestEnd","ontimeout","onabort","requestFinished","ProgressBar","trickle","_t2","stylesheetElement","createStylesheetElement","createProgressElement","defaultCSS","installStylesheetElement","installProgressElement","startTrickling","hiding","fadeProgressElement","uninstallProgressElement","stopTrickling","opacity","trickleInterval","BrowserAdapter","showProgressBar","_t3","progressBar","visitProposedToLocationWithAction","startVisitToLocationWithAction","visitStarted","issueRequest","changeHistory","loadCachedSnapshot","visitRequestStarted","hasCachedSnapshot","showProgressBarAfterDelay","visitRequestProgressed","visitRequestCompleted","loadResponse","visitRequestFailedWithStatusCode","reload","visitRequestFinished","hideProgressBar","visitCompleted","followRedirect","pageInvalidated","progressBarTimeout","progressBarDelay","_t4","History","onPageLoad","onPopState","shouldHandlePopState","turbolinks","restorationIdentifier","historyPoppedToLocationWithRestorationIdentifier","pageLoaded","pageIsLoaded","HeadDetails","outerHTML","tracked","fromHeadElement","hasElementWithKey","getTrackedElementSignature","getScriptElementsNotInDetails","getElementsMatchingTypeNotInDetails","getStylesheetElementsNotInDetails","getProvisionalElements","findMetaElementByName","_e","Snapshot","headDetails","bodyElement","fromHTMLString","fromHTMLElement","getRootLocation","getSetting","getCacheControlValue","getElementForAnchor","getPermanentElements","getPermanentElementById","getPermanentElementsPresentInSnapshot","findFirstAutofocusableElement","hasAnchor","isPreviewable","isCacheable","isVisitable","Renderer","renderView","viewWillRender","viewRendered","invalidateView","viewInvalidated","createScriptElement","SnapshotRenderer","currentSnapshot","newSnapshot","isPreview","currentHeadDetails","newHeadDetails","currentBody","shouldRender","mergeHead","replaceBody","focusFirstAutofocusableElement","copyNewHeadStylesheetElements","copyNewHeadScriptElements","removeCurrentHeadProvisionalElements","copyNewHeadProvisionalElements","relocateCurrentBodyPermanentElements","activateNewBodyScriptElements","assignNewBody","replacePlaceholderElementsWithClonedPermanentElements","trackedElementsAreIdentical","getNewHeadStylesheetElements","getNewHeadScriptElements","getCurrentHeadProvisionalElements","getNewHeadProvisionalElements","getCurrentBodyPermanentElements","permanentElement","getNewBodyScriptElements","_t5","_t6","ErrorRenderer","newHead","replaceHeadAndBody","activateBodyScriptElements","getScriptElements","View","htmlElement","getSnapshot","snapshot","markAsPreview","renderSnapshot","renderError","ScrollManager","onScroll","_t7","scrollToElement","scrollIntoView","scrollToPosition","scrollTo","updatePosition","scrollPositionChanged","SnapshotCache","snapshots","has","read","write","Visit","performScroll","_t8","identifier","timingMetrics","recordTimingMetric","cancelRender","visitFailed","historyChanged","shouldIssueRequest","getCachedSnapshot","getCachedSnapshotForLocation","cacheSnapshot","visitRendered","redirectedToLocation","followedRedirect","replaceHistoryWithLocationAndRestorationIdentifier","scrolled","scrollToRestoredPosition","scrollToTop","scrollToAnchor","restorationData","scrollPosition","getTimingMetrics","snapshotCached","frame","_t9","Controller","clickBubbled","clickCaptured","scrollManager","startHistory","stopHistory","applicationAllowsVisitingLocation","locationIsVisitable","getRestorationDataForIdentifier","startVisit","pushHistoryWithLocationAndRestorationIdentifier","shouldCacheSnapshot","notifyApplicationBeforeCachingSnapshot","lastRenderedLocation","getCurrentRestorationData","notifyApplicationBeforeRender","currentVisit","notifyApplicationAfterRender","notifyApplicationAfterPageLoad","clickEventIsSignificant","getVisitableLinkForNode","getVisitableLocationForLink","applicationAllowsFollowingLinkToLocation","getActionForLink","notifyApplicationAfterClickingLinkToLocation","notifyApplicationBeforeVisitingLocation","notifyApplicationAfterVisitingLocation","timing","createVisit","nodeIsVisitable","currentScript"],"mappings":"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CR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,KACR,OAAQ,KACR,OAAQ,KACR,OAAQ,KACR,OAAQ,KAER,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IA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OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAQ,IACR,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAQ,IACR,OAAU,IACV,OAAU,IACV,OAAQ,IACR,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,KACV,OAAQ,KACR,OAAU,KACV,OAAU,KACV,OAAU,KACV,OAAU,KACV,OAAU,KACV,OAAU,KACV,OAAU,KACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAQ,IACR,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,KACV,OAAU,KACV,OAAU,KACV,OAAU,KACV,SAAU,IACV,OAAU,IACV,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAQ,IACR,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAQ,IACR,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,KACV,OAAU,KACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAQ,IACR,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,KACV,OAAU,KACV,SAAU,IACV,OAAU,IACV,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAQ,IACR,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAQ,IACR,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAQ,IACR,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,KACV,OAAU,KACV,OAAU,KACV,OAAU,KACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,KACV,SAAU,IACV,OAAU,IACV,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAQ,IACR,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,KACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAQ,IACR,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAQ,IACR,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAQ,IACR,OAAU,IACV,OAAU,IACV,OAAQ,IACR,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,KACV,OAAQ,KACR,OAAU,KACV,OAAU,KACV,OAAU,KACV,OAAU,KACV,OAAU,KACV,OAAU,KACV,OAAU,KACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAQ,IACR,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,KACV,OAAU,KACV,SAAU,IACV,OAAU,IACV,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAQ,IACR,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,KACV,SAAU,IACV,OAAU,IACV,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAQ,IACR,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,KACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAQ,IACR,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,KACV,SAAU,IACV,OAAU,IACV,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAQ,IACR,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAQ,IACR,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAQ,IACR,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,KACV,OAAU,KACV,OAAU,KACV,OAAU,KACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAQ,IACR,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,KACV,SAAU,IACV,OAAU,IACV,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAQ,IACR,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,KACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAQ,IACR,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAQ,IACR,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,SACV,OAAU,SACV,OAAU,SACV,OAAU,SACV,OAAU,SACV,OAAU,SACV,OAAU,SACV,OAAU,SACV,OAAU,SACV,OAAU,SACV,OAAU,SACV,OAAU,SACV,OAAU,SACV,OAAU,SACV,OAAU,SACV,OAAU,SACV,OAAU,SACV,OAAU,SACV,OAAU,SACV,OAAU,SACV,OAAU,SACV,SAAU,QAIdmF,EAAGnF,OAAO,oBAAqB,CAAC,aAAa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","file":"js/application-780cb907ada512fd6926.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/packs/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 929);\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' ? module.exports = factory() : typeof define === 'function' && define.amd ? define(factory) : global.moment = factory();\n})(this, function () {\n 'use strict';\n\n var hookCallback;\n\n function hooks() {\n return hookCallback.apply(null, arguments);\n } // This is done to register the method called with moment()\n // without creating circular dependencies.\n\n\n function setHookCallback(callback) {\n hookCallback = callback;\n }\n\n function isArray(input) {\n return input instanceof Array || Object.prototype.toString.call(input) === '[object Array]';\n }\n\n function isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return input != null && Object.prototype.toString.call(input) === '[object Object]';\n }\n\n function isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return Object.getOwnPropertyNames(obj).length === 0;\n } else {\n var k;\n\n for (k in obj) {\n if (obj.hasOwnProperty(k)) {\n return false;\n }\n }\n\n return true;\n }\n }\n\n function isUndefined(input) {\n return input === void 0;\n }\n\n function isNumber(input) {\n return typeof input === 'number' || Object.prototype.toString.call(input) === '[object Number]';\n }\n\n function isDate(input) {\n return input instanceof Date || Object.prototype.toString.call(input) === '[object Date]';\n }\n\n function map(arr, fn) {\n var res = [],\n i;\n\n for (i = 0; i < arr.length; ++i) {\n res.push(fn(arr[i], i));\n }\n\n return res;\n }\n\n function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n }\n\n function extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n }\n\n function createUTC(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n }\n\n function defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty: false,\n unusedTokens: [],\n unusedInput: [],\n overflow: -2,\n charsLeftOver: 0,\n nullInput: false,\n invalidMonth: null,\n invalidFormat: false,\n userInvalidated: false,\n iso: false,\n parsedDateParts: [],\n meridiem: null,\n rfc2822: false,\n weekdayMismatch: false\n };\n }\n\n function getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n\n return m._pf;\n }\n\n var some;\n\n if (Array.prototype.some) {\n some = Array.prototype.some;\n } else {\n some = function some(fun) {\n var t = Object(this);\n var len = t.length >>> 0;\n\n for (var i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n }\n\n function isValid(m) {\n if (m._isValid == null) {\n var flags = getParsingFlags(m);\n var parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n });\n var isNowValid = !isNaN(m._d.getTime()) && flags.overflow < 0 && !flags.empty && !flags.invalidMonth && !flags.invalidWeekday && !flags.weekdayMismatch && !flags.nullInput && !flags.invalidFormat && !flags.userInvalidated && (!flags.meridiem || flags.meridiem && parsedParts);\n\n if (m._strict) {\n isNowValid = isNowValid && flags.charsLeftOver === 0 && flags.unusedTokens.length === 0 && flags.bigHour === undefined;\n }\n\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n } else {\n return isNowValid;\n }\n }\n\n return m._isValid;\n }\n\n function createInvalid(flags) {\n var m = createUTC(NaN);\n\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n } else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n } // Plugins that add properties should also add the key here (null value),\n // so we can properly clone ourselves.\n\n\n var momentProperties = hooks.momentProperties = [];\n\n function copyConfig(to, from) {\n var i, prop, val;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentProperties.length > 0) {\n for (i = 0; i < momentProperties.length; i++) {\n prop = momentProperties[i];\n val = from[prop];\n\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n }\n\n var updateInProgress = false; // Moment prototype object\n\n function Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n\n if (!this.isValid()) {\n this._d = new Date(NaN);\n } // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n\n\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n }\n\n function isMoment(obj) {\n return obj instanceof Moment || obj != null && obj._isAMomentObject != null;\n }\n\n function absFloor(number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n }\n\n function toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n } // compare two arrays, return the number of differences\n\n\n function compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n\n for (i = 0; i < len; i++) {\n if (dontConvert && array1[i] !== array2[i] || !dontConvert && toInt(array1[i]) !== toInt(array2[i])) {\n diffs++;\n }\n }\n\n return diffs + lengthDiff;\n }\n\n function warn(msg) {\n if (hooks.suppressDeprecationWarnings === false && typeof console !== 'undefined' && console.warn) {\n console.warn('Deprecation warning: ' + msg);\n }\n }\n\n function deprecate(msg, fn) {\n var firstTime = true;\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n\n if (firstTime) {\n var args = [];\n var arg;\n\n for (var i = 0; i < arguments.length; i++) {\n arg = '';\n\n if (_typeof(arguments[i]) === 'object') {\n arg += '\\n[' + i + '] ';\n\n for (var key in arguments[0]) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n\n args.push(arg);\n }\n\n warn(msg + '\\nArguments: ' + Array.prototype.slice.call(args).join('') + '\\n' + new Error().stack);\n firstTime = false;\n }\n\n return fn.apply(this, arguments);\n }, fn);\n }\n\n var deprecations = {};\n\n function deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n }\n\n hooks.suppressDeprecationWarnings = false;\n hooks.deprecationHandler = null;\n\n function isFunction(input) {\n return input instanceof Function || Object.prototype.toString.call(input) === '[object Function]';\n }\n\n function set(config) {\n var prop, i;\n\n for (i in config) {\n prop = config[i];\n\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n\n this._config = config; // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n\n this._dayOfMonthOrdinalParseLenient = new RegExp((this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) + '|' + /\\d{1,2}/.source);\n }\n\n function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig),\n prop;\n\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n\n for (prop in parentConfig) {\n if (hasOwnProp(parentConfig, prop) && !hasOwnProp(childConfig, prop) && isObject(parentConfig[prop])) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n\n return res;\n }\n\n function Locale(config) {\n if (config != null) {\n this.set(config);\n }\n }\n\n var keys;\n\n if (Object.keys) {\n keys = Object.keys;\n } else {\n keys = function keys(obj) {\n var i,\n res = [];\n\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n\n return res;\n };\n }\n\n var defaultCalendar = {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L'\n };\n\n function calendar(key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n }\n\n var defaultLongDateFormat = {\n LTS: 'h:mm:ss A',\n LT: 'h:mm A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A'\n };\n\n function longDateFormat(key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper.replace(/MMMM|MM|DD|dddd/g, function (val) {\n return val.slice(1);\n });\n return this._longDateFormat[key];\n }\n\n var defaultInvalidDate = 'Invalid date';\n\n function invalidDate() {\n return this._invalidDate;\n }\n\n var defaultOrdinal = '%d';\n var defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\n function ordinal(number) {\n return this._ordinal.replace('%d', number);\n }\n\n var defaultRelativeTime = {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years'\n };\n\n function relativeTime(number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return isFunction(output) ? output(number, withoutSuffix, string, isFuture) : output.replace(/%d/i, number);\n }\n\n function pastFuture(diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n\n var aliases = {};\n\n function addUnitAlias(unit, shorthand) {\n var lowerCase = unit.toLowerCase();\n aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;\n }\n\n function normalizeUnits(units) {\n return typeof units === 'string' ? aliases[units] || aliases[units.toLowerCase()] : undefined;\n }\n\n function normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n }\n\n var priorities = {};\n\n function addUnitPriority(unit, priority) {\n priorities[unit] = priority;\n }\n\n function getPrioritizedUnits(unitsObj) {\n var units = [];\n\n for (var u in unitsObj) {\n units.push({\n unit: u,\n priority: priorities[u]\n });\n }\n\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n }\n\n function zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (sign ? forceSign ? '+' : '' : '-') + Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + absNumber;\n }\n\n var formattingTokens = /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g;\n var localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g;\n var formatFunctions = {};\n var formatTokenFunctions = {}; // token: 'M'\n // padded: ['MM', 2]\n // ordinal: 'Mo'\n // callback: function () { this.month() + 1 }\n\n function addFormatToken(token, padded, ordinal, callback) {\n var func = callback;\n\n if (typeof callback === 'string') {\n func = function func() {\n return this[callback]();\n };\n }\n\n if (token) {\n formatTokenFunctions[token] = func;\n }\n\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(func.apply(this, arguments), token);\n };\n }\n }\n\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n\n return input.replace(/\\\\/g, '');\n }\n\n function makeFormatFunction(format) {\n var array = format.match(formattingTokens),\n i,\n length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '',\n i;\n\n for (i = 0; i < length; i++) {\n output += isFunction(array[i]) ? array[i].call(mom, format) : array[i];\n }\n\n return output;\n };\n } // format date using native date object\n\n\n function formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] = formatFunctions[format] || makeFormatFunction(format);\n return formatFunctions[format](m);\n }\n\n function expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(localFormattingTokens, replaceLongDateFormatTokens);\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n }\n\n var match1 = /\\d/; // 0 - 9\n\n var match2 = /\\d\\d/; // 00 - 99\n\n var match3 = /\\d{3}/; // 000 - 999\n\n var match4 = /\\d{4}/; // 0000 - 9999\n\n var match6 = /[+-]?\\d{6}/; // -999999 - 999999\n\n var match1to2 = /\\d\\d?/; // 0 - 99\n\n var match3to4 = /\\d\\d\\d\\d?/; // 999 - 9999\n\n var match5to6 = /\\d\\d\\d\\d\\d\\d?/; // 99999 - 999999\n\n var match1to3 = /\\d{1,3}/; // 0 - 999\n\n var match1to4 = /\\d{1,4}/; // 0 - 9999\n\n var match1to6 = /[+-]?\\d{1,6}/; // -999999 - 999999\n\n var matchUnsigned = /\\d+/; // 0 - inf\n\n var matchSigned = /[+-]?\\d+/; // -inf - inf\n\n var matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi; // +00:00 -00:00 +0000 -0000 or Z\n\n var matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi; // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n\n var matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/; // 123456789 123456789.123\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n\n var matchWord = /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i;\n var regexes = {};\n\n function addRegexToken(token, regex, strictRegex) {\n regexes[token] = isFunction(regex) ? regex : function (isStrict, localeData) {\n return isStrict && strictRegex ? strictRegex : regex;\n };\n }\n\n function getParseRegexForToken(token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n } // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n\n\n function unescapeFormat(s) {\n return regexEscape(s.replace('\\\\', '').replace(/\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g, function (matched, p1, p2, p3, p4) {\n return p1 || p2 || p3 || p4;\n }));\n }\n\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n var tokens = {};\n\n function addParseToken(token, callback) {\n var i,\n func = callback;\n\n if (typeof token === 'string') {\n token = [token];\n }\n\n if (isNumber(callback)) {\n func = function func(input, array) {\n array[callback] = toInt(input);\n };\n }\n\n for (i = 0; i < token.length; i++) {\n tokens[token[i]] = func;\n }\n }\n\n function addWeekParseToken(token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n }\n\n function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n\n var YEAR = 0;\n var MONTH = 1;\n var DATE = 2;\n var HOUR = 3;\n var MINUTE = 4;\n var SECOND = 5;\n var MILLISECOND = 6;\n var WEEK = 7;\n var WEEKDAY = 8; // FORMATTING\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? '' + y : '+' + y;\n });\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year'); // ALIASES\n\n addUnitAlias('year', 'y'); // PRIORITIES\n\n addUnitPriority('year', 1); // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] = input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n });\n addParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n });\n addParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n }); // HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n }\n\n function isLeapYear(year) {\n return year % 4 === 0 && year % 100 !== 0 || year % 400 === 0;\n } // HOOKS\n\n\n hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n }; // MOMENTS\n\n\n var getSetYear = makeGetSet('FullYear', true);\n\n function getIsLeapYear() {\n return isLeapYear(this.year());\n }\n\n function makeGetSet(unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n }\n\n function get(mom, unit) {\n return mom.isValid() ? mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]() : NaN;\n }\n\n function set$1(mom, unit, value) {\n if (mom.isValid() && !isNaN(value)) {\n if (unit === 'FullYear' && isLeapYear(mom.year()) && mom.month() === 1 && mom.date() === 29) {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value, mom.month(), daysInMonth(value, mom.month()));\n } else {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);\n }\n }\n } // MOMENTS\n\n\n function stringGet(units) {\n units = normalizeUnits(units);\n\n if (isFunction(this[units])) {\n return this[units]();\n }\n\n return this;\n }\n\n function stringSet(units, value) {\n if (_typeof(units) === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units);\n\n for (var i = 0; i < prioritized.length; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n\n return this;\n }\n\n function mod(n, x) {\n return (n % x + x) % x;\n }\n\n var indexOf;\n\n if (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n } else {\n indexOf = function indexOf(o) {\n // I know\n var i;\n\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n\n return -1;\n };\n }\n\n function daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1 ? isLeapYear(year) ? 29 : 28 : 31 - modMonth % 7 % 2;\n } // FORMATTING\n\n\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n }); // ALIASES\n\n addUnitAlias('month', 'M'); // PRIORITY\n\n addUnitPriority('month', 8); // PARSING\n\n addRegexToken('M', match1to2);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict); // if we didn't find a month name, mark the date as invalid.\n\n\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n }); // LOCALES\n\n var MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/;\n var defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_');\n\n function localeMonths(m, format) {\n if (!m) {\n return isArray(this._months) ? this._months : this._months['standalone'];\n }\n\n return isArray(this._months) ? this._months[m.month()] : this._months[(this._months.isFormat || MONTHS_IN_FORMAT).test(format) ? 'format' : 'standalone'][m.month()];\n }\n\n var defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_');\n\n function localeMonthsShort(m, format) {\n if (!m) {\n return isArray(this._monthsShort) ? this._monthsShort : this._monthsShort['standalone'];\n }\n\n return isArray(this._monthsShort) ? this._monthsShort[m.month()] : this._monthsShort[MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'][m.month()];\n }\n\n function handleStrictParse(monthName, format, strict) {\n var i,\n ii,\n mom,\n llc = monthName.toLocaleLowerCase();\n\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(mom, '').toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n\n if (ii !== -1) {\n return ii;\n }\n\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n\n if (ii !== -1) {\n return ii;\n }\n\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeMonthsParse(monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n } // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n\n\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp('^' + this.months(mom, '').replace('.', '') + '$', 'i');\n this._shortMonthsParse[i] = new RegExp('^' + this.monthsShort(mom, '').replace('.', '') + '$', 'i');\n }\n\n if (!strict && !this._monthsParse[i]) {\n regex = '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n } // test the regex\n\n\n if (strict && format === 'MMMM' && this._longMonthsParse[i].test(monthName)) {\n return i;\n } else if (strict && format === 'MMM' && this._shortMonthsParse[i].test(monthName)) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n } // MOMENTS\n\n\n function setMonth(mom, value) {\n var dayOfMonth;\n\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value); // TODO: Another silent failure?\n\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));\n\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);\n\n return mom;\n }\n\n function getSetMonth(value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n }\n\n function getDaysInMonth() {\n return daysInMonth(this.year(), this.month());\n }\n\n var defaultMonthsShortRegex = matchWord;\n\n function monthsShortRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n\n return this._monthsShortStrictRegex && isStrict ? this._monthsShortStrictRegex : this._monthsShortRegex;\n }\n }\n\n var defaultMonthsRegex = matchWord;\n\n function monthsRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n\n return this._monthsStrictRegex && isStrict ? this._monthsStrictRegex : this._monthsRegex;\n }\n }\n\n function computeMonthsParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom;\n\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortPieces.push(this.monthsShort(mom, ''));\n longPieces.push(this.months(mom, ''));\n mixedPieces.push(this.months(mom, ''));\n mixedPieces.push(this.monthsShort(mom, ''));\n } // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n\n\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n for (i = 0; i < 12; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n }\n\n for (i = 0; i < 24; i++) {\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i');\n this._monthsShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i');\n }\n\n function createDate(y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date; // the date constructor remaps years 0-99 to 1900-1999\n\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n date = new Date(y + 400, m, d, h, M, s, ms);\n\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n\n return date;\n }\n\n function createUTCDate(y) {\n var date; // the Date.UTC function remaps years 0-99 to 1900-1999\n\n if (y < 100 && y >= 0) {\n var args = Array.prototype.slice.call(arguments); // preserve leap years using a full 400 year cycle, then reset\n\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\n\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(null, arguments));\n }\n\n return date;\n } // start-of-first-week - start-of-year\n\n\n function firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n return -fwdlw + fwd - 1;\n } // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n\n\n function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear,\n resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear\n };\n }\n\n function weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek,\n resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear\n };\n }\n\n function weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n } // FORMATTING\n\n\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek'); // ALIASES\n\n addUnitAlias('week', 'w');\n addUnitAlias('isoWeek', 'W'); // PRIORITIES\n\n addUnitPriority('week', 5);\n addUnitPriority('isoWeek', 5); // PARSING\n\n addRegexToken('w', match1to2);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2);\n addRegexToken('WW', match1to2, match2);\n addWeekParseToken(['w', 'ww', 'W', 'WW'], function (input, week, config, token) {\n week[token.substr(0, 1)] = toInt(input);\n }); // HELPERS\n // LOCALES\n\n function localeWeek(mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n }\n\n var defaultLocaleWeek = {\n dow: 0,\n // Sunday is the first day of the week.\n doy: 6 // The week that contains Jan 6th is the first week of the year.\n\n };\n\n function localeFirstDayOfWeek() {\n return this._week.dow;\n }\n\n function localeFirstDayOfYear() {\n return this._week.doy;\n } // MOMENTS\n\n\n function getSetWeek(input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n function getSetISOWeek(input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n } // FORMATTING\n\n\n addFormatToken('d', 0, 'do', 'day');\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday'); // ALIASES\n\n addUnitAlias('day', 'd');\n addUnitAlias('weekday', 'e');\n addUnitAlias('isoWeekday', 'E'); // PRIORITY\n\n addUnitPriority('day', 11);\n addUnitPriority('weekday', 11);\n addUnitPriority('isoWeekday', 11); // PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n });\n addRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n });\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict); // if we didn't get a weekday name, mark the date as invalid\n\n\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n });\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n }); // HELPERS\n\n function parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n }\n\n function parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n\n return isNaN(input) ? null : input;\n } // LOCALES\n\n\n function shiftWeekdays(ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n }\n\n var defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_');\n\n function localeWeekdays(m, format) {\n var weekdays = isArray(this._weekdays) ? this._weekdays : this._weekdays[m && m !== true && this._weekdays.isFormat.test(format) ? 'format' : 'standalone'];\n return m === true ? shiftWeekdays(weekdays, this._week.dow) : m ? weekdays[m.day()] : weekdays;\n }\n\n var defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_');\n\n function localeWeekdaysShort(m) {\n return m === true ? shiftWeekdays(this._weekdaysShort, this._week.dow) : m ? this._weekdaysShort[m.day()] : this._weekdaysShort;\n }\n\n var defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_');\n\n function localeWeekdaysMin(m) {\n return m === true ? shiftWeekdays(this._weekdaysMin, this._week.dow) : m ? this._weekdaysMin[m.day()] : this._weekdaysMin;\n }\n\n function handleStrictParse$1(weekdayName, format, strict) {\n var i,\n ii,\n mom,\n llc = weekdayName.toLocaleLowerCase();\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(mom, '').toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(mom, '').toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n\n if (ii !== -1) {\n return ii;\n }\n\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n\n if (ii !== -1) {\n return ii;\n }\n\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n\n if (ii !== -1) {\n return ii;\n }\n\n ii = indexOf.call(this._weekdaysParse, llc);\n\n if (ii !== -1) {\n return ii;\n }\n\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n\n if (ii !== -1) {\n return ii;\n }\n\n ii = indexOf.call(this._weekdaysParse, llc);\n\n if (ii !== -1) {\n return ii;\n }\n\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeWeekdaysParse(weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp('^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$', 'i');\n this._shortWeekdaysParse[i] = new RegExp('^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$', 'i');\n this._minWeekdaysParse[i] = new RegExp('^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$', 'i');\n }\n\n if (!this._weekdaysParse[i]) {\n regex = '^' + this.weekdays(mom, '') + '|^' + this.weekdaysShort(mom, '') + '|^' + this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n } // test the regex\n\n\n if (strict && format === 'dddd' && this._fullWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (strict && format === 'ddd' && this._shortWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (strict && format === 'dd' && this._minWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n } // MOMENTS\n\n\n function getSetDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();\n\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n }\n\n function getSetLocaleDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n }\n\n function getSetISODayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n } // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n }\n\n var defaultWeekdaysRegex = matchWord;\n\n function weekdaysRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n\n return this._weekdaysStrictRegex && isStrict ? this._weekdaysStrictRegex : this._weekdaysRegex;\n }\n }\n\n var defaultWeekdaysShortRegex = matchWord;\n\n function weekdaysShortRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n\n return this._weekdaysShortStrictRegex && isStrict ? this._weekdaysShortStrictRegex : this._weekdaysShortRegex;\n }\n }\n\n var defaultWeekdaysMinRegex = matchWord;\n\n function weekdaysMinRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n\n return this._weekdaysMinStrictRegex && isStrict ? this._weekdaysMinStrictRegex : this._weekdaysMinRegex;\n }\n }\n\n function computeWeekdaysParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [],\n shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n minp,\n shortp,\n longp;\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = this.weekdaysMin(mom, '');\n shortp = this.weekdaysShort(mom, '');\n longp = this.weekdays(mom, '');\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n } // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n\n\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n for (i = 0; i < 7; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n this._weekdaysStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i');\n this._weekdaysShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i');\n this._weekdaysMinStrictRegex = new RegExp('^(' + minPieces.join('|') + ')', 'i');\n } // FORMATTING\n\n\n function hFormat() {\n return this.hours() % 12 || 12;\n }\n\n function kFormat() {\n return this.hours() || 24;\n }\n\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, hFormat);\n addFormatToken('k', ['kk', 2], 0, kFormat);\n addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n addFormatToken('hmmss', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2) + zeroFill(this.seconds(), 2);\n });\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n addFormatToken('Hmmss', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2) + zeroFill(this.seconds(), 2);\n });\n\n function meridiem(token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(this.hours(), this.minutes(), lowercase);\n });\n }\n\n meridiem('a', true);\n meridiem('A', false); // ALIASES\n\n addUnitAlias('hour', 'h'); // PRIORITY\n\n addUnitPriority('hour', 13); // PARSING\n\n function matchMeridiem(isStrict, locale) {\n return locale._meridiemParse;\n }\n\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2);\n addRegexToken('h', match1to2);\n addRegexToken('k', match1to2);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n });\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4;\n var pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n });\n addParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4;\n var pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n }); // LOCALES\n\n function localeIsPM(input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return (input + '').toLowerCase().charAt(0) === 'p';\n }\n\n var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i;\n\n function localeMeridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n } // MOMENTS\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n\n\n var getSetHour = makeGetSet('Hours', true);\n var baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n week: defaultLocaleWeek,\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n meridiemParse: defaultLocaleMeridiemParse\n }; // internal storage for locale config files\n\n var locales = {};\n var localeFamilies = {};\n var globalLocale;\n\n function normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n } // pick the locale from the array\n // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n\n\n function chooseLocale(names) {\n var i = 0,\n j,\n next,\n locale,\n split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n\n if (locale) {\n return locale;\n }\n\n if (next && next.length >= j && compareArrays(split, next, true) >= j - 1) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n\n j--;\n }\n\n i++;\n }\n\n return globalLocale;\n }\n\n function loadLocale(name) {\n var oldLocale = null; // TODO: Find a better way to register and load all the locales in Node\n\n if (!locales[name] && typeof module !== 'undefined' && module && module.exports) {\n try {\n oldLocale = globalLocale._abbr;\n var aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {}\n }\n\n return locales[name];\n } // This function will load locale and then set the global locale. If\n // no arguments are passed in, it will simply return the current global\n // locale key.\n\n\n function getSetGlobalLocale(key, values) {\n var data;\n\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n } else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n } else {\n if (typeof console !== 'undefined' && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn('Locale ' + key + ' not found. Did you forget to load it?');\n }\n }\n }\n\n return globalLocale._abbr;\n }\n\n function defineLocale(name, config) {\n if (config !== null) {\n var locale,\n parentConfig = baseConfig;\n config.abbr = name;\n\n if (locales[name] != null) {\n deprecateSimple('defineLocaleOverride', 'use moment.updateLocale(localeName, config) to change ' + 'an existing locale. moment.defineLocale(localeName, ' + 'config) should only be used for creating a new locale ' + 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.');\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config\n });\n return null;\n }\n }\n }\n\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n } // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n\n\n getSetGlobalLocale(name);\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n }\n\n function updateLocale(name, config) {\n if (config != null) {\n var locale,\n tmpLocale,\n parentConfig = baseConfig; // MERGE\n\n tmpLocale = loadLocale(name);\n\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n\n config = mergeConfigs(parentConfig, config);\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale; // backwards compat for now: also set the locale\n\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n\n return locales[name];\n } // returns locale data\n\n\n function getLocale(key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n\n if (locale) {\n return locale;\n }\n\n key = [key];\n }\n\n return chooseLocale(key);\n }\n\n function listLocales() {\n return keys(locales);\n }\n\n function checkOverflow(m) {\n var overflow;\n var a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow = a[MONTH] < 0 || a[MONTH] > 11 ? MONTH : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) ? DATE : a[HOUR] < 0 || a[HOUR] > 24 || a[HOUR] === 24 && (a[MINUTE] !== 0 || a[SECOND] !== 0 || a[MILLISECOND] !== 0) ? HOUR : a[MINUTE] < 0 || a[MINUTE] > 59 ? MINUTE : a[SECOND] < 0 || a[SECOND] > 59 ? SECOND : a[MILLISECOND] < 0 || a[MILLISECOND] > 999 ? MILLISECOND : -1;\n\n if (getParsingFlags(m)._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) {\n overflow = DATE;\n }\n\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n } // Pick the first defined of two or three arguments.\n\n\n function defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n\n if (b != null) {\n return b;\n }\n\n return c;\n }\n\n function currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n\n if (config._useUTC) {\n return [nowValue.getUTCFullYear(), nowValue.getUTCMonth(), nowValue.getUTCDate()];\n }\n\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n } // convert an array to a date.\n // the array should mirror the parameters below\n // note: all values past the year are optional and will default to the lowest possible value.\n // [year, month, day , hour, minute, second, millisecond]\n\n\n function configFromArray(config) {\n var i,\n date,\n input = [],\n currentDate,\n expectedWeekday,\n yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config); //compute day of the year from weeks and weekdays\n\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n } //if the day of the year is set, figure out what it is\n\n\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (config._dayOfYear > daysInYear(yearToUse) || config._dayOfYear === 0) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n } // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n\n\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n } // Zero out whatever was not defaulted, including time\n\n\n for (; i < 7; i++) {\n config._a[i] = input[i] = config._a[i] == null ? i === 2 ? 1 : 0 : config._a[i];\n } // Check for 24:00:00.000\n\n\n if (config._a[HOUR] === 24 && config._a[MINUTE] === 0 && config._a[SECOND] === 0 && config._a[MILLISECOND] === 0) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(null, input);\n expectedWeekday = config._useUTC ? config._d.getUTCDay() : config._d.getDay(); // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n } // check for mismatching day of week\n\n\n if (config._w && typeof config._w.d !== 'undefined' && config._w.d !== expectedWeekday) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n }\n\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow;\n w = config._w;\n\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4; // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n\n weekYear = defaults(w.GG, config._a[YEAR], weekOfYear(createLocal(), 1, 4).year);\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n var curWeek = weekOfYear(createLocal(), dow, doy);\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year); // Default to current week.\n\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n } // iso 8601 regex\n // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n\n\n var extendedIsoRegex = /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([\\+\\-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/;\n var basicIsoRegex = /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([\\+\\-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/;\n var tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/;\n var isoDates = [['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/], ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/], ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/], ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false], ['YYYY-DDD', /\\d{4}-\\d{3}/], ['YYYY-MM', /\\d{4}-\\d\\d/, false], ['YYYYYYMMDD', /[+-]\\d{10}/], ['YYYYMMDD', /\\d{8}/], // YYYYMM is NOT allowed by the standard\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/], ['GGGG[W]WW', /\\d{4}W\\d{2}/, false], ['YYYYDDD', /\\d{7}/]]; // iso time formats and regexes\n\n var isoTimes = [['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/], ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/], ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/], ['HH:mm', /\\d\\d:\\d\\d/], ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/], ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/], ['HHmmss', /\\d\\d\\d\\d\\d\\d/], ['HHmm', /\\d\\d\\d\\d/], ['HH', /\\d\\d/]];\n var aspNetJsonRegex = /^\\/?Date\\((\\-?\\d+)/i; // date from iso format\n\n function configFromISO(config) {\n var i,\n l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime,\n dateFormat,\n timeFormat,\n tzFormat;\n\n if (match) {\n getParsingFlags(config).iso = true;\n\n for (i = 0, l = isoDates.length; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n\n if (match[3]) {\n for (i = 0, l = isoTimes.length; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n } // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n\n\n var rfc2822 = /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/;\n\n function extractFromRFC2822Strings(yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr) {\n var result = [untruncateYear(yearStr), defaultLocaleMonthsShort.indexOf(monthStr), parseInt(dayStr, 10), parseInt(hourStr, 10), parseInt(minuteStr, 10)];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n }\n\n function untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n\n return year;\n }\n\n function preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s.replace(/\\([^)]*\\)|[\\n\\t]/g, ' ').replace(/(\\s\\s+)/g, ' ').replace(/^\\s\\s*/, '').replace(/\\s\\s*$/, '');\n }\n\n function checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an indepentent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(parsedInput[0], parsedInput[1], parsedInput[2]).getDay();\n\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n\n return true;\n }\n\n var obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60\n };\n\n function calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10);\n var m = hm % 100,\n h = (hm - m) / 100;\n return h * 60 + m;\n }\n } // date and time from ref 2822 format\n\n\n function configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i));\n\n if (match) {\n var parsedArray = extractFromRFC2822Strings(match[4], match[3], match[2], match[5], match[6], match[7]);\n\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n config._d = createUTCDate.apply(null, config._a);\n\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n } // date from iso format or fallback\n\n\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n } // Final attempt, use Input Fallback\n\n\n hooks.createFromInputFallback(config);\n }\n\n hooks.createFromInputFallback = deprecate('value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' + 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' + 'discouraged and will be removed in an upcoming major release. Please refer to ' + 'http://momentjs.com/guides/#/warnings/js-date/ for more info.', function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }); // constant that refers to the ISO standard\n\n hooks.ISO_8601 = function () {}; // constant that refers to the RFC 2822 form\n\n\n hooks.RFC_2822 = function () {}; // date from string and format string\n\n\n function configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n\n config._a = [];\n getParsingFlags(config).empty = true; // This array is used to make a Date, either with `new Date` or `Date.UTC`\n\n var string = '' + config._i,\n i,\n parsedInput,\n tokens,\n token,\n skipped,\n stringLength = string.length,\n totalParsedInputLength = 0;\n tokens = expandFormat(config._f, config._locale).match(formattingTokens) || [];\n\n for (i = 0; i < tokens.length; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) || [])[0]; // console.log('token', token, 'parsedInput', parsedInput,\n // 'regex', getParseRegexForToken(token, config));\n\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n\n string = string.slice(string.indexOf(parsedInput) + parsedInput.length);\n totalParsedInputLength += parsedInput.length;\n } // don't parse if it's not a known token\n\n\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n } else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n\n addTimeToArrayFromToken(token, parsedInput, config);\n } else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n } // add remaining unparsed input length to the string\n\n\n getParsingFlags(config).charsLeftOver = stringLength - totalParsedInputLength;\n\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n } // clear _12h flag if hour is <= 12\n\n\n if (config._a[HOUR] <= 12 && getParsingFlags(config).bigHour === true && config._a[HOUR] > 0) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem; // handle meridiem\n\n config._a[HOUR] = meridiemFixWrap(config._locale, config._a[HOUR], config._meridiem);\n configFromArray(config);\n checkOverflow(config);\n }\n\n function meridiemFixWrap(locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n\n if (isPm && hour < 12) {\n hour += 12;\n }\n\n if (!isPm && hour === 12) {\n hour = 0;\n }\n\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n } // date from string and array of format strings\n\n\n function configFromStringAndArray(config) {\n var tempConfig, bestMoment, scoreToBeat, i, currentScore;\n\n if (config._f.length === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < config._f.length; i++) {\n currentScore = 0;\n tempConfig = copyConfig({}, config);\n\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (!isValid(tempConfig)) {\n continue;\n } // if there is any input that was not parsed add a penalty for that format\n\n\n currentScore += getParsingFlags(tempConfig).charsLeftOver; //or tokens\n\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n getParsingFlags(tempConfig).score = currentScore;\n\n if (scoreToBeat == null || currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n\n extend(config, bestMoment || tempConfig);\n }\n\n function configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i);\n config._a = map([i.year, i.month, i.day || i.date, i.hour, i.minute, i.second, i.millisecond], function (obj) {\n return obj && parseInt(obj, 10);\n });\n configFromArray(config);\n }\n\n function createFromConfig(config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n }\n\n function prepareConfig(config) {\n var input = config._i,\n format = config._f;\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || format === undefined && input === '') {\n return createInvalid({\n nullInput: true\n });\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n }\n\n function configFromInput(config) {\n var input = config._i;\n\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n }\n\n function createLocalOrUTC(input, format, locale, strict, isUTC) {\n var c = {};\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if (isObject(input) && isObjectEmpty(input) || isArray(input) && input.length === 0) {\n input = undefined;\n } // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n\n\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n return createFromConfig(c);\n }\n\n function createLocal(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n\n var prototypeMin = deprecate('moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/', function () {\n var other = createLocal.apply(null, arguments);\n\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n });\n var prototypeMax = deprecate('moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/', function () {\n var other = createLocal.apply(null, arguments);\n\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }); // Pick a moment m from moments so that m[fn](other) is true for all\n // other. This relies on the function fn to be transitive.\n //\n // moments should either be an array of moment objects or an array, whose\n // first element is an array of moment objects.\n\n function pickBy(fn, moments) {\n var res, i;\n\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n\n if (!moments.length) {\n return createLocal();\n }\n\n res = moments[0];\n\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n\n return res;\n } // TODO: Use [].sort instead?\n\n\n function min() {\n var args = [].slice.call(arguments, 0);\n return pickBy('isBefore', args);\n }\n\n function max() {\n var args = [].slice.call(arguments, 0);\n return pickBy('isAfter', args);\n }\n\n var now = function now() {\n return Date.now ? Date.now() : +new Date();\n };\n\n var ordering = ['year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', 'millisecond'];\n\n function isDurationValid(m) {\n for (var key in m) {\n if (!(indexOf.call(ordering, key) !== -1 && (m[key] == null || !isNaN(m[key])))) {\n return false;\n }\n }\n\n var unitHasDecimal = false;\n\n for (var i = 0; i < ordering.length; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n }\n\n function isValid$1() {\n return this._isValid;\n }\n\n function createInvalid$1() {\n return createDuration(NaN);\n }\n\n function Duration(duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n this._isValid = isDurationValid(normalizedInput); // representation for dateAddRemove\n\n this._milliseconds = +milliseconds + seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n\n this._days = +days + weeks * 7; // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n\n this._months = +months + quarters * 3 + years * 12;\n this._data = {};\n this._locale = getLocale();\n\n this._bubble();\n }\n\n function isDuration(obj) {\n return obj instanceof Duration;\n }\n\n function absRound(number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n } // FORMATTING\n\n\n function offset(token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset();\n var sign = '+';\n\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n\n return sign + zeroFill(~~(offset / 60), 2) + separator + zeroFill(~~offset % 60, 2);\n });\n }\n\n offset('Z', ':');\n offset('ZZ', ''); // PARSING\n\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n }); // HELPERS\n // timezone chunker\n // '+10:00' > ['10', '00']\n // '-1530' > ['-15', '30']\n\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n function offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher);\n\n if (matches === null) {\n return null;\n }\n\n var chunk = matches[matches.length - 1] || [];\n var parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n var minutes = +(parts[1] * 60) + toInt(parts[2]);\n return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;\n } // Return a moment from input, that is local/utc/zone equivalent to model.\n\n\n function cloneWithOffset(input, model) {\n var res, diff;\n\n if (model._isUTC) {\n res = model.clone();\n diff = (isMoment(input) || isDate(input) ? input.valueOf() : createLocal(input).valueOf()) - res.valueOf(); // Use low-level api, because this fn is low-level api.\n\n res._d.setTime(res._d.valueOf() + diff);\n\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n }\n\n function getDateOffset(m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset() / 15) * 15;\n } // HOOKS\n // This function will be called whenever a moment is mutated.\n // It is intended to keep the offset in sync with the timezone.\n\n\n hooks.updateOffset = function () {}; // MOMENTS\n // keepLocalTime = true means only change the timezone, without\n // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n // +0200, so we adjust the time as needed, to be valid.\n //\n // Keeping the time actually adds/subtracts (one hour)\n // from the actual represented time. That is why we call updateOffset\n // a second time. In case it wants us to change the offset again\n // _changeInProgress == true case, then we have to adjust, because\n // there is no such time in the given timezone.\n\n\n function getSetOffset(input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n\n this._offset = input;\n this._isUTC = true;\n\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(this, createDuration(input - offset, 'm'), 1, false);\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n }\n\n function getSetZone(input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n return this;\n } else {\n return -this.utcOffset();\n }\n }\n\n function setOffsetToUTC(keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n\n function setOffsetToLocal(keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n\n return this;\n }\n\n function setOffsetToParsedOffset() {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n\n if (tZone != null) {\n this.utcOffset(tZone);\n } else {\n this.utcOffset(0, true);\n }\n }\n\n return this;\n }\n\n function hasAlignedHourOffset(input) {\n if (!this.isValid()) {\n return false;\n }\n\n input = input ? createLocal(input).utcOffset() : 0;\n return (this.utcOffset() - input) % 60 === 0;\n }\n\n function isDaylightSavingTime() {\n return this.utcOffset() > this.clone().month(0).utcOffset() || this.utcOffset() > this.clone().month(5).utcOffset();\n }\n\n function isDaylightSavingTimeShifted() {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {};\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n var other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted = this.isValid() && compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n }\n\n function isLocal() {\n return this.isValid() ? !this._isUTC : false;\n }\n\n function isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n }\n\n function isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n } // ASP.NET json date format regex\n\n\n var aspNetRegex = /^(\\-|\\+)?(?:(\\d*)[. ])?(\\d+)\\:(\\d+)(?:\\:(\\d+)(\\.\\d*)?)?$/; // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n\n var isoRegex = /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\n function createDuration(input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms: input._milliseconds,\n d: input._days,\n M: input._months\n };\n } else if (isNumber(input)) {\n duration = {};\n\n if (key) {\n duration[key] = input;\n } else {\n duration.milliseconds = input;\n }\n } else if (!!(match = aspNetRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: 0,\n d: toInt(match[DATE]) * sign,\n h: toInt(match[HOUR]) * sign,\n m: toInt(match[MINUTE]) * sign,\n s: toInt(match[SECOND]) * sign,\n ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign // the millisecond decimal point is included in the match\n\n };\n } else if (!!(match = isoRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: parseIso(match[2], sign),\n M: parseIso(match[3], sign),\n w: parseIso(match[4], sign),\n d: parseIso(match[5], sign),\n h: parseIso(match[6], sign),\n m: parseIso(match[7], sign),\n s: parseIso(match[8], sign)\n };\n } else if (duration == null) {\n // checks for null or undefined\n duration = {};\n } else if (_typeof(duration) === 'object' && ('from' in duration || 'to' in duration)) {\n diffRes = momentsDifference(createLocal(duration.from), createLocal(duration.to));\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n return ret;\n }\n\n createDuration.fn = Duration.prototype;\n createDuration.invalid = createInvalid$1;\n\n function parseIso(inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.')); // apply sign while we're at it\n\n return (isNaN(res) ? 0 : res) * sign;\n }\n\n function positiveMomentsDifference(base, other) {\n var res = {};\n res.months = other.month() - base.month() + (other.year() - base.year()) * 12;\n\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +base.clone().add(res.months, 'M');\n return res;\n }\n\n function momentsDifference(base, other) {\n var res;\n\n if (!(base.isValid() && other.isValid())) {\n return {\n milliseconds: 0,\n months: 0\n };\n }\n\n other = cloneWithOffset(other, base);\n\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n } // TODO: remove 'name' arg after deprecation is removed\n\n\n function createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp; //invert the arguments, but complain about it\n\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(name, 'moment().' + name + '(period, number) is deprecated. Please use moment().' + name + '(number, period). ' + 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.');\n tmp = val;\n val = period;\n period = tmp;\n }\n\n val = typeof val === 'string' ? +val : val;\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n }\n\n function addSubtract(mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n }\n\n var add = createAdder(1, 'add');\n var subtract = createAdder(-1, 'subtract');\n\n function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6 ? 'sameElse' : diff < -1 ? 'lastWeek' : diff < 0 ? 'lastDay' : diff < 1 ? 'sameDay' : diff < 2 ? 'nextDay' : diff < 7 ? 'nextWeek' : 'sameElse';\n }\n\n function calendar$1(time, formats) {\n // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse';\n var output = formats && (isFunction(formats[format]) ? formats[format].call(this, now) : formats[format]);\n return this.format(output || this.localeData().calendar(format, this, createLocal(now)));\n }\n\n function clone() {\n return new Moment(this);\n }\n\n function isAfter(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n\n units = normalizeUnits(units) || 'millisecond';\n\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n }\n\n function isBefore(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n\n units = normalizeUnits(units) || 'millisecond';\n\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n }\n\n function isBetween(from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n\n inclusivity = inclusivity || '()';\n return (inclusivity[0] === '(' ? this.isAfter(localFrom, units) : !this.isBefore(localFrom, units)) && (inclusivity[1] === ')' ? this.isBefore(localTo, units) : !this.isAfter(localTo, units));\n }\n\n function isSame(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n\n units = normalizeUnits(units) || 'millisecond';\n\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return this.clone().startOf(units).valueOf() <= inputMs && inputMs <= this.clone().endOf(units).valueOf();\n }\n }\n\n function isSameOrAfter(input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n }\n\n function isSameOrBefore(input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n }\n\n function diff(input, units, asFloat) {\n var that, zoneDelta, output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year':\n output = monthDiff(this, that) / 12;\n break;\n\n case 'month':\n output = monthDiff(this, that);\n break;\n\n case 'quarter':\n output = monthDiff(this, that) / 3;\n break;\n\n case 'second':\n output = (this - that) / 1e3;\n break;\n // 1000\n\n case 'minute':\n output = (this - that) / 6e4;\n break;\n // 1000 * 60\n\n case 'hour':\n output = (this - that) / 36e5;\n break;\n // 1000 * 60 * 60\n\n case 'day':\n output = (this - that - zoneDelta) / 864e5;\n break;\n // 1000 * 60 * 60 * 24, negate dst\n\n case 'week':\n output = (this - that - zoneDelta) / 6048e5;\n break;\n // 1000 * 60 * 60 * 24 * 7, negate dst\n\n default:\n output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n }\n\n function monthDiff(a, b) {\n // difference in months\n var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2,\n adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months'); // linear across the month\n\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months'); // linear across the month\n\n adjust = (b - anchor) / (anchor2 - anchor);\n } //check for negative zero, return zero if negative zero\n\n\n return -(wholeMonthDiff + adjust) || 0;\n }\n\n hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\n function toString() {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n\n function toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n\n var utc = keepOffset !== true;\n var m = utc ? this.clone().utc() : this;\n\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(m, utc ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ');\n }\n\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000).toISOString().replace('Z', formatMoment(m, 'Z'));\n }\n }\n\n return formatMoment(m, utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ');\n }\n /**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\n\n\n function inspect() {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n\n var func = 'moment';\n var zone = '';\n\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n\n var prefix = '[' + func + '(\"]';\n var year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';\n var datetime = '-MM-DD[T]HH:mm:ss.SSS';\n var suffix = zone + '[\")]';\n return this.format(prefix + year + datetime + suffix);\n }\n\n function format(inputString) {\n if (!inputString) {\n inputString = this.isUtc() ? hooks.defaultFormatUtc : hooks.defaultFormat;\n }\n\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n }\n\n function from(time, withoutSuffix) {\n if (this.isValid() && (isMoment(time) && time.isValid() || createLocal(time).isValid())) {\n return createDuration({\n to: this,\n from: time\n }).locale(this.locale()).humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function fromNow(withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n }\n\n function to(time, withoutSuffix) {\n if (this.isValid() && (isMoment(time) && time.isValid() || createLocal(time).isValid())) {\n return createDuration({\n from: this,\n to: time\n }).locale(this.locale()).humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function toNow(withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n } // If passed a locale key, it will set the locale for this\n // instance. Otherwise, it will return the locale configuration\n // variables for this instance.\n\n\n function locale(key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n\n return this;\n }\n }\n\n var lang = deprecate('moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.', function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n });\n\n function localeData() {\n return this._locale;\n }\n\n var MS_PER_SECOND = 1000;\n var MS_PER_MINUTE = 60 * MS_PER_SECOND;\n var MS_PER_HOUR = 60 * MS_PER_MINUTE;\n var MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR; // actual modulo - handles negative numbers (for dates before 1970):\n\n function mod$1(dividend, divisor) {\n return (dividend % divisor + divisor) % divisor;\n }\n\n function localStartOfDate(y, m, d) {\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return new Date(y, m, d).valueOf();\n }\n }\n\n function utcStartOfDate(y, m, d) {\n // Date.UTC remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return Date.UTC(y, m, d);\n }\n }\n\n function startOf(units) {\n var time;\n units = normalizeUnits(units);\n\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n var startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n\n case 'quarter':\n time = startOfDate(this.year(), this.month() - this.month() % 3, 1);\n break;\n\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n\n case 'week':\n time = startOfDate(this.year(), this.month(), this.date() - this.weekday());\n break;\n\n case 'isoWeek':\n time = startOfDate(this.year(), this.month(), this.date() - (this.isoWeekday() - 1));\n break;\n\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n\n case 'hour':\n time = this._d.valueOf();\n time -= mod$1(time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), MS_PER_HOUR);\n break;\n\n case 'minute':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_MINUTE);\n break;\n\n case 'second':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_SECOND);\n break;\n }\n\n this._d.setTime(time);\n\n hooks.updateOffset(this, true);\n return this;\n }\n\n function endOf(units) {\n var time;\n units = normalizeUnits(units);\n\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n var startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n\n case 'quarter':\n time = startOfDate(this.year(), this.month() - this.month() % 3 + 3, 1) - 1;\n break;\n\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n\n case 'week':\n time = startOfDate(this.year(), this.month(), this.date() - this.weekday() + 7) - 1;\n break;\n\n case 'isoWeek':\n time = startOfDate(this.year(), this.month(), this.date() - (this.isoWeekday() - 1) + 7) - 1;\n break;\n\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n\n case 'hour':\n time = this._d.valueOf();\n time += MS_PER_HOUR - mod$1(time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), MS_PER_HOUR) - 1;\n break;\n\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n break;\n\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n break;\n }\n\n this._d.setTime(time);\n\n hooks.updateOffset(this, true);\n return this;\n }\n\n function valueOf() {\n return this._d.valueOf() - (this._offset || 0) * 60000;\n }\n\n function unix() {\n return Math.floor(this.valueOf() / 1000);\n }\n\n function toDate() {\n return new Date(this.valueOf());\n }\n\n function toArray() {\n var m = this;\n return [m.year(), m.month(), m.date(), m.hour(), m.minute(), m.second(), m.millisecond()];\n }\n\n function toObject() {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds()\n };\n }\n\n function toJSON() {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n }\n\n function isValid$2() {\n return isValid(this);\n }\n\n function parsingFlags() {\n return extend({}, getParsingFlags(this));\n }\n\n function invalidAt() {\n return getParsingFlags(this).overflow;\n }\n\n function creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict\n };\n } // FORMATTING\n\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n\n function addWeekYearFormatToken(token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear'); // ALIASES\n\n addUnitAlias('weekYear', 'gg');\n addUnitAlias('isoWeekYear', 'GG'); // PRIORITY\n\n addUnitPriority('weekYear', 1);\n addUnitPriority('isoWeekYear', 1); // PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n });\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n }); // MOMENTS\n\n function getSetWeekYear(input) {\n return getSetWeekYearHelper.call(this, input, this.week(), this.weekday(), this.localeData()._week.dow, this.localeData()._week.doy);\n }\n\n function getSetISOWeekYear(input) {\n return getSetWeekYearHelper.call(this, input, this.isoWeek(), this.isoWeekday(), 1, 4);\n }\n\n function getISOWeeksInYear() {\n return weeksInYear(this.year(), 1, 4);\n }\n\n function getWeeksInYear() {\n var weekInfo = this.localeData()._week;\n\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n\n function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n }\n\n function setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n } // FORMATTING\n\n\n addFormatToken('Q', 0, 'Qo', 'quarter'); // ALIASES\n\n addUnitAlias('quarter', 'Q'); // PRIORITY\n\n addUnitPriority('quarter', 7); // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n }); // MOMENTS\n\n function getSetQuarter(input) {\n return input == null ? Math.ceil((this.month() + 1) / 3) : this.month((input - 1) * 3 + this.month() % 3);\n } // FORMATTING\n\n\n addFormatToken('D', ['DD', 2], 'Do', 'date'); // ALIASES\n\n addUnitAlias('date', 'D'); // PRIORITY\n\n addUnitPriority('date', 9); // PARSING\n\n addRegexToken('D', match1to2);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict ? locale._dayOfMonthOrdinalParse || locale._ordinalParse : locale._dayOfMonthOrdinalParseLenient;\n });\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n }); // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true); // FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear'); // ALIASES\n\n addUnitAlias('dayOfYear', 'DDD'); // PRIORITY\n\n addUnitPriority('dayOfYear', 4); // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n }); // HELPERS\n // MOMENTS\n\n function getSetDayOfYear(input) {\n var dayOfYear = Math.round((this.clone().startOf('day') - this.clone().startOf('year')) / 864e5) + 1;\n return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\n } // FORMATTING\n\n\n addFormatToken('m', ['mm', 2], 0, 'minute'); // ALIASES\n\n addUnitAlias('minute', 'm'); // PRIORITY\n\n addUnitPriority('minute', 14); // PARSING\n\n addRegexToken('m', match1to2);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE); // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false); // FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second'); // ALIASES\n\n addUnitAlias('second', 's'); // PRIORITY\n\n addUnitPriority('second', 15); // PARSING\n\n addRegexToken('s', match1to2);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND); // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false); // FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n addFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n });\n addFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n });\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n });\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n });\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n });\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n }); // ALIASES\n\n addUnitAlias('millisecond', 'ms'); // PRIORITY\n\n addUnitPriority('millisecond', 16); // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n var token;\n\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n\n function parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n }\n\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n } // MOMENTS\n\n\n var getSetMillisecond = makeGetSet('Milliseconds', false); // FORMATTING\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName'); // MOMENTS\n\n function getZoneAbbr() {\n return this._isUTC ? 'UTC' : '';\n }\n\n function getZoneName() {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n\n var proto = Moment.prototype;\n proto.add = add;\n proto.calendar = calendar$1;\n proto.clone = clone;\n proto.diff = diff;\n proto.endOf = endOf;\n proto.format = format;\n proto.from = from;\n proto.fromNow = fromNow;\n proto.to = to;\n proto.toNow = toNow;\n proto.get = stringGet;\n proto.invalidAt = invalidAt;\n proto.isAfter = isAfter;\n proto.isBefore = isBefore;\n proto.isBetween = isBetween;\n proto.isSame = isSame;\n proto.isSameOrAfter = isSameOrAfter;\n proto.isSameOrBefore = isSameOrBefore;\n proto.isValid = isValid$2;\n proto.lang = lang;\n proto.locale = locale;\n proto.localeData = localeData;\n proto.max = prototypeMax;\n proto.min = prototypeMin;\n proto.parsingFlags = parsingFlags;\n proto.set = stringSet;\n proto.startOf = startOf;\n proto.subtract = subtract;\n proto.toArray = toArray;\n proto.toObject = toObject;\n proto.toDate = toDate;\n proto.toISOString = toISOString;\n proto.inspect = inspect;\n proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\n proto.year = getSetYear;\n proto.isLeapYear = getIsLeapYear;\n proto.weekYear = getSetWeekYear;\n proto.isoWeekYear = getSetISOWeekYear;\n proto.quarter = proto.quarters = getSetQuarter;\n proto.month = getSetMonth;\n proto.daysInMonth = getDaysInMonth;\n proto.week = proto.weeks = getSetWeek;\n proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n proto.weeksInYear = getWeeksInYear;\n proto.isoWeeksInYear = getISOWeeksInYear;\n proto.date = getSetDayOfMonth;\n proto.day = proto.days = getSetDayOfWeek;\n proto.weekday = getSetLocaleDayOfWeek;\n proto.isoWeekday = getSetISODayOfWeek;\n proto.dayOfYear = getSetDayOfYear;\n proto.hour = proto.hours = getSetHour;\n proto.minute = proto.minutes = getSetMinute;\n proto.second = proto.seconds = getSetSecond;\n proto.millisecond = proto.milliseconds = getSetMillisecond;\n proto.utcOffset = getSetOffset;\n proto.utc = setOffsetToUTC;\n proto.local = setOffsetToLocal;\n proto.parseZone = setOffsetToParsedOffset;\n proto.hasAlignedHourOffset = hasAlignedHourOffset;\n proto.isDST = isDaylightSavingTime;\n proto.isLocal = isLocal;\n proto.isUtcOffset = isUtcOffset;\n proto.isUtc = isUtc;\n proto.isUTC = isUtc;\n proto.zoneAbbr = getZoneAbbr;\n proto.zoneName = getZoneName;\n proto.dates = deprecate('dates accessor is deprecated. Use date instead.', getSetDayOfMonth);\n proto.months = deprecate('months accessor is deprecated. Use month instead', getSetMonth);\n proto.years = deprecate('years accessor is deprecated. Use year instead', getSetYear);\n proto.zone = deprecate('moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/', getSetZone);\n proto.isDSTShifted = deprecate('isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information', isDaylightSavingTimeShifted);\n\n function createUnix(input) {\n return createLocal(input * 1000);\n }\n\n function createInZone() {\n return createLocal.apply(null, arguments).parseZone();\n }\n\n function preParsePostFormat(string) {\n return string;\n }\n\n var proto$1 = Locale.prototype;\n proto$1.calendar = calendar;\n proto$1.longDateFormat = longDateFormat;\n proto$1.invalidDate = invalidDate;\n proto$1.ordinal = ordinal;\n proto$1.preparse = preParsePostFormat;\n proto$1.postformat = preParsePostFormat;\n proto$1.relativeTime = relativeTime;\n proto$1.pastFuture = pastFuture;\n proto$1.set = set;\n proto$1.months = localeMonths;\n proto$1.monthsShort = localeMonthsShort;\n proto$1.monthsParse = localeMonthsParse;\n proto$1.monthsRegex = monthsRegex;\n proto$1.monthsShortRegex = monthsShortRegex;\n proto$1.week = localeWeek;\n proto$1.firstDayOfYear = localeFirstDayOfYear;\n proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n proto$1.weekdays = localeWeekdays;\n proto$1.weekdaysMin = localeWeekdaysMin;\n proto$1.weekdaysShort = localeWeekdaysShort;\n proto$1.weekdaysParse = localeWeekdaysParse;\n proto$1.weekdaysRegex = weekdaysRegex;\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\n proto$1.isPM = localeIsPM;\n proto$1.meridiem = localeMeridiem;\n\n function get$1(format, index, field, setter) {\n var locale = getLocale();\n var utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n\n function listMonthsImpl(format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i;\n var out = [];\n\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n\n return out;\n } // ()\n // (5)\n // (fmt, 5)\n // (fmt)\n // (true)\n // (true, 5)\n // (true, fmt, 5)\n // (true, fmt)\n\n\n function listWeekdaysImpl(localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0;\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n var i;\n var out = [];\n\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n\n return out;\n }\n\n function listMonths(format, index) {\n return listMonthsImpl(format, index, 'months');\n }\n\n function listMonthsShort(format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n }\n\n function listWeekdays(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n }\n\n function listWeekdaysShort(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n }\n\n function listWeekdaysMin(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n }\n\n getSetGlobalLocale('en', {\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function ordinal(number) {\n var b = number % 10,\n output = toInt(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n return number + output;\n }\n }); // Side effect imports\n\n hooks.lang = deprecate('moment.lang is deprecated. Use moment.locale instead.', getSetGlobalLocale);\n hooks.langData = deprecate('moment.langData is deprecated. Use moment.localeData instead.', getLocale);\n var mathAbs = Math.abs;\n\n function abs() {\n var data = this._data;\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n return this;\n }\n\n function addSubtract$1(duration, input, value, direction) {\n var other = createDuration(input, value);\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n return duration._bubble();\n } // supports only 2.0-style add(1, 's') or add(duration)\n\n\n function add$1(input, value) {\n return addSubtract$1(this, input, value, 1);\n } // supports only 2.0-style subtract(1, 's') or subtract(duration)\n\n\n function subtract$1(input, value) {\n return addSubtract$1(this, input, value, -1);\n }\n\n function absCeil(number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n }\n\n function bubble() {\n var milliseconds = this._milliseconds;\n var days = this._days;\n var months = this._months;\n var data = this._data;\n var seconds, minutes, hours, years, monthsFromDays; // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n\n if (!(milliseconds >= 0 && days >= 0 && months >= 0 || milliseconds <= 0 && days <= 0 && months <= 0)) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n } // The following code bubbles up values, see the tests for\n // examples of what that means.\n\n\n data.milliseconds = milliseconds % 1000;\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n days += absFloor(hours / 24); // convert days to months\n\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays)); // 12 months -> 1 year\n\n years = absFloor(months / 12);\n months %= 12;\n data.days = days;\n data.months = months;\n data.years = years;\n return this;\n }\n\n function daysToMonths(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return days * 4800 / 146097;\n }\n\n function monthsToDays(months) {\n // the reverse of daysToMonths\n return months * 146097 / 4800;\n }\n\n function as(units) {\n if (!this.isValid()) {\n return NaN;\n }\n\n var days;\n var months;\n var milliseconds = this._milliseconds;\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n\n switch (units) {\n case 'month':\n return months;\n\n case 'quarter':\n return months / 3;\n\n case 'year':\n return months / 12;\n }\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n\n switch (units) {\n case 'week':\n return days / 7 + milliseconds / 6048e5;\n\n case 'day':\n return days + milliseconds / 864e5;\n\n case 'hour':\n return days * 24 + milliseconds / 36e5;\n\n case 'minute':\n return days * 1440 + milliseconds / 6e4;\n\n case 'second':\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n\n case 'millisecond':\n return Math.floor(days * 864e5) + milliseconds;\n\n default:\n throw new Error('Unknown unit ' + units);\n }\n }\n } // TODO: Use this.as('ms')?\n\n\n function valueOf$1() {\n if (!this.isValid()) {\n return NaN;\n }\n\n return this._milliseconds + this._days * 864e5 + this._months % 12 * 2592e6 + toInt(this._months / 12) * 31536e6;\n }\n\n function makeAs(alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var asMilliseconds = makeAs('ms');\n var asSeconds = makeAs('s');\n var asMinutes = makeAs('m');\n var asHours = makeAs('h');\n var asDays = makeAs('d');\n var asWeeks = makeAs('w');\n var asMonths = makeAs('M');\n var asQuarters = makeAs('Q');\n var asYears = makeAs('y');\n\n function clone$1() {\n return createDuration(this);\n }\n\n function get$2(units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n }\n\n function makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n }\n\n var milliseconds = makeGetter('milliseconds');\n var seconds = makeGetter('seconds');\n var minutes = makeGetter('minutes');\n var hours = makeGetter('hours');\n var days = makeGetter('days');\n var months = makeGetter('months');\n var years = makeGetter('years');\n\n function weeks() {\n return absFloor(this.days() / 7);\n }\n\n var round = Math.round;\n var thresholds = {\n ss: 44,\n // a few seconds to seconds\n s: 45,\n // seconds to minute\n m: 45,\n // minutes to hour\n h: 22,\n // hours to day\n d: 26,\n // days to month\n M: 11 // months to year\n\n }; // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n\n function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n }\n\n function relativeTime$1(posNegDuration, withoutSuffix, locale) {\n var duration = createDuration(posNegDuration).abs();\n var seconds = round(duration.as('s'));\n var minutes = round(duration.as('m'));\n var hours = round(duration.as('h'));\n var days = round(duration.as('d'));\n var months = round(duration.as('M'));\n var years = round(duration.as('y'));\n var a = seconds <= thresholds.ss && ['s', seconds] || seconds < thresholds.s && ['ss', seconds] || minutes <= 1 && ['m'] || minutes < thresholds.m && ['mm', minutes] || hours <= 1 && ['h'] || hours < thresholds.h && ['hh', hours] || days <= 1 && ['d'] || days < thresholds.d && ['dd', days] || months <= 1 && ['M'] || months < thresholds.M && ['MM', months] || years <= 1 && ['y'] || ['yy', years];\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n } // This function allows you to set the rounding function for relative time strings\n\n\n function getSetRelativeTimeRounding(roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n\n if (typeof roundingFunction === 'function') {\n round = roundingFunction;\n return true;\n }\n\n return false;\n } // This function allows you to set a threshold for relative time strings\n\n\n function getSetRelativeTimeThreshold(threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n\n if (limit === undefined) {\n return thresholds[threshold];\n }\n\n thresholds[threshold] = limit;\n\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n\n return true;\n }\n\n function humanize(withSuffix) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var locale = this.localeData();\n var output = relativeTime$1(this, !withSuffix, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n }\n\n var abs$1 = Math.abs;\n\n function sign(x) {\n return (x > 0) - (x < 0) || +x;\n }\n\n function toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs$1(this._milliseconds) / 1000;\n var days = abs$1(this._days);\n var months = abs$1(this._months);\n var minutes, hours, years; // 3600 seconds -> 60 minutes -> 1 hour\n\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60; // 12 months -> 1 year\n\n years = absFloor(months / 12);\n months %= 12; // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n\n var Y = years;\n var M = months;\n var D = days;\n var h = hours;\n var m = minutes;\n var s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n var total = this.asSeconds();\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n }\n\n var totalSign = total < 0 ? '-' : '';\n var ymSign = sign(this._months) !== sign(total) ? '-' : '';\n var daysSign = sign(this._days) !== sign(total) ? '-' : '';\n var hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n return totalSign + 'P' + (Y ? ymSign + Y + 'Y' : '') + (M ? ymSign + M + 'M' : '') + (D ? daysSign + D + 'D' : '') + (h || m || s ? 'T' : '') + (h ? hmsSign + h + 'H' : '') + (m ? hmsSign + m + 'M' : '') + (s ? hmsSign + s + 'S' : '');\n }\n\n var proto$2 = Duration.prototype;\n proto$2.isValid = isValid$1;\n proto$2.abs = abs;\n proto$2.add = add$1;\n proto$2.subtract = subtract$1;\n proto$2.as = as;\n proto$2.asMilliseconds = asMilliseconds;\n proto$2.asSeconds = asSeconds;\n proto$2.asMinutes = asMinutes;\n proto$2.asHours = asHours;\n proto$2.asDays = asDays;\n proto$2.asWeeks = asWeeks;\n proto$2.asMonths = asMonths;\n proto$2.asQuarters = asQuarters;\n proto$2.asYears = asYears;\n proto$2.valueOf = valueOf$1;\n proto$2._bubble = bubble;\n proto$2.clone = clone$1;\n proto$2.get = get$2;\n proto$2.milliseconds = milliseconds;\n proto$2.seconds = seconds;\n proto$2.minutes = minutes;\n proto$2.hours = hours;\n proto$2.days = days;\n proto$2.weeks = weeks;\n proto$2.months = months;\n proto$2.years = years;\n proto$2.humanize = humanize;\n proto$2.toISOString = toISOString$1;\n proto$2.toString = toISOString$1;\n proto$2.toJSON = toISOString$1;\n proto$2.locale = locale;\n proto$2.localeData = localeData;\n proto$2.toIsoString = deprecate('toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)', toISOString$1);\n proto$2.lang = lang; // Side effect imports\n // FORMATTING\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf'); // PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input, 10) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n }); // Side effect imports\n\n hooks.version = '2.24.0';\n setHookCallback(createLocal);\n hooks.fn = proto;\n hooks.min = min;\n hooks.max = max;\n hooks.now = now;\n hooks.utc = createUTC;\n hooks.unix = createUnix;\n hooks.months = listMonths;\n hooks.isDate = isDate;\n hooks.locale = getSetGlobalLocale;\n hooks.invalid = createInvalid;\n hooks.duration = createDuration;\n hooks.isMoment = isMoment;\n hooks.weekdays = listWeekdays;\n hooks.parseZone = createInZone;\n hooks.localeData = getLocale;\n hooks.isDuration = isDuration;\n hooks.monthsShort = listMonthsShort;\n hooks.weekdaysMin = listWeekdaysMin;\n hooks.defineLocale = defineLocale;\n hooks.updateLocale = updateLocale;\n hooks.locales = listLocales;\n hooks.weekdaysShort = listWeekdaysShort;\n hooks.normalizeUnits = normalizeUnits;\n hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n hooks.calendarFormat = getCalendarFormat;\n hooks.prototype = proto; // currently HTML5 input type only supports 24-hour formats\n\n hooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm',\n // \n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss',\n // \n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS',\n // \n DATE: 'YYYY-MM-DD',\n // \n TIME: 'HH:mm',\n // \n TIME_SECONDS: 'HH:mm:ss',\n // \n TIME_MS: 'HH:mm:ss.SSS',\n // \n WEEK: 'GGGG-[W]WW',\n // \n MONTH: 'YYYY-MM' // \n\n };\n return hooks;\n});","(function() { module.exports = window[\"jQuery\"]; }());","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var enNz = moment.defineLocale('en-nz', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A'\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function ordinal(number) {\n var b = number % 10,\n output = ~~(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n return number + output;\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return enNz;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var eo = moment.defineLocale('eo', {\n months: 'januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro'.split('_'),\n monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aŭg_sep_okt_nov_dec'.split('_'),\n weekdays: 'dimanĉo_lundo_mardo_merkredo_ĵaŭdo_vendredo_sabato'.split('_'),\n weekdaysShort: 'dim_lun_mard_merk_ĵaŭ_ven_sab'.split('_'),\n weekdaysMin: 'di_lu_ma_me_ĵa_ve_sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'D[-a de] MMMM, YYYY',\n LLL: 'D[-a de] MMMM, YYYY HH:mm',\n LLLL: 'dddd, [la] D[-a de] MMMM, YYYY HH:mm'\n },\n meridiemParse: /[ap]\\.t\\.m/i,\n isPM: function isPM(input) {\n return input.charAt(0).toLowerCase() === 'p';\n },\n meridiem: function meridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'p.t.m.' : 'P.T.M.';\n } else {\n return isLower ? 'a.t.m.' : 'A.T.M.';\n }\n },\n calendar: {\n sameDay: '[Hodiaŭ je] LT',\n nextDay: '[Morgaŭ je] LT',\n nextWeek: 'dddd [je] LT',\n lastDay: '[Hieraŭ je] LT',\n lastWeek: '[pasinta] dddd [je] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'post %s',\n past: 'antaŭ %s',\n s: 'sekundoj',\n ss: '%d sekundoj',\n m: 'minuto',\n mm: '%d minutoj',\n h: 'horo',\n hh: '%d horoj',\n d: 'tago',\n //ne 'diurno', ĉar estas uzita por proksimumo\n dd: '%d tagoj',\n M: 'monato',\n MM: '%d monatoj',\n y: 'jaro',\n yy: '%d jaroj'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}a/,\n ordinal: '%da',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n\n }\n });\n return eo;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'),\n _monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_');\n\n var monthsParse = [/^ene/i, /^feb/i, /^mar/i, /^abr/i, /^may/i, /^jun/i, /^jul/i, /^ago/i, /^sep/i, /^oct/i, /^nov/i, /^dic/i];\n var monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n var es = moment.defineLocale('es', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'),\n monthsShort: function monthsShort(m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return _monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex: /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY H:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm'\n },\n calendar: {\n sameDay: function sameDay() {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function nextDay() {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function nextWeek() {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function lastDay() {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function lastWeek() {\n return '[el] dddd [pasado a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return es;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'),\n _monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_');\n\n var monthsParse = [/^ene/i, /^feb/i, /^mar/i, /^abr/i, /^may/i, /^jun/i, /^jul/i, /^ago/i, /^sep/i, /^oct/i, /^nov/i, /^dic/i];\n var monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n var esDo = moment.defineLocale('es-do', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'),\n monthsShort: function monthsShort(m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return _monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex: /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY h:mm A',\n LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A'\n },\n calendar: {\n sameDay: function sameDay() {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function nextDay() {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function nextWeek() {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function lastDay() {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function lastWeek() {\n return '[el] dddd [pasado a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return esDo;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'),\n _monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_');\n\n var monthsParse = [/^ene/i, /^feb/i, /^mar/i, /^abr/i, /^may/i, /^jun/i, /^jul/i, /^ago/i, /^sep/i, /^oct/i, /^nov/i, /^dic/i];\n var monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n var esUs = moment.defineLocale('es-us', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'),\n monthsShort: function monthsShort(m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return _monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex: /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'MM/DD/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY h:mm A',\n LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A'\n },\n calendar: {\n sameDay: function sameDay() {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function nextDay() {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function nextWeek() {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function lastDay() {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function lastWeek() {\n return '[el] dddd [pasado a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 0,\n // Sunday is the first day of the week.\n doy: 6 // The week that contains Jan 6th is the first week of the year.\n\n }\n });\n return esUs;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n 's': ['mõne sekundi', 'mõni sekund', 'paar sekundit'],\n 'ss': [number + 'sekundi', number + 'sekundit'],\n 'm': ['ühe minuti', 'üks minut'],\n 'mm': [number + ' minuti', number + ' minutit'],\n 'h': ['ühe tunni', 'tund aega', 'üks tund'],\n 'hh': [number + ' tunni', number + ' tundi'],\n 'd': ['ühe päeva', 'üks päev'],\n 'M': ['kuu aja', 'kuu aega', 'üks kuu'],\n 'MM': [number + ' kuu', number + ' kuud'],\n 'y': ['ühe aasta', 'aasta', 'üks aasta'],\n 'yy': [number + ' aasta', number + ' aastat']\n };\n\n if (withoutSuffix) {\n return format[key][2] ? format[key][2] : format[key][1];\n }\n\n return isFuture ? format[key][0] : format[key][1];\n }\n\n var et = moment.defineLocale('et', {\n months: 'jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember'.split('_'),\n monthsShort: 'jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets'.split('_'),\n weekdays: 'pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev'.split('_'),\n weekdaysShort: 'P_E_T_K_N_R_L'.split('_'),\n weekdaysMin: 'P_E_T_K_N_R_L'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm'\n },\n calendar: {\n sameDay: '[Täna,] LT',\n nextDay: '[Homme,] LT',\n nextWeek: '[Järgmine] dddd LT',\n lastDay: '[Eile,] LT',\n lastWeek: '[Eelmine] dddd LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s pärast',\n past: '%s tagasi',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: '%d päeva',\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return et;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var eu = moment.defineLocale('eu', {\n months: 'urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua'.split('_'),\n monthsShort: 'urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.'.split('_'),\n monthsParseExact: true,\n weekdays: 'igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata'.split('_'),\n weekdaysShort: 'ig._al._ar._az._og._ol._lr.'.split('_'),\n weekdaysMin: 'ig_al_ar_az_og_ol_lr'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY[ko] MMMM[ren] D[a]',\n LLL: 'YYYY[ko] MMMM[ren] D[a] HH:mm',\n LLLL: 'dddd, YYYY[ko] MMMM[ren] D[a] HH:mm',\n l: 'YYYY-M-D',\n ll: 'YYYY[ko] MMM D[a]',\n lll: 'YYYY[ko] MMM D[a] HH:mm',\n llll: 'ddd, YYYY[ko] MMM D[a] HH:mm'\n },\n calendar: {\n sameDay: '[gaur] LT[etan]',\n nextDay: '[bihar] LT[etan]',\n nextWeek: 'dddd LT[etan]',\n lastDay: '[atzo] LT[etan]',\n lastWeek: '[aurreko] dddd LT[etan]',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s barru',\n past: 'duela %s',\n s: 'segundo batzuk',\n ss: '%d segundo',\n m: 'minutu bat',\n mm: '%d minutu',\n h: 'ordu bat',\n hh: '%d ordu',\n d: 'egun bat',\n dd: '%d egun',\n M: 'hilabete bat',\n MM: '%d hilabete',\n y: 'urte bat',\n yy: '%d urte'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n\n }\n });\n return eu;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var symbolMap = {\n '1': '۱',\n '2': '۲',\n '3': '۳',\n '4': '۴',\n '5': '۵',\n '6': '۶',\n '7': '۷',\n '8': '۸',\n '9': '۹',\n '0': '۰'\n },\n numberMap = {\n '۱': '1',\n '۲': '2',\n '۳': '3',\n '۴': '4',\n '۵': '5',\n '۶': '6',\n '۷': '7',\n '۸': '8',\n '۹': '9',\n '۰': '0'\n };\n var fa = moment.defineLocale('fa', {\n months: 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split('_'),\n monthsShort: 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split('_'),\n weekdays: \"\\u06CC\\u06A9\\u200C\\u0634\\u0646\\u0628\\u0647_\\u062F\\u0648\\u0634\\u0646\\u0628\\u0647_\\u0633\\u0647\\u200C\\u0634\\u0646\\u0628\\u0647_\\u0686\\u0647\\u0627\\u0631\\u0634\\u0646\\u0628\\u0647_\\u067E\\u0646\\u062C\\u200C\\u0634\\u0646\\u0628\\u0647_\\u062C\\u0645\\u0639\\u0647_\\u0634\\u0646\\u0628\\u0647\".split('_'),\n weekdaysShort: \"\\u06CC\\u06A9\\u200C\\u0634\\u0646\\u0628\\u0647_\\u062F\\u0648\\u0634\\u0646\\u0628\\u0647_\\u0633\\u0647\\u200C\\u0634\\u0646\\u0628\\u0647_\\u0686\\u0647\\u0627\\u0631\\u0634\\u0646\\u0628\\u0647_\\u067E\\u0646\\u062C\\u200C\\u0634\\u0646\\u0628\\u0647_\\u062C\\u0645\\u0639\\u0647_\\u0634\\u0646\\u0628\\u0647\".split('_'),\n weekdaysMin: 'ی_د_س_چ_پ_ج_ش'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n meridiemParse: /قبل از ظهر|بعد از ظهر/,\n isPM: function isPM(input) {\n return /بعد از ظهر/.test(input);\n },\n meridiem: function meridiem(hour, minute, isLower) {\n if (hour < 12) {\n return 'قبل از ظهر';\n } else {\n return 'بعد از ظهر';\n }\n },\n calendar: {\n sameDay: '[امروز ساعت] LT',\n nextDay: '[فردا ساعت] LT',\n nextWeek: 'dddd [ساعت] LT',\n lastDay: '[دیروز ساعت] LT',\n lastWeek: 'dddd [پیش] [ساعت] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'در %s',\n past: '%s پیش',\n s: 'چند ثانیه',\n ss: 'ثانیه d%',\n m: 'یک دقیقه',\n mm: '%d دقیقه',\n h: 'یک ساعت',\n hh: '%d ساعت',\n d: 'یک روز',\n dd: '%d روز',\n M: 'یک ماه',\n MM: '%d ماه',\n y: 'یک سال',\n yy: '%d سال'\n },\n preparse: function preparse(string) {\n return string.replace(/[۰-۹]/g, function (match) {\n return numberMap[match];\n }).replace(/،/g, ',');\n },\n postformat: function postformat(string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n }).replace(/,/g, '،');\n },\n dayOfMonthOrdinalParse: /\\d{1,2}م/,\n ordinal: '%dم',\n week: {\n dow: 6,\n // Saturday is the first day of the week.\n doy: 12 // The week that contains Jan 12th is the first week of the year.\n\n }\n });\n return fa;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var numbersPast = 'nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän'.split(' '),\n numbersFuture = ['nolla', 'yhden', 'kahden', 'kolmen', 'neljän', 'viiden', 'kuuden', numbersPast[7], numbersPast[8], numbersPast[9]];\n\n function translate(number, withoutSuffix, key, isFuture) {\n var result = '';\n\n switch (key) {\n case 's':\n return isFuture ? 'muutaman sekunnin' : 'muutama sekunti';\n\n case 'ss':\n return isFuture ? 'sekunnin' : 'sekuntia';\n\n case 'm':\n return isFuture ? 'minuutin' : 'minuutti';\n\n case 'mm':\n result = isFuture ? 'minuutin' : 'minuuttia';\n break;\n\n case 'h':\n return isFuture ? 'tunnin' : 'tunti';\n\n case 'hh':\n result = isFuture ? 'tunnin' : 'tuntia';\n break;\n\n case 'd':\n return isFuture ? 'päivän' : 'päivä';\n\n case 'dd':\n result = isFuture ? 'päivän' : 'päivää';\n break;\n\n case 'M':\n return isFuture ? 'kuukauden' : 'kuukausi';\n\n case 'MM':\n result = isFuture ? 'kuukauden' : 'kuukautta';\n break;\n\n case 'y':\n return isFuture ? 'vuoden' : 'vuosi';\n\n case 'yy':\n result = isFuture ? 'vuoden' : 'vuotta';\n break;\n }\n\n result = verbalNumber(number, isFuture) + ' ' + result;\n return result;\n }\n\n function verbalNumber(number, isFuture) {\n return number < 10 ? isFuture ? numbersFuture[number] : numbersPast[number] : number;\n }\n\n var fi = moment.defineLocale('fi', {\n months: 'tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu'.split('_'),\n monthsShort: 'tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu'.split('_'),\n weekdays: 'sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai'.split('_'),\n weekdaysShort: 'su_ma_ti_ke_to_pe_la'.split('_'),\n weekdaysMin: 'su_ma_ti_ke_to_pe_la'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD.MM.YYYY',\n LL: 'Do MMMM[ta] YYYY',\n LLL: 'Do MMMM[ta] YYYY, [klo] HH.mm',\n LLLL: 'dddd, Do MMMM[ta] YYYY, [klo] HH.mm',\n l: 'D.M.YYYY',\n ll: 'Do MMM YYYY',\n lll: 'Do MMM YYYY, [klo] HH.mm',\n llll: 'ddd, Do MMM YYYY, [klo] HH.mm'\n },\n calendar: {\n sameDay: '[tänään] [klo] LT',\n nextDay: '[huomenna] [klo] LT',\n nextWeek: 'dddd [klo] LT',\n lastDay: '[eilen] [klo] LT',\n lastWeek: '[viime] dddd[na] [klo] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s päästä',\n past: '%s sitten',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return fi;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var fo = moment.defineLocale('fo', {\n months: 'januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember'.split('_'),\n monthsShort: 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'),\n weekdays: 'sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur'.split('_'),\n weekdaysShort: 'sun_mán_týs_mik_hós_frí_ley'.split('_'),\n weekdaysMin: 'su_má_tý_mi_hó_fr_le'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D. MMMM, YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Í dag kl.] LT',\n nextDay: '[Í morgin kl.] LT',\n nextWeek: 'dddd [kl.] LT',\n lastDay: '[Í gjár kl.] LT',\n lastWeek: '[síðstu] dddd [kl] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'um %s',\n past: '%s síðani',\n s: 'fá sekund',\n ss: '%d sekundir',\n m: 'ein minuttur',\n mm: '%d minuttir',\n h: 'ein tími',\n hh: '%d tímar',\n d: 'ein dagur',\n dd: '%d dagar',\n M: 'ein mánaður',\n MM: '%d mánaðir',\n y: 'eitt ár',\n yy: '%d ár'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return fo;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var fr = moment.defineLocale('fr', {\n months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'),\n monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'),\n monthsParseExact: true,\n weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Aujourd’hui à] LT',\n nextDay: '[Demain à] LT',\n nextWeek: 'dddd [à] LT',\n lastDay: '[Hier à] LT',\n lastWeek: 'dddd [dernier à] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'dans %s',\n past: 'il y a %s',\n s: 'quelques secondes',\n ss: '%d secondes',\n m: 'une minute',\n mm: '%d minutes',\n h: 'une heure',\n hh: '%d heures',\n d: 'un jour',\n dd: '%d jours',\n M: 'un mois',\n MM: '%d mois',\n y: 'un an',\n yy: '%d ans'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|)/,\n ordinal: function ordinal(number, period) {\n switch (period) {\n // TODO: Return 'e' when day of month > 1. Move this case inside\n // block for masculine words below.\n // See https://github.com/moment/moment/issues/3375\n case 'D':\n return number + (number === 1 ? 'er' : '');\n // Words with masculine grammatical gender: mois, trimestre, jour\n\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n // Words with feminine grammatical gender: semaine\n\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return fr;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var frCa = moment.defineLocale('fr-ca', {\n months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'),\n monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'),\n monthsParseExact: true,\n weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Aujourd’hui à] LT',\n nextDay: '[Demain à] LT',\n nextWeek: 'dddd [à] LT',\n lastDay: '[Hier à] LT',\n lastWeek: 'dddd [dernier à] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'dans %s',\n past: 'il y a %s',\n s: 'quelques secondes',\n ss: '%d secondes',\n m: 'une minute',\n mm: '%d minutes',\n h: 'une heure',\n hh: '%d heures',\n d: 'un jour',\n dd: '%d jours',\n M: 'un mois',\n MM: '%d mois',\n y: 'un an',\n yy: '%d ans'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|e)/,\n ordinal: function ordinal(number, period) {\n switch (period) {\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'D':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n // Words with feminine grammatical gender: semaine\n\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n }\n });\n return frCa;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var frCh = moment.defineLocale('fr-ch', {\n months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'),\n monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'),\n monthsParseExact: true,\n weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Aujourd’hui à] LT',\n nextDay: '[Demain à] LT',\n nextWeek: 'dddd [à] LT',\n lastDay: '[Hier à] LT',\n lastWeek: 'dddd [dernier à] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'dans %s',\n past: 'il y a %s',\n s: 'quelques secondes',\n ss: '%d secondes',\n m: 'une minute',\n mm: '%d minutes',\n h: 'une heure',\n hh: '%d heures',\n d: 'un jour',\n dd: '%d jours',\n M: 'un mois',\n MM: '%d mois',\n y: 'un an',\n yy: '%d ans'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|e)/,\n ordinal: function ordinal(number, period) {\n switch (period) {\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'D':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n // Words with feminine grammatical gender: semaine\n\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return frCh;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var monthsShortWithDots = 'jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.'.split('_'),\n monthsShortWithoutDots = 'jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_');\n var fy = moment.defineLocale('fy', {\n months: 'jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber'.split('_'),\n monthsShort: function monthsShort(m, format) {\n if (!m) {\n return monthsShortWithDots;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots[m.month()];\n } else {\n return monthsShortWithDots[m.month()];\n }\n },\n monthsParseExact: true,\n weekdays: 'snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon'.split('_'),\n weekdaysShort: 'si._mo._ti._wo._to._fr._so.'.split('_'),\n weekdaysMin: 'Si_Mo_Ti_Wo_To_Fr_So'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[hjoed om] LT',\n nextDay: '[moarn om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[juster om] LT',\n lastWeek: '[ôfrûne] dddd [om] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'oer %s',\n past: '%s lyn',\n s: 'in pear sekonden',\n ss: '%d sekonden',\n m: 'ien minút',\n mm: '%d minuten',\n h: 'ien oere',\n hh: '%d oeren',\n d: 'ien dei',\n dd: '%d dagen',\n M: 'ien moanne',\n MM: '%d moannen',\n y: 'ien jier',\n yy: '%d jierren'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function ordinal(number) {\n return number + (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de');\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return fy;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var months = ['Eanáir', 'Feabhra', 'Márta', 'Aibreán', 'Bealtaine', 'Méitheamh', 'Iúil', 'Lúnasa', 'Meán Fómhair', 'Deaireadh Fómhair', 'Samhain', 'Nollaig'];\n var monthsShort = ['Eaná', 'Feab', 'Márt', 'Aibr', 'Beal', 'Méit', 'Iúil', 'Lúna', 'Meán', 'Deai', 'Samh', 'Noll'];\n var weekdays = ['Dé Domhnaigh', 'Dé Luain', 'Dé Máirt', 'Dé Céadaoin', 'Déardaoin', 'Dé hAoine', 'Dé Satharn'];\n var weekdaysShort = ['Dom', 'Lua', 'Mái', 'Céa', 'Déa', 'hAo', 'Sat'];\n var weekdaysMin = ['Do', 'Lu', 'Má', 'Ce', 'Dé', 'hA', 'Sa'];\n var ga = moment.defineLocale('ga', {\n months: months,\n monthsShort: monthsShort,\n monthsParseExact: true,\n weekdays: weekdays,\n weekdaysShort: weekdaysShort,\n weekdaysMin: weekdaysMin,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Inniu ag] LT',\n nextDay: '[Amárach ag] LT',\n nextWeek: 'dddd [ag] LT',\n lastDay: '[Inné aig] LT',\n lastWeek: 'dddd [seo caite] [ag] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'i %s',\n past: '%s ó shin',\n s: 'cúpla soicind',\n ss: '%d soicind',\n m: 'nóiméad',\n mm: '%d nóiméad',\n h: 'uair an chloig',\n hh: '%d uair an chloig',\n d: 'lá',\n dd: '%d lá',\n M: 'mí',\n MM: '%d mí',\n y: 'bliain',\n yy: '%d bliain'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(d|na|mh)/,\n ordinal: function ordinal(number) {\n var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';\n return number + output;\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return ga;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var months = ['Am Faoilleach', 'An Gearran', 'Am Màrt', 'An Giblean', 'An Cèitean', 'An t-Ògmhios', 'An t-Iuchar', 'An Lùnastal', 'An t-Sultain', 'An Dàmhair', 'An t-Samhain', 'An Dùbhlachd'];\n var monthsShort = ['Faoi', 'Gear', 'Màrt', 'Gibl', 'Cèit', 'Ògmh', 'Iuch', 'Lùn', 'Sult', 'Dàmh', 'Samh', 'Dùbh'];\n var weekdays = ['Didòmhnaich', 'Diluain', 'Dimàirt', 'Diciadain', 'Diardaoin', 'Dihaoine', 'Disathairne'];\n var weekdaysShort = ['Did', 'Dil', 'Dim', 'Dic', 'Dia', 'Dih', 'Dis'];\n var weekdaysMin = ['Dò', 'Lu', 'Mà', 'Ci', 'Ar', 'Ha', 'Sa'];\n var gd = moment.defineLocale('gd', {\n months: months,\n monthsShort: monthsShort,\n monthsParseExact: true,\n weekdays: weekdays,\n weekdaysShort: weekdaysShort,\n weekdaysMin: weekdaysMin,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[An-diugh aig] LT',\n nextDay: '[A-màireach aig] LT',\n nextWeek: 'dddd [aig] LT',\n lastDay: '[An-dè aig] LT',\n lastWeek: 'dddd [seo chaidh] [aig] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'ann an %s',\n past: 'bho chionn %s',\n s: 'beagan diogan',\n ss: '%d diogan',\n m: 'mionaid',\n mm: '%d mionaidean',\n h: 'uair',\n hh: '%d uairean',\n d: 'latha',\n dd: '%d latha',\n M: 'mìos',\n MM: '%d mìosan',\n y: 'bliadhna',\n yy: '%d bliadhna'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(d|na|mh)/,\n ordinal: function ordinal(number) {\n var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';\n return number + output;\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return gd;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var gl = moment.defineLocale('gl', {\n months: 'xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro'.split('_'),\n monthsShort: 'xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays: 'domingo_luns_martes_mércores_xoves_venres_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mér._xov._ven._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mé_xo_ve_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY H:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm'\n },\n calendar: {\n sameDay: function sameDay() {\n return '[hoxe ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT';\n },\n nextDay: function nextDay() {\n return '[mañá ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT';\n },\n nextWeek: function nextWeek() {\n return 'dddd [' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT';\n },\n lastDay: function lastDay() {\n return '[onte ' + (this.hours() !== 1 ? 'á' : 'a') + '] LT';\n },\n lastWeek: function lastWeek() {\n return '[o] dddd [pasado ' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT';\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: function future(str) {\n if (str.indexOf('un') === 0) {\n return 'n' + str;\n }\n\n return 'en ' + str;\n },\n past: 'hai %s',\n s: 'uns segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'unha hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n M: 'un mes',\n MM: '%d meses',\n y: 'un ano',\n yy: '%d anos'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return gl;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n 's': ['thodde secondanim', 'thodde second'],\n 'ss': [number + ' secondanim', number + ' second'],\n 'm': ['eka mintan', 'ek minute'],\n 'mm': [number + ' mintanim', number + ' mintam'],\n 'h': ['eka voran', 'ek vor'],\n 'hh': [number + ' voranim', number + ' voram'],\n 'd': ['eka disan', 'ek dis'],\n 'dd': [number + ' disanim', number + ' dis'],\n 'M': ['eka mhoinean', 'ek mhoino'],\n 'MM': [number + ' mhoineanim', number + ' mhoine'],\n 'y': ['eka vorsan', 'ek voros'],\n 'yy': [number + ' vorsanim', number + ' vorsam']\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n var gomLatn = moment.defineLocale('gom-latn', {\n months: 'Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr'.split('_'),\n monthsShort: 'Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.'.split('_'),\n monthsParseExact: true,\n weekdays: 'Aitar_Somar_Mongllar_Budvar_Brestar_Sukrar_Son\\'var'.split('_'),\n weekdaysShort: 'Ait._Som._Mon._Bud._Bre._Suk._Son.'.split('_'),\n weekdaysMin: 'Ai_Sm_Mo_Bu_Br_Su_Sn'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'A h:mm [vazta]',\n LTS: 'A h:mm:ss [vazta]',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY A h:mm [vazta]',\n LLLL: 'dddd, MMMM[achea] Do, YYYY, A h:mm [vazta]',\n llll: 'ddd, D MMM YYYY, A h:mm [vazta]'\n },\n calendar: {\n sameDay: '[Aiz] LT',\n nextDay: '[Faleam] LT',\n nextWeek: '[Ieta to] dddd[,] LT',\n lastDay: '[Kal] LT',\n lastWeek: '[Fatlo] dddd[,] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s',\n past: '%s adim',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er)/,\n ordinal: function ordinal(number, period) {\n switch (period) {\n // the ordinal 'er' only applies to day of the month\n case 'D':\n return number + 'er';\n\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n case 'w':\n case 'W':\n return number;\n }\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n },\n meridiemParse: /rati|sokalli|donparam|sanje/,\n meridiemHour: function meridiemHour(hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n\n if (meridiem === 'rati') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'sokalli') {\n return hour;\n } else if (meridiem === 'donparam') {\n return hour > 12 ? hour : hour + 12;\n } else if (meridiem === 'sanje') {\n return hour + 12;\n }\n },\n meridiem: function meridiem(hour, minute, isLower) {\n if (hour < 4) {\n return 'rati';\n } else if (hour < 12) {\n return 'sokalli';\n } else if (hour < 16) {\n return 'donparam';\n } else if (hour < 20) {\n return 'sanje';\n } else {\n return 'rati';\n }\n }\n });\n return gomLatn;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var symbolMap = {\n '1': '૧',\n '2': '૨',\n '3': '૩',\n '4': '૪',\n '5': '૫',\n '6': '૬',\n '7': '૭',\n '8': '૮',\n '9': '૯',\n '0': '૦'\n },\n numberMap = {\n '૧': '1',\n '૨': '2',\n '૩': '3',\n '૪': '4',\n '૫': '5',\n '૬': '6',\n '૭': '7',\n '૮': '8',\n '૯': '9',\n '૦': '0'\n };\n var gu = moment.defineLocale('gu', {\n months: 'જાન્યુઆરી_ફેબ્રુઆરી_માર્ચ_એપ્રિલ_મે_જૂન_જુલાઈ_ઑગસ્ટ_સપ્ટેમ્બર_ઑક્ટ્બર_નવેમ્બર_ડિસેમ્બર'.split('_'),\n monthsShort: 'જાન્યુ._ફેબ્રુ._માર્ચ_એપ્રિ._મે_જૂન_જુલા._ઑગ._સપ્ટે._ઑક્ટ્._નવે._ડિસે.'.split('_'),\n monthsParseExact: true,\n weekdays: 'રવિવાર_સોમવાર_મંગળવાર_બુધ્વાર_ગુરુવાર_શુક્રવાર_શનિવાર'.split('_'),\n weekdaysShort: 'રવિ_સોમ_મંગળ_બુધ્_ગુરુ_શુક્ર_શનિ'.split('_'),\n weekdaysMin: 'ર_સો_મં_બુ_ગુ_શુ_શ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm વાગ્યે',\n LTS: 'A h:mm:ss વાગ્યે',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm વાગ્યે',\n LLLL: 'dddd, D MMMM YYYY, A h:mm વાગ્યે'\n },\n calendar: {\n sameDay: '[આજ] LT',\n nextDay: '[કાલે] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[ગઇકાલે] LT',\n lastWeek: '[પાછલા] dddd, LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s મા',\n past: '%s પેહલા',\n s: 'અમુક પળો',\n ss: '%d સેકંડ',\n m: 'એક મિનિટ',\n mm: '%d મિનિટ',\n h: 'એક કલાક',\n hh: '%d કલાક',\n d: 'એક દિવસ',\n dd: '%d દિવસ',\n M: 'એક મહિનો',\n MM: '%d મહિનો',\n y: 'એક વર્ષ',\n yy: '%d વર્ષ'\n },\n preparse: function preparse(string) {\n return string.replace(/[૧૨૩૪૫૬૭૮૯૦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function postformat(string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // Gujarati notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Gujarati.\n meridiemParse: /રાત|બપોર|સવાર|સાંજ/,\n meridiemHour: function meridiemHour(hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n\n if (meridiem === 'રાત') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'સવાર') {\n return hour;\n } else if (meridiem === 'બપોર') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'સાંજ') {\n return hour + 12;\n }\n },\n meridiem: function meridiem(hour, minute, isLower) {\n if (hour < 4) {\n return 'રાત';\n } else if (hour < 10) {\n return 'સવાર';\n } else if (hour < 17) {\n return 'બપોર';\n } else if (hour < 20) {\n return 'સાંજ';\n } else {\n return 'રાત';\n }\n },\n week: {\n dow: 0,\n // Sunday is the first day of the week.\n doy: 6 // The week that contains Jan 6th is the first week of the year.\n\n }\n });\n return gu;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var he = moment.defineLocale('he', {\n months: 'ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר'.split('_'),\n monthsShort: 'ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳'.split('_'),\n weekdays: 'ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת'.split('_'),\n weekdaysShort: 'א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳'.split('_'),\n weekdaysMin: 'א_ב_ג_ד_ה_ו_ש'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [ב]MMMM YYYY',\n LLL: 'D [ב]MMMM YYYY HH:mm',\n LLLL: 'dddd, D [ב]MMMM YYYY HH:mm',\n l: 'D/M/YYYY',\n ll: 'D MMM YYYY',\n lll: 'D MMM YYYY HH:mm',\n llll: 'ddd, D MMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[היום ב־]LT',\n nextDay: '[מחר ב־]LT',\n nextWeek: 'dddd [בשעה] LT',\n lastDay: '[אתמול ב־]LT',\n lastWeek: '[ביום] dddd [האחרון בשעה] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'בעוד %s',\n past: 'לפני %s',\n s: 'מספר שניות',\n ss: '%d שניות',\n m: 'דקה',\n mm: '%d דקות',\n h: 'שעה',\n hh: function hh(number) {\n if (number === 2) {\n return 'שעתיים';\n }\n\n return number + ' שעות';\n },\n d: 'יום',\n dd: function dd(number) {\n if (number === 2) {\n return 'יומיים';\n }\n\n return number + ' ימים';\n },\n M: 'חודש',\n MM: function MM(number) {\n if (number === 2) {\n return 'חודשיים';\n }\n\n return number + ' חודשים';\n },\n y: 'שנה',\n yy: function yy(number) {\n if (number === 2) {\n return 'שנתיים';\n } else if (number % 10 === 0 && number !== 10) {\n return number + ' שנה';\n }\n\n return number + ' שנים';\n }\n },\n meridiemParse: /אחה\"צ|לפנה\"צ|אחרי הצהריים|לפני הצהריים|לפנות בוקר|בבוקר|בערב/i,\n isPM: function isPM(input) {\n return /^(אחה\"צ|אחרי הצהריים|בערב)$/.test(input);\n },\n meridiem: function meridiem(hour, minute, isLower) {\n if (hour < 5) {\n return 'לפנות בוקר';\n } else if (hour < 10) {\n return 'בבוקר';\n } else if (hour < 12) {\n return isLower ? 'לפנה\"צ' : 'לפני הצהריים';\n } else if (hour < 18) {\n return isLower ? 'אחה\"צ' : 'אחרי הצהריים';\n } else {\n return 'בערב';\n }\n }\n });\n return he;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var symbolMap = {\n '1': '१',\n '2': '२',\n '3': '३',\n '4': '४',\n '5': '५',\n '6': '६',\n '7': '७',\n '8': '८',\n '9': '९',\n '0': '०'\n },\n numberMap = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n '७': '7',\n '८': '8',\n '९': '9',\n '०': '0'\n };\n var hi = moment.defineLocale('hi', {\n months: 'जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर'.split('_'),\n monthsShort: 'जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.'.split('_'),\n monthsParseExact: true,\n weekdays: 'रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),\n weekdaysShort: 'रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि'.split('_'),\n weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'),\n longDateFormat: {\n LT: 'A h:mm बजे',\n LTS: 'A h:mm:ss बजे',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm बजे',\n LLLL: 'dddd, D MMMM YYYY, A h:mm बजे'\n },\n calendar: {\n sameDay: '[आज] LT',\n nextDay: '[कल] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[कल] LT',\n lastWeek: '[पिछले] dddd, LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s में',\n past: '%s पहले',\n s: 'कुछ ही क्षण',\n ss: '%d सेकंड',\n m: 'एक मिनट',\n mm: '%d मिनट',\n h: 'एक घंटा',\n hh: '%d घंटे',\n d: 'एक दिन',\n dd: '%d दिन',\n M: 'एक महीने',\n MM: '%d महीने',\n y: 'एक वर्ष',\n yy: '%d वर्ष'\n },\n preparse: function preparse(string) {\n return string.replace(/[१२३४५६७८९०]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function postformat(string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // Hindi notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Hindi.\n meridiemParse: /रात|सुबह|दोपहर|शाम/,\n meridiemHour: function meridiemHour(hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n\n if (meridiem === 'रात') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'सुबह') {\n return hour;\n } else if (meridiem === 'दोपहर') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'शाम') {\n return hour + 12;\n }\n },\n meridiem: function meridiem(hour, minute, isLower) {\n if (hour < 4) {\n return 'रात';\n } else if (hour < 10) {\n return 'सुबह';\n } else if (hour < 17) {\n return 'दोपहर';\n } else if (hour < 20) {\n return 'शाम';\n } else {\n return 'रात';\n }\n },\n week: {\n dow: 0,\n // Sunday is the first day of the week.\n doy: 6 // The week that contains Jan 6th is the first week of the year.\n\n }\n });\n return hi;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n function translate(number, withoutSuffix, key) {\n var result = number + ' ';\n\n switch (key) {\n case 'ss':\n if (number === 1) {\n result += 'sekunda';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sekunde';\n } else {\n result += 'sekundi';\n }\n\n return result;\n\n case 'm':\n return withoutSuffix ? 'jedna minuta' : 'jedne minute';\n\n case 'mm':\n if (number === 1) {\n result += 'minuta';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'minute';\n } else {\n result += 'minuta';\n }\n\n return result;\n\n case 'h':\n return withoutSuffix ? 'jedan sat' : 'jednog sata';\n\n case 'hh':\n if (number === 1) {\n result += 'sat';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sata';\n } else {\n result += 'sati';\n }\n\n return result;\n\n case 'dd':\n if (number === 1) {\n result += 'dan';\n } else {\n result += 'dana';\n }\n\n return result;\n\n case 'MM':\n if (number === 1) {\n result += 'mjesec';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'mjeseca';\n } else {\n result += 'mjeseci';\n }\n\n return result;\n\n case 'yy':\n if (number === 1) {\n result += 'godina';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'godine';\n } else {\n result += 'godina';\n }\n\n return result;\n }\n }\n\n var hr = moment.defineLocale('hr', {\n months: {\n format: 'siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca'.split('_'),\n standalone: 'siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac'.split('_')\n },\n monthsShort: 'sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.'.split('_'),\n monthsParseExact: true,\n weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split('_'),\n weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm'\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sutra u] LT',\n nextWeek: function nextWeek() {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n\n case 3:\n return '[u] [srijedu] [u] LT';\n\n case 6:\n return '[u] [subotu] [u] LT';\n\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[jučer u] LT',\n lastWeek: function lastWeek() {\n switch (this.day()) {\n case 0:\n case 3:\n return '[prošlu] dddd [u] LT';\n\n case 6:\n return '[prošle] [subote] [u] LT';\n\n case 1:\n case 2:\n case 4:\n case 5:\n return '[prošli] dddd [u] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'za %s',\n past: 'prije %s',\n s: 'par sekundi',\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: 'dan',\n dd: translate,\n M: 'mjesec',\n MM: translate,\n y: 'godinu',\n yy: translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n\n }\n });\n return hr;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var weekEndings = 'vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton'.split(' ');\n\n function translate(number, withoutSuffix, key, isFuture) {\n var num = number;\n\n switch (key) {\n case 's':\n return isFuture || withoutSuffix ? 'néhány másodperc' : 'néhány másodperce';\n\n case 'ss':\n return num + (isFuture || withoutSuffix) ? ' másodperc' : ' másodperce';\n\n case 'm':\n return 'egy' + (isFuture || withoutSuffix ? ' perc' : ' perce');\n\n case 'mm':\n return num + (isFuture || withoutSuffix ? ' perc' : ' perce');\n\n case 'h':\n return 'egy' + (isFuture || withoutSuffix ? ' óra' : ' órája');\n\n case 'hh':\n return num + (isFuture || withoutSuffix ? ' óra' : ' órája');\n\n case 'd':\n return 'egy' + (isFuture || withoutSuffix ? ' nap' : ' napja');\n\n case 'dd':\n return num + (isFuture || withoutSuffix ? ' nap' : ' napja');\n\n case 'M':\n return 'egy' + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');\n\n case 'MM':\n return num + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');\n\n case 'y':\n return 'egy' + (isFuture || withoutSuffix ? ' év' : ' éve');\n\n case 'yy':\n return num + (isFuture || withoutSuffix ? ' év' : ' éve');\n }\n\n return '';\n }\n\n function week(isFuture) {\n return (isFuture ? '' : '[múlt] ') + '[' + weekEndings[this.day()] + '] LT[-kor]';\n }\n\n var hu = moment.defineLocale('hu', {\n months: 'január_február_március_április_május_június_július_augusztus_szeptember_október_november_december'.split('_'),\n monthsShort: 'jan_feb_márc_ápr_máj_jún_júl_aug_szept_okt_nov_dec'.split('_'),\n weekdays: 'vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat'.split('_'),\n weekdaysShort: 'vas_hét_kedd_sze_csüt_pén_szo'.split('_'),\n weekdaysMin: 'v_h_k_sze_cs_p_szo'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'YYYY.MM.DD.',\n LL: 'YYYY. MMMM D.',\n LLL: 'YYYY. MMMM D. H:mm',\n LLLL: 'YYYY. MMMM D., dddd H:mm'\n },\n meridiemParse: /de|du/i,\n isPM: function isPM(input) {\n return input.charAt(1).toLowerCase() === 'u';\n },\n meridiem: function meridiem(hours, minutes, isLower) {\n if (hours < 12) {\n return isLower === true ? 'de' : 'DE';\n } else {\n return isLower === true ? 'du' : 'DU';\n }\n },\n calendar: {\n sameDay: '[ma] LT[-kor]',\n nextDay: '[holnap] LT[-kor]',\n nextWeek: function nextWeek() {\n return week.call(this, true);\n },\n lastDay: '[tegnap] LT[-kor]',\n lastWeek: function lastWeek() {\n return week.call(this, false);\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s múlva',\n past: '%s',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return hu;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var hyAm = moment.defineLocale('hy-am', {\n months: {\n format: 'հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի'.split('_'),\n standalone: 'հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր'.split('_')\n },\n monthsShort: 'հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ'.split('_'),\n weekdays: 'կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ'.split('_'),\n weekdaysShort: 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),\n weekdaysMin: 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY թ.',\n LLL: 'D MMMM YYYY թ., HH:mm',\n LLLL: 'dddd, D MMMM YYYY թ., HH:mm'\n },\n calendar: {\n sameDay: '[այսօր] LT',\n nextDay: '[վաղը] LT',\n lastDay: '[երեկ] LT',\n nextWeek: function nextWeek() {\n return 'dddd [օրը ժամը] LT';\n },\n lastWeek: function lastWeek() {\n return '[անցած] dddd [օրը ժամը] LT';\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s հետո',\n past: '%s առաջ',\n s: 'մի քանի վայրկյան',\n ss: '%d վայրկյան',\n m: 'րոպե',\n mm: '%d րոպե',\n h: 'ժամ',\n hh: '%d ժամ',\n d: 'օր',\n dd: '%d օր',\n M: 'ամիս',\n MM: '%d ամիս',\n y: 'տարի',\n yy: '%d տարի'\n },\n meridiemParse: /գիշերվա|առավոտվա|ցերեկվա|երեկոյան/,\n isPM: function isPM(input) {\n return /^(ցերեկվա|երեկոյան)$/.test(input);\n },\n meridiem: function meridiem(hour) {\n if (hour < 4) {\n return 'գիշերվա';\n } else if (hour < 12) {\n return 'առավոտվա';\n } else if (hour < 17) {\n return 'ցերեկվա';\n } else {\n return 'երեկոյան';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}|\\d{1,2}-(ին|րդ)/,\n ordinal: function ordinal(number, period) {\n switch (period) {\n case 'DDD':\n case 'w':\n case 'W':\n case 'DDDo':\n if (number === 1) {\n return number + '-ին';\n }\n\n return number + '-րդ';\n\n default:\n return number;\n }\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n\n }\n });\n return hyAm;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var id = moment.defineLocale('id', {\n months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember'.split('_'),\n monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des'.split('_'),\n weekdays: 'Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu'.split('_'),\n weekdaysShort: 'Min_Sen_Sel_Rab_Kam_Jum_Sab'.split('_'),\n weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm'\n },\n meridiemParse: /pagi|siang|sore|malam/,\n meridiemHour: function meridiemHour(hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'siang') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'sore' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem: function meridiem(hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'siang';\n } else if (hours < 19) {\n return 'sore';\n } else {\n return 'malam';\n }\n },\n calendar: {\n sameDay: '[Hari ini pukul] LT',\n nextDay: '[Besok pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kemarin pukul] LT',\n lastWeek: 'dddd [lalu pukul] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'dalam %s',\n past: '%s yang lalu',\n s: 'beberapa detik',\n ss: '%d detik',\n m: 'semenit',\n mm: '%d menit',\n h: 'sejam',\n hh: '%d jam',\n d: 'sehari',\n dd: '%d hari',\n M: 'sebulan',\n MM: '%d bulan',\n y: 'setahun',\n yy: '%d tahun'\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n\n }\n });\n return id;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n function plural(n) {\n if (n % 100 === 11) {\n return true;\n } else if (n % 10 === 1) {\n return false;\n }\n\n return true;\n }\n\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n\n switch (key) {\n case 's':\n return withoutSuffix || isFuture ? 'nokkrar sekúndur' : 'nokkrum sekúndum';\n\n case 'ss':\n if (plural(number)) {\n return result + (withoutSuffix || isFuture ? 'sekúndur' : 'sekúndum');\n }\n\n return result + 'sekúnda';\n\n case 'm':\n return withoutSuffix ? 'mínúta' : 'mínútu';\n\n case 'mm':\n if (plural(number)) {\n return result + (withoutSuffix || isFuture ? 'mínútur' : 'mínútum');\n } else if (withoutSuffix) {\n return result + 'mínúta';\n }\n\n return result + 'mínútu';\n\n case 'hh':\n if (plural(number)) {\n return result + (withoutSuffix || isFuture ? 'klukkustundir' : 'klukkustundum');\n }\n\n return result + 'klukkustund';\n\n case 'd':\n if (withoutSuffix) {\n return 'dagur';\n }\n\n return isFuture ? 'dag' : 'degi';\n\n case 'dd':\n if (plural(number)) {\n if (withoutSuffix) {\n return result + 'dagar';\n }\n\n return result + (isFuture ? 'daga' : 'dögum');\n } else if (withoutSuffix) {\n return result + 'dagur';\n }\n\n return result + (isFuture ? 'dag' : 'degi');\n\n case 'M':\n if (withoutSuffix) {\n return 'mánuður';\n }\n\n return isFuture ? 'mánuð' : 'mánuði';\n\n case 'MM':\n if (plural(number)) {\n if (withoutSuffix) {\n return result + 'mánuðir';\n }\n\n return result + (isFuture ? 'mánuði' : 'mánuðum');\n } else if (withoutSuffix) {\n return result + 'mánuður';\n }\n\n return result + (isFuture ? 'mánuð' : 'mánuði');\n\n case 'y':\n return withoutSuffix || isFuture ? 'ár' : 'ári';\n\n case 'yy':\n if (plural(number)) {\n return result + (withoutSuffix || isFuture ? 'ár' : 'árum');\n }\n\n return result + (withoutSuffix || isFuture ? 'ár' : 'ári');\n }\n }\n\n var is = moment.defineLocale('is', {\n months: 'janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember'.split('_'),\n monthsShort: 'jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des'.split('_'),\n weekdays: 'sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur'.split('_'),\n weekdaysShort: 'sun_mán_þri_mið_fim_fös_lau'.split('_'),\n weekdaysMin: 'Su_Má_Þr_Mi_Fi_Fö_La'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY [kl.] H:mm',\n LLLL: 'dddd, D. MMMM YYYY [kl.] H:mm'\n },\n calendar: {\n sameDay: '[í dag kl.] LT',\n nextDay: '[á morgun kl.] LT',\n nextWeek: 'dddd [kl.] LT',\n lastDay: '[í gær kl.] LT',\n lastWeek: '[síðasta] dddd [kl.] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'eftir %s',\n past: 'fyrir %s síðan',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: 'klukkustund',\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return is;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var it = moment.defineLocale('it', {\n months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split('_'),\n monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),\n weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split('_'),\n weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'),\n weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Oggi alle] LT',\n nextDay: '[Domani alle] LT',\n nextWeek: 'dddd [alle] LT',\n lastDay: '[Ieri alle] LT',\n lastWeek: function lastWeek() {\n switch (this.day()) {\n case 0:\n return '[la scorsa] dddd [alle] LT';\n\n default:\n return '[lo scorso] dddd [alle] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: function future(s) {\n return (/^[0-9].+$/.test(s) ? 'tra' : 'in') + ' ' + s;\n },\n past: '%s fa',\n s: 'alcuni secondi',\n ss: '%d secondi',\n m: 'un minuto',\n mm: '%d minuti',\n h: 'un\\'ora',\n hh: '%d ore',\n d: 'un giorno',\n dd: '%d giorni',\n M: 'un mese',\n MM: '%d mesi',\n y: 'un anno',\n yy: '%d anni'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return it;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var itCh = moment.defineLocale('it-ch', {\n months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split('_'),\n monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),\n weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split('_'),\n weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'),\n weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Oggi alle] LT',\n nextDay: '[Domani alle] LT',\n nextWeek: 'dddd [alle] LT',\n lastDay: '[Ieri alle] LT',\n lastWeek: function lastWeek() {\n switch (this.day()) {\n case 0:\n return '[la scorsa] dddd [alle] LT';\n\n default:\n return '[lo scorso] dddd [alle] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: function future(s) {\n return (/^[0-9].+$/.test(s) ? 'tra' : 'in') + ' ' + s;\n },\n past: '%s fa',\n s: 'alcuni secondi',\n ss: '%d secondi',\n m: 'un minuto',\n mm: '%d minuti',\n h: 'un\\'ora',\n hh: '%d ore',\n d: 'un giorno',\n dd: '%d giorni',\n M: 'un mese',\n MM: '%d mesi',\n y: 'un anno',\n yy: '%d anni'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return itCh;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var ja = moment.defineLocale('ja', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n weekdays: '日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日'.split('_'),\n weekdaysShort: '日_月_火_水_木_金_土'.split('_'),\n weekdaysMin: '日_月_火_水_木_金_土'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日 HH:mm',\n LLLL: 'YYYY年M月D日 dddd HH:mm',\n l: 'YYYY/MM/DD',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日(ddd) HH:mm'\n },\n meridiemParse: /午前|午後/i,\n isPM: function isPM(input) {\n return input === '午後';\n },\n meridiem: function meridiem(hour, minute, isLower) {\n if (hour < 12) {\n return '午前';\n } else {\n return '午後';\n }\n },\n calendar: {\n sameDay: '[今日] LT',\n nextDay: '[明日] LT',\n nextWeek: function nextWeek(now) {\n if (now.week() < this.week()) {\n return '[来週]dddd LT';\n } else {\n return 'dddd LT';\n }\n },\n lastDay: '[昨日] LT',\n lastWeek: function lastWeek(now) {\n if (this.week() < now.week()) {\n return '[先週]dddd LT';\n } else {\n return 'dddd LT';\n }\n },\n sameElse: 'L'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}日/,\n ordinal: function ordinal(number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s後',\n past: '%s前',\n s: '数秒',\n ss: '%d秒',\n m: '1分',\n mm: '%d分',\n h: '1時間',\n hh: '%d時間',\n d: '1日',\n dd: '%d日',\n M: '1ヶ月',\n MM: '%dヶ月',\n y: '1年',\n yy: '%d年'\n }\n });\n return ja;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var jv = moment.defineLocale('jv', {\n months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember'.split('_'),\n monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des'.split('_'),\n weekdays: 'Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu'.split('_'),\n weekdaysShort: 'Min_Sen_Sel_Reb_Kem_Jem_Sep'.split('_'),\n weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sp'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm'\n },\n meridiemParse: /enjing|siyang|sonten|ndalu/,\n meridiemHour: function meridiemHour(hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n\n if (meridiem === 'enjing') {\n return hour;\n } else if (meridiem === 'siyang') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'sonten' || meridiem === 'ndalu') {\n return hour + 12;\n }\n },\n meridiem: function meridiem(hours, minutes, isLower) {\n if (hours < 11) {\n return 'enjing';\n } else if (hours < 15) {\n return 'siyang';\n } else if (hours < 19) {\n return 'sonten';\n } else {\n return 'ndalu';\n }\n },\n calendar: {\n sameDay: '[Dinten puniko pukul] LT',\n nextDay: '[Mbenjang pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kala wingi pukul] LT',\n lastWeek: 'dddd [kepengker pukul] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'wonten ing %s',\n past: '%s ingkang kepengker',\n s: 'sawetawis detik',\n ss: '%d detik',\n m: 'setunggal menit',\n mm: '%d menit',\n h: 'setunggal jam',\n hh: '%d jam',\n d: 'sedinten',\n dd: '%d dinten',\n M: 'sewulan',\n MM: '%d wulan',\n y: 'setaun',\n yy: '%d taun'\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n\n }\n });\n return jv;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var ka = moment.defineLocale('ka', {\n months: {\n standalone: 'იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი'.split('_'),\n format: 'იანვარს_თებერვალს_მარტს_აპრილის_მაისს_ივნისს_ივლისს_აგვისტს_სექტემბერს_ოქტომბერს_ნოემბერს_დეკემბერს'.split('_')\n },\n monthsShort: 'იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ'.split('_'),\n weekdays: {\n standalone: 'კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი'.split('_'),\n format: 'კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს'.split('_'),\n isFormat: /(წინა|შემდეგ)/\n },\n weekdaysShort: 'კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ'.split('_'),\n weekdaysMin: 'კვ_ორ_სა_ოთ_ხუ_პა_შა'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A'\n },\n calendar: {\n sameDay: '[დღეს] LT[-ზე]',\n nextDay: '[ხვალ] LT[-ზე]',\n lastDay: '[გუშინ] LT[-ზე]',\n nextWeek: '[შემდეგ] dddd LT[-ზე]',\n lastWeek: '[წინა] dddd LT-ზე',\n sameElse: 'L'\n },\n relativeTime: {\n future: function future(s) {\n return /(წამი|წუთი|საათი|წელი)/.test(s) ? s.replace(/ი$/, 'ში') : s + 'ში';\n },\n past: function past(s) {\n if (/(წამი|წუთი|საათი|დღე|თვე)/.test(s)) {\n return s.replace(/(ი|ე)$/, 'ის წინ');\n }\n\n if (/წელი/.test(s)) {\n return s.replace(/წელი$/, 'წლის წინ');\n }\n },\n s: 'რამდენიმე წამი',\n ss: '%d წამი',\n m: 'წუთი',\n mm: '%d წუთი',\n h: 'საათი',\n hh: '%d საათი',\n d: 'დღე',\n dd: '%d დღე',\n M: 'თვე',\n MM: '%d თვე',\n y: 'წელი',\n yy: '%d წელი'\n },\n dayOfMonthOrdinalParse: /0|1-ლი|მე-\\d{1,2}|\\d{1,2}-ე/,\n ordinal: function ordinal(number) {\n if (number === 0) {\n return number;\n }\n\n if (number === 1) {\n return number + '-ლი';\n }\n\n if (number < 20 || number <= 100 && number % 20 === 0 || number % 100 === 0) {\n return 'მე-' + number;\n }\n\n return number + '-ე';\n },\n week: {\n dow: 1,\n doy: 7\n }\n });\n return ka;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var suffixes = {\n 0: '-ші',\n 1: '-ші',\n 2: '-ші',\n 3: '-ші',\n 4: '-ші',\n 5: '-ші',\n 6: '-шы',\n 7: '-ші',\n 8: '-ші',\n 9: '-шы',\n 10: '-шы',\n 20: '-шы',\n 30: '-шы',\n 40: '-шы',\n 50: '-ші',\n 60: '-шы',\n 70: '-ші',\n 80: '-ші',\n 90: '-шы',\n 100: '-ші'\n };\n var kk = moment.defineLocale('kk', {\n months: 'қаңтар_ақпан_наурыз_сәуір_мамыр_маусым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқсан'.split('_'),\n monthsShort: 'қаң_ақп_нау_сәу_мам_мау_шіл_там_қыр_қаз_қар_жел'.split('_'),\n weekdays: 'жексенбі_дүйсенбі_сейсенбі_сәрсенбі_бейсенбі_жұма_сенбі'.split('_'),\n weekdaysShort: 'жек_дүй_сей_сәр_бей_жұм_сен'.split('_'),\n weekdaysMin: 'жк_дй_сй_ср_бй_жм_сн'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Бүгін сағат] LT',\n nextDay: '[Ертең сағат] LT',\n nextWeek: 'dddd [сағат] LT',\n lastDay: '[Кеше сағат] LT',\n lastWeek: '[Өткен аптаның] dddd [сағат] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s ішінде',\n past: '%s бұрын',\n s: 'бірнеше секунд',\n ss: '%d секунд',\n m: 'бір минут',\n mm: '%d минут',\n h: 'бір сағат',\n hh: '%d сағат',\n d: 'бір күн',\n dd: '%d күн',\n M: 'бір ай',\n MM: '%d ай',\n y: 'бір жыл',\n yy: '%d жыл'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ші|шы)/,\n ordinal: function ordinal(number) {\n var a = number % 10,\n b = number >= 100 ? 100 : null;\n return number + (suffixes[number] || suffixes[a] || suffixes[b]);\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n\n }\n });\n return kk;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var symbolMap = {\n '1': '១',\n '2': '២',\n '3': '៣',\n '4': '៤',\n '5': '៥',\n '6': '៦',\n '7': '៧',\n '8': '៨',\n '9': '៩',\n '0': '០'\n },\n numberMap = {\n '១': '1',\n '២': '2',\n '៣': '3',\n '៤': '4',\n '៥': '5',\n '៦': '6',\n '៧': '7',\n '៨': '8',\n '៩': '9',\n '០': '0'\n };\n var km = moment.defineLocale('km', {\n months: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split('_'),\n monthsShort: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split('_'),\n weekdays: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'),\n weekdaysShort: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'),\n weekdaysMin: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n meridiemParse: /ព្រឹក|ល្ងាច/,\n isPM: function isPM(input) {\n return input === 'ល្ងាច';\n },\n meridiem: function meridiem(hour, minute, isLower) {\n if (hour < 12) {\n return 'ព្រឹក';\n } else {\n return 'ល្ងាច';\n }\n },\n calendar: {\n sameDay: '[ថ្ងៃនេះ ម៉ោង] LT',\n nextDay: '[ស្អែក ម៉ោង] LT',\n nextWeek: 'dddd [ម៉ោង] LT',\n lastDay: '[ម្សិលមិញ ម៉ោង] LT',\n lastWeek: 'dddd [សប្តាហ៍មុន] [ម៉ោង] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%sទៀត',\n past: '%sមុន',\n s: 'ប៉ុន្មានវិនាទី',\n ss: '%d វិនាទី',\n m: 'មួយនាទី',\n mm: '%d នាទី',\n h: 'មួយម៉ោង',\n hh: '%d ម៉ោង',\n d: 'មួយថ្ងៃ',\n dd: '%d ថ្ងៃ',\n M: 'មួយខែ',\n MM: '%d ខែ',\n y: 'មួយឆ្នាំ',\n yy: '%d ឆ្នាំ'\n },\n dayOfMonthOrdinalParse: /ទី\\d{1,2}/,\n ordinal: 'ទី%d',\n preparse: function preparse(string) {\n return string.replace(/[១២៣៤៥៦៧៨៩០]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function postformat(string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return km;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var symbolMap = {\n '1': '೧',\n '2': '೨',\n '3': '೩',\n '4': '೪',\n '5': '೫',\n '6': '೬',\n '7': '೭',\n '8': '೮',\n '9': '೯',\n '0': '೦'\n },\n numberMap = {\n '೧': '1',\n '೨': '2',\n '೩': '3',\n '೪': '4',\n '೫': '5',\n '೬': '6',\n '೭': '7',\n '೮': '8',\n '೯': '9',\n '೦': '0'\n };\n var kn = moment.defineLocale('kn', {\n months: 'ಜನವರಿ_ಫೆಬ್ರವರಿ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬರ್_ಅಕ್ಟೋಬರ್_ನವೆಂಬರ್_ಡಿಸೆಂಬರ್'.split('_'),\n monthsShort: 'ಜನ_ಫೆಬ್ರ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂ_ಅಕ್ಟೋ_ನವೆಂ_ಡಿಸೆಂ'.split('_'),\n monthsParseExact: true,\n weekdays: 'ಭಾನುವಾರ_ಸೋಮವಾರ_ಮಂಗಳವಾರ_ಬುಧವಾರ_ಗುರುವಾರ_ಶುಕ್ರವಾರ_ಶನಿವಾರ'.split('_'),\n weekdaysShort: 'ಭಾನು_ಸೋಮ_ಮಂಗಳ_ಬುಧ_ಗುರು_ಶುಕ್ರ_ಶನಿ'.split('_'),\n weekdaysMin: 'ಭಾ_ಸೋ_ಮಂ_ಬು_ಗು_ಶು_ಶ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm',\n LLLL: 'dddd, D MMMM YYYY, A h:mm'\n },\n calendar: {\n sameDay: '[ಇಂದು] LT',\n nextDay: '[ನಾಳೆ] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[ನಿನ್ನೆ] LT',\n lastWeek: '[ಕೊನೆಯ] dddd, LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s ನಂತರ',\n past: '%s ಹಿಂದೆ',\n s: 'ಕೆಲವು ಕ್ಷಣಗಳು',\n ss: '%d ಸೆಕೆಂಡುಗಳು',\n m: 'ಒಂದು ನಿಮಿಷ',\n mm: '%d ನಿಮಿಷ',\n h: 'ಒಂದು ಗಂಟೆ',\n hh: '%d ಗಂಟೆ',\n d: 'ಒಂದು ದಿನ',\n dd: '%d ದಿನ',\n M: 'ಒಂದು ತಿಂಗಳು',\n MM: '%d ತಿಂಗಳು',\n y: 'ಒಂದು ವರ್ಷ',\n yy: '%d ವರ್ಷ'\n },\n preparse: function preparse(string) {\n return string.replace(/[೧೨೩೪೫೬೭೮೯೦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function postformat(string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /ರಾತ್ರಿ|ಬೆಳಿಗ್ಗೆ|ಮಧ್ಯಾಹ್ನ|ಸಂಜೆ/,\n meridiemHour: function meridiemHour(hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n\n if (meridiem === 'ರಾತ್ರಿ') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ಬೆಳಿಗ್ಗೆ') {\n return hour;\n } else if (meridiem === 'ಮಧ್ಯಾಹ್ನ') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'ಸಂಜೆ') {\n return hour + 12;\n }\n },\n meridiem: function meridiem(hour, minute, isLower) {\n if (hour < 4) {\n return 'ರಾತ್ರಿ';\n } else if (hour < 10) {\n return 'ಬೆಳಿಗ್ಗೆ';\n } else if (hour < 17) {\n return 'ಮಧ್ಯಾಹ್ನ';\n } else if (hour < 20) {\n return 'ಸಂಜೆ';\n } else {\n return 'ರಾತ್ರಿ';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ನೇ)/,\n ordinal: function ordinal(number) {\n return number + 'ನೇ';\n },\n week: {\n dow: 0,\n // Sunday is the first day of the week.\n doy: 6 // The week that contains Jan 6th is the first week of the year.\n\n }\n });\n return kn;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var ko = moment.defineLocale('ko', {\n months: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'),\n monthsShort: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'),\n weekdays: '일요일_월요일_화요일_수요일_목요일_금요일_토요일'.split('_'),\n weekdaysShort: '일_월_화_수_목_금_토'.split('_'),\n weekdaysMin: '일_월_화_수_목_금_토'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'YYYY.MM.DD.',\n LL: 'YYYY년 MMMM D일',\n LLL: 'YYYY년 MMMM D일 A h:mm',\n LLLL: 'YYYY년 MMMM D일 dddd A h:mm',\n l: 'YYYY.MM.DD.',\n ll: 'YYYY년 MMMM D일',\n lll: 'YYYY년 MMMM D일 A h:mm',\n llll: 'YYYY년 MMMM D일 dddd A h:mm'\n },\n calendar: {\n sameDay: '오늘 LT',\n nextDay: '내일 LT',\n nextWeek: 'dddd LT',\n lastDay: '어제 LT',\n lastWeek: '지난주 dddd LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s 후',\n past: '%s 전',\n s: '몇 초',\n ss: '%d초',\n m: '1분',\n mm: '%d분',\n h: '한 시간',\n hh: '%d시간',\n d: '하루',\n dd: '%d일',\n M: '한 달',\n MM: '%d달',\n y: '일 년',\n yy: '%d년'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(일|월|주)/,\n ordinal: function ordinal(number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '일';\n\n case 'M':\n return number + '월';\n\n case 'w':\n case 'W':\n return number + '주';\n\n default:\n return number;\n }\n },\n meridiemParse: /오전|오후/,\n isPM: function isPM(token) {\n return token === '오후';\n },\n meridiem: function meridiem(hour, minute, isUpper) {\n return hour < 12 ? '오전' : '오후';\n }\n });\n return ko;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var symbolMap = {\n '1': '١',\n '2': '٢',\n '3': '٣',\n '4': '٤',\n '5': '٥',\n '6': '٦',\n '7': '٧',\n '8': '٨',\n '9': '٩',\n '0': '٠'\n },\n numberMap = {\n '١': '1',\n '٢': '2',\n '٣': '3',\n '٤': '4',\n '٥': '5',\n '٦': '6',\n '٧': '7',\n '٨': '8',\n '٩': '9',\n '٠': '0'\n },\n months = ['کانونی دووەم', 'شوبات', 'ئازار', 'نیسان', 'ئایار', 'حوزەیران', 'تەمموز', 'ئاب', 'ئەیلوول', 'تشرینی یەكەم', 'تشرینی دووەم', 'كانونی یەکەم'];\n var ku = moment.defineLocale('ku', {\n months: months,\n monthsShort: months,\n weekdays: 'یه‌كشه‌ممه‌_دووشه‌ممه‌_سێشه‌ممه‌_چوارشه‌ممه‌_پێنجشه‌ممه‌_هه‌ینی_شه‌ممه‌'.split('_'),\n weekdaysShort: 'یه‌كشه‌م_دووشه‌م_سێشه‌م_چوارشه‌م_پێنجشه‌م_هه‌ینی_شه‌ممه‌'.split('_'),\n weekdaysMin: 'ی_د_س_چ_پ_ه_ش'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n meridiemParse: /ئێواره‌|به‌یانی/,\n isPM: function isPM(input) {\n return /ئێواره‌/.test(input);\n },\n meridiem: function meridiem(hour, minute, isLower) {\n if (hour < 12) {\n return 'به‌یانی';\n } else {\n return 'ئێواره‌';\n }\n },\n calendar: {\n sameDay: '[ئه‌مرۆ كاتژمێر] LT',\n nextDay: '[به‌یانی كاتژمێر] LT',\n nextWeek: 'dddd [كاتژمێر] LT',\n lastDay: '[دوێنێ كاتژمێر] LT',\n lastWeek: 'dddd [كاتژمێر] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'له‌ %s',\n past: '%s',\n s: 'چه‌ند چركه‌یه‌ك',\n ss: 'چركه‌ %d',\n m: 'یه‌ك خوله‌ك',\n mm: '%d خوله‌ك',\n h: 'یه‌ك كاتژمێر',\n hh: '%d كاتژمێر',\n d: 'یه‌ك ڕۆژ',\n dd: '%d ڕۆژ',\n M: 'یه‌ك مانگ',\n MM: '%d مانگ',\n y: 'یه‌ك ساڵ',\n yy: '%d ساڵ'\n },\n preparse: function preparse(string) {\n return string.replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n }).replace(/،/g, ',');\n },\n postformat: function postformat(string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n }).replace(/,/g, '،');\n },\n week: {\n dow: 6,\n // Saturday is the first day of the week.\n doy: 12 // The week that contains Jan 12th is the first week of the year.\n\n }\n });\n return ku;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var suffixes = {\n 0: '-чү',\n 1: '-чи',\n 2: '-чи',\n 3: '-чү',\n 4: '-чү',\n 5: '-чи',\n 6: '-чы',\n 7: '-чи',\n 8: '-чи',\n 9: '-чу',\n 10: '-чу',\n 20: '-чы',\n 30: '-чу',\n 40: '-чы',\n 50: '-чү',\n 60: '-чы',\n 70: '-чи',\n 80: '-чи',\n 90: '-чу',\n 100: '-чү'\n };\n var ky = moment.defineLocale('ky', {\n months: 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split('_'),\n monthsShort: 'янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек'.split('_'),\n weekdays: 'Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби'.split('_'),\n weekdaysShort: 'Жек_Дүй_Шей_Шар_Бей_Жум_Ише'.split('_'),\n weekdaysMin: 'Жк_Дй_Шй_Шр_Бй_Жм_Иш'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Бүгүн саат] LT',\n nextDay: '[Эртең саат] LT',\n nextWeek: 'dddd [саат] LT',\n lastDay: '[Кечээ саат] LT',\n lastWeek: '[Өткөн аптанын] dddd [күнү] [саат] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s ичинде',\n past: '%s мурун',\n s: 'бирнече секунд',\n ss: '%d секунд',\n m: 'бир мүнөт',\n mm: '%d мүнөт',\n h: 'бир саат',\n hh: '%d саат',\n d: 'бир күн',\n dd: '%d күн',\n M: 'бир ай',\n MM: '%d ай',\n y: 'бир жыл',\n yy: '%d жыл'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(чи|чы|чү|чу)/,\n ordinal: function ordinal(number) {\n var a = number % 10,\n b = number >= 100 ? 100 : null;\n return number + (suffixes[number] || suffixes[a] || suffixes[b]);\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n\n }\n });\n return ky;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n 'm': ['eng Minutt', 'enger Minutt'],\n 'h': ['eng Stonn', 'enger Stonn'],\n 'd': ['een Dag', 'engem Dag'],\n 'M': ['ee Mount', 'engem Mount'],\n 'y': ['ee Joer', 'engem Joer']\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n function processFutureTime(string) {\n var number = string.substr(0, string.indexOf(' '));\n\n if (eifelerRegelAppliesToNumber(number)) {\n return 'a ' + string;\n }\n\n return 'an ' + string;\n }\n\n function processPastTime(string) {\n var number = string.substr(0, string.indexOf(' '));\n\n if (eifelerRegelAppliesToNumber(number)) {\n return 'viru ' + string;\n }\n\n return 'virun ' + string;\n }\n /**\n * Returns true if the word before the given number loses the '-n' ending.\n * e.g. 'an 10 Deeg' but 'a 5 Deeg'\n *\n * @param number {integer}\n * @returns {boolean}\n */\n\n\n function eifelerRegelAppliesToNumber(number) {\n number = parseInt(number, 10);\n\n if (isNaN(number)) {\n return false;\n }\n\n if (number < 0) {\n // Negative Number --> always true\n return true;\n } else if (number < 10) {\n // Only 1 digit\n if (4 <= number && number <= 7) {\n return true;\n }\n\n return false;\n } else if (number < 100) {\n // 2 digits\n var lastDigit = number % 10,\n firstDigit = number / 10;\n\n if (lastDigit === 0) {\n return eifelerRegelAppliesToNumber(firstDigit);\n }\n\n return eifelerRegelAppliesToNumber(lastDigit);\n } else if (number < 10000) {\n // 3 or 4 digits --> recursively check first digit\n while (number >= 10) {\n number = number / 10;\n }\n\n return eifelerRegelAppliesToNumber(number);\n } else {\n // Anything larger than 4 digits: recursively check first n-3 digits\n number = number / 1000;\n return eifelerRegelAppliesToNumber(number);\n }\n }\n\n var lb = moment.defineLocale('lb', {\n months: 'Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),\n monthsShort: 'Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split('_'),\n monthsParseExact: true,\n weekdays: 'Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg'.split('_'),\n weekdaysShort: 'So._Mé._Dë._Më._Do._Fr._Sa.'.split('_'),\n weekdaysMin: 'So_Mé_Dë_Më_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm [Auer]',\n LTS: 'H:mm:ss [Auer]',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm [Auer]',\n LLLL: 'dddd, D. MMMM YYYY H:mm [Auer]'\n },\n calendar: {\n sameDay: '[Haut um] LT',\n sameElse: 'L',\n nextDay: '[Muer um] LT',\n nextWeek: 'dddd [um] LT',\n lastDay: '[Gëschter um] LT',\n lastWeek: function lastWeek() {\n // Different date string for 'Dënschdeg' (Tuesday) and 'Donneschdeg' (Thursday) due to phonological rule\n switch (this.day()) {\n case 2:\n case 4:\n return '[Leschten] dddd [um] LT';\n\n default:\n return '[Leschte] dddd [um] LT';\n }\n }\n },\n relativeTime: {\n future: processFutureTime,\n past: processPastTime,\n s: 'e puer Sekonnen',\n ss: '%d Sekonnen',\n m: processRelativeTime,\n mm: '%d Minutten',\n h: processRelativeTime,\n hh: '%d Stonnen',\n d: processRelativeTime,\n dd: '%d Deeg',\n M: processRelativeTime,\n MM: '%d Méint',\n y: processRelativeTime,\n yy: '%d Joer'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return lb;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var lo = moment.defineLocale('lo', {\n months: 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split('_'),\n monthsShort: 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split('_'),\n weekdays: 'ອາທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),\n weekdaysShort: 'ທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),\n weekdaysMin: 'ທ_ຈ_ອຄ_ພ_ພຫ_ສກ_ສ'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'ວັນdddd D MMMM YYYY HH:mm'\n },\n meridiemParse: /ຕອນເຊົ້າ|ຕອນແລງ/,\n isPM: function isPM(input) {\n return input === 'ຕອນແລງ';\n },\n meridiem: function meridiem(hour, minute, isLower) {\n if (hour < 12) {\n return 'ຕອນເຊົ້າ';\n } else {\n return 'ຕອນແລງ';\n }\n },\n calendar: {\n sameDay: '[ມື້ນີ້ເວລາ] LT',\n nextDay: '[ມື້ອື່ນເວລາ] LT',\n nextWeek: '[ວັນ]dddd[ໜ້າເວລາ] LT',\n lastDay: '[ມື້ວານນີ້ເວລາ] LT',\n lastWeek: '[ວັນ]dddd[ແລ້ວນີ້ເວລາ] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'ອີກ %s',\n past: '%sຜ່ານມາ',\n s: 'ບໍ່ເທົ່າໃດວິນາທີ',\n ss: '%d ວິນາທີ',\n m: '1 ນາທີ',\n mm: '%d ນາທີ',\n h: '1 ຊົ່ວໂມງ',\n hh: '%d ຊົ່ວໂມງ',\n d: '1 ມື້',\n dd: '%d ມື້',\n M: '1 ເດືອນ',\n MM: '%d ເດືອນ',\n y: '1 ປີ',\n yy: '%d ປີ'\n },\n dayOfMonthOrdinalParse: /(ທີ່)\\d{1,2}/,\n ordinal: function ordinal(number) {\n return 'ທີ່' + number;\n }\n });\n return lo;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var units = {\n 'ss': 'sekundė_sekundžių_sekundes',\n 'm': 'minutė_minutės_minutę',\n 'mm': 'minutės_minučių_minutes',\n 'h': 'valanda_valandos_valandą',\n 'hh': 'valandos_valandų_valandas',\n 'd': 'diena_dienos_dieną',\n 'dd': 'dienos_dienų_dienas',\n 'M': 'mėnuo_mėnesio_mėnesį',\n 'MM': 'mėnesiai_mėnesių_mėnesius',\n 'y': 'metai_metų_metus',\n 'yy': 'metai_metų_metus'\n };\n\n function translateSeconds(number, withoutSuffix, key, isFuture) {\n if (withoutSuffix) {\n return 'kelios sekundės';\n } else {\n return isFuture ? 'kelių sekundžių' : 'kelias sekundes';\n }\n }\n\n function translateSingular(number, withoutSuffix, key, isFuture) {\n return withoutSuffix ? forms(key)[0] : isFuture ? forms(key)[1] : forms(key)[2];\n }\n\n function special(number) {\n return number % 10 === 0 || number > 10 && number < 20;\n }\n\n function forms(key) {\n return units[key].split('_');\n }\n\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n\n if (number === 1) {\n return result + translateSingular(number, withoutSuffix, key[0], isFuture);\n } else if (withoutSuffix) {\n return result + (special(number) ? forms(key)[1] : forms(key)[0]);\n } else {\n if (isFuture) {\n return result + forms(key)[1];\n } else {\n return result + (special(number) ? forms(key)[1] : forms(key)[2]);\n }\n }\n }\n\n var lt = moment.defineLocale('lt', {\n months: {\n format: 'sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio'.split('_'),\n standalone: 'sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis'.split('_'),\n isFormat: /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?|MMMM?(\\[[^\\[\\]]*\\]|\\s)+D[oD]?/\n },\n monthsShort: 'sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd'.split('_'),\n weekdays: {\n format: 'sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį'.split('_'),\n standalone: 'sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis'.split('_'),\n isFormat: /dddd HH:mm/\n },\n weekdaysShort: 'Sek_Pir_Ant_Tre_Ket_Pen_Šeš'.split('_'),\n weekdaysMin: 'S_P_A_T_K_Pn_Š'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY [m.] MMMM D [d.]',\n LLL: 'YYYY [m.] MMMM D [d.], HH:mm [val.]',\n LLLL: 'YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]',\n l: 'YYYY-MM-DD',\n ll: 'YYYY [m.] MMMM D [d.]',\n lll: 'YYYY [m.] MMMM D [d.], HH:mm [val.]',\n llll: 'YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]'\n },\n calendar: {\n sameDay: '[Šiandien] LT',\n nextDay: '[Rytoj] LT',\n nextWeek: 'dddd LT',\n lastDay: '[Vakar] LT',\n lastWeek: '[Praėjusį] dddd LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'po %s',\n past: 'prieš %s',\n s: translateSeconds,\n ss: translate,\n m: translateSingular,\n mm: translate,\n h: translateSingular,\n hh: translate,\n d: translateSingular,\n dd: translate,\n M: translateSingular,\n MM: translate,\n y: translateSingular,\n yy: translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-oji/,\n ordinal: function ordinal(number) {\n return number + '-oji';\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return lt;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var units = {\n 'ss': 'sekundes_sekundēm_sekunde_sekundes'.split('_'),\n 'm': 'minūtes_minūtēm_minūte_minūtes'.split('_'),\n 'mm': 'minūtes_minūtēm_minūte_minūtes'.split('_'),\n 'h': 'stundas_stundām_stunda_stundas'.split('_'),\n 'hh': 'stundas_stundām_stunda_stundas'.split('_'),\n 'd': 'dienas_dienām_diena_dienas'.split('_'),\n 'dd': 'dienas_dienām_diena_dienas'.split('_'),\n 'M': 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),\n 'MM': 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),\n 'y': 'gada_gadiem_gads_gadi'.split('_'),\n 'yy': 'gada_gadiem_gads_gadi'.split('_')\n };\n /**\n * @param withoutSuffix boolean true = a length of time; false = before/after a period of time.\n */\n\n function format(forms, number, withoutSuffix) {\n if (withoutSuffix) {\n // E.g. \"21 minūte\", \"3 minūtes\".\n return number % 10 === 1 && number % 100 !== 11 ? forms[2] : forms[3];\n } else {\n // E.g. \"21 minūtes\" as in \"pēc 21 minūtes\".\n // E.g. \"3 minūtēm\" as in \"pēc 3 minūtēm\".\n return number % 10 === 1 && number % 100 !== 11 ? forms[0] : forms[1];\n }\n }\n\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n return number + ' ' + format(units[key], number, withoutSuffix);\n }\n\n function relativeTimeWithSingular(number, withoutSuffix, key) {\n return format(units[key], number, withoutSuffix);\n }\n\n function relativeSeconds(number, withoutSuffix) {\n return withoutSuffix ? 'dažas sekundes' : 'dažām sekundēm';\n }\n\n var lv = moment.defineLocale('lv', {\n months: 'janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris'.split('_'),\n monthsShort: 'jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec'.split('_'),\n weekdays: 'svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena'.split('_'),\n weekdaysShort: 'Sv_P_O_T_C_Pk_S'.split('_'),\n weekdaysMin: 'Sv_P_O_T_C_Pk_S'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY.',\n LL: 'YYYY. [gada] D. MMMM',\n LLL: 'YYYY. [gada] D. MMMM, HH:mm',\n LLLL: 'YYYY. [gada] D. MMMM, dddd, HH:mm'\n },\n calendar: {\n sameDay: '[Šodien pulksten] LT',\n nextDay: '[Rīt pulksten] LT',\n nextWeek: 'dddd [pulksten] LT',\n lastDay: '[Vakar pulksten] LT',\n lastWeek: '[Pagājušā] dddd [pulksten] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'pēc %s',\n past: 'pirms %s',\n s: relativeSeconds,\n ss: relativeTimeWithPlural,\n m: relativeTimeWithSingular,\n mm: relativeTimeWithPlural,\n h: relativeTimeWithSingular,\n hh: relativeTimeWithPlural,\n d: relativeTimeWithSingular,\n dd: relativeTimeWithPlural,\n M: relativeTimeWithSingular,\n MM: relativeTimeWithPlural,\n y: relativeTimeWithSingular,\n yy: relativeTimeWithPlural\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return lv;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var translator = {\n words: {\n //Different grammatical cases\n ss: ['sekund', 'sekunda', 'sekundi'],\n m: ['jedan minut', 'jednog minuta'],\n mm: ['minut', 'minuta', 'minuta'],\n h: ['jedan sat', 'jednog sata'],\n hh: ['sat', 'sata', 'sati'],\n dd: ['dan', 'dana', 'dana'],\n MM: ['mjesec', 'mjeseca', 'mjeseci'],\n yy: ['godina', 'godine', 'godina']\n },\n correctGrammaticalCase: function correctGrammaticalCase(number, wordKey) {\n return number === 1 ? wordKey[0] : number >= 2 && number <= 4 ? wordKey[1] : wordKey[2];\n },\n translate: function translate(number, withoutSuffix, key) {\n var wordKey = translator.words[key];\n\n if (key.length === 1) {\n return withoutSuffix ? wordKey[0] : wordKey[1];\n } else {\n return number + ' ' + translator.correctGrammaticalCase(number, wordKey);\n }\n }\n };\n var me = moment.defineLocale('me', {\n months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split('_'),\n monthsShort: 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split('_'),\n weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm'\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sjutra u] LT',\n nextWeek: function nextWeek() {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n\n case 3:\n return '[u] [srijedu] [u] LT';\n\n case 6:\n return '[u] [subotu] [u] LT';\n\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[juče u] LT',\n lastWeek: function lastWeek() {\n var lastWeekDays = ['[prošle] [nedjelje] [u] LT', '[prošlog] [ponedjeljka] [u] LT', '[prošlog] [utorka] [u] LT', '[prošle] [srijede] [u] LT', '[prošlog] [četvrtka] [u] LT', '[prošlog] [petka] [u] LT', '[prošle] [subote] [u] LT'];\n return lastWeekDays[this.day()];\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'za %s',\n past: 'prije %s',\n s: 'nekoliko sekundi',\n ss: translator.translate,\n m: translator.translate,\n mm: translator.translate,\n h: translator.translate,\n hh: translator.translate,\n d: 'dan',\n dd: translator.translate,\n M: 'mjesec',\n MM: translator.translate,\n y: 'godinu',\n yy: translator.translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n\n }\n });\n return me;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var mi = moment.defineLocale('mi', {\n months: 'Kohi-tāte_Hui-tanguru_Poutū-te-rangi_Paenga-whāwhā_Haratua_Pipiri_Hōngoingoi_Here-turi-kōkā_Mahuru_Whiringa-ā-nuku_Whiringa-ā-rangi_Hakihea'.split('_'),\n monthsShort: 'Kohi_Hui_Pou_Pae_Hara_Pipi_Hōngoi_Here_Mahu_Whi-nu_Whi-ra_Haki'.split('_'),\n monthsRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n monthsStrictRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n monthsShortRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n monthsShortStrictRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,2}/i,\n weekdays: 'Rātapu_Mane_Tūrei_Wenerei_Tāite_Paraire_Hātarei'.split('_'),\n weekdaysShort: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'),\n weekdaysMin: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [i] HH:mm',\n LLLL: 'dddd, D MMMM YYYY [i] HH:mm'\n },\n calendar: {\n sameDay: '[i teie mahana, i] LT',\n nextDay: '[apopo i] LT',\n nextWeek: 'dddd [i] LT',\n lastDay: '[inanahi i] LT',\n lastWeek: 'dddd [whakamutunga i] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'i roto i %s',\n past: '%s i mua',\n s: 'te hēkona ruarua',\n ss: '%d hēkona',\n m: 'he meneti',\n mm: '%d meneti',\n h: 'te haora',\n hh: '%d haora',\n d: 'he ra',\n dd: '%d ra',\n M: 'he marama',\n MM: '%d marama',\n y: 'he tau',\n yy: '%d tau'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return mi;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var mk = moment.defineLocale('mk', {\n months: 'јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември'.split('_'),\n monthsShort: 'јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек'.split('_'),\n weekdays: 'недела_понеделник_вторник_среда_четврток_петок_сабота'.split('_'),\n weekdaysShort: 'нед_пон_вто_сре_чет_пет_саб'.split('_'),\n weekdaysMin: 'нe_пo_вт_ср_че_пе_сa'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY H:mm',\n LLLL: 'dddd, D MMMM YYYY H:mm'\n },\n calendar: {\n sameDay: '[Денес во] LT',\n nextDay: '[Утре во] LT',\n nextWeek: '[Во] dddd [во] LT',\n lastDay: '[Вчера во] LT',\n lastWeek: function lastWeek() {\n switch (this.day()) {\n case 0:\n case 3:\n case 6:\n return '[Изминатата] dddd [во] LT';\n\n case 1:\n case 2:\n case 4:\n case 5:\n return '[Изминатиот] dddd [во] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'после %s',\n past: 'пред %s',\n s: 'неколку секунди',\n ss: '%d секунди',\n m: 'минута',\n mm: '%d минути',\n h: 'час',\n hh: '%d часа',\n d: 'ден',\n dd: '%d дена',\n M: 'месец',\n MM: '%d месеци',\n y: 'година',\n yy: '%d години'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ев|ен|ти|ви|ри|ми)/,\n ordinal: function ordinal(number) {\n var lastDigit = number % 10,\n last2Digits = number % 100;\n\n if (number === 0) {\n return number + '-ев';\n } else if (last2Digits === 0) {\n return number + '-ен';\n } else if (last2Digits > 10 && last2Digits < 20) {\n return number + '-ти';\n } else if (lastDigit === 1) {\n return number + '-ви';\n } else if (lastDigit === 2) {\n return number + '-ри';\n } else if (lastDigit === 7 || lastDigit === 8) {\n return number + '-ми';\n } else {\n return number + '-ти';\n }\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n\n }\n });\n return mk;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var ml = moment.defineLocale('ml', {\n months: 'ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ'.split('_'),\n monthsShort: 'ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.'.split('_'),\n monthsParseExact: true,\n weekdays: 'ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച'.split('_'),\n weekdaysShort: 'ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി'.split('_'),\n weekdaysMin: 'ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm -നു',\n LTS: 'A h:mm:ss -നു',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm -നു',\n LLLL: 'dddd, D MMMM YYYY, A h:mm -നു'\n },\n calendar: {\n sameDay: '[ഇന്ന്] LT',\n nextDay: '[നാളെ] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[ഇന്നലെ] LT',\n lastWeek: '[കഴിഞ്ഞ] dddd, LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s കഴിഞ്ഞ്',\n past: '%s മുൻപ്',\n s: 'അൽപ നിമിഷങ്ങൾ',\n ss: '%d സെക്കൻഡ്',\n m: 'ഒരു മിനിറ്റ്',\n mm: '%d മിനിറ്റ്',\n h: 'ഒരു മണിക്കൂർ',\n hh: '%d മണിക്കൂർ',\n d: 'ഒരു ദിവസം',\n dd: '%d ദിവസം',\n M: 'ഒരു മാസം',\n MM: '%d മാസം',\n y: 'ഒരു വർഷം',\n yy: '%d വർഷം'\n },\n meridiemParse: /രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i,\n meridiemHour: function meridiemHour(hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n\n if (meridiem === 'രാത്രി' && hour >= 4 || meridiem === 'ഉച്ച കഴിഞ്ഞ്' || meridiem === 'വൈകുന്നേരം') {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem: function meridiem(hour, minute, isLower) {\n if (hour < 4) {\n return 'രാത്രി';\n } else if (hour < 12) {\n return 'രാവിലെ';\n } else if (hour < 17) {\n return 'ഉച്ച കഴിഞ്ഞ്';\n } else if (hour < 20) {\n return 'വൈകുന്നേരം';\n } else {\n return 'രാത്രി';\n }\n }\n });\n return ml;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n function translate(number, withoutSuffix, key, isFuture) {\n switch (key) {\n case 's':\n return withoutSuffix ? 'хэдхэн секунд' : 'хэдхэн секундын';\n\n case 'ss':\n return number + (withoutSuffix ? ' секунд' : ' секундын');\n\n case 'm':\n case 'mm':\n return number + (withoutSuffix ? ' минут' : ' минутын');\n\n case 'h':\n case 'hh':\n return number + (withoutSuffix ? ' цаг' : ' цагийн');\n\n case 'd':\n case 'dd':\n return number + (withoutSuffix ? ' өдөр' : ' өдрийн');\n\n case 'M':\n case 'MM':\n return number + (withoutSuffix ? ' сар' : ' сарын');\n\n case 'y':\n case 'yy':\n return number + (withoutSuffix ? ' жил' : ' жилийн');\n\n default:\n return number;\n }\n }\n\n var mn = moment.defineLocale('mn', {\n months: 'Нэгдүгээр сар_Хоёрдугаар сар_Гуравдугаар сар_Дөрөвдүгээр сар_Тавдугаар сар_Зургадугаар сар_Долдугаар сар_Наймдугаар сар_Есдүгээр сар_Аравдугаар сар_Арван нэгдүгээр сар_Арван хоёрдугаар сар'.split('_'),\n monthsShort: '1 сар_2 сар_3 сар_4 сар_5 сар_6 сар_7 сар_8 сар_9 сар_10 сар_11 сар_12 сар'.split('_'),\n monthsParseExact: true,\n weekdays: 'Ням_Даваа_Мягмар_Лхагва_Пүрэв_Баасан_Бямба'.split('_'),\n weekdaysShort: 'Ням_Дав_Мяг_Лха_Пүр_Баа_Бям'.split('_'),\n weekdaysMin: 'Ня_Да_Мя_Лх_Пү_Ба_Бя'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY оны MMMMын D',\n LLL: 'YYYY оны MMMMын D HH:mm',\n LLLL: 'dddd, YYYY оны MMMMын D HH:mm'\n },\n meridiemParse: /ҮӨ|ҮХ/i,\n isPM: function isPM(input) {\n return input === 'ҮХ';\n },\n meridiem: function meridiem(hour, minute, isLower) {\n if (hour < 12) {\n return 'ҮӨ';\n } else {\n return 'ҮХ';\n }\n },\n calendar: {\n sameDay: '[Өнөөдөр] LT',\n nextDay: '[Маргааш] LT',\n nextWeek: '[Ирэх] dddd LT',\n lastDay: '[Өчигдөр] LT',\n lastWeek: '[Өнгөрсөн] dddd LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s дараа',\n past: '%s өмнө',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2} өдөр/,\n ordinal: function ordinal(number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + ' өдөр';\n\n default:\n return number;\n }\n }\n });\n return mn;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var symbolMap = {\n '1': '१',\n '2': '२',\n '3': '३',\n '4': '४',\n '5': '५',\n '6': '६',\n '7': '७',\n '8': '८',\n '9': '९',\n '0': '०'\n },\n numberMap = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n '७': '7',\n '८': '8',\n '९': '9',\n '०': '0'\n };\n\n function relativeTimeMr(number, withoutSuffix, string, isFuture) {\n var output = '';\n\n if (withoutSuffix) {\n switch (string) {\n case 's':\n output = 'काही सेकंद';\n break;\n\n case 'ss':\n output = '%d सेकंद';\n break;\n\n case 'm':\n output = 'एक मिनिट';\n break;\n\n case 'mm':\n output = '%d मिनिटे';\n break;\n\n case 'h':\n output = 'एक तास';\n break;\n\n case 'hh':\n output = '%d तास';\n break;\n\n case 'd':\n output = 'एक दिवस';\n break;\n\n case 'dd':\n output = '%d दिवस';\n break;\n\n case 'M':\n output = 'एक महिना';\n break;\n\n case 'MM':\n output = '%d महिने';\n break;\n\n case 'y':\n output = 'एक वर्ष';\n break;\n\n case 'yy':\n output = '%d वर्षे';\n break;\n }\n } else {\n switch (string) {\n case 's':\n output = 'काही सेकंदां';\n break;\n\n case 'ss':\n output = '%d सेकंदां';\n break;\n\n case 'm':\n output = 'एका मिनिटा';\n break;\n\n case 'mm':\n output = '%d मिनिटां';\n break;\n\n case 'h':\n output = 'एका तासा';\n break;\n\n case 'hh':\n output = '%d तासां';\n break;\n\n case 'd':\n output = 'एका दिवसा';\n break;\n\n case 'dd':\n output = '%d दिवसां';\n break;\n\n case 'M':\n output = 'एका महिन्या';\n break;\n\n case 'MM':\n output = '%d महिन्यां';\n break;\n\n case 'y':\n output = 'एका वर्षा';\n break;\n\n case 'yy':\n output = '%d वर्षां';\n break;\n }\n }\n\n return output.replace(/%d/i, number);\n }\n\n var mr = moment.defineLocale('mr', {\n months: 'जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split('_'),\n monthsShort: 'जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split('_'),\n monthsParseExact: true,\n weekdays: 'रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),\n weekdaysShort: 'रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि'.split('_'),\n weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'),\n longDateFormat: {\n LT: 'A h:mm वाजता',\n LTS: 'A h:mm:ss वाजता',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm वाजता',\n LLLL: 'dddd, D MMMM YYYY, A h:mm वाजता'\n },\n calendar: {\n sameDay: '[आज] LT',\n nextDay: '[उद्या] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[काल] LT',\n lastWeek: '[मागील] dddd, LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%sमध्ये',\n past: '%sपूर्वी',\n s: relativeTimeMr,\n ss: relativeTimeMr,\n m: relativeTimeMr,\n mm: relativeTimeMr,\n h: relativeTimeMr,\n hh: relativeTimeMr,\n d: relativeTimeMr,\n dd: relativeTimeMr,\n M: relativeTimeMr,\n MM: relativeTimeMr,\n y: relativeTimeMr,\n yy: relativeTimeMr\n },\n preparse: function preparse(string) {\n return string.replace(/[१२३४५६७८९०]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function postformat(string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /रात्री|सकाळी|दुपारी|सायंकाळी/,\n meridiemHour: function meridiemHour(hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n\n if (meridiem === 'रात्री') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'सकाळी') {\n return hour;\n } else if (meridiem === 'दुपारी') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'सायंकाळी') {\n return hour + 12;\n }\n },\n meridiem: function meridiem(hour, minute, isLower) {\n if (hour < 4) {\n return 'रात्री';\n } else if (hour < 10) {\n return 'सकाळी';\n } else if (hour < 17) {\n return 'दुपारी';\n } else if (hour < 20) {\n return 'सायंकाळी';\n } else {\n return 'रात्री';\n }\n },\n week: {\n dow: 0,\n // Sunday is the first day of the week.\n doy: 6 // The week that contains Jan 6th is the first week of the year.\n\n }\n });\n return mr;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var ms = moment.defineLocale('ms', {\n months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split('_'),\n monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),\n weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),\n weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),\n weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm'\n },\n meridiemParse: /pagi|tengahari|petang|malam/,\n meridiemHour: function meridiemHour(hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'tengahari') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'petang' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem: function meridiem(hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'tengahari';\n } else if (hours < 19) {\n return 'petang';\n } else {\n return 'malam';\n }\n },\n calendar: {\n sameDay: '[Hari ini pukul] LT',\n nextDay: '[Esok pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kelmarin pukul] LT',\n lastWeek: 'dddd [lepas pukul] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'dalam %s',\n past: '%s yang lepas',\n s: 'beberapa saat',\n ss: '%d saat',\n m: 'seminit',\n mm: '%d minit',\n h: 'sejam',\n hh: '%d jam',\n d: 'sehari',\n dd: '%d hari',\n M: 'sebulan',\n MM: '%d bulan',\n y: 'setahun',\n yy: '%d tahun'\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n\n }\n });\n return ms;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var msMy = moment.defineLocale('ms-my', {\n months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split('_'),\n monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),\n weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),\n weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),\n weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm'\n },\n meridiemParse: /pagi|tengahari|petang|malam/,\n meridiemHour: function meridiemHour(hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'tengahari') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'petang' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem: function meridiem(hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'tengahari';\n } else if (hours < 19) {\n return 'petang';\n } else {\n return 'malam';\n }\n },\n calendar: {\n sameDay: '[Hari ini pukul] LT',\n nextDay: '[Esok pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kelmarin pukul] LT',\n lastWeek: 'dddd [lepas pukul] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'dalam %s',\n past: '%s yang lepas',\n s: 'beberapa saat',\n ss: '%d saat',\n m: 'seminit',\n mm: '%d minit',\n h: 'sejam',\n hh: '%d jam',\n d: 'sehari',\n dd: '%d hari',\n M: 'sebulan',\n MM: '%d bulan',\n y: 'setahun',\n yy: '%d tahun'\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n\n }\n });\n return msMy;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var mt = moment.defineLocale('mt', {\n months: 'Jannar_Frar_Marzu_April_Mejju_Ġunju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Diċembru'.split('_'),\n monthsShort: 'Jan_Fra_Mar_Apr_Mej_Ġun_Lul_Aww_Set_Ott_Nov_Diċ'.split('_'),\n weekdays: 'Il-Ħadd_It-Tnejn_It-Tlieta_L-Erbgħa_Il-Ħamis_Il-Ġimgħa_Is-Sibt'.split('_'),\n weekdaysShort: 'Ħad_Tne_Tli_Erb_Ħam_Ġim_Sib'.split('_'),\n weekdaysMin: 'Ħa_Tn_Tl_Er_Ħa_Ġi_Si'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Illum fil-]LT',\n nextDay: '[Għada fil-]LT',\n nextWeek: 'dddd [fil-]LT',\n lastDay: '[Il-bieraħ fil-]LT',\n lastWeek: 'dddd [li għadda] [fil-]LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'f’ %s',\n past: '%s ilu',\n s: 'ftit sekondi',\n ss: '%d sekondi',\n m: 'minuta',\n mm: '%d minuti',\n h: 'siegħa',\n hh: '%d siegħat',\n d: 'ġurnata',\n dd: '%d ġranet',\n M: 'xahar',\n MM: '%d xhur',\n y: 'sena',\n yy: '%d sni'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return mt;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var symbolMap = {\n '1': '၁',\n '2': '၂',\n '3': '၃',\n '4': '၄',\n '5': '၅',\n '6': '၆',\n '7': '၇',\n '8': '၈',\n '9': '၉',\n '0': '၀'\n },\n numberMap = {\n '၁': '1',\n '၂': '2',\n '၃': '3',\n '၄': '4',\n '၅': '5',\n '၆': '6',\n '၇': '7',\n '၈': '8',\n '၉': '9',\n '၀': '0'\n };\n var my = moment.defineLocale('my', {\n months: 'ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ'.split('_'),\n monthsShort: 'ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ'.split('_'),\n weekdays: 'တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ'.split('_'),\n weekdaysShort: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),\n weekdaysMin: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[ယနေ.] LT [မှာ]',\n nextDay: '[မနက်ဖြန်] LT [မှာ]',\n nextWeek: 'dddd LT [မှာ]',\n lastDay: '[မနေ.က] LT [မှာ]',\n lastWeek: '[ပြီးခဲ့သော] dddd LT [မှာ]',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'လာမည့် %s မှာ',\n past: 'လွန်ခဲ့သော %s က',\n s: 'စက္ကန်.အနည်းငယ်',\n ss: '%d စက္ကန့်',\n m: 'တစ်မိနစ်',\n mm: '%d မိနစ်',\n h: 'တစ်နာရီ',\n hh: '%d နာရီ',\n d: 'တစ်ရက်',\n dd: '%d ရက်',\n M: 'တစ်လ',\n MM: '%d လ',\n y: 'တစ်နှစ်',\n yy: '%d နှစ်'\n },\n preparse: function preparse(string) {\n return string.replace(/[၁၂၃၄၅၆၇၈၉၀]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function postformat(string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return my;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var nb = moment.defineLocale('nb', {\n months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split('_'),\n monthsShort: 'jan._feb._mars_april_mai_juni_juli_aug._sep._okt._nov._des.'.split('_'),\n monthsParseExact: true,\n weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),\n weekdaysShort: 'sø._ma._ti._on._to._fr._lø.'.split('_'),\n weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY [kl.] HH:mm',\n LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm'\n },\n calendar: {\n sameDay: '[i dag kl.] LT',\n nextDay: '[i morgen kl.] LT',\n nextWeek: 'dddd [kl.] LT',\n lastDay: '[i går kl.] LT',\n lastWeek: '[forrige] dddd [kl.] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'om %s',\n past: '%s siden',\n s: 'noen sekunder',\n ss: '%d sekunder',\n m: 'ett minutt',\n mm: '%d minutter',\n h: 'en time',\n hh: '%d timer',\n d: 'en dag',\n dd: '%d dager',\n M: 'en måned',\n MM: '%d måneder',\n y: 'ett år',\n yy: '%d år'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return nb;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var symbolMap = {\n '1': '१',\n '2': '२',\n '3': '३',\n '4': '४',\n '5': '५',\n '6': '६',\n '7': '७',\n '8': '८',\n '9': '९',\n '0': '०'\n },\n numberMap = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n '७': '7',\n '८': '8',\n '९': '9',\n '०': '0'\n };\n var ne = moment.defineLocale('ne', {\n months: 'जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर'.split('_'),\n monthsShort: 'जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.'.split('_'),\n monthsParseExact: true,\n weekdays: 'आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार'.split('_'),\n weekdaysShort: 'आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.'.split('_'),\n weekdaysMin: 'आ._सो._मं._बु._बि._शु._श.'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'Aको h:mm बजे',\n LTS: 'Aको h:mm:ss बजे',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, Aको h:mm बजे',\n LLLL: 'dddd, D MMMM YYYY, Aको h:mm बजे'\n },\n preparse: function preparse(string) {\n return string.replace(/[१२३४५६७८९०]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function postformat(string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /राति|बिहान|दिउँसो|साँझ/,\n meridiemHour: function meridiemHour(hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n\n if (meridiem === 'राति') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'बिहान') {\n return hour;\n } else if (meridiem === 'दिउँसो') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'साँझ') {\n return hour + 12;\n }\n },\n meridiem: function meridiem(hour, minute, isLower) {\n if (hour < 3) {\n return 'राति';\n } else if (hour < 12) {\n return 'बिहान';\n } else if (hour < 16) {\n return 'दिउँसो';\n } else if (hour < 20) {\n return 'साँझ';\n } else {\n return 'राति';\n }\n },\n calendar: {\n sameDay: '[आज] LT',\n nextDay: '[भोलि] LT',\n nextWeek: '[आउँदो] dddd[,] LT',\n lastDay: '[हिजो] LT',\n lastWeek: '[गएको] dddd[,] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%sमा',\n past: '%s अगाडि',\n s: 'केही क्षण',\n ss: '%d सेकेण्ड',\n m: 'एक मिनेट',\n mm: '%d मिनेट',\n h: 'एक घण्टा',\n hh: '%d घण्टा',\n d: 'एक दिन',\n dd: '%d दिन',\n M: 'एक महिना',\n MM: '%d महिना',\n y: 'एक बर्ष',\n yy: '%d बर्ष'\n },\n week: {\n dow: 0,\n // Sunday is the first day of the week.\n doy: 6 // The week that contains Jan 6th is the first week of the year.\n\n }\n });\n return ne;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var monthsShortWithDots = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'),\n monthsShortWithoutDots = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_');\n var monthsParse = [/^jan/i, /^feb/i, /^maart|mrt.?$/i, /^apr/i, /^mei$/i, /^jun[i.]?$/i, /^jul[i.]?$/i, /^aug/i, /^sep/i, /^okt/i, /^nov/i, /^dec/i];\n var monthsRegex = /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\\.?|feb\\.?|mrt\\.?|apr\\.?|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i;\n var nl = moment.defineLocale('nl', {\n months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split('_'),\n monthsShort: function monthsShort(m, format) {\n if (!m) {\n return monthsShortWithDots;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots[m.month()];\n } else {\n return monthsShortWithDots[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,\n monthsShortStrictRegex: /^(jan\\.?|feb\\.?|mrt\\.?|apr\\.?|mei|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'),\n weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'),\n weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[vandaag om] LT',\n nextDay: '[morgen om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[gisteren om] LT',\n lastWeek: '[afgelopen] dddd [om] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'over %s',\n past: '%s geleden',\n s: 'een paar seconden',\n ss: '%d seconden',\n m: 'één minuut',\n mm: '%d minuten',\n h: 'één uur',\n hh: '%d uur',\n d: 'één dag',\n dd: '%d dagen',\n M: 'één maand',\n MM: '%d maanden',\n y: 'één jaar',\n yy: '%d jaar'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function ordinal(number) {\n return number + (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de');\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return nl;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var monthsShortWithDots = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'),\n monthsShortWithoutDots = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_');\n var monthsParse = [/^jan/i, /^feb/i, /^maart|mrt.?$/i, /^apr/i, /^mei$/i, /^jun[i.]?$/i, /^jul[i.]?$/i, /^aug/i, /^sep/i, /^okt/i, /^nov/i, /^dec/i];\n var monthsRegex = /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\\.?|feb\\.?|mrt\\.?|apr\\.?|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i;\n var nlBe = moment.defineLocale('nl-be', {\n months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split('_'),\n monthsShort: function monthsShort(m, format) {\n if (!m) {\n return monthsShortWithDots;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots[m.month()];\n } else {\n return monthsShortWithDots[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,\n monthsShortStrictRegex: /^(jan\\.?|feb\\.?|mrt\\.?|apr\\.?|mei|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'),\n weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'),\n weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[vandaag om] LT',\n nextDay: '[morgen om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[gisteren om] LT',\n lastWeek: '[afgelopen] dddd [om] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'over %s',\n past: '%s geleden',\n s: 'een paar seconden',\n ss: '%d seconden',\n m: 'één minuut',\n mm: '%d minuten',\n h: 'één uur',\n hh: '%d uur',\n d: 'één dag',\n dd: '%d dagen',\n M: 'één maand',\n MM: '%d maanden',\n y: 'één jaar',\n yy: '%d jaar'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function ordinal(number) {\n return number + (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de');\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return nlBe;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var nn = moment.defineLocale('nn', {\n months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split('_'),\n monthsShort: 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'),\n weekdays: 'sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag'.split('_'),\n weekdaysShort: 'sun_mån_tys_ons_tor_fre_lau'.split('_'),\n weekdaysMin: 'su_må_ty_on_to_fr_lø'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY [kl.] H:mm',\n LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm'\n },\n calendar: {\n sameDay: '[I dag klokka] LT',\n nextDay: '[I morgon klokka] LT',\n nextWeek: 'dddd [klokka] LT',\n lastDay: '[I går klokka] LT',\n lastWeek: '[Føregåande] dddd [klokka] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'om %s',\n past: '%s sidan',\n s: 'nokre sekund',\n ss: '%d sekund',\n m: 'eit minutt',\n mm: '%d minutt',\n h: 'ein time',\n hh: '%d timar',\n d: 'ein dag',\n dd: '%d dagar',\n M: 'ein månad',\n MM: '%d månader',\n y: 'eit år',\n yy: '%d år'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return nn;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var symbolMap = {\n '1': '੧',\n '2': '੨',\n '3': '੩',\n '4': '੪',\n '5': '੫',\n '6': '੬',\n '7': '੭',\n '8': '੮',\n '9': '੯',\n '0': '੦'\n },\n numberMap = {\n '੧': '1',\n '੨': '2',\n '੩': '3',\n '੪': '4',\n '੫': '5',\n '੬': '6',\n '੭': '7',\n '੮': '8',\n '੯': '9',\n '੦': '0'\n };\n var paIn = moment.defineLocale('pa-in', {\n // There are months name as per Nanakshahi Calendar but they are not used as rigidly in modern Punjabi.\n months: 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split('_'),\n monthsShort: 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split('_'),\n weekdays: 'ਐਤਵਾਰ_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬੁਧਵਾਰ_ਵੀਰਵਾਰ_ਸ਼ੁੱਕਰਵਾਰ_ਸ਼ਨੀਚਰਵਾਰ'.split('_'),\n weekdaysShort: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'),\n weekdaysMin: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm ਵਜੇ',\n LTS: 'A h:mm:ss ਵਜੇ',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm ਵਜੇ',\n LLLL: 'dddd, D MMMM YYYY, A h:mm ਵਜੇ'\n },\n calendar: {\n sameDay: '[ਅਜ] LT',\n nextDay: '[ਕਲ] LT',\n nextWeek: '[ਅਗਲਾ] dddd, LT',\n lastDay: '[ਕਲ] LT',\n lastWeek: '[ਪਿਛਲੇ] dddd, LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s ਵਿੱਚ',\n past: '%s ਪਿਛਲੇ',\n s: 'ਕੁਝ ਸਕਿੰਟ',\n ss: '%d ਸਕਿੰਟ',\n m: 'ਇਕ ਮਿੰਟ',\n mm: '%d ਮਿੰਟ',\n h: 'ਇੱਕ ਘੰਟਾ',\n hh: '%d ਘੰਟੇ',\n d: 'ਇੱਕ ਦਿਨ',\n dd: '%d ਦਿਨ',\n M: 'ਇੱਕ ਮਹੀਨਾ',\n MM: '%d ਮਹੀਨੇ',\n y: 'ਇੱਕ ਸਾਲ',\n yy: '%d ਸਾਲ'\n },\n preparse: function preparse(string) {\n return string.replace(/[੧੨੩੪੫੬੭੮੯੦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function postformat(string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // Punjabi notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Punjabi.\n meridiemParse: /ਰਾਤ|ਸਵੇਰ|ਦੁਪਹਿਰ|ਸ਼ਾਮ/,\n meridiemHour: function meridiemHour(hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n\n if (meridiem === 'ਰਾਤ') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ਸਵੇਰ') {\n return hour;\n } else if (meridiem === 'ਦੁਪਹਿਰ') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'ਸ਼ਾਮ') {\n return hour + 12;\n }\n },\n meridiem: function meridiem(hour, minute, isLower) {\n if (hour < 4) {\n return 'ਰਾਤ';\n } else if (hour < 10) {\n return 'ਸਵੇਰ';\n } else if (hour < 17) {\n return 'ਦੁਪਹਿਰ';\n } else if (hour < 20) {\n return 'ਸ਼ਾਮ';\n } else {\n return 'ਰਾਤ';\n }\n },\n week: {\n dow: 0,\n // Sunday is the first day of the week.\n doy: 6 // The week that contains Jan 6th is the first week of the year.\n\n }\n });\n return paIn;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var monthsNominative = 'styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień'.split('_'),\n monthsSubjective = 'stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia'.split('_');\n\n function plural(n) {\n return n % 10 < 5 && n % 10 > 1 && ~~(n / 10) % 10 !== 1;\n }\n\n function translate(number, withoutSuffix, key) {\n var result = number + ' ';\n\n switch (key) {\n case 'ss':\n return result + (plural(number) ? 'sekundy' : 'sekund');\n\n case 'm':\n return withoutSuffix ? 'minuta' : 'minutę';\n\n case 'mm':\n return result + (plural(number) ? 'minuty' : 'minut');\n\n case 'h':\n return withoutSuffix ? 'godzina' : 'godzinę';\n\n case 'hh':\n return result + (plural(number) ? 'godziny' : 'godzin');\n\n case 'MM':\n return result + (plural(number) ? 'miesiące' : 'miesięcy');\n\n case 'yy':\n return result + (plural(number) ? 'lata' : 'lat');\n }\n }\n\n var pl = moment.defineLocale('pl', {\n months: function months(momentToFormat, format) {\n if (!momentToFormat) {\n return monthsNominative;\n } else if (format === '') {\n // Hack: if format empty we know this is used to generate\n // RegExp by moment. Give then back both valid forms of months\n // in RegExp ready format.\n return '(' + monthsSubjective[momentToFormat.month()] + '|' + monthsNominative[momentToFormat.month()] + ')';\n } else if (/D MMMM/.test(format)) {\n return monthsSubjective[momentToFormat.month()];\n } else {\n return monthsNominative[momentToFormat.month()];\n }\n },\n monthsShort: 'sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru'.split('_'),\n weekdays: 'niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota'.split('_'),\n weekdaysShort: 'ndz_pon_wt_śr_czw_pt_sob'.split('_'),\n weekdaysMin: 'Nd_Pn_Wt_Śr_Cz_Pt_So'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Dziś o] LT',\n nextDay: '[Jutro o] LT',\n nextWeek: function nextWeek() {\n switch (this.day()) {\n case 0:\n return '[W niedzielę o] LT';\n\n case 2:\n return '[We wtorek o] LT';\n\n case 3:\n return '[W środę o] LT';\n\n case 6:\n return '[W sobotę o] LT';\n\n default:\n return '[W] dddd [o] LT';\n }\n },\n lastDay: '[Wczoraj o] LT',\n lastWeek: function lastWeek() {\n switch (this.day()) {\n case 0:\n return '[W zeszłą niedzielę o] LT';\n\n case 3:\n return '[W zeszłą środę o] LT';\n\n case 6:\n return '[W zeszłą sobotę o] LT';\n\n default:\n return '[W zeszły] dddd [o] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'za %s',\n past: '%s temu',\n s: 'kilka sekund',\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: '1 dzień',\n dd: '%d dni',\n M: 'miesiąc',\n MM: translate,\n y: 'rok',\n yy: translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return pl;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var pt = moment.defineLocale('pt', {\n months: 'Janeiro_Fevereiro_Março_Abril_Maio_Junho_Julho_Agosto_Setembro_Outubro_Novembro_Dezembro'.split('_'),\n monthsShort: 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'),\n weekdays: 'Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado'.split('_'),\n weekdaysShort: 'Dom_Seg_Ter_Qua_Qui_Sex_Sáb'.split('_'),\n weekdaysMin: 'Do_2ª_3ª_4ª_5ª_6ª_Sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY HH:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Hoje às] LT',\n nextDay: '[Amanhã às] LT',\n nextWeek: 'dddd [às] LT',\n lastDay: '[Ontem às] LT',\n lastWeek: function lastWeek() {\n return this.day() === 0 || this.day() === 6 ? '[Último] dddd [às] LT' : // Saturday + Sunday\n '[Última] dddd [às] LT'; // Monday - Friday\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'em %s',\n past: 'há %s',\n s: 'segundos',\n ss: '%d segundos',\n m: 'um minuto',\n mm: '%d minutos',\n h: 'uma hora',\n hh: '%d horas',\n d: 'um dia',\n dd: '%d dias',\n M: 'um mês',\n MM: '%d meses',\n y: 'um ano',\n yy: '%d anos'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return pt;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var ptBr = moment.defineLocale('pt-br', {\n months: 'Janeiro_Fevereiro_Março_Abril_Maio_Junho_Julho_Agosto_Setembro_Outubro_Novembro_Dezembro'.split('_'),\n monthsShort: 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'),\n weekdays: 'Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado'.split('_'),\n weekdaysShort: 'Dom_Seg_Ter_Qua_Qui_Sex_Sáb'.split('_'),\n weekdaysMin: 'Do_2ª_3ª_4ª_5ª_6ª_Sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY [às] HH:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY [às] HH:mm'\n },\n calendar: {\n sameDay: '[Hoje às] LT',\n nextDay: '[Amanhã às] LT',\n nextWeek: 'dddd [às] LT',\n lastDay: '[Ontem às] LT',\n lastWeek: function lastWeek() {\n return this.day() === 0 || this.day() === 6 ? '[Último] dddd [às] LT' : // Saturday + Sunday\n '[Última] dddd [às] LT'; // Monday - Friday\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'em %s',\n past: 'há %s',\n s: 'poucos segundos',\n ss: '%d segundos',\n m: 'um minuto',\n mm: '%d minutos',\n h: 'uma hora',\n hh: '%d horas',\n d: 'um dia',\n dd: '%d dias',\n M: 'um mês',\n MM: '%d meses',\n y: 'um ano',\n yy: '%d anos'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº'\n });\n return ptBr;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n 'ss': 'secunde',\n 'mm': 'minute',\n 'hh': 'ore',\n 'dd': 'zile',\n 'MM': 'luni',\n 'yy': 'ani'\n },\n separator = ' ';\n\n if (number % 100 >= 20 || number >= 100 && number % 100 === 0) {\n separator = ' de ';\n }\n\n return number + separator + format[key];\n }\n\n var ro = moment.defineLocale('ro', {\n months: 'ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie'.split('_'),\n monthsShort: 'ian._febr._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays: 'duminică_luni_marți_miercuri_joi_vineri_sâmbătă'.split('_'),\n weekdaysShort: 'Dum_Lun_Mar_Mie_Joi_Vin_Sâm'.split('_'),\n weekdaysMin: 'Du_Lu_Ma_Mi_Jo_Vi_Sâ'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY H:mm',\n LLLL: 'dddd, D MMMM YYYY H:mm'\n },\n calendar: {\n sameDay: '[azi la] LT',\n nextDay: '[mâine la] LT',\n nextWeek: 'dddd [la] LT',\n lastDay: '[ieri la] LT',\n lastWeek: '[fosta] dddd [la] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'peste %s',\n past: '%s în urmă',\n s: 'câteva secunde',\n ss: relativeTimeWithPlural,\n m: 'un minut',\n mm: relativeTimeWithPlural,\n h: 'o oră',\n hh: relativeTimeWithPlural,\n d: 'o zi',\n dd: relativeTimeWithPlural,\n M: 'o lună',\n MM: relativeTimeWithPlural,\n y: 'un an',\n yy: relativeTimeWithPlural\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n\n }\n });\n return ro;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n function plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11 ? forms[0] : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2];\n }\n\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n 'ss': withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',\n 'mm': withoutSuffix ? 'минута_минуты_минут' : 'минуту_минуты_минут',\n 'hh': 'час_часа_часов',\n 'dd': 'день_дня_дней',\n 'MM': 'месяц_месяца_месяцев',\n 'yy': 'год_года_лет'\n };\n\n if (key === 'm') {\n return withoutSuffix ? 'минута' : 'минуту';\n } else {\n return number + ' ' + plural(format[key], +number);\n }\n }\n\n var monthsParse = [/^янв/i, /^фев/i, /^мар/i, /^апр/i, /^ма[йя]/i, /^июн/i, /^июл/i, /^авг/i, /^сен/i, /^окт/i, /^ноя/i, /^дек/i]; // http://new.gramota.ru/spravka/rules/139-prop : § 103\n // Сокращения месяцев: http://new.gramota.ru/spravka/buro/search-answer?s=242637\n // CLDR data: http://www.unicode.org/cldr/charts/28/summary/ru.html#1753\n\n var ru = moment.defineLocale('ru', {\n months: {\n format: 'января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря'.split('_'),\n standalone: 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split('_')\n },\n monthsShort: {\n // по CLDR именно \"июл.\" и \"июн.\", но какой смысл менять букву на точку ?\n format: 'янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.'.split('_'),\n standalone: 'янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.'.split('_')\n },\n weekdays: {\n standalone: 'воскресенье_понедельник_вторник_среда_четверг_пятница_суббота'.split('_'),\n format: 'воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу'.split('_'),\n isFormat: /\\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?\\] ?dddd/\n },\n weekdaysShort: 'вс_пн_вт_ср_чт_пт_сб'.split('_'),\n weekdaysMin: 'вс_пн_вт_ср_чт_пт_сб'.split('_'),\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n // полные названия с падежами, по три буквы, для некоторых, по 4 буквы, сокращения с точкой и без точки\n monthsRegex: /^(январ[ья]|янв\\.?|феврал[ья]|февр?\\.?|марта?|мар\\.?|апрел[ья]|апр\\.?|ма[йя]|июн[ья]|июн\\.?|июл[ья]|июл\\.?|августа?|авг\\.?|сентябр[ья]|сент?\\.?|октябр[ья]|окт\\.?|ноябр[ья]|нояб?\\.?|декабр[ья]|дек\\.?)/i,\n // копия предыдущего\n monthsShortRegex: /^(январ[ья]|янв\\.?|феврал[ья]|февр?\\.?|марта?|мар\\.?|апрел[ья]|апр\\.?|ма[йя]|июн[ья]|июн\\.?|июл[ья]|июл\\.?|августа?|авг\\.?|сентябр[ья]|сент?\\.?|октябр[ья]|окт\\.?|ноябр[ья]|нояб?\\.?|декабр[ья]|дек\\.?)/i,\n // полные названия с падежами\n monthsStrictRegex: /^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i,\n // Выражение, которое соотвествует только сокращённым формам\n monthsShortStrictRegex: /^(янв\\.|февр?\\.|мар[т.]|апр\\.|ма[яй]|июн[ья.]|июл[ья.]|авг\\.|сент?\\.|окт\\.|нояб?\\.|дек\\.)/i,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY г.',\n LLL: 'D MMMM YYYY г., H:mm',\n LLLL: 'dddd, D MMMM YYYY г., H:mm'\n },\n calendar: {\n sameDay: '[Сегодня, в] LT',\n nextDay: '[Завтра, в] LT',\n lastDay: '[Вчера, в] LT',\n nextWeek: function nextWeek(now) {\n if (now.week() !== this.week()) {\n switch (this.day()) {\n case 0:\n return '[В следующее] dddd, [в] LT';\n\n case 1:\n case 2:\n case 4:\n return '[В следующий] dddd, [в] LT';\n\n case 3:\n case 5:\n case 6:\n return '[В следующую] dddd, [в] LT';\n }\n } else {\n if (this.day() === 2) {\n return '[Во] dddd, [в] LT';\n } else {\n return '[В] dddd, [в] LT';\n }\n }\n },\n lastWeek: function lastWeek(now) {\n if (now.week() !== this.week()) {\n switch (this.day()) {\n case 0:\n return '[В прошлое] dddd, [в] LT';\n\n case 1:\n case 2:\n case 4:\n return '[В прошлый] dddd, [в] LT';\n\n case 3:\n case 5:\n case 6:\n return '[В прошлую] dddd, [в] LT';\n }\n } else {\n if (this.day() === 2) {\n return '[Во] dddd, [в] LT';\n } else {\n return '[В] dddd, [в] LT';\n }\n }\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'через %s',\n past: '%s назад',\n s: 'несколько секунд',\n ss: relativeTimeWithPlural,\n m: relativeTimeWithPlural,\n mm: relativeTimeWithPlural,\n h: 'час',\n hh: relativeTimeWithPlural,\n d: 'день',\n dd: relativeTimeWithPlural,\n M: 'месяц',\n MM: relativeTimeWithPlural,\n y: 'год',\n yy: relativeTimeWithPlural\n },\n meridiemParse: /ночи|утра|дня|вечера/i,\n isPM: function isPM(input) {\n return /^(дня|вечера)$/.test(input);\n },\n meridiem: function meridiem(hour, minute, isLower) {\n if (hour < 4) {\n return 'ночи';\n } else if (hour < 12) {\n return 'утра';\n } else if (hour < 17) {\n return 'дня';\n } else {\n return 'вечера';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(й|го|я)/,\n ordinal: function ordinal(number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n return number + '-й';\n\n case 'D':\n return number + '-го';\n\n case 'w':\n case 'W':\n return number + '-я';\n\n default:\n return number;\n }\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return ru;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var months = ['جنوري', 'فيبروري', 'مارچ', 'اپريل', 'مئي', 'جون', 'جولاءِ', 'آگسٽ', 'سيپٽمبر', 'آڪٽوبر', 'نومبر', 'ڊسمبر'];\n var days = ['آچر', 'سومر', 'اڱارو', 'اربع', 'خميس', 'جمع', 'ڇنڇر'];\n var sd = moment.defineLocale('sd', {\n months: months,\n monthsShort: months,\n weekdays: days,\n weekdaysShort: days,\n weekdaysMin: days,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd، D MMMM YYYY HH:mm'\n },\n meridiemParse: /صبح|شام/,\n isPM: function isPM(input) {\n return 'شام' === input;\n },\n meridiem: function meridiem(hour, minute, isLower) {\n if (hour < 12) {\n return 'صبح';\n }\n\n return 'شام';\n },\n calendar: {\n sameDay: '[اڄ] LT',\n nextDay: '[سڀاڻي] LT',\n nextWeek: 'dddd [اڳين هفتي تي] LT',\n lastDay: '[ڪالهه] LT',\n lastWeek: '[گزريل هفتي] dddd [تي] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s پوء',\n past: '%s اڳ',\n s: 'چند سيڪنڊ',\n ss: '%d سيڪنڊ',\n m: 'هڪ منٽ',\n mm: '%d منٽ',\n h: 'هڪ ڪلاڪ',\n hh: '%d ڪلاڪ',\n d: 'هڪ ڏينهن',\n dd: '%d ڏينهن',\n M: 'هڪ مهينو',\n MM: '%d مهينا',\n y: 'هڪ سال',\n yy: '%d سال'\n },\n preparse: function preparse(string) {\n return string.replace(/،/g, ',');\n },\n postformat: function postformat(string) {\n return string.replace(/,/g, '،');\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return sd;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var se = moment.defineLocale('se', {\n months: 'ođđajagemánnu_guovvamánnu_njukčamánnu_cuoŋománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_čakčamánnu_golggotmánnu_skábmamánnu_juovlamánnu'.split('_'),\n monthsShort: 'ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov'.split('_'),\n weekdays: 'sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat'.split('_'),\n weekdaysShort: 'sotn_vuos_maŋ_gask_duor_bear_láv'.split('_'),\n weekdaysMin: 's_v_m_g_d_b_L'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'MMMM D. [b.] YYYY',\n LLL: 'MMMM D. [b.] YYYY [ti.] HH:mm',\n LLLL: 'dddd, MMMM D. [b.] YYYY [ti.] HH:mm'\n },\n calendar: {\n sameDay: '[otne ti] LT',\n nextDay: '[ihttin ti] LT',\n nextWeek: 'dddd [ti] LT',\n lastDay: '[ikte ti] LT',\n lastWeek: '[ovddit] dddd [ti] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s geažes',\n past: 'maŋit %s',\n s: 'moadde sekunddat',\n ss: '%d sekunddat',\n m: 'okta minuhta',\n mm: '%d minuhtat',\n h: 'okta diimmu',\n hh: '%d diimmut',\n d: 'okta beaivi',\n dd: '%d beaivvit',\n M: 'okta mánnu',\n MM: '%d mánut',\n y: 'okta jahki',\n yy: '%d jagit'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return se;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n /*jshint -W100*/\n\n var si = moment.defineLocale('si', {\n months: 'ජනවාරි_පෙබරවාරි_මාර්තු_අප්‍රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්'.split('_'),\n monthsShort: 'ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ'.split('_'),\n weekdays: 'ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්‍රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා'.split('_'),\n weekdaysShort: 'ඉරි_සඳු_අඟ_බදා_බ්‍රහ_සිකු_සෙන'.split('_'),\n weekdaysMin: 'ඉ_ස_අ_බ_බ්‍ර_සි_සෙ'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'a h:mm',\n LTS: 'a h:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY MMMM D',\n LLL: 'YYYY MMMM D, a h:mm',\n LLLL: 'YYYY MMMM D [වැනි] dddd, a h:mm:ss'\n },\n calendar: {\n sameDay: '[අද] LT[ට]',\n nextDay: '[හෙට] LT[ට]',\n nextWeek: 'dddd LT[ට]',\n lastDay: '[ඊයේ] LT[ට]',\n lastWeek: '[පසුගිය] dddd LT[ට]',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%sකින්',\n past: '%sකට පෙර',\n s: 'තත්පර කිහිපය',\n ss: 'තත්පර %d',\n m: 'මිනිත්තුව',\n mm: 'මිනිත්තු %d',\n h: 'පැය',\n hh: 'පැය %d',\n d: 'දිනය',\n dd: 'දින %d',\n M: 'මාසය',\n MM: 'මාස %d',\n y: 'වසර',\n yy: 'වසර %d'\n },\n dayOfMonthOrdinalParse: /\\d{1,2} වැනි/,\n ordinal: function ordinal(number) {\n return number + ' වැනි';\n },\n meridiemParse: /පෙර වරු|පස් වරු|පෙ.ව|ප.ව./,\n isPM: function isPM(input) {\n return input === 'ප.ව.' || input === 'පස් වරු';\n },\n meridiem: function meridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'ප.ව.' : 'පස් වරු';\n } else {\n return isLower ? 'පෙ.ව.' : 'පෙර වරු';\n }\n }\n });\n return si;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var months = 'január_február_marec_apríl_máj_jún_júl_august_september_október_november_december'.split('_'),\n monthsShort = 'jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec'.split('_');\n\n function plural(n) {\n return n > 1 && n < 5;\n }\n\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n\n switch (key) {\n case 's':\n // a few seconds / in a few seconds / a few seconds ago\n return withoutSuffix || isFuture ? 'pár sekúnd' : 'pár sekundami';\n\n case 'ss':\n // 9 seconds / in 9 seconds / 9 seconds ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'sekundy' : 'sekúnd');\n } else {\n return result + 'sekundami';\n }\n\n break;\n\n case 'm':\n // a minute / in a minute / a minute ago\n return withoutSuffix ? 'minúta' : isFuture ? 'minútu' : 'minútou';\n\n case 'mm':\n // 9 minutes / in 9 minutes / 9 minutes ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'minúty' : 'minút');\n } else {\n return result + 'minútami';\n }\n\n break;\n\n case 'h':\n // an hour / in an hour / an hour ago\n return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou';\n\n case 'hh':\n // 9 hours / in 9 hours / 9 hours ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'hodiny' : 'hodín');\n } else {\n return result + 'hodinami';\n }\n\n break;\n\n case 'd':\n // a day / in a day / a day ago\n return withoutSuffix || isFuture ? 'deň' : 'dňom';\n\n case 'dd':\n // 9 days / in 9 days / 9 days ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'dni' : 'dní');\n } else {\n return result + 'dňami';\n }\n\n break;\n\n case 'M':\n // a month / in a month / a month ago\n return withoutSuffix || isFuture ? 'mesiac' : 'mesiacom';\n\n case 'MM':\n // 9 months / in 9 months / 9 months ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'mesiace' : 'mesiacov');\n } else {\n return result + 'mesiacmi';\n }\n\n break;\n\n case 'y':\n // a year / in a year / a year ago\n return withoutSuffix || isFuture ? 'rok' : 'rokom';\n\n case 'yy':\n // 9 years / in 9 years / 9 years ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'roky' : 'rokov');\n } else {\n return result + 'rokmi';\n }\n\n break;\n }\n }\n\n var sk = moment.defineLocale('sk', {\n months: months,\n monthsShort: monthsShort,\n weekdays: 'nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota'.split('_'),\n weekdaysShort: 'ne_po_ut_st_št_pi_so'.split('_'),\n weekdaysMin: 'ne_po_ut_st_št_pi_so'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd D. MMMM YYYY H:mm'\n },\n calendar: {\n sameDay: '[dnes o] LT',\n nextDay: '[zajtra o] LT',\n nextWeek: function nextWeek() {\n switch (this.day()) {\n case 0:\n return '[v nedeľu o] LT';\n\n case 1:\n case 2:\n return '[v] dddd [o] LT';\n\n case 3:\n return '[v stredu o] LT';\n\n case 4:\n return '[vo štvrtok o] LT';\n\n case 5:\n return '[v piatok o] LT';\n\n case 6:\n return '[v sobotu o] LT';\n }\n },\n lastDay: '[včera o] LT',\n lastWeek: function lastWeek() {\n switch (this.day()) {\n case 0:\n return '[minulú nedeľu o] LT';\n\n case 1:\n case 2:\n return '[minulý] dddd [o] LT';\n\n case 3:\n return '[minulú stredu o] LT';\n\n case 4:\n case 5:\n return '[minulý] dddd [o] LT';\n\n case 6:\n return '[minulú sobotu o] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'za %s',\n past: 'pred %s',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return sk;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n\n switch (key) {\n case 's':\n return withoutSuffix || isFuture ? 'nekaj sekund' : 'nekaj sekundami';\n\n case 'ss':\n if (number === 1) {\n result += withoutSuffix ? 'sekundo' : 'sekundi';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'sekundi' : 'sekundah';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'sekunde' : 'sekundah';\n } else {\n result += 'sekund';\n }\n\n return result;\n\n case 'm':\n return withoutSuffix ? 'ena minuta' : 'eno minuto';\n\n case 'mm':\n if (number === 1) {\n result += withoutSuffix ? 'minuta' : 'minuto';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'minuti' : 'minutama';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'minute' : 'minutami';\n } else {\n result += withoutSuffix || isFuture ? 'minut' : 'minutami';\n }\n\n return result;\n\n case 'h':\n return withoutSuffix ? 'ena ura' : 'eno uro';\n\n case 'hh':\n if (number === 1) {\n result += withoutSuffix ? 'ura' : 'uro';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'uri' : 'urama';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'ure' : 'urami';\n } else {\n result += withoutSuffix || isFuture ? 'ur' : 'urami';\n }\n\n return result;\n\n case 'd':\n return withoutSuffix || isFuture ? 'en dan' : 'enim dnem';\n\n case 'dd':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'dan' : 'dnem';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'dni' : 'dnevoma';\n } else {\n result += withoutSuffix || isFuture ? 'dni' : 'dnevi';\n }\n\n return result;\n\n case 'M':\n return withoutSuffix || isFuture ? 'en mesec' : 'enim mesecem';\n\n case 'MM':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'mesec' : 'mesecem';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'meseca' : 'mesecema';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'mesece' : 'meseci';\n } else {\n result += withoutSuffix || isFuture ? 'mesecev' : 'meseci';\n }\n\n return result;\n\n case 'y':\n return withoutSuffix || isFuture ? 'eno leto' : 'enim letom';\n\n case 'yy':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'leto' : 'letom';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'leti' : 'letoma';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'leta' : 'leti';\n } else {\n result += withoutSuffix || isFuture ? 'let' : 'leti';\n }\n\n return result;\n }\n }\n\n var sl = moment.defineLocale('sl', {\n months: 'januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december'.split('_'),\n monthsShort: 'jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays: 'nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota'.split('_'),\n weekdaysShort: 'ned._pon._tor._sre._čet._pet._sob.'.split('_'),\n weekdaysMin: 'ne_po_to_sr_če_pe_so'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm'\n },\n calendar: {\n sameDay: '[danes ob] LT',\n nextDay: '[jutri ob] LT',\n nextWeek: function nextWeek() {\n switch (this.day()) {\n case 0:\n return '[v] [nedeljo] [ob] LT';\n\n case 3:\n return '[v] [sredo] [ob] LT';\n\n case 6:\n return '[v] [soboto] [ob] LT';\n\n case 1:\n case 2:\n case 4:\n case 5:\n return '[v] dddd [ob] LT';\n }\n },\n lastDay: '[včeraj ob] LT',\n lastWeek: function lastWeek() {\n switch (this.day()) {\n case 0:\n return '[prejšnjo] [nedeljo] [ob] LT';\n\n case 3:\n return '[prejšnjo] [sredo] [ob] LT';\n\n case 6:\n return '[prejšnjo] [soboto] [ob] LT';\n\n case 1:\n case 2:\n case 4:\n case 5:\n return '[prejšnji] dddd [ob] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'čez %s',\n past: 'pred %s',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n\n }\n });\n return sl;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var sq = moment.defineLocale('sq', {\n months: 'Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor'.split('_'),\n monthsShort: 'Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj'.split('_'),\n weekdays: 'E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë'.split('_'),\n weekdaysShort: 'Die_Hën_Mar_Mër_Enj_Pre_Sht'.split('_'),\n weekdaysMin: 'D_H_Ma_Më_E_P_Sh'.split('_'),\n weekdaysParseExact: true,\n meridiemParse: /PD|MD/,\n isPM: function isPM(input) {\n return input.charAt(0) === 'M';\n },\n meridiem: function meridiem(hours, minutes, isLower) {\n return hours < 12 ? 'PD' : 'MD';\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Sot në] LT',\n nextDay: '[Nesër në] LT',\n nextWeek: 'dddd [në] LT',\n lastDay: '[Dje në] LT',\n lastWeek: 'dddd [e kaluar në] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'në %s',\n past: '%s më parë',\n s: 'disa sekonda',\n ss: '%d sekonda',\n m: 'një minutë',\n mm: '%d minuta',\n h: 'një orë',\n hh: '%d orë',\n d: 'një ditë',\n dd: '%d ditë',\n M: 'një muaj',\n MM: '%d muaj',\n y: 'një vit',\n yy: '%d vite'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return sq;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var translator = {\n words: {\n //Different grammatical cases\n ss: ['sekunda', 'sekunde', 'sekundi'],\n m: ['jedan minut', 'jedne minute'],\n mm: ['minut', 'minute', 'minuta'],\n h: ['jedan sat', 'jednog sata'],\n hh: ['sat', 'sata', 'sati'],\n dd: ['dan', 'dana', 'dana'],\n MM: ['mesec', 'meseca', 'meseci'],\n yy: ['godina', 'godine', 'godina']\n },\n correctGrammaticalCase: function correctGrammaticalCase(number, wordKey) {\n return number === 1 ? wordKey[0] : number >= 2 && number <= 4 ? wordKey[1] : wordKey[2];\n },\n translate: function translate(number, withoutSuffix, key) {\n var wordKey = translator.words[key];\n\n if (key.length === 1) {\n return withoutSuffix ? wordKey[0] : wordKey[1];\n } else {\n return number + ' ' + translator.correctGrammaticalCase(number, wordKey);\n }\n }\n };\n var sr = moment.defineLocale('sr', {\n months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split('_'),\n monthsShort: 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays: 'nedelja_ponedeljak_utorak_sreda_četvrtak_petak_subota'.split('_'),\n weekdaysShort: 'ned._pon._uto._sre._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm'\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sutra u] LT',\n nextWeek: function nextWeek() {\n switch (this.day()) {\n case 0:\n return '[u] [nedelju] [u] LT';\n\n case 3:\n return '[u] [sredu] [u] LT';\n\n case 6:\n return '[u] [subotu] [u] LT';\n\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[juče u] LT',\n lastWeek: function lastWeek() {\n var lastWeekDays = ['[prošle] [nedelje] [u] LT', '[prošlog] [ponedeljka] [u] LT', '[prošlog] [utorka] [u] LT', '[prošle] [srede] [u] LT', '[prošlog] [četvrtka] [u] LT', '[prošlog] [petka] [u] LT', '[prošle] [subote] [u] LT'];\n return lastWeekDays[this.day()];\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'za %s',\n past: 'pre %s',\n s: 'nekoliko sekundi',\n ss: translator.translate,\n m: translator.translate,\n mm: translator.translate,\n h: translator.translate,\n hh: translator.translate,\n d: 'dan',\n dd: translator.translate,\n M: 'mesec',\n MM: translator.translate,\n y: 'godinu',\n yy: translator.translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n\n }\n });\n return sr;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var translator = {\n words: {\n //Different grammatical cases\n ss: ['секунда', 'секунде', 'секунди'],\n m: ['један минут', 'једне минуте'],\n mm: ['минут', 'минуте', 'минута'],\n h: ['један сат', 'једног сата'],\n hh: ['сат', 'сата', 'сати'],\n dd: ['дан', 'дана', 'дана'],\n MM: ['месец', 'месеца', 'месеци'],\n yy: ['година', 'године', 'година']\n },\n correctGrammaticalCase: function correctGrammaticalCase(number, wordKey) {\n return number === 1 ? wordKey[0] : number >= 2 && number <= 4 ? wordKey[1] : wordKey[2];\n },\n translate: function translate(number, withoutSuffix, key) {\n var wordKey = translator.words[key];\n\n if (key.length === 1) {\n return withoutSuffix ? wordKey[0] : wordKey[1];\n } else {\n return number + ' ' + translator.correctGrammaticalCase(number, wordKey);\n }\n }\n };\n var srCyrl = moment.defineLocale('sr-cyrl', {\n months: 'јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар'.split('_'),\n monthsShort: 'јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.'.split('_'),\n monthsParseExact: true,\n weekdays: 'недеља_понедељак_уторак_среда_четвртак_петак_субота'.split('_'),\n weekdaysShort: 'нед._пон._уто._сре._чет._пет._суб.'.split('_'),\n weekdaysMin: 'не_по_ут_ср_че_пе_су'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm'\n },\n calendar: {\n sameDay: '[данас у] LT',\n nextDay: '[сутра у] LT',\n nextWeek: function nextWeek() {\n switch (this.day()) {\n case 0:\n return '[у] [недељу] [у] LT';\n\n case 3:\n return '[у] [среду] [у] LT';\n\n case 6:\n return '[у] [суботу] [у] LT';\n\n case 1:\n case 2:\n case 4:\n case 5:\n return '[у] dddd [у] LT';\n }\n },\n lastDay: '[јуче у] LT',\n lastWeek: function lastWeek() {\n var lastWeekDays = ['[прошле] [недеље] [у] LT', '[прошлог] [понедељка] [у] LT', '[прошлог] [уторка] [у] LT', '[прошле] [среде] [у] LT', '[прошлог] [четвртка] [у] LT', '[прошлог] [петка] [у] LT', '[прошле] [суботе] [у] LT'];\n return lastWeekDays[this.day()];\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'за %s',\n past: 'пре %s',\n s: 'неколико секунди',\n ss: translator.translate,\n m: translator.translate,\n mm: translator.translate,\n h: translator.translate,\n hh: translator.translate,\n d: 'дан',\n dd: translator.translate,\n M: 'месец',\n MM: translator.translate,\n y: 'годину',\n yy: translator.translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n\n }\n });\n return srCyrl;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var ss = moment.defineLocale('ss', {\n months: \"Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni\".split('_'),\n monthsShort: 'Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo'.split('_'),\n weekdays: 'Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo'.split('_'),\n weekdaysShort: 'Lis_Umb_Lsb_Les_Lsi_Lsh_Umg'.split('_'),\n weekdaysMin: 'Li_Us_Lb_Lt_Ls_Lh_Ug'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A'\n },\n calendar: {\n sameDay: '[Namuhla nga] LT',\n nextDay: '[Kusasa nga] LT',\n nextWeek: 'dddd [nga] LT',\n lastDay: '[Itolo nga] LT',\n lastWeek: 'dddd [leliphelile] [nga] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'nga %s',\n past: 'wenteka nga %s',\n s: 'emizuzwana lomcane',\n ss: '%d mzuzwana',\n m: 'umzuzu',\n mm: '%d emizuzu',\n h: 'lihora',\n hh: '%d emahora',\n d: 'lilanga',\n dd: '%d emalanga',\n M: 'inyanga',\n MM: '%d tinyanga',\n y: 'umnyaka',\n yy: '%d iminyaka'\n },\n meridiemParse: /ekuseni|emini|entsambama|ebusuku/,\n meridiem: function meridiem(hours, minutes, isLower) {\n if (hours < 11) {\n return 'ekuseni';\n } else if (hours < 15) {\n return 'emini';\n } else if (hours < 19) {\n return 'entsambama';\n } else {\n return 'ebusuku';\n }\n },\n meridiemHour: function meridiemHour(hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n\n if (meridiem === 'ekuseni') {\n return hour;\n } else if (meridiem === 'emini') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'entsambama' || meridiem === 'ebusuku') {\n if (hour === 0) {\n return 0;\n }\n\n return hour + 12;\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: '%d',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return ss;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var sv = moment.defineLocale('sv', {\n months: 'januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december'.split('_'),\n monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n weekdays: 'söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag'.split('_'),\n weekdaysShort: 'sön_mån_tis_ons_tor_fre_lör'.split('_'),\n weekdaysMin: 'sö_må_ti_on_to_fr_lö'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [kl.] HH:mm',\n LLLL: 'dddd D MMMM YYYY [kl.] HH:mm',\n lll: 'D MMM YYYY HH:mm',\n llll: 'ddd D MMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Idag] LT',\n nextDay: '[Imorgon] LT',\n lastDay: '[Igår] LT',\n nextWeek: '[På] dddd LT',\n lastWeek: '[I] dddd[s] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'om %s',\n past: 'för %s sedan',\n s: 'några sekunder',\n ss: '%d sekunder',\n m: 'en minut',\n mm: '%d minuter',\n h: 'en timme',\n hh: '%d timmar',\n d: 'en dag',\n dd: '%d dagar',\n M: 'en månad',\n MM: '%d månader',\n y: 'ett år',\n yy: '%d år'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(e|a)/,\n ordinal: function ordinal(number) {\n var b = number % 10,\n output = ~~(number % 100 / 10) === 1 ? 'e' : b === 1 ? 'a' : b === 2 ? 'a' : b === 3 ? 'e' : 'e';\n return number + output;\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return sv;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var sw = moment.defineLocale('sw', {\n months: 'Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba'.split('_'),\n monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des'.split('_'),\n weekdays: 'Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi'.split('_'),\n weekdaysShort: 'Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos'.split('_'),\n weekdaysMin: 'J2_J3_J4_J5_Al_Ij_J1'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[leo saa] LT',\n nextDay: '[kesho saa] LT',\n nextWeek: '[wiki ijayo] dddd [saat] LT',\n lastDay: '[jana] LT',\n lastWeek: '[wiki iliyopita] dddd [saat] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s baadaye',\n past: 'tokea %s',\n s: 'hivi punde',\n ss: 'sekunde %d',\n m: 'dakika moja',\n mm: 'dakika %d',\n h: 'saa limoja',\n hh: 'masaa %d',\n d: 'siku moja',\n dd: 'masiku %d',\n M: 'mwezi mmoja',\n MM: 'miezi %d',\n y: 'mwaka mmoja',\n yy: 'miaka %d'\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n\n }\n });\n return sw;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var symbolMap = {\n '1': '௧',\n '2': '௨',\n '3': '௩',\n '4': '௪',\n '5': '௫',\n '6': '௬',\n '7': '௭',\n '8': '௮',\n '9': '௯',\n '0': '௦'\n },\n numberMap = {\n '௧': '1',\n '௨': '2',\n '௩': '3',\n '௪': '4',\n '௫': '5',\n '௬': '6',\n '௭': '7',\n '௮': '8',\n '௯': '9',\n '௦': '0'\n };\n var ta = moment.defineLocale('ta', {\n months: 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split('_'),\n monthsShort: 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split('_'),\n weekdays: 'ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை'.split('_'),\n weekdaysShort: 'ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி'.split('_'),\n weekdaysMin: 'ஞா_தி_செ_பு_வி_வெ_ச'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, HH:mm',\n LLLL: 'dddd, D MMMM YYYY, HH:mm'\n },\n calendar: {\n sameDay: '[இன்று] LT',\n nextDay: '[நாளை] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[நேற்று] LT',\n lastWeek: '[கடந்த வாரம்] dddd, LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s இல்',\n past: '%s முன்',\n s: 'ஒரு சில விநாடிகள்',\n ss: '%d விநாடிகள்',\n m: 'ஒரு நிமிடம்',\n mm: '%d நிமிடங்கள்',\n h: 'ஒரு மணி நேரம்',\n hh: '%d மணி நேரம்',\n d: 'ஒரு நாள்',\n dd: '%d நாட்கள்',\n M: 'ஒரு மாதம்',\n MM: '%d மாதங்கள்',\n y: 'ஒரு வருடம்',\n yy: '%d ஆண்டுகள்'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}வது/,\n ordinal: function ordinal(number) {\n return number + 'வது';\n },\n preparse: function preparse(string) {\n return string.replace(/[௧௨௩௪௫௬௭௮௯௦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function postformat(string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // refer http://ta.wikipedia.org/s/1er1\n meridiemParse: /யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/,\n meridiem: function meridiem(hour, minute, isLower) {\n if (hour < 2) {\n return ' யாமம்';\n } else if (hour < 6) {\n return ' வைகறை'; // வைகறை\n } else if (hour < 10) {\n return ' காலை'; // காலை\n } else if (hour < 14) {\n return ' நண்பகல்'; // நண்பகல்\n } else if (hour < 18) {\n return ' எற்பாடு'; // எற்பாடு\n } else if (hour < 22) {\n return ' மாலை'; // மாலை\n } else {\n return ' யாமம்';\n }\n },\n meridiemHour: function meridiemHour(hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n\n if (meridiem === 'யாமம்') {\n return hour < 2 ? hour : hour + 12;\n } else if (meridiem === 'வைகறை' || meridiem === 'காலை') {\n return hour;\n } else if (meridiem === 'நண்பகல்') {\n return hour >= 10 ? hour : hour + 12;\n } else {\n return hour + 12;\n }\n },\n week: {\n dow: 0,\n // Sunday is the first day of the week.\n doy: 6 // The week that contains Jan 6th is the first week of the year.\n\n }\n });\n return ta;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var te = moment.defineLocale('te', {\n months: 'జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జులై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్'.split('_'),\n monthsShort: 'జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జులై_ఆగ._సెప్._అక్టో._నవ._డిసె.'.split('_'),\n monthsParseExact: true,\n weekdays: 'ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_శుక్రవారం_శనివారం'.split('_'),\n weekdaysShort: 'ఆది_సోమ_మంగళ_బుధ_గురు_శుక్ర_శని'.split('_'),\n weekdaysMin: 'ఆ_సో_మం_బు_గు_శు_శ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm',\n LLLL: 'dddd, D MMMM YYYY, A h:mm'\n },\n calendar: {\n sameDay: '[నేడు] LT',\n nextDay: '[రేపు] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[నిన్న] LT',\n lastWeek: '[గత] dddd, LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s లో',\n past: '%s క్రితం',\n s: 'కొన్ని క్షణాలు',\n ss: '%d సెకన్లు',\n m: 'ఒక నిమిషం',\n mm: '%d నిమిషాలు',\n h: 'ఒక గంట',\n hh: '%d గంటలు',\n d: 'ఒక రోజు',\n dd: '%d రోజులు',\n M: 'ఒక నెల',\n MM: '%d నెలలు',\n y: 'ఒక సంవత్సరం',\n yy: '%d సంవత్సరాలు'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}వ/,\n ordinal: '%dవ',\n meridiemParse: /రాత్రి|ఉదయం|మధ్యాహ్నం|సాయంత్రం/,\n meridiemHour: function meridiemHour(hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n\n if (meridiem === 'రాత్రి') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ఉదయం') {\n return hour;\n } else if (meridiem === 'మధ్యాహ్నం') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'సాయంత్రం') {\n return hour + 12;\n }\n },\n meridiem: function meridiem(hour, minute, isLower) {\n if (hour < 4) {\n return 'రాత్రి';\n } else if (hour < 10) {\n return 'ఉదయం';\n } else if (hour < 17) {\n return 'మధ్యాహ్నం';\n } else if (hour < 20) {\n return 'సాయంత్రం';\n } else {\n return 'రాత్రి';\n }\n },\n week: {\n dow: 0,\n // Sunday is the first day of the week.\n doy: 6 // The week that contains Jan 6th is the first week of the year.\n\n }\n });\n return te;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var tet = moment.defineLocale('tet', {\n months: 'Janeiru_Fevereiru_Marsu_Abril_Maiu_Juñu_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru'.split('_'),\n monthsShort: 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'),\n weekdays: 'Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu'.split('_'),\n weekdaysShort: 'Dom_Seg_Ters_Kua_Kint_Sest_Sab'.split('_'),\n weekdaysMin: 'Do_Seg_Te_Ku_Ki_Ses_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Ohin iha] LT',\n nextDay: '[Aban iha] LT',\n nextWeek: 'dddd [iha] LT',\n lastDay: '[Horiseik iha] LT',\n lastWeek: 'dddd [semana kotuk] [iha] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'iha %s',\n past: '%s liuba',\n s: 'minutu balun',\n ss: 'minutu %d',\n m: 'minutu ida',\n mm: 'minutu %d',\n h: 'oras ida',\n hh: 'oras %d',\n d: 'loron ida',\n dd: 'loron %d',\n M: 'fulan ida',\n MM: 'fulan %d',\n y: 'tinan ida',\n yy: 'tinan %d'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function ordinal(number) {\n var b = number % 10,\n output = ~~(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n return number + output;\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return tet;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var suffixes = {\n 0: '-ум',\n 1: '-ум',\n 2: '-юм',\n 3: '-юм',\n 4: '-ум',\n 5: '-ум',\n 6: '-ум',\n 7: '-ум',\n 8: '-ум',\n 9: '-ум',\n 10: '-ум',\n 12: '-ум',\n 13: '-ум',\n 20: '-ум',\n 30: '-юм',\n 40: '-ум',\n 50: '-ум',\n 60: '-ум',\n 70: '-ум',\n 80: '-ум',\n 90: '-ум',\n 100: '-ум'\n };\n var tg = moment.defineLocale('tg', {\n months: 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split('_'),\n monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'),\n weekdays: 'якшанбе_душанбе_сешанбе_чоршанбе_панҷшанбе_ҷумъа_шанбе'.split('_'),\n weekdaysShort: 'яшб_дшб_сшб_чшб_пшб_ҷум_шнб'.split('_'),\n weekdaysMin: 'яш_дш_сш_чш_пш_ҷм_шб'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Имрӯз соати] LT',\n nextDay: '[Пагоҳ соати] LT',\n lastDay: '[Дирӯз соати] LT',\n nextWeek: 'dddd[и] [ҳафтаи оянда соати] LT',\n lastWeek: 'dddd[и] [ҳафтаи гузашта соати] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'баъди %s',\n past: '%s пеш',\n s: 'якчанд сония',\n m: 'як дақиқа',\n mm: '%d дақиқа',\n h: 'як соат',\n hh: '%d соат',\n d: 'як рӯз',\n dd: '%d рӯз',\n M: 'як моҳ',\n MM: '%d моҳ',\n y: 'як сол',\n yy: '%d сол'\n },\n meridiemParse: /шаб|субҳ|рӯз|бегоҳ/,\n meridiemHour: function meridiemHour(hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n\n if (meridiem === 'шаб') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'субҳ') {\n return hour;\n } else if (meridiem === 'рӯз') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'бегоҳ') {\n return hour + 12;\n }\n },\n meridiem: function meridiem(hour, minute, isLower) {\n if (hour < 4) {\n return 'шаб';\n } else if (hour < 11) {\n return 'субҳ';\n } else if (hour < 16) {\n return 'рӯз';\n } else if (hour < 19) {\n return 'бегоҳ';\n } else {\n return 'шаб';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ум|юм)/,\n ordinal: function ordinal(number) {\n var a = number % 10,\n b = number >= 100 ? 100 : null;\n return number + (suffixes[number] || suffixes[a] || suffixes[b]);\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 1th is the first week of the year.\n\n }\n });\n return tg;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var th = moment.defineLocale('th', {\n months: 'มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม'.split('_'),\n monthsShort: 'ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.'.split('_'),\n monthsParseExact: true,\n weekdays: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์'.split('_'),\n weekdaysShort: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์'.split('_'),\n // yes, three characters difference\n weekdaysMin: 'อา._จ._อ._พ._พฤ._ศ._ส.'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY เวลา H:mm',\n LLLL: 'วันddddที่ D MMMM YYYY เวลา H:mm'\n },\n meridiemParse: /ก่อนเที่ยง|หลังเที่ยง/,\n isPM: function isPM(input) {\n return input === 'หลังเที่ยง';\n },\n meridiem: function meridiem(hour, minute, isLower) {\n if (hour < 12) {\n return 'ก่อนเที่ยง';\n } else {\n return 'หลังเที่ยง';\n }\n },\n calendar: {\n sameDay: '[วันนี้ เวลา] LT',\n nextDay: '[พรุ่งนี้ เวลา] LT',\n nextWeek: 'dddd[หน้า เวลา] LT',\n lastDay: '[เมื่อวานนี้ เวลา] LT',\n lastWeek: '[วัน]dddd[ที่แล้ว เวลา] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'อีก %s',\n past: '%sที่แล้ว',\n s: 'ไม่กี่วินาที',\n ss: '%d วินาที',\n m: '1 นาที',\n mm: '%d นาที',\n h: '1 ชั่วโมง',\n hh: '%d ชั่วโมง',\n d: '1 วัน',\n dd: '%d วัน',\n M: '1 เดือน',\n MM: '%d เดือน',\n y: '1 ปี',\n yy: '%d ปี'\n }\n });\n return th;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var tlPh = moment.defineLocale('tl-ph', {\n months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split('_'),\n monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),\n weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split('_'),\n weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),\n weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'MM/D/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY HH:mm',\n LLLL: 'dddd, MMMM DD, YYYY HH:mm'\n },\n calendar: {\n sameDay: 'LT [ngayong araw]',\n nextDay: '[Bukas ng] LT',\n nextWeek: 'LT [sa susunod na] dddd',\n lastDay: 'LT [kahapon]',\n lastWeek: 'LT [noong nakaraang] dddd',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'sa loob ng %s',\n past: '%s ang nakalipas',\n s: 'ilang segundo',\n ss: '%d segundo',\n m: 'isang minuto',\n mm: '%d minuto',\n h: 'isang oras',\n hh: '%d oras',\n d: 'isang araw',\n dd: '%d araw',\n M: 'isang buwan',\n MM: '%d buwan',\n y: 'isang taon',\n yy: '%d taon'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: function ordinal(number) {\n return number;\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return tlPh;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var numbersNouns = 'pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut'.split('_');\n\n function translateFuture(output) {\n var time = output;\n time = output.indexOf('jaj') !== -1 ? time.slice(0, -3) + 'leS' : output.indexOf('jar') !== -1 ? time.slice(0, -3) + 'waQ' : output.indexOf('DIS') !== -1 ? time.slice(0, -3) + 'nem' : time + ' pIq';\n return time;\n }\n\n function translatePast(output) {\n var time = output;\n time = output.indexOf('jaj') !== -1 ? time.slice(0, -3) + 'Hu’' : output.indexOf('jar') !== -1 ? time.slice(0, -3) + 'wen' : output.indexOf('DIS') !== -1 ? time.slice(0, -3) + 'ben' : time + ' ret';\n return time;\n }\n\n function translate(number, withoutSuffix, string, isFuture) {\n var numberNoun = numberAsNoun(number);\n\n switch (string) {\n case 'ss':\n return numberNoun + ' lup';\n\n case 'mm':\n return numberNoun + ' tup';\n\n case 'hh':\n return numberNoun + ' rep';\n\n case 'dd':\n return numberNoun + ' jaj';\n\n case 'MM':\n return numberNoun + ' jar';\n\n case 'yy':\n return numberNoun + ' DIS';\n }\n }\n\n function numberAsNoun(number) {\n var hundred = Math.floor(number % 1000 / 100),\n ten = Math.floor(number % 100 / 10),\n one = number % 10,\n word = '';\n\n if (hundred > 0) {\n word += numbersNouns[hundred] + 'vatlh';\n }\n\n if (ten > 0) {\n word += (word !== '' ? ' ' : '') + numbersNouns[ten] + 'maH';\n }\n\n if (one > 0) {\n word += (word !== '' ? ' ' : '') + numbersNouns[one];\n }\n\n return word === '' ? 'pagh' : word;\n }\n\n var tlh = moment.defineLocale('tlh', {\n months: 'tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’'.split('_'),\n monthsShort: 'jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’'.split('_'),\n monthsParseExact: true,\n weekdays: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),\n weekdaysShort: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),\n weekdaysMin: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[DaHjaj] LT',\n nextDay: '[wa’leS] LT',\n nextWeek: 'LLL',\n lastDay: '[wa’Hu’] LT',\n lastWeek: 'LLL',\n sameElse: 'L'\n },\n relativeTime: {\n future: translateFuture,\n past: translatePast,\n s: 'puS lup',\n ss: translate,\n m: 'wa’ tup',\n mm: translate,\n h: 'wa’ rep',\n hh: translate,\n d: 'wa’ jaj',\n dd: translate,\n M: 'wa’ jar',\n MM: translate,\n y: 'wa’ DIS',\n yy: translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return tlh;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var suffixes = {\n 1: '\\'inci',\n 5: '\\'inci',\n 8: '\\'inci',\n 70: '\\'inci',\n 80: '\\'inci',\n 2: '\\'nci',\n 7: '\\'nci',\n 20: '\\'nci',\n 50: '\\'nci',\n 3: '\\'üncü',\n 4: '\\'üncü',\n 100: '\\'üncü',\n 6: '\\'ncı',\n 9: '\\'uncu',\n 10: '\\'uncu',\n 30: '\\'uncu',\n 60: '\\'ıncı',\n 90: '\\'ıncı'\n };\n var tr = moment.defineLocale('tr', {\n months: 'Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık'.split('_'),\n monthsShort: 'Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara'.split('_'),\n weekdays: 'Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi'.split('_'),\n weekdaysShort: 'Paz_Pts_Sal_Çar_Per_Cum_Cts'.split('_'),\n weekdaysMin: 'Pz_Pt_Sa_Ça_Pe_Cu_Ct'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[bugün saat] LT',\n nextDay: '[yarın saat] LT',\n nextWeek: '[gelecek] dddd [saat] LT',\n lastDay: '[dün] LT',\n lastWeek: '[geçen] dddd [saat] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s sonra',\n past: '%s önce',\n s: 'birkaç saniye',\n ss: '%d saniye',\n m: 'bir dakika',\n mm: '%d dakika',\n h: 'bir saat',\n hh: '%d saat',\n d: 'bir gün',\n dd: '%d gün',\n M: 'bir ay',\n MM: '%d ay',\n y: 'bir yıl',\n yy: '%d yıl'\n },\n ordinal: function ordinal(number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'Do':\n case 'DD':\n return number;\n\n default:\n if (number === 0) {\n // special case for zero\n return number + '\\'ıncı';\n }\n\n var a = number % 10,\n b = number % 100 - a,\n c = number >= 100 ? 100 : null;\n return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n }\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n\n }\n });\n return tr;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; // After the year there should be a slash and the amount of years since December 26, 1979 in Roman numerals.\n // This is currently too difficult (maybe even impossible) to add.\n\n var tzl = moment.defineLocale('tzl', {\n months: 'Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar'.split('_'),\n monthsShort: 'Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec'.split('_'),\n weekdays: 'Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi'.split('_'),\n weekdaysShort: 'Súl_Lún_Mai_Már_Xhú_Vié_Sát'.split('_'),\n weekdaysMin: 'Sú_Lú_Ma_Má_Xh_Vi_Sá'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM [dallas] YYYY',\n LLL: 'D. MMMM [dallas] YYYY HH.mm',\n LLLL: 'dddd, [li] D. MMMM [dallas] YYYY HH.mm'\n },\n meridiemParse: /d\\'o|d\\'a/i,\n isPM: function isPM(input) {\n return 'd\\'o' === input.toLowerCase();\n },\n meridiem: function meridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'd\\'o' : 'D\\'O';\n } else {\n return isLower ? 'd\\'a' : 'D\\'A';\n }\n },\n calendar: {\n sameDay: '[oxhi à] LT',\n nextDay: '[demà à] LT',\n nextWeek: 'dddd [à] LT',\n lastDay: '[ieiri à] LT',\n lastWeek: '[sür el] dddd [lasteu à] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'osprei %s',\n past: 'ja%s',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n 's': ['viensas secunds', '\\'iensas secunds'],\n 'ss': [number + ' secunds', '' + number + ' secunds'],\n 'm': ['\\'n míut', '\\'iens míut'],\n 'mm': [number + ' míuts', '' + number + ' míuts'],\n 'h': ['\\'n þora', '\\'iensa þora'],\n 'hh': [number + ' þoras', '' + number + ' þoras'],\n 'd': ['\\'n ziua', '\\'iensa ziua'],\n 'dd': [number + ' ziuas', '' + number + ' ziuas'],\n 'M': ['\\'n mes', '\\'iens mes'],\n 'MM': [number + ' mesen', '' + number + ' mesen'],\n 'y': ['\\'n ar', '\\'iens ar'],\n 'yy': [number + ' ars', '' + number + ' ars']\n };\n return isFuture ? format[key][0] : withoutSuffix ? format[key][0] : format[key][1];\n }\n\n return tzl;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var tzm = moment.defineLocale('tzm', {\n months: 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split('_'),\n monthsShort: 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split('_'),\n weekdays: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n weekdaysShort: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n weekdaysMin: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[ⴰⵙⴷⵅ ⴴ] LT',\n nextDay: '[ⴰⵙⴽⴰ ⴴ] LT',\n nextWeek: 'dddd [ⴴ] LT',\n lastDay: '[ⴰⵚⴰⵏⵜ ⴴ] LT',\n lastWeek: 'dddd [ⴴ] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s',\n past: 'ⵢⴰⵏ %s',\n s: 'ⵉⵎⵉⴽ',\n ss: '%d ⵉⵎⵉⴽ',\n m: 'ⵎⵉⵏⵓⴺ',\n mm: '%d ⵎⵉⵏⵓⴺ',\n h: 'ⵙⴰⵄⴰ',\n hh: '%d ⵜⴰⵙⵙⴰⵄⵉⵏ',\n d: 'ⴰⵙⵙ',\n dd: '%d oⵙⵙⴰⵏ',\n M: 'ⴰⵢoⵓⵔ',\n MM: '%d ⵉⵢⵢⵉⵔⵏ',\n y: 'ⴰⵙⴳⴰⵙ',\n yy: '%d ⵉⵙⴳⴰⵙⵏ'\n },\n week: {\n dow: 6,\n // Saturday is the first day of the week.\n doy: 12 // The week that contains Jan 12th is the first week of the year.\n\n }\n });\n return tzm;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var tzmLatn = moment.defineLocale('tzm-latn', {\n months: 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split('_'),\n monthsShort: 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split('_'),\n weekdays: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),\n weekdaysShort: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),\n weekdaysMin: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[asdkh g] LT',\n nextDay: '[aska g] LT',\n nextWeek: 'dddd [g] LT',\n lastDay: '[assant g] LT',\n lastWeek: 'dddd [g] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'dadkh s yan %s',\n past: 'yan %s',\n s: 'imik',\n ss: '%d imik',\n m: 'minuḍ',\n mm: '%d minuḍ',\n h: 'saɛa',\n hh: '%d tassaɛin',\n d: 'ass',\n dd: '%d ossan',\n M: 'ayowr',\n MM: '%d iyyirn',\n y: 'asgas',\n yy: '%d isgasn'\n },\n week: {\n dow: 6,\n // Saturday is the first day of the week.\n doy: 12 // The week that contains Jan 12th is the first week of the year.\n\n }\n });\n return tzmLatn;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js language configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var ugCn = moment.defineLocale('ug-cn', {\n months: 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split('_'),\n monthsShort: 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split('_'),\n weekdays: 'يەكشەنبە_دۈشەنبە_سەيشەنبە_چارشەنبە_پەيشەنبە_جۈمە_شەنبە'.split('_'),\n weekdaysShort: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'),\n weekdaysMin: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY-يىلىM-ئاينىڭD-كۈنى',\n LLL: 'YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm',\n LLLL: 'dddd، YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm'\n },\n meridiemParse: /يېرىم كېچە|سەھەر|چۈشتىن بۇرۇن|چۈش|چۈشتىن كېيىن|كەچ/,\n meridiemHour: function meridiemHour(hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n\n if (meridiem === 'يېرىم كېچە' || meridiem === 'سەھەر' || meridiem === 'چۈشتىن بۇرۇن') {\n return hour;\n } else if (meridiem === 'چۈشتىن كېيىن' || meridiem === 'كەچ') {\n return hour + 12;\n } else {\n return hour >= 11 ? hour : hour + 12;\n }\n },\n meridiem: function meridiem(hour, minute, isLower) {\n var hm = hour * 100 + minute;\n\n if (hm < 600) {\n return 'يېرىم كېچە';\n } else if (hm < 900) {\n return 'سەھەر';\n } else if (hm < 1130) {\n return 'چۈشتىن بۇرۇن';\n } else if (hm < 1230) {\n return 'چۈش';\n } else if (hm < 1800) {\n return 'چۈشتىن كېيىن';\n } else {\n return 'كەچ';\n }\n },\n calendar: {\n sameDay: '[بۈگۈن سائەت] LT',\n nextDay: '[ئەتە سائەت] LT',\n nextWeek: '[كېلەركى] dddd [سائەت] LT',\n lastDay: '[تۆنۈگۈن] LT',\n lastWeek: '[ئالدىنقى] dddd [سائەت] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s كېيىن',\n past: '%s بۇرۇن',\n s: 'نەچچە سېكونت',\n ss: '%d سېكونت',\n m: 'بىر مىنۇت',\n mm: '%d مىنۇت',\n h: 'بىر سائەت',\n hh: '%d سائەت',\n d: 'بىر كۈن',\n dd: '%d كۈن',\n M: 'بىر ئاي',\n MM: '%d ئاي',\n y: 'بىر يىل',\n yy: '%d يىل'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(-كۈنى|-ئاي|-ھەپتە)/,\n ordinal: function ordinal(number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '-كۈنى';\n\n case 'w':\n case 'W':\n return number + '-ھەپتە';\n\n default:\n return number;\n }\n },\n preparse: function preparse(string) {\n return string.replace(/،/g, ',');\n },\n postformat: function postformat(string) {\n return string.replace(/,/g, '،');\n },\n week: {\n // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 1st is the first week of the year.\n\n }\n });\n return ugCn;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n function plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11 ? forms[0] : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2];\n }\n\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n 'ss': withoutSuffix ? 'секунда_секунди_секунд' : 'секунду_секунди_секунд',\n 'mm': withoutSuffix ? 'хвилина_хвилини_хвилин' : 'хвилину_хвилини_хвилин',\n 'hh': withoutSuffix ? 'година_години_годин' : 'годину_години_годин',\n 'dd': 'день_дні_днів',\n 'MM': 'місяць_місяці_місяців',\n 'yy': 'рік_роки_років'\n };\n\n if (key === 'm') {\n return withoutSuffix ? 'хвилина' : 'хвилину';\n } else if (key === 'h') {\n return withoutSuffix ? 'година' : 'годину';\n } else {\n return number + ' ' + plural(format[key], +number);\n }\n }\n\n function weekdaysCaseReplace(m, format) {\n var weekdays = {\n 'nominative': 'неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота'.split('_'),\n 'accusative': 'неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу'.split('_'),\n 'genitive': 'неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи'.split('_')\n };\n\n if (m === true) {\n return weekdays['nominative'].slice(1, 7).concat(weekdays['nominative'].slice(0, 1));\n }\n\n if (!m) {\n return weekdays['nominative'];\n }\n\n var nounCase = /(\\[[ВвУу]\\]) ?dddd/.test(format) ? 'accusative' : /\\[?(?:минулої|наступної)? ?\\] ?dddd/.test(format) ? 'genitive' : 'nominative';\n return weekdays[nounCase][m.day()];\n }\n\n function processHoursFunction(str) {\n return function () {\n return str + 'о' + (this.hours() === 11 ? 'б' : '') + '] LT';\n };\n }\n\n var uk = moment.defineLocale('uk', {\n months: {\n 'format': 'січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня'.split('_'),\n 'standalone': 'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split('_')\n },\n monthsShort: 'січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд'.split('_'),\n weekdays: weekdaysCaseReplace,\n weekdaysShort: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY р.',\n LLL: 'D MMMM YYYY р., HH:mm',\n LLLL: 'dddd, D MMMM YYYY р., HH:mm'\n },\n calendar: {\n sameDay: processHoursFunction('[Сьогодні '),\n nextDay: processHoursFunction('[Завтра '),\n lastDay: processHoursFunction('[Вчора '),\n nextWeek: processHoursFunction('[У] dddd ['),\n lastWeek: function lastWeek() {\n switch (this.day()) {\n case 0:\n case 3:\n case 5:\n case 6:\n return processHoursFunction('[Минулої] dddd [').call(this);\n\n case 1:\n case 2:\n case 4:\n return processHoursFunction('[Минулого] dddd [').call(this);\n }\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'за %s',\n past: '%s тому',\n s: 'декілька секунд',\n ss: relativeTimeWithPlural,\n m: relativeTimeWithPlural,\n mm: relativeTimeWithPlural,\n h: 'годину',\n hh: relativeTimeWithPlural,\n d: 'день',\n dd: relativeTimeWithPlural,\n M: 'місяць',\n MM: relativeTimeWithPlural,\n y: 'рік',\n yy: relativeTimeWithPlural\n },\n // M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason\n meridiemParse: /ночі|ранку|дня|вечора/,\n isPM: function isPM(input) {\n return /^(дня|вечора)$/.test(input);\n },\n meridiem: function meridiem(hour, minute, isLower) {\n if (hour < 4) {\n return 'ночі';\n } else if (hour < 12) {\n return 'ранку';\n } else if (hour < 17) {\n return 'дня';\n } else {\n return 'вечора';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(й|го)/,\n ordinal: function ordinal(number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n case 'w':\n case 'W':\n return number + '-й';\n\n case 'D':\n return number + '-го';\n\n default:\n return number;\n }\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n\n }\n });\n return uk;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var months = ['جنوری', 'فروری', 'مارچ', 'اپریل', 'مئی', 'جون', 'جولائی', 'اگست', 'ستمبر', 'اکتوبر', 'نومبر', 'دسمبر'];\n var days = ['اتوار', 'پیر', 'منگل', 'بدھ', 'جمعرات', 'جمعہ', 'ہفتہ'];\n var ur = moment.defineLocale('ur', {\n months: months,\n monthsShort: months,\n weekdays: days,\n weekdaysShort: days,\n weekdaysMin: days,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd، D MMMM YYYY HH:mm'\n },\n meridiemParse: /صبح|شام/,\n isPM: function isPM(input) {\n return 'شام' === input;\n },\n meridiem: function meridiem(hour, minute, isLower) {\n if (hour < 12) {\n return 'صبح';\n }\n\n return 'شام';\n },\n calendar: {\n sameDay: '[آج بوقت] LT',\n nextDay: '[کل بوقت] LT',\n nextWeek: 'dddd [بوقت] LT',\n lastDay: '[گذشتہ روز بوقت] LT',\n lastWeek: '[گذشتہ] dddd [بوقت] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s بعد',\n past: '%s قبل',\n s: 'چند سیکنڈ',\n ss: '%d سیکنڈ',\n m: 'ایک منٹ',\n mm: '%d منٹ',\n h: 'ایک گھنٹہ',\n hh: '%d گھنٹے',\n d: 'ایک دن',\n dd: '%d دن',\n M: 'ایک ماہ',\n MM: '%d ماہ',\n y: 'ایک سال',\n yy: '%d سال'\n },\n preparse: function preparse(string) {\n return string.replace(/،/g, ',');\n },\n postformat: function postformat(string) {\n return string.replace(/,/g, '،');\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return ur;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var uz = moment.defineLocale('uz', {\n months: 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split('_'),\n monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'),\n weekdays: 'Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба'.split('_'),\n weekdaysShort: 'Якш_Душ_Сеш_Чор_Пай_Жум_Шан'.split('_'),\n weekdaysMin: 'Як_Ду_Се_Чо_Па_Жу_Ша'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'D MMMM YYYY, dddd HH:mm'\n },\n calendar: {\n sameDay: '[Бугун соат] LT [да]',\n nextDay: '[Эртага] LT [да]',\n nextWeek: 'dddd [куни соат] LT [да]',\n lastDay: '[Кеча соат] LT [да]',\n lastWeek: '[Утган] dddd [куни соат] LT [да]',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'Якин %s ичида',\n past: 'Бир неча %s олдин',\n s: 'фурсат',\n ss: '%d фурсат',\n m: 'бир дакика',\n mm: '%d дакика',\n h: 'бир соат',\n hh: '%d соат',\n d: 'бир кун',\n dd: '%d кун',\n M: 'бир ой',\n MM: '%d ой',\n y: 'бир йил',\n yy: '%d йил'\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return uz;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var uzLatn = moment.defineLocale('uz-latn', {\n months: 'Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr'.split('_'),\n monthsShort: 'Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek'.split('_'),\n weekdays: 'Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba'.split('_'),\n weekdaysShort: 'Yak_Dush_Sesh_Chor_Pay_Jum_Shan'.split('_'),\n weekdaysMin: 'Ya_Du_Se_Cho_Pa_Ju_Sha'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'D MMMM YYYY, dddd HH:mm'\n },\n calendar: {\n sameDay: '[Bugun soat] LT [da]',\n nextDay: '[Ertaga] LT [da]',\n nextWeek: 'dddd [kuni soat] LT [da]',\n lastDay: '[Kecha soat] LT [da]',\n lastWeek: '[O\\'tgan] dddd [kuni soat] LT [da]',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'Yaqin %s ichida',\n past: 'Bir necha %s oldin',\n s: 'soniya',\n ss: '%d soniya',\n m: 'bir daqiqa',\n mm: '%d daqiqa',\n h: 'bir soat',\n hh: '%d soat',\n d: 'bir kun',\n dd: '%d kun',\n M: 'bir oy',\n MM: '%d oy',\n y: 'bir yil',\n yy: '%d yil'\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n\n }\n });\n return uzLatn;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var vi = moment.defineLocale('vi', {\n months: 'tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12'.split('_'),\n monthsShort: 'Th01_Th02_Th03_Th04_Th05_Th06_Th07_Th08_Th09_Th10_Th11_Th12'.split('_'),\n monthsParseExact: true,\n weekdays: 'chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy'.split('_'),\n weekdaysShort: 'CN_T2_T3_T4_T5_T6_T7'.split('_'),\n weekdaysMin: 'CN_T2_T3_T4_T5_T6_T7'.split('_'),\n weekdaysParseExact: true,\n meridiemParse: /sa|ch/i,\n isPM: function isPM(input) {\n return /^ch$/i.test(input);\n },\n meridiem: function meridiem(hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'sa' : 'SA';\n } else {\n return isLower ? 'ch' : 'CH';\n }\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM [năm] YYYY',\n LLL: 'D MMMM [năm] YYYY HH:mm',\n LLLL: 'dddd, D MMMM [năm] YYYY HH:mm',\n l: 'DD/M/YYYY',\n ll: 'D MMM YYYY',\n lll: 'D MMM YYYY HH:mm',\n llll: 'ddd, D MMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Hôm nay lúc] LT',\n nextDay: '[Ngày mai lúc] LT',\n nextWeek: 'dddd [tuần tới lúc] LT',\n lastDay: '[Hôm qua lúc] LT',\n lastWeek: 'dddd [tuần rồi lúc] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s tới',\n past: '%s trước',\n s: 'vài giây',\n ss: '%d giây',\n m: 'một phút',\n mm: '%d phút',\n h: 'một giờ',\n hh: '%d giờ',\n d: 'một ngày',\n dd: '%d ngày',\n M: 'một tháng',\n MM: '%d tháng',\n y: 'một năm',\n yy: '%d năm'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: function ordinal(number) {\n return number;\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return vi;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var xPseudo = moment.defineLocale('x-pseudo', {\n months: 'J~áñúá~rý_F~ébrú~árý_~Márc~h_Áp~ríl_~Máý_~Júñé~_Júl~ý_Áú~gúst~_Sép~témb~ér_Ó~ctób~ér_Ñ~óvém~bér_~Décé~mbér'.split('_'),\n monthsShort: 'J~áñ_~Féb_~Már_~Ápr_~Máý_~Júñ_~Júl_~Áúg_~Sép_~Óct_~Ñóv_~Déc'.split('_'),\n monthsParseExact: true,\n weekdays: 'S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~Fríd~áý_S~átúr~dáý'.split('_'),\n weekdaysShort: 'S~úñ_~Móñ_~Túé_~Wéd_~Thú_~Frí_~Sát'.split('_'),\n weekdaysMin: 'S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[T~ódá~ý át] LT',\n nextDay: '[T~ómó~rró~w át] LT',\n nextWeek: 'dddd [át] LT',\n lastDay: '[Ý~ést~érdá~ý át] LT',\n lastWeek: '[L~ást] dddd [át] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'í~ñ %s',\n past: '%s á~gó',\n s: 'á ~féw ~sécó~ñds',\n ss: '%d s~écóñ~ds',\n m: 'á ~míñ~úté',\n mm: '%d m~íñú~tés',\n h: 'á~ñ hó~úr',\n hh: '%d h~óúrs',\n d: 'á ~dáý',\n dd: '%d d~áýs',\n M: 'á ~móñ~th',\n MM: '%d m~óñt~hs',\n y: 'á ~ýéár',\n yy: '%d ý~éárs'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function ordinal(number) {\n var b = number % 10,\n output = ~~(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n return number + output;\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return xPseudo;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var yo = moment.defineLocale('yo', {\n months: 'Sẹ́rẹ́_Èrèlè_Ẹrẹ̀nà_Ìgbé_Èbibi_Òkùdu_Agẹmo_Ògún_Owewe_Ọ̀wàrà_Bélú_Ọ̀pẹ̀̀'.split('_'),\n monthsShort: 'Sẹ́r_Èrl_Ẹrn_Ìgb_Èbi_Òkù_Agẹ_Ògú_Owe_Ọ̀wà_Bél_Ọ̀pẹ̀̀'.split('_'),\n weekdays: 'Àìkú_Ajé_Ìsẹ́gun_Ọjọ́rú_Ọjọ́bọ_Ẹtì_Àbámẹ́ta'.split('_'),\n weekdaysShort: 'Àìk_Ajé_Ìsẹ́_Ọjr_Ọjb_Ẹtì_Àbá'.split('_'),\n weekdaysMin: 'Àì_Aj_Ìs_Ọr_Ọb_Ẹt_Àb'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A'\n },\n calendar: {\n sameDay: '[Ònì ni] LT',\n nextDay: '[Ọ̀la ni] LT',\n nextWeek: 'dddd [Ọsẹ̀ tón\\'bọ] [ni] LT',\n lastDay: '[Àna ni] LT',\n lastWeek: 'dddd [Ọsẹ̀ tólọ́] [ni] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'ní %s',\n past: '%s kọjá',\n s: 'ìsẹjú aayá die',\n ss: 'aayá %d',\n m: 'ìsẹjú kan',\n mm: 'ìsẹjú %d',\n h: 'wákati kan',\n hh: 'wákati %d',\n d: 'ọjọ́ kan',\n dd: 'ọjọ́ %d',\n M: 'osù kan',\n MM: 'osù %d',\n y: 'ọdún kan',\n yy: 'ọdún %d'\n },\n dayOfMonthOrdinalParse: /ọjọ́\\s\\d{1,2}/,\n ordinal: 'ọjọ́ %d',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return yo;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var zhCn = moment.defineLocale('zh-cn', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '周日_周一_周二_周三_周四_周五_周六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日Ah点mm分',\n LLLL: 'YYYY年M月D日ddddAh点mm分',\n l: 'YYYY/M/D',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm'\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function meridiemHour(hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n } else {\n // '中午'\n return hour >= 11 ? hour : hour + 12;\n }\n },\n meridiem: function meridiem(hour, minute, isLower) {\n var hm = hour * 100 + minute;\n\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上午';\n } else if (hm < 1230) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天]LT',\n nextDay: '[明天]LT',\n nextWeek: '[下]ddddLT',\n lastDay: '[昨天]LT',\n lastWeek: '[上]ddddLT',\n sameElse: 'L'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|周)/,\n ordinal: function ordinal(number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n\n case 'M':\n return number + '月';\n\n case 'w':\n case 'W':\n return number + '周';\n\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s内',\n past: '%s前',\n s: '几秒',\n ss: '%d 秒',\n m: '1 分钟',\n mm: '%d 分钟',\n h: '1 小时',\n hh: '%d 小时',\n d: '1 天',\n dd: '%d 天',\n M: '1 个月',\n MM: '%d 个月',\n y: '1 年',\n yy: '%d 年'\n },\n week: {\n // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return zhCn;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var zhHk = moment.defineLocale('zh-hk', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日 HH:mm',\n LLLL: 'YYYY年M月D日dddd HH:mm',\n l: 'YYYY/M/D',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm'\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function meridiemHour(hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '中午') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n }\n },\n meridiem: function meridiem(hour, minute, isLower) {\n var hm = hour * 100 + minute;\n\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上午';\n } else if (hm < 1230) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天]LT',\n nextDay: '[明天]LT',\n nextWeek: '[下]ddddLT',\n lastDay: '[昨天]LT',\n lastWeek: '[上]ddddLT',\n sameElse: 'L'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\n ordinal: function ordinal(number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n\n case 'M':\n return number + '月';\n\n case 'w':\n case 'W':\n return number + '週';\n\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s內',\n past: '%s前',\n s: '幾秒',\n ss: '%d 秒',\n m: '1 分鐘',\n mm: '%d 分鐘',\n h: '1 小時',\n hh: '%d 小時',\n d: '1 天',\n dd: '%d 天',\n M: '1 個月',\n MM: '%d 個月',\n y: '1 年',\n yy: '%d 年'\n }\n });\n return zhHk;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var zhTw = moment.defineLocale('zh-tw', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日 HH:mm',\n LLLL: 'YYYY年M月D日dddd HH:mm',\n l: 'YYYY/M/D',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm'\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function meridiemHour(hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '中午') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n }\n },\n meridiem: function meridiem(hour, minute, isLower) {\n var hm = hour * 100 + minute;\n\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上午';\n } else if (hm < 1230) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天] LT',\n nextDay: '[明天] LT',\n nextWeek: '[下]dddd LT',\n lastDay: '[昨天] LT',\n lastWeek: '[上]dddd LT',\n sameElse: 'L'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\n ordinal: function ordinal(number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n\n case 'M':\n return number + '月';\n\n case 'w':\n case 'W':\n return number + '週';\n\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s內',\n past: '%s前',\n s: '幾秒',\n ss: '%d 秒',\n m: '1 分鐘',\n mm: '%d 分鐘',\n h: '1 小時',\n hh: '%d 小時',\n d: '1 天',\n dd: '%d 天',\n M: '1 個月',\n MM: '%d 個月',\n y: '1 年',\n yy: '%d 年'\n }\n });\n return zhTw;\n});","import * as Clipboard from 'clipboard/dist/clipboard.js';\n\nexport { Clipboard };\n","(function() { module.exports = window[\"Spinner\"]; }());","require('bootstrap-datepicker/dist/js/bootstrap-datepicker.js');\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/*!\n * Datepicker for Bootstrap v1.9.0 (https://github.com/uxsolutions/bootstrap-datepicker)\n *\n * Licensed under the Apache License v2.0 (http://www.apache.org/licenses/LICENSE-2.0)\n */\n(function (factory) {\n if (typeof define === 'function' && define.amd) {\n define(['jquery'], factory);\n } else if ((typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object') {\n factory(require('jquery'));\n } else {\n factory(jQuery);\n }\n})(function ($, undefined) {\n function UTCDate() {\n return new Date(Date.UTC.apply(Date, arguments));\n }\n\n function UTCToday() {\n var today = new Date();\n return UTCDate(today.getFullYear(), today.getMonth(), today.getDate());\n }\n\n function isUTCEquals(date1, date2) {\n return date1.getUTCFullYear() === date2.getUTCFullYear() && date1.getUTCMonth() === date2.getUTCMonth() && date1.getUTCDate() === date2.getUTCDate();\n }\n\n function alias(method, deprecationMsg) {\n return function () {\n if (deprecationMsg !== undefined) {\n $.fn.datepicker.deprecated(deprecationMsg);\n }\n\n return this[method].apply(this, arguments);\n };\n }\n\n function isValidDate(d) {\n return d && !isNaN(d.getTime());\n }\n\n var DateArray = function () {\n var extras = {\n get: function get(i) {\n return this.slice(i)[0];\n },\n contains: function contains(d) {\n // Array.indexOf is not cross-browser;\n // $.inArray doesn't work with Dates\n var val = d && d.valueOf();\n\n for (var i = 0, l = this.length; i < l; i++) {\n // Use date arithmetic to allow dates with different times to match\n if (0 <= this[i].valueOf() - val && this[i].valueOf() - val < 1000 * 60 * 60 * 24) return i;\n }\n\n return -1;\n },\n remove: function remove(i) {\n this.splice(i, 1);\n },\n replace: function replace(new_array) {\n if (!new_array) return;\n if (!$.isArray(new_array)) new_array = [new_array];\n this.clear();\n this.push.apply(this, new_array);\n },\n clear: function clear() {\n this.length = 0;\n },\n copy: function copy() {\n var a = new DateArray();\n a.replace(this);\n return a;\n }\n };\n return function () {\n var a = [];\n a.push.apply(a, arguments);\n $.extend(a, extras);\n return a;\n };\n }(); // Picker object\n\n\n var Datepicker = function Datepicker(element, options) {\n $.data(element, 'datepicker', this);\n this._events = [];\n this._secondaryEvents = [];\n\n this._process_options(options);\n\n this.dates = new DateArray();\n this.viewDate = this.o.defaultViewDate;\n this.focusDate = null;\n this.element = $(element);\n this.isInput = this.element.is('input');\n this.inputField = this.isInput ? this.element : this.element.find('input');\n this.component = this.element.hasClass('date') ? this.element.find('.add-on, .input-group-addon, .input-group-append, .input-group-prepend, .btn') : false;\n if (this.component && this.component.length === 0) this.component = false;\n this.isInline = !this.component && this.element.is('div');\n this.picker = $(DPGlobal.template); // Checking templates and inserting\n\n if (this._check_template(this.o.templates.leftArrow)) {\n this.picker.find('.prev').html(this.o.templates.leftArrow);\n }\n\n if (this._check_template(this.o.templates.rightArrow)) {\n this.picker.find('.next').html(this.o.templates.rightArrow);\n }\n\n this._buildEvents();\n\n this._attachEvents();\n\n if (this.isInline) {\n this.picker.addClass('datepicker-inline').appendTo(this.element);\n } else {\n this.picker.addClass('datepicker-dropdown dropdown-menu');\n }\n\n if (this.o.rtl) {\n this.picker.addClass('datepicker-rtl');\n }\n\n if (this.o.calendarWeeks) {\n this.picker.find('.datepicker-days .datepicker-switch, thead .datepicker-title, tfoot .today, tfoot .clear').attr('colspan', function (i, val) {\n return Number(val) + 1;\n });\n }\n\n this._process_options({\n startDate: this._o.startDate,\n endDate: this._o.endDate,\n daysOfWeekDisabled: this.o.daysOfWeekDisabled,\n daysOfWeekHighlighted: this.o.daysOfWeekHighlighted,\n datesDisabled: this.o.datesDisabled\n });\n\n this._allow_update = false;\n this.setViewMode(this.o.startView);\n this._allow_update = true;\n this.fillDow();\n this.fillMonths();\n this.update();\n\n if (this.isInline) {\n this.show();\n }\n };\n\n Datepicker.prototype = {\n constructor: Datepicker,\n _resolveViewName: function _resolveViewName(view) {\n $.each(DPGlobal.viewModes, function (i, viewMode) {\n if (view === i || $.inArray(view, viewMode.names) !== -1) {\n view = i;\n return false;\n }\n });\n return view;\n },\n _resolveDaysOfWeek: function _resolveDaysOfWeek(daysOfWeek) {\n if (!$.isArray(daysOfWeek)) daysOfWeek = daysOfWeek.split(/[,\\s]*/);\n return $.map(daysOfWeek, Number);\n },\n _check_template: function _check_template(tmp) {\n try {\n // If empty\n if (tmp === undefined || tmp === \"\") {\n return false;\n } // If no html, everything ok\n\n\n if ((tmp.match(/[<>]/g) || []).length <= 0) {\n return true;\n } // Checking if html is fine\n\n\n var jDom = $(tmp);\n return jDom.length > 0;\n } catch (ex) {\n return false;\n }\n },\n _process_options: function _process_options(opts) {\n // Store raw options for reference\n this._o = $.extend({}, this._o, opts); // Processed options\n\n var o = this.o = $.extend({}, this._o); // Check if \"de-DE\" style date is available, if not language should\n // fallback to 2 letter code eg \"de\"\n\n var lang = o.language;\n\n if (!dates[lang]) {\n lang = lang.split('-')[0];\n if (!dates[lang]) lang = defaults.language;\n }\n\n o.language = lang; // Retrieve view index from any aliases\n\n o.startView = this._resolveViewName(o.startView);\n o.minViewMode = this._resolveViewName(o.minViewMode);\n o.maxViewMode = this._resolveViewName(o.maxViewMode); // Check view is between min and max\n\n o.startView = Math.max(this.o.minViewMode, Math.min(this.o.maxViewMode, o.startView)); // true, false, or Number > 0\n\n if (o.multidate !== true) {\n o.multidate = Number(o.multidate) || false;\n if (o.multidate !== false) o.multidate = Math.max(0, o.multidate);\n }\n\n o.multidateSeparator = String(o.multidateSeparator);\n o.weekStart %= 7;\n o.weekEnd = (o.weekStart + 6) % 7;\n var format = DPGlobal.parseFormat(o.format);\n\n if (o.startDate !== -Infinity) {\n if (!!o.startDate) {\n if (o.startDate instanceof Date) o.startDate = this._local_to_utc(this._zero_time(o.startDate));else o.startDate = DPGlobal.parseDate(o.startDate, format, o.language, o.assumeNearbyYear);\n } else {\n o.startDate = -Infinity;\n }\n }\n\n if (o.endDate !== Infinity) {\n if (!!o.endDate) {\n if (o.endDate instanceof Date) o.endDate = this._local_to_utc(this._zero_time(o.endDate));else o.endDate = DPGlobal.parseDate(o.endDate, format, o.language, o.assumeNearbyYear);\n } else {\n o.endDate = Infinity;\n }\n }\n\n o.daysOfWeekDisabled = this._resolveDaysOfWeek(o.daysOfWeekDisabled || []);\n o.daysOfWeekHighlighted = this._resolveDaysOfWeek(o.daysOfWeekHighlighted || []);\n o.datesDisabled = o.datesDisabled || [];\n\n if (!$.isArray(o.datesDisabled)) {\n o.datesDisabled = o.datesDisabled.split(',');\n }\n\n o.datesDisabled = $.map(o.datesDisabled, function (d) {\n return DPGlobal.parseDate(d, format, o.language, o.assumeNearbyYear);\n });\n\n var plc = String(o.orientation).toLowerCase().split(/\\s+/g),\n _plc = o.orientation.toLowerCase();\n\n plc = $.grep(plc, function (word) {\n return /^auto|left|right|top|bottom$/.test(word);\n });\n o.orientation = {\n x: 'auto',\n y: 'auto'\n };\n if (!_plc || _plc === 'auto') ; // no action\n else if (plc.length === 1) {\n switch (plc[0]) {\n case 'top':\n case 'bottom':\n o.orientation.y = plc[0];\n break;\n\n case 'left':\n case 'right':\n o.orientation.x = plc[0];\n break;\n }\n } else {\n _plc = $.grep(plc, function (word) {\n return /^left|right$/.test(word);\n });\n o.orientation.x = _plc[0] || 'auto';\n _plc = $.grep(plc, function (word) {\n return /^top|bottom$/.test(word);\n });\n o.orientation.y = _plc[0] || 'auto';\n }\n\n if (o.defaultViewDate instanceof Date || typeof o.defaultViewDate === 'string') {\n o.defaultViewDate = DPGlobal.parseDate(o.defaultViewDate, format, o.language, o.assumeNearbyYear);\n } else if (o.defaultViewDate) {\n var year = o.defaultViewDate.year || new Date().getFullYear();\n var month = o.defaultViewDate.month || 0;\n var day = o.defaultViewDate.day || 1;\n o.defaultViewDate = UTCDate(year, month, day);\n } else {\n o.defaultViewDate = UTCToday();\n }\n },\n _applyEvents: function _applyEvents(evs) {\n for (var i = 0, el, ch, ev; i < evs.length; i++) {\n el = evs[i][0];\n\n if (evs[i].length === 2) {\n ch = undefined;\n ev = evs[i][1];\n } else if (evs[i].length === 3) {\n ch = evs[i][1];\n ev = evs[i][2];\n }\n\n el.on(ev, ch);\n }\n },\n _unapplyEvents: function _unapplyEvents(evs) {\n for (var i = 0, el, ev, ch; i < evs.length; i++) {\n el = evs[i][0];\n\n if (evs[i].length === 2) {\n ch = undefined;\n ev = evs[i][1];\n } else if (evs[i].length === 3) {\n ch = evs[i][1];\n ev = evs[i][2];\n }\n\n el.off(ev, ch);\n }\n },\n _buildEvents: function _buildEvents() {\n var events = {\n keyup: $.proxy(function (e) {\n if ($.inArray(e.keyCode, [27, 37, 39, 38, 40, 32, 13, 9]) === -1) this.update();\n }, this),\n keydown: $.proxy(this.keydown, this),\n paste: $.proxy(this.paste, this)\n };\n\n if (this.o.showOnFocus === true) {\n events.focus = $.proxy(this.show, this);\n }\n\n if (this.isInput) {\n // single input\n this._events = [[this.element, events]];\n } // component: input + button\n else if (this.component && this.inputField.length) {\n this._events = [// For components that are not readonly, allow keyboard nav\n [this.inputField, events], [this.component, {\n click: $.proxy(this.show, this)\n }]];\n } else {\n this._events = [[this.element, {\n click: $.proxy(this.show, this),\n keydown: $.proxy(this.keydown, this)\n }]];\n }\n\n this._events.push( // Component: listen for blur on element descendants\n [this.element, '*', {\n blur: $.proxy(function (e) {\n this._focused_from = e.target;\n }, this)\n }], // Input: listen for blur on element\n [this.element, {\n blur: $.proxy(function (e) {\n this._focused_from = e.target;\n }, this)\n }]);\n\n if (this.o.immediateUpdates) {\n // Trigger input updates immediately on changed year/month\n this._events.push([this.element, {\n 'changeYear changeMonth': $.proxy(function (e) {\n this.update(e.date);\n }, this)\n }]);\n }\n\n this._secondaryEvents = [[this.picker, {\n click: $.proxy(this.click, this)\n }], [this.picker, '.prev, .next', {\n click: $.proxy(this.navArrowsClick, this)\n }], [this.picker, '.day:not(.disabled)', {\n click: $.proxy(this.dayCellClick, this)\n }], [$(window), {\n resize: $.proxy(this.place, this)\n }], [$(document), {\n 'mousedown touchstart': $.proxy(function (e) {\n // Clicked outside the datepicker, hide it\n if (!(this.element.is(e.target) || this.element.find(e.target).length || this.picker.is(e.target) || this.picker.find(e.target).length || this.isInline)) {\n this.hide();\n }\n }, this)\n }]];\n },\n _attachEvents: function _attachEvents() {\n this._detachEvents();\n\n this._applyEvents(this._events);\n },\n _detachEvents: function _detachEvents() {\n this._unapplyEvents(this._events);\n },\n _attachSecondaryEvents: function _attachSecondaryEvents() {\n this._detachSecondaryEvents();\n\n this._applyEvents(this._secondaryEvents);\n },\n _detachSecondaryEvents: function _detachSecondaryEvents() {\n this._unapplyEvents(this._secondaryEvents);\n },\n _trigger: function _trigger(event, altdate) {\n var date = altdate || this.dates.get(-1),\n local_date = this._utc_to_local(date);\n\n this.element.trigger({\n type: event,\n date: local_date,\n viewMode: this.viewMode,\n dates: $.map(this.dates, this._utc_to_local),\n format: $.proxy(function (ix, format) {\n if (arguments.length === 0) {\n ix = this.dates.length - 1;\n format = this.o.format;\n } else if (typeof ix === 'string') {\n format = ix;\n ix = this.dates.length - 1;\n }\n\n format = format || this.o.format;\n var date = this.dates.get(ix);\n return DPGlobal.formatDate(date, format, this.o.language);\n }, this)\n });\n },\n show: function show() {\n if (this.inputField.is(':disabled') || this.inputField.prop('readonly') && this.o.enableOnReadonly === false) return;\n if (!this.isInline) this.picker.appendTo(this.o.container);\n this.place();\n this.picker.show();\n\n this._attachSecondaryEvents();\n\n this._trigger('show');\n\n if ((window.navigator.msMaxTouchPoints || 'ontouchstart' in document) && this.o.disableTouchKeyboard) {\n $(this.element).blur();\n }\n\n return this;\n },\n hide: function hide() {\n if (this.isInline || !this.picker.is(':visible')) return this;\n this.focusDate = null;\n this.picker.hide().detach();\n\n this._detachSecondaryEvents();\n\n this.setViewMode(this.o.startView);\n if (this.o.forceParse && this.inputField.val()) this.setValue();\n\n this._trigger('hide');\n\n return this;\n },\n destroy: function destroy() {\n this.hide();\n\n this._detachEvents();\n\n this._detachSecondaryEvents();\n\n this.picker.remove();\n delete this.element.data().datepicker;\n\n if (!this.isInput) {\n delete this.element.data().date;\n }\n\n return this;\n },\n paste: function paste(e) {\n var dateString;\n\n if (e.originalEvent.clipboardData && e.originalEvent.clipboardData.types && $.inArray('text/plain', e.originalEvent.clipboardData.types) !== -1) {\n dateString = e.originalEvent.clipboardData.getData('text/plain');\n } else if (window.clipboardData) {\n dateString = window.clipboardData.getData('Text');\n } else {\n return;\n }\n\n this.setDate(dateString);\n this.update();\n e.preventDefault();\n },\n _utc_to_local: function _utc_to_local(utc) {\n if (!utc) {\n return utc;\n }\n\n var local = new Date(utc.getTime() + utc.getTimezoneOffset() * 60000);\n\n if (local.getTimezoneOffset() !== utc.getTimezoneOffset()) {\n local = new Date(utc.getTime() + local.getTimezoneOffset() * 60000);\n }\n\n return local;\n },\n _local_to_utc: function _local_to_utc(local) {\n return local && new Date(local.getTime() - local.getTimezoneOffset() * 60000);\n },\n _zero_time: function _zero_time(local) {\n return local && new Date(local.getFullYear(), local.getMonth(), local.getDate());\n },\n _zero_utc_time: function _zero_utc_time(utc) {\n return utc && UTCDate(utc.getUTCFullYear(), utc.getUTCMonth(), utc.getUTCDate());\n },\n getDates: function getDates() {\n return $.map(this.dates, this._utc_to_local);\n },\n getUTCDates: function getUTCDates() {\n return $.map(this.dates, function (d) {\n return new Date(d);\n });\n },\n getDate: function getDate() {\n return this._utc_to_local(this.getUTCDate());\n },\n getUTCDate: function getUTCDate() {\n var selected_date = this.dates.get(-1);\n\n if (selected_date !== undefined) {\n return new Date(selected_date);\n } else {\n return null;\n }\n },\n clearDates: function clearDates() {\n this.inputField.val('');\n this.update();\n\n this._trigger('changeDate');\n\n if (this.o.autoclose) {\n this.hide();\n }\n },\n setDates: function setDates() {\n var args = $.isArray(arguments[0]) ? arguments[0] : arguments;\n this.update.apply(this, args);\n\n this._trigger('changeDate');\n\n this.setValue();\n return this;\n },\n setUTCDates: function setUTCDates() {\n var args = $.isArray(arguments[0]) ? arguments[0] : arguments;\n this.setDates.apply(this, $.map(args, this._utc_to_local));\n return this;\n },\n setDate: alias('setDates'),\n setUTCDate: alias('setUTCDates'),\n remove: alias('destroy', 'Method `remove` is deprecated and will be removed in version 2.0. Use `destroy` instead'),\n setValue: function setValue() {\n var formatted = this.getFormattedDate();\n this.inputField.val(formatted);\n return this;\n },\n getFormattedDate: function getFormattedDate(format) {\n if (format === undefined) format = this.o.format;\n var lang = this.o.language;\n return $.map(this.dates, function (d) {\n return DPGlobal.formatDate(d, format, lang);\n }).join(this.o.multidateSeparator);\n },\n getStartDate: function getStartDate() {\n return this.o.startDate;\n },\n setStartDate: function setStartDate(startDate) {\n this._process_options({\n startDate: startDate\n });\n\n this.update();\n this.updateNavArrows();\n return this;\n },\n getEndDate: function getEndDate() {\n return this.o.endDate;\n },\n setEndDate: function setEndDate(endDate) {\n this._process_options({\n endDate: endDate\n });\n\n this.update();\n this.updateNavArrows();\n return this;\n },\n setDaysOfWeekDisabled: function setDaysOfWeekDisabled(daysOfWeekDisabled) {\n this._process_options({\n daysOfWeekDisabled: daysOfWeekDisabled\n });\n\n this.update();\n return this;\n },\n setDaysOfWeekHighlighted: function setDaysOfWeekHighlighted(daysOfWeekHighlighted) {\n this._process_options({\n daysOfWeekHighlighted: daysOfWeekHighlighted\n });\n\n this.update();\n return this;\n },\n setDatesDisabled: function setDatesDisabled(datesDisabled) {\n this._process_options({\n datesDisabled: datesDisabled\n });\n\n this.update();\n return this;\n },\n place: function place() {\n if (this.isInline) return this;\n var calendarWidth = this.picker.outerWidth(),\n calendarHeight = this.picker.outerHeight(),\n visualPadding = 10,\n container = $(this.o.container),\n windowWidth = container.width(),\n scrollTop = this.o.container === 'body' ? $(document).scrollTop() : container.scrollTop(),\n appendOffset = container.offset();\n var parentsZindex = [0];\n this.element.parents().each(function () {\n var itemZIndex = $(this).css('z-index');\n if (itemZIndex !== 'auto' && Number(itemZIndex) !== 0) parentsZindex.push(Number(itemZIndex));\n });\n var zIndex = Math.max.apply(Math, parentsZindex) + this.o.zIndexOffset;\n var offset = this.component ? this.component.parent().offset() : this.element.offset();\n var height = this.component ? this.component.outerHeight(true) : this.element.outerHeight(false);\n var width = this.component ? this.component.outerWidth(true) : this.element.outerWidth(false);\n var left = offset.left - appendOffset.left;\n var top = offset.top - appendOffset.top;\n\n if (this.o.container !== 'body') {\n top += scrollTop;\n }\n\n this.picker.removeClass('datepicker-orient-top datepicker-orient-bottom ' + 'datepicker-orient-right datepicker-orient-left');\n\n if (this.o.orientation.x !== 'auto') {\n this.picker.addClass('datepicker-orient-' + this.o.orientation.x);\n if (this.o.orientation.x === 'right') left -= calendarWidth - width;\n } // auto x orientation is best-placement: if it crosses a window\n // edge, fudge it sideways\n else {\n if (offset.left < 0) {\n // component is outside the window on the left side. Move it into visible range\n this.picker.addClass('datepicker-orient-left');\n left -= offset.left - visualPadding;\n } else if (left + calendarWidth > windowWidth) {\n // the calendar passes the widow right edge. Align it to component right side\n this.picker.addClass('datepicker-orient-right');\n left += width - calendarWidth;\n } else {\n if (this.o.rtl) {\n // Default to right\n this.picker.addClass('datepicker-orient-right');\n } else {\n // Default to left\n this.picker.addClass('datepicker-orient-left');\n }\n }\n } // auto y orientation is best-situation: top or bottom, no fudging,\n // decision based on which shows more of the calendar\n\n\n var yorient = this.o.orientation.y,\n top_overflow;\n\n if (yorient === 'auto') {\n top_overflow = -scrollTop + top - calendarHeight;\n yorient = top_overflow < 0 ? 'bottom' : 'top';\n }\n\n this.picker.addClass('datepicker-orient-' + yorient);\n if (yorient === 'top') top -= calendarHeight + parseInt(this.picker.css('padding-top'));else top += height;\n\n if (this.o.rtl) {\n var right = windowWidth - (left + width);\n this.picker.css({\n top: top,\n right: right,\n zIndex: zIndex\n });\n } else {\n this.picker.css({\n top: top,\n left: left,\n zIndex: zIndex\n });\n }\n\n return this;\n },\n _allow_update: true,\n update: function update() {\n if (!this._allow_update) return this;\n var oldDates = this.dates.copy(),\n dates = [],\n fromArgs = false;\n\n if (arguments.length) {\n $.each(arguments, $.proxy(function (i, date) {\n if (date instanceof Date) date = this._local_to_utc(date);\n dates.push(date);\n }, this));\n fromArgs = true;\n } else {\n dates = this.isInput ? this.element.val() : this.element.data('date') || this.inputField.val();\n if (dates && this.o.multidate) dates = dates.split(this.o.multidateSeparator);else dates = [dates];\n delete this.element.data().date;\n }\n\n dates = $.map(dates, $.proxy(function (date) {\n return DPGlobal.parseDate(date, this.o.format, this.o.language, this.o.assumeNearbyYear);\n }, this));\n dates = $.grep(dates, $.proxy(function (date) {\n return !this.dateWithinRange(date) || !date;\n }, this), true);\n this.dates.replace(dates);\n\n if (this.o.updateViewDate) {\n if (this.dates.length) this.viewDate = new Date(this.dates.get(-1));else if (this.viewDate < this.o.startDate) this.viewDate = new Date(this.o.startDate);else if (this.viewDate > this.o.endDate) this.viewDate = new Date(this.o.endDate);else this.viewDate = this.o.defaultViewDate;\n }\n\n if (fromArgs) {\n // setting date by clicking\n this.setValue();\n this.element.change();\n } else if (this.dates.length) {\n // setting date by typing\n if (String(oldDates) !== String(this.dates) && fromArgs) {\n this._trigger('changeDate');\n\n this.element.change();\n }\n }\n\n if (!this.dates.length && oldDates.length) {\n this._trigger('clearDate');\n\n this.element.change();\n }\n\n this.fill();\n return this;\n },\n fillDow: function fillDow() {\n if (this.o.showWeekDays) {\n var dowCnt = this.o.weekStart,\n html = '';\n\n if (this.o.calendarWeeks) {\n html += ' ';\n }\n\n while (dowCnt < this.o.weekStart + 7) {\n html += '';\n }\n\n html += '';\n this.picker.find('.datepicker-days thead').append(html);\n }\n },\n fillMonths: function fillMonths() {\n var localDate = this._utc_to_local(this.viewDate);\n\n var html = '';\n var focused;\n\n for (var i = 0; i < 12; i++) {\n focused = localDate && localDate.getMonth() === i ? ' focused' : '';\n html += '' + dates[this.o.language].monthsShort[i] + '';\n }\n\n this.picker.find('.datepicker-months td').html(html);\n },\n setRange: function setRange(range) {\n if (!range || !range.length) delete this.range;else this.range = $.map(range, function (d) {\n return d.valueOf();\n });\n this.fill();\n },\n getClassNames: function getClassNames(date) {\n var cls = [],\n year = this.viewDate.getUTCFullYear(),\n month = this.viewDate.getUTCMonth(),\n today = UTCToday();\n\n if (date.getUTCFullYear() < year || date.getUTCFullYear() === year && date.getUTCMonth() < month) {\n cls.push('old');\n } else if (date.getUTCFullYear() > year || date.getUTCFullYear() === year && date.getUTCMonth() > month) {\n cls.push('new');\n }\n\n if (this.focusDate && date.valueOf() === this.focusDate.valueOf()) cls.push('focused'); // Compare internal UTC date with UTC today, not local today\n\n if (this.o.todayHighlight && isUTCEquals(date, today)) {\n cls.push('today');\n }\n\n if (this.dates.contains(date) !== -1) cls.push('active');\n\n if (!this.dateWithinRange(date)) {\n cls.push('disabled');\n }\n\n if (this.dateIsDisabled(date)) {\n cls.push('disabled', 'disabled-date');\n }\n\n if ($.inArray(date.getUTCDay(), this.o.daysOfWeekHighlighted) !== -1) {\n cls.push('highlighted');\n }\n\n if (this.range) {\n if (date > this.range[0] && date < this.range[this.range.length - 1]) {\n cls.push('range');\n }\n\n if ($.inArray(date.valueOf(), this.range) !== -1) {\n cls.push('selected');\n }\n\n if (date.valueOf() === this.range[0]) {\n cls.push('range-start');\n }\n\n if (date.valueOf() === this.range[this.range.length - 1]) {\n cls.push('range-end');\n }\n }\n\n return cls;\n },\n _fill_yearsView: function _fill_yearsView(selector, cssClass, factor, year, startYear, endYear, beforeFn) {\n var html = '';\n var step = factor / 10;\n var view = this.picker.find(selector);\n var startVal = Math.floor(year / factor) * factor;\n var endVal = startVal + step * 9;\n var focusedVal = Math.floor(this.viewDate.getFullYear() / step) * step;\n var selected = $.map(this.dates, function (d) {\n return Math.floor(d.getUTCFullYear() / step) * step;\n });\n var classes, tooltip, before;\n\n for (var currVal = startVal - step; currVal <= endVal + step; currVal += step) {\n classes = [cssClass];\n tooltip = null;\n\n if (currVal === startVal - step) {\n classes.push('old');\n } else if (currVal === endVal + step) {\n classes.push('new');\n }\n\n if ($.inArray(currVal, selected) !== -1) {\n classes.push('active');\n }\n\n if (currVal < startYear || currVal > endYear) {\n classes.push('disabled');\n }\n\n if (currVal === focusedVal) {\n classes.push('focused');\n }\n\n if (beforeFn !== $.noop) {\n before = beforeFn(new Date(currVal, 0, 1));\n\n if (before === undefined) {\n before = {};\n } else if (typeof before === 'boolean') {\n before = {\n enabled: before\n };\n } else if (typeof before === 'string') {\n before = {\n classes: before\n };\n }\n\n if (before.enabled === false) {\n classes.push('disabled');\n }\n\n if (before.classes) {\n classes = classes.concat(before.classes.split(/\\s+/));\n }\n\n if (before.tooltip) {\n tooltip = before.tooltip;\n }\n }\n\n html += '' + currVal + '';\n }\n\n view.find('.datepicker-switch').text(startVal + '-' + endVal);\n view.find('td').html(html);\n },\n fill: function fill() {\n var d = new Date(this.viewDate),\n year = d.getUTCFullYear(),\n month = d.getUTCMonth(),\n startYear = this.o.startDate !== -Infinity ? this.o.startDate.getUTCFullYear() : -Infinity,\n startMonth = this.o.startDate !== -Infinity ? this.o.startDate.getUTCMonth() : -Infinity,\n endYear = this.o.endDate !== Infinity ? this.o.endDate.getUTCFullYear() : Infinity,\n endMonth = this.o.endDate !== Infinity ? this.o.endDate.getUTCMonth() : Infinity,\n todaytxt = dates[this.o.language].today || dates['en'].today || '',\n cleartxt = dates[this.o.language].clear || dates['en'].clear || '',\n titleFormat = dates[this.o.language].titleFormat || dates['en'].titleFormat,\n todayDate = UTCToday(),\n titleBtnVisible = (this.o.todayBtn === true || this.o.todayBtn === 'linked') && todayDate >= this.o.startDate && todayDate <= this.o.endDate && !this.weekOfDateIsDisabled(todayDate),\n tooltip,\n before;\n if (isNaN(year) || isNaN(month)) return;\n this.picker.find('.datepicker-days .datepicker-switch').text(DPGlobal.formatDate(d, titleFormat, this.o.language));\n this.picker.find('tfoot .today').text(todaytxt).css('display', titleBtnVisible ? 'table-cell' : 'none');\n this.picker.find('tfoot .clear').text(cleartxt).css('display', this.o.clearBtn === true ? 'table-cell' : 'none');\n this.picker.find('thead .datepicker-title').text(this.o.title).css('display', typeof this.o.title === 'string' && this.o.title !== '' ? 'table-cell' : 'none');\n this.updateNavArrows();\n this.fillMonths();\n var prevMonth = UTCDate(year, month, 0),\n day = prevMonth.getUTCDate();\n prevMonth.setUTCDate(day - (prevMonth.getUTCDay() - this.o.weekStart + 7) % 7);\n var nextMonth = new Date(prevMonth);\n\n if (prevMonth.getUTCFullYear() < 100) {\n nextMonth.setUTCFullYear(prevMonth.getUTCFullYear());\n }\n\n nextMonth.setUTCDate(nextMonth.getUTCDate() + 42);\n nextMonth = nextMonth.valueOf();\n var html = [];\n var weekDay, clsName;\n\n while (prevMonth.valueOf() < nextMonth) {\n weekDay = prevMonth.getUTCDay();\n\n if (weekDay === this.o.weekStart) {\n html.push('');\n\n if (this.o.calendarWeeks) {\n // ISO 8601: First week contains first thursday.\n // ISO also states week starts on Monday, but we can be more abstract here.\n var // Start of current week: based on weekstart/current date\n ws = new Date(+prevMonth + (this.o.weekStart - weekDay - 7) % 7 * 864e5),\n // Thursday of this week\n th = new Date(Number(ws) + (7 + 4 - ws.getUTCDay()) % 7 * 864e5),\n // First Thursday of year, year from thursday\n yth = new Date(Number(yth = UTCDate(th.getUTCFullYear(), 0, 1)) + (7 + 4 - yth.getUTCDay()) % 7 * 864e5),\n // Calendar week: ms between thursdays, div ms per day, div 7 days\n calWeek = (th - yth) / 864e5 / 7 + 1;\n html.push('' + calWeek + '');\n }\n }\n\n clsName = this.getClassNames(prevMonth);\n clsName.push('day');\n var content = prevMonth.getUTCDate();\n\n if (this.o.beforeShowDay !== $.noop) {\n before = this.o.beforeShowDay(this._utc_to_local(prevMonth));\n if (before === undefined) before = {};else if (typeof before === 'boolean') before = {\n enabled: before\n };else if (typeof before === 'string') before = {\n classes: before\n };\n if (before.enabled === false) clsName.push('disabled');\n if (before.classes) clsName = clsName.concat(before.classes.split(/\\s+/));\n if (before.tooltip) tooltip = before.tooltip;\n if (before.content) content = before.content;\n } //Check if uniqueSort exists (supported by jquery >=1.12 and >=2.2)\n //Fallback to unique function for older jquery versions\n\n\n if ($.isFunction($.uniqueSort)) {\n clsName = $.uniqueSort(clsName);\n } else {\n clsName = $.unique(clsName);\n }\n\n html.push('' + content + '');\n tooltip = null;\n\n if (weekDay === this.o.weekEnd) {\n html.push('');\n }\n\n prevMonth.setUTCDate(prevMonth.getUTCDate() + 1);\n }\n\n this.picker.find('.datepicker-days tbody').html(html.join(''));\n var monthsTitle = dates[this.o.language].monthsTitle || dates['en'].monthsTitle || 'Months';\n var months = this.picker.find('.datepicker-months').find('.datepicker-switch').text(this.o.maxViewMode < 2 ? monthsTitle : year).end().find('tbody span').removeClass('active');\n $.each(this.dates, function (i, d) {\n if (d.getUTCFullYear() === year) months.eq(d.getUTCMonth()).addClass('active');\n });\n\n if (year < startYear || year > endYear) {\n months.addClass('disabled');\n }\n\n if (year === startYear) {\n months.slice(0, startMonth).addClass('disabled');\n }\n\n if (year === endYear) {\n months.slice(endMonth + 1).addClass('disabled');\n }\n\n if (this.o.beforeShowMonth !== $.noop) {\n var that = this;\n $.each(months, function (i, month) {\n var moDate = new Date(year, i, 1);\n var before = that.o.beforeShowMonth(moDate);\n if (before === undefined) before = {};else if (typeof before === 'boolean') before = {\n enabled: before\n };else if (typeof before === 'string') before = {\n classes: before\n };\n if (before.enabled === false && !$(month).hasClass('disabled')) $(month).addClass('disabled');\n if (before.classes) $(month).addClass(before.classes);\n if (before.tooltip) $(month).prop('title', before.tooltip);\n });\n } // Generating decade/years picker\n\n\n this._fill_yearsView('.datepicker-years', 'year', 10, year, startYear, endYear, this.o.beforeShowYear); // Generating century/decades picker\n\n\n this._fill_yearsView('.datepicker-decades', 'decade', 100, year, startYear, endYear, this.o.beforeShowDecade); // Generating millennium/centuries picker\n\n\n this._fill_yearsView('.datepicker-centuries', 'century', 1000, year, startYear, endYear, this.o.beforeShowCentury);\n },\n updateNavArrows: function updateNavArrows() {\n if (!this._allow_update) return;\n var d = new Date(this.viewDate),\n year = d.getUTCFullYear(),\n month = d.getUTCMonth(),\n startYear = this.o.startDate !== -Infinity ? this.o.startDate.getUTCFullYear() : -Infinity,\n startMonth = this.o.startDate !== -Infinity ? this.o.startDate.getUTCMonth() : -Infinity,\n endYear = this.o.endDate !== Infinity ? this.o.endDate.getUTCFullYear() : Infinity,\n endMonth = this.o.endDate !== Infinity ? this.o.endDate.getUTCMonth() : Infinity,\n prevIsDisabled,\n nextIsDisabled,\n factor = 1;\n\n switch (this.viewMode) {\n case 4:\n factor *= 10;\n\n /* falls through */\n\n case 3:\n factor *= 10;\n\n /* falls through */\n\n case 2:\n factor *= 10;\n\n /* falls through */\n\n case 1:\n prevIsDisabled = Math.floor(year / factor) * factor <= startYear;\n nextIsDisabled = Math.floor(year / factor) * factor + factor > endYear;\n break;\n\n case 0:\n prevIsDisabled = year <= startYear && month <= startMonth;\n nextIsDisabled = year >= endYear && month >= endMonth;\n break;\n }\n\n this.picker.find('.prev').toggleClass('disabled', prevIsDisabled);\n this.picker.find('.next').toggleClass('disabled', nextIsDisabled);\n },\n click: function click(e) {\n e.preventDefault();\n e.stopPropagation();\n var target, dir, day, year, month;\n target = $(e.target); // Clicked on the switch\n\n if (target.hasClass('datepicker-switch') && this.viewMode !== this.o.maxViewMode) {\n this.setViewMode(this.viewMode + 1);\n } // Clicked on today button\n\n\n if (target.hasClass('today') && !target.hasClass('day')) {\n this.setViewMode(0);\n\n this._setDate(UTCToday(), this.o.todayBtn === 'linked' ? null : 'view');\n } // Clicked on clear button\n\n\n if (target.hasClass('clear')) {\n this.clearDates();\n }\n\n if (!target.hasClass('disabled')) {\n // Clicked on a month, year, decade, century\n if (target.hasClass('month') || target.hasClass('year') || target.hasClass('decade') || target.hasClass('century')) {\n this.viewDate.setUTCDate(1);\n day = 1;\n\n if (this.viewMode === 1) {\n month = target.parent().find('span').index(target);\n year = this.viewDate.getUTCFullYear();\n this.viewDate.setUTCMonth(month);\n } else {\n month = 0;\n year = Number(target.text());\n this.viewDate.setUTCFullYear(year);\n }\n\n this._trigger(DPGlobal.viewModes[this.viewMode - 1].e, this.viewDate);\n\n if (this.viewMode === this.o.minViewMode) {\n this._setDate(UTCDate(year, month, day));\n } else {\n this.setViewMode(this.viewMode - 1);\n this.fill();\n }\n }\n }\n\n if (this.picker.is(':visible') && this._focused_from) {\n this._focused_from.focus();\n }\n\n delete this._focused_from;\n },\n dayCellClick: function dayCellClick(e) {\n var $target = $(e.currentTarget);\n var timestamp = $target.data('date');\n var date = new Date(timestamp);\n\n if (this.o.updateViewDate) {\n if (date.getUTCFullYear() !== this.viewDate.getUTCFullYear()) {\n this._trigger('changeYear', this.viewDate);\n }\n\n if (date.getUTCMonth() !== this.viewDate.getUTCMonth()) {\n this._trigger('changeMonth', this.viewDate);\n }\n }\n\n this._setDate(date);\n },\n // Clicked on prev or next\n navArrowsClick: function navArrowsClick(e) {\n var $target = $(e.currentTarget);\n var dir = $target.hasClass('prev') ? -1 : 1;\n\n if (this.viewMode !== 0) {\n dir *= DPGlobal.viewModes[this.viewMode].navStep * 12;\n }\n\n this.viewDate = this.moveMonth(this.viewDate, dir);\n\n this._trigger(DPGlobal.viewModes[this.viewMode].e, this.viewDate);\n\n this.fill();\n },\n _toggle_multidate: function _toggle_multidate(date) {\n var ix = this.dates.contains(date);\n\n if (!date) {\n this.dates.clear();\n }\n\n if (ix !== -1) {\n if (this.o.multidate === true || this.o.multidate > 1 || this.o.toggleActive) {\n this.dates.remove(ix);\n }\n } else if (this.o.multidate === false) {\n this.dates.clear();\n this.dates.push(date);\n } else {\n this.dates.push(date);\n }\n\n if (typeof this.o.multidate === 'number') while (this.dates.length > this.o.multidate) {\n this.dates.remove(0);\n }\n },\n _setDate: function _setDate(date, which) {\n if (!which || which === 'date') this._toggle_multidate(date && new Date(date));\n if (!which && this.o.updateViewDate || which === 'view') this.viewDate = date && new Date(date);\n this.fill();\n this.setValue();\n\n if (!which || which !== 'view') {\n this._trigger('changeDate');\n }\n\n this.inputField.trigger('change');\n\n if (this.o.autoclose && (!which || which === 'date')) {\n this.hide();\n }\n },\n moveDay: function moveDay(date, dir) {\n var newDate = new Date(date);\n newDate.setUTCDate(date.getUTCDate() + dir);\n return newDate;\n },\n moveWeek: function moveWeek(date, dir) {\n return this.moveDay(date, dir * 7);\n },\n moveMonth: function moveMonth(date, dir) {\n if (!isValidDate(date)) return this.o.defaultViewDate;\n if (!dir) return date;\n var new_date = new Date(date.valueOf()),\n day = new_date.getUTCDate(),\n month = new_date.getUTCMonth(),\n mag = Math.abs(dir),\n new_month,\n test;\n dir = dir > 0 ? 1 : -1;\n\n if (mag === 1) {\n test = dir === -1 // If going back one month, make sure month is not current month\n // (eg, Mar 31 -> Feb 31 == Feb 28, not Mar 02)\n ? function () {\n return new_date.getUTCMonth() === month;\n } // If going forward one month, make sure month is as expected\n // (eg, Jan 31 -> Feb 31 == Feb 28, not Mar 02)\n : function () {\n return new_date.getUTCMonth() !== new_month;\n };\n new_month = month + dir;\n new_date.setUTCMonth(new_month); // Dec -> Jan (12) or Jan -> Dec (-1) -- limit expected date to 0-11\n\n new_month = (new_month + 12) % 12;\n } else {\n // For magnitudes >1, move one month at a time...\n for (var i = 0; i < mag; i++) {\n // ...which might decrease the day (eg, Jan 31 to Feb 28, etc)...\n new_date = this.moveMonth(new_date, dir);\n } // ...then reset the day, keeping it in the new month\n\n\n new_month = new_date.getUTCMonth();\n new_date.setUTCDate(day);\n\n test = function test() {\n return new_month !== new_date.getUTCMonth();\n };\n } // Common date-resetting loop -- if date is beyond end of month, make it\n // end of month\n\n\n while (test()) {\n new_date.setUTCDate(--day);\n new_date.setUTCMonth(new_month);\n }\n\n return new_date;\n },\n moveYear: function moveYear(date, dir) {\n return this.moveMonth(date, dir * 12);\n },\n moveAvailableDate: function moveAvailableDate(date, dir, fn) {\n do {\n date = this[fn](date, dir);\n if (!this.dateWithinRange(date)) return false;\n fn = 'moveDay';\n } while (this.dateIsDisabled(date));\n\n return date;\n },\n weekOfDateIsDisabled: function weekOfDateIsDisabled(date) {\n return $.inArray(date.getUTCDay(), this.o.daysOfWeekDisabled) !== -1;\n },\n dateIsDisabled: function dateIsDisabled(date) {\n return this.weekOfDateIsDisabled(date) || $.grep(this.o.datesDisabled, function (d) {\n return isUTCEquals(date, d);\n }).length > 0;\n },\n dateWithinRange: function dateWithinRange(date) {\n return date >= this.o.startDate && date <= this.o.endDate;\n },\n keydown: function keydown(e) {\n if (!this.picker.is(':visible')) {\n if (e.keyCode === 40 || e.keyCode === 27) {\n // allow down to re-show picker\n this.show();\n e.stopPropagation();\n }\n\n return;\n }\n\n var dateChanged = false,\n dir,\n newViewDate,\n focusDate = this.focusDate || this.viewDate;\n\n switch (e.keyCode) {\n case 27:\n // escape\n if (this.focusDate) {\n this.focusDate = null;\n this.viewDate = this.dates.get(-1) || this.viewDate;\n this.fill();\n } else this.hide();\n\n e.preventDefault();\n e.stopPropagation();\n break;\n\n case 37: // left\n\n case 38: // up\n\n case 39: // right\n\n case 40:\n // down\n if (!this.o.keyboardNavigation || this.o.daysOfWeekDisabled.length === 7) break;\n dir = e.keyCode === 37 || e.keyCode === 38 ? -1 : 1;\n\n if (this.viewMode === 0) {\n if (e.ctrlKey) {\n newViewDate = this.moveAvailableDate(focusDate, dir, 'moveYear');\n if (newViewDate) this._trigger('changeYear', this.viewDate);\n } else if (e.shiftKey) {\n newViewDate = this.moveAvailableDate(focusDate, dir, 'moveMonth');\n if (newViewDate) this._trigger('changeMonth', this.viewDate);\n } else if (e.keyCode === 37 || e.keyCode === 39) {\n newViewDate = this.moveAvailableDate(focusDate, dir, 'moveDay');\n } else if (!this.weekOfDateIsDisabled(focusDate)) {\n newViewDate = this.moveAvailableDate(focusDate, dir, 'moveWeek');\n }\n } else if (this.viewMode === 1) {\n if (e.keyCode === 38 || e.keyCode === 40) {\n dir = dir * 4;\n }\n\n newViewDate = this.moveAvailableDate(focusDate, dir, 'moveMonth');\n } else if (this.viewMode === 2) {\n if (e.keyCode === 38 || e.keyCode === 40) {\n dir = dir * 4;\n }\n\n newViewDate = this.moveAvailableDate(focusDate, dir, 'moveYear');\n }\n\n if (newViewDate) {\n this.focusDate = this.viewDate = newViewDate;\n this.setValue();\n this.fill();\n e.preventDefault();\n }\n\n break;\n\n case 13:\n // enter\n if (!this.o.forceParse) break;\n focusDate = this.focusDate || this.dates.get(-1) || this.viewDate;\n\n if (this.o.keyboardNavigation) {\n this._toggle_multidate(focusDate);\n\n dateChanged = true;\n }\n\n this.focusDate = null;\n this.viewDate = this.dates.get(-1) || this.viewDate;\n this.setValue();\n this.fill();\n\n if (this.picker.is(':visible')) {\n e.preventDefault();\n e.stopPropagation();\n if (this.o.autoclose) this.hide();\n }\n\n break;\n\n case 9:\n // tab\n this.focusDate = null;\n this.viewDate = this.dates.get(-1) || this.viewDate;\n this.fill();\n this.hide();\n break;\n }\n\n if (dateChanged) {\n if (this.dates.length) this._trigger('changeDate');else this._trigger('clearDate');\n this.inputField.trigger('change');\n }\n },\n setViewMode: function setViewMode(viewMode) {\n this.viewMode = viewMode;\n this.picker.children('div').hide().filter('.datepicker-' + DPGlobal.viewModes[this.viewMode].clsName).show();\n this.updateNavArrows();\n\n this._trigger('changeViewMode', new Date(this.viewDate));\n }\n };\n\n var DateRangePicker = function DateRangePicker(element, options) {\n $.data(element, 'datepicker', this);\n this.element = $(element);\n this.inputs = $.map(options.inputs, function (i) {\n return i.jquery ? i[0] : i;\n });\n delete options.inputs;\n this.keepEmptyValues = options.keepEmptyValues;\n delete options.keepEmptyValues;\n datepickerPlugin.call($(this.inputs), options).on('changeDate', $.proxy(this.dateUpdated, this));\n this.pickers = $.map(this.inputs, function (i) {\n return $.data(i, 'datepicker');\n });\n this.updateDates();\n };\n\n DateRangePicker.prototype = {\n updateDates: function updateDates() {\n this.dates = $.map(this.pickers, function (i) {\n return i.getUTCDate();\n });\n this.updateRanges();\n },\n updateRanges: function updateRanges() {\n var range = $.map(this.dates, function (d) {\n return d.valueOf();\n });\n $.each(this.pickers, function (i, p) {\n p.setRange(range);\n });\n },\n clearDates: function clearDates() {\n $.each(this.pickers, function (i, p) {\n p.clearDates();\n });\n },\n dateUpdated: function dateUpdated(e) {\n // `this.updating` is a workaround for preventing infinite recursion\n // between `changeDate` triggering and `setUTCDate` calling. Until\n // there is a better mechanism.\n if (this.updating) return;\n this.updating = true;\n var dp = $.data(e.target, 'datepicker');\n\n if (dp === undefined) {\n return;\n }\n\n var new_date = dp.getUTCDate(),\n keep_empty_values = this.keepEmptyValues,\n i = $.inArray(e.target, this.inputs),\n j = i - 1,\n k = i + 1,\n l = this.inputs.length;\n if (i === -1) return;\n $.each(this.pickers, function (i, p) {\n if (!p.getUTCDate() && (p === dp || !keep_empty_values)) p.setUTCDate(new_date);\n });\n\n if (new_date < this.dates[j]) {\n // Date being moved earlier/left\n while (j >= 0 && new_date < this.dates[j]) {\n this.pickers[j--].setUTCDate(new_date);\n }\n } else if (new_date > this.dates[k]) {\n // Date being moved later/right\n while (k < l && new_date > this.dates[k]) {\n this.pickers[k++].setUTCDate(new_date);\n }\n }\n\n this.updateDates();\n delete this.updating;\n },\n destroy: function destroy() {\n $.map(this.pickers, function (p) {\n p.destroy();\n });\n $(this.inputs).off('changeDate', this.dateUpdated);\n delete this.element.data().datepicker;\n },\n remove: alias('destroy', 'Method `remove` is deprecated and will be removed in version 2.0. Use `destroy` instead')\n };\n\n function opts_from_el(el, prefix) {\n // Derive options from element data-attrs\n var data = $(el).data(),\n out = {},\n inkey,\n replace = new RegExp('^' + prefix.toLowerCase() + '([A-Z])');\n prefix = new RegExp('^' + prefix.toLowerCase());\n\n function re_lower(_, a) {\n return a.toLowerCase();\n }\n\n for (var key in data) {\n if (prefix.test(key)) {\n inkey = key.replace(replace, re_lower);\n out[inkey] = data[key];\n }\n }\n\n return out;\n }\n\n function opts_from_locale(lang) {\n // Derive options from locale plugins\n var out = {}; // Check if \"de-DE\" style date is available, if not language should\n // fallback to 2 letter code eg \"de\"\n\n if (!dates[lang]) {\n lang = lang.split('-')[0];\n if (!dates[lang]) return;\n }\n\n var d = dates[lang];\n $.each(locale_opts, function (i, k) {\n if (k in d) out[k] = d[k];\n });\n return out;\n }\n\n var old = $.fn.datepicker;\n\n var datepickerPlugin = function datepickerPlugin(option) {\n var args = Array.apply(null, arguments);\n args.shift();\n var internal_return;\n this.each(function () {\n var $this = $(this),\n data = $this.data('datepicker'),\n options = _typeof(option) === 'object' && option;\n\n if (!data) {\n var elopts = opts_from_el(this, 'date'),\n // Preliminary otions\n xopts = $.extend({}, defaults, elopts, options),\n locopts = opts_from_locale(xopts.language),\n // Options priority: js args, data-attrs, locales, defaults\n opts = $.extend({}, defaults, locopts, elopts, options);\n\n if ($this.hasClass('input-daterange') || opts.inputs) {\n $.extend(opts, {\n inputs: opts.inputs || $this.find('input').toArray()\n });\n data = new DateRangePicker(this, opts);\n } else {\n data = new Datepicker(this, opts);\n }\n\n $this.data('datepicker', data);\n }\n\n if (typeof option === 'string' && typeof data[option] === 'function') {\n internal_return = data[option].apply(data, args);\n }\n });\n if (internal_return === undefined || internal_return instanceof Datepicker || internal_return instanceof DateRangePicker) return this;\n if (this.length > 1) throw new Error('Using only allowed for the collection of a single element (' + option + ' function)');else return internal_return;\n };\n\n $.fn.datepicker = datepickerPlugin;\n var defaults = $.fn.datepicker.defaults = {\n assumeNearbyYear: false,\n autoclose: false,\n beforeShowDay: $.noop,\n beforeShowMonth: $.noop,\n beforeShowYear: $.noop,\n beforeShowDecade: $.noop,\n beforeShowCentury: $.noop,\n calendarWeeks: false,\n clearBtn: false,\n toggleActive: false,\n daysOfWeekDisabled: [],\n daysOfWeekHighlighted: [],\n datesDisabled: [],\n endDate: Infinity,\n forceParse: true,\n format: 'mm/dd/yyyy',\n keepEmptyValues: false,\n keyboardNavigation: true,\n language: 'en',\n minViewMode: 0,\n maxViewMode: 4,\n multidate: false,\n multidateSeparator: ',',\n orientation: \"auto\",\n rtl: false,\n startDate: -Infinity,\n startView: 0,\n todayBtn: false,\n todayHighlight: false,\n updateViewDate: true,\n weekStart: 0,\n disableTouchKeyboard: false,\n enableOnReadonly: true,\n showOnFocus: true,\n zIndexOffset: 10,\n container: 'body',\n immediateUpdates: false,\n title: '',\n templates: {\n leftArrow: '«',\n rightArrow: '»'\n },\n showWeekDays: true\n };\n var locale_opts = $.fn.datepicker.locale_opts = ['format', 'rtl', 'weekStart'];\n $.fn.datepicker.Constructor = Datepicker;\n var dates = $.fn.datepicker.dates = {\n en: {\n days: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n daysShort: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n daysMin: [\"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\"],\n months: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n monthsShort: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"],\n today: \"Today\",\n clear: \"Clear\",\n titleFormat: \"MM yyyy\"\n }\n };\n var DPGlobal = {\n viewModes: [{\n names: ['days', 'month'],\n clsName: 'days',\n e: 'changeMonth'\n }, {\n names: ['months', 'year'],\n clsName: 'months',\n e: 'changeYear',\n navStep: 1\n }, {\n names: ['years', 'decade'],\n clsName: 'years',\n e: 'changeDecade',\n navStep: 10\n }, {\n names: ['decades', 'century'],\n clsName: 'decades',\n e: 'changeCentury',\n navStep: 100\n }, {\n names: ['centuries', 'millennium'],\n clsName: 'centuries',\n e: 'changeMillennium',\n navStep: 1000\n }],\n validParts: /dd?|DD?|mm?|MM?|yy(?:yy)?/g,\n nonpunctuation: /[^ -\\/:-@\\u5e74\\u6708\\u65e5\\[-`{-~\\t\\n\\r]+/g,\n parseFormat: function parseFormat(format) {\n if (typeof format.toValue === 'function' && typeof format.toDisplay === 'function') return format; // IE treats \\0 as a string end in inputs (truncating the value),\n // so it's a bad format delimiter, anyway\n\n var separators = format.replace(this.validParts, '\\0').split('\\0'),\n parts = format.match(this.validParts);\n\n if (!separators || !separators.length || !parts || parts.length === 0) {\n throw new Error(\"Invalid date format.\");\n }\n\n return {\n separators: separators,\n parts: parts\n };\n },\n parseDate: function parseDate(date, format, language, assumeNearby) {\n if (!date) return undefined;\n if (date instanceof Date) return date;\n if (typeof format === 'string') format = DPGlobal.parseFormat(format);\n if (format.toValue) return format.toValue(date, format, language);\n var fn_map = {\n d: 'moveDay',\n m: 'moveMonth',\n w: 'moveWeek',\n y: 'moveYear'\n },\n dateAliases = {\n yesterday: '-1d',\n today: '+0d',\n tomorrow: '+1d'\n },\n parts,\n part,\n dir,\n i,\n fn;\n\n if (date in dateAliases) {\n date = dateAliases[date];\n }\n\n if (/^[\\-+]\\d+[dmwy]([\\s,]+[\\-+]\\d+[dmwy])*$/i.test(date)) {\n parts = date.match(/([\\-+]\\d+)([dmwy])/gi);\n date = new Date();\n\n for (i = 0; i < parts.length; i++) {\n part = parts[i].match(/([\\-+]\\d+)([dmwy])/i);\n dir = Number(part[1]);\n fn = fn_map[part[2].toLowerCase()];\n date = Datepicker.prototype[fn](date, dir);\n }\n\n return Datepicker.prototype._zero_utc_time(date);\n }\n\n parts = date && date.match(this.nonpunctuation) || [];\n\n function applyNearbyYear(year, threshold) {\n if (threshold === true) threshold = 10; // if year is 2 digits or less, than the user most likely is trying to get a recent century\n\n if (year < 100) {\n year += 2000; // if the new year is more than threshold years in advance, use last century\n\n if (year > new Date().getFullYear() + threshold) {\n year -= 100;\n }\n }\n\n return year;\n }\n\n var parsed = {},\n setters_order = ['yyyy', 'yy', 'M', 'MM', 'm', 'mm', 'd', 'dd'],\n setters_map = {\n yyyy: function yyyy(d, v) {\n return d.setUTCFullYear(assumeNearby ? applyNearbyYear(v, assumeNearby) : v);\n },\n m: function m(d, v) {\n if (isNaN(d)) return d;\n v -= 1;\n\n while (v < 0) {\n v += 12;\n }\n\n v %= 12;\n d.setUTCMonth(v);\n\n while (d.getUTCMonth() !== v) {\n d.setUTCDate(d.getUTCDate() - 1);\n }\n\n return d;\n },\n d: function d(_d, v) {\n return _d.setUTCDate(v);\n }\n },\n val,\n filtered;\n setters_map['yy'] = setters_map['yyyy'];\n setters_map['M'] = setters_map['MM'] = setters_map['mm'] = setters_map['m'];\n setters_map['dd'] = setters_map['d'];\n date = UTCToday();\n var fparts = format.parts.slice(); // Remove noop parts\n\n if (parts.length !== fparts.length) {\n fparts = $(fparts).filter(function (i, p) {\n return $.inArray(p, setters_order) !== -1;\n }).toArray();\n } // Process remainder\n\n\n function match_part() {\n var m = this.slice(0, parts[i].length),\n p = parts[i].slice(0, m.length);\n return m.toLowerCase() === p.toLowerCase();\n }\n\n if (parts.length === fparts.length) {\n var cnt;\n\n for (i = 0, cnt = fparts.length; i < cnt; i++) {\n val = parseInt(parts[i], 10);\n part = fparts[i];\n\n if (isNaN(val)) {\n switch (part) {\n case 'MM':\n filtered = $(dates[language].months).filter(match_part);\n val = $.inArray(filtered[0], dates[language].months) + 1;\n break;\n\n case 'M':\n filtered = $(dates[language].monthsShort).filter(match_part);\n val = $.inArray(filtered[0], dates[language].monthsShort) + 1;\n break;\n }\n }\n\n parsed[part] = val;\n }\n\n var _date, s;\n\n for (i = 0; i < setters_order.length; i++) {\n s = setters_order[i];\n\n if (s in parsed && !isNaN(parsed[s])) {\n _date = new Date(date);\n setters_map[s](_date, parsed[s]);\n if (!isNaN(_date)) date = _date;\n }\n }\n }\n\n return date;\n },\n formatDate: function formatDate(date, format, language) {\n if (!date) return '';\n if (typeof format === 'string') format = DPGlobal.parseFormat(format);\n if (format.toDisplay) return format.toDisplay(date, format, language);\n var val = {\n d: date.getUTCDate(),\n D: dates[language].daysShort[date.getUTCDay()],\n DD: dates[language].days[date.getUTCDay()],\n m: date.getUTCMonth() + 1,\n M: dates[language].monthsShort[date.getUTCMonth()],\n MM: dates[language].months[date.getUTCMonth()],\n yy: date.getUTCFullYear().toString().substring(2),\n yyyy: date.getUTCFullYear()\n };\n val.dd = (val.d < 10 ? '0' : '') + val.d;\n val.mm = (val.m < 10 ? '0' : '') + val.m;\n date = [];\n var seps = $.extend([], format.separators);\n\n for (var i = 0, cnt = format.parts.length; i <= cnt; i++) {\n if (seps.length) date.push(seps.shift());\n date.push(val[format.parts[i]]);\n }\n\n return date.join('');\n },\n headTemplate: '' + '' + '' + '' + '' + '' + defaults.templates.leftArrow + '' + '' + '' + defaults.templates.rightArrow + '' + '' + '',\n contTemplate: '',\n footTemplate: '' + '' + '' + '' + '' + '' + '' + ''\n };\n DPGlobal.template = '
' + '
' + '' + DPGlobal.headTemplate + '' + DPGlobal.footTemplate + '
' + '
' + '
' + '' + DPGlobal.headTemplate + DPGlobal.contTemplate + DPGlobal.footTemplate + '
' + '
' + '
' + '' + DPGlobal.headTemplate + DPGlobal.contTemplate + DPGlobal.footTemplate + '
' + '
' + '
' + '' + DPGlobal.headTemplate + DPGlobal.contTemplate + DPGlobal.footTemplate + '
' + '
' + '
' + '' + DPGlobal.headTemplate + DPGlobal.contTemplate + DPGlobal.footTemplate + '
' + '
' + '
';\n $.fn.datepicker.DPGlobal = DPGlobal;\n /* DATEPICKER NO CONFLICT\n * =================== */\n\n $.fn.datepicker.noConflict = function () {\n $.fn.datepicker = old;\n return this;\n };\n /* DATEPICKER VERSION\n * =================== */\n\n\n $.fn.datepicker.version = '1.9.0';\n\n $.fn.datepicker.deprecated = function (msg) {\n var console = window.console;\n\n if (console && console.warn) {\n console.warn('DEPRECATED: ' + msg);\n }\n };\n /* DATEPICKER DATA-API\n * ================== */\n\n\n $(document).on('focus.datepicker.data-api click.datepicker.data-api', '[data-provide=\"datepicker\"]', function (e) {\n var $this = $(this);\n if ($this.data('datepicker')) return;\n e.preventDefault(); // component click requires us to explicitly show it\n\n datepickerPlugin.call($this, 'show');\n });\n $(function () {\n datepickerPlugin.call($('[data-provide=\"datepicker-inline\"]'));\n });\n});","require('bootstrap-daterangepicker/daterangepicker.js');\n\n// Monkey-patch to detect when weeks are shown\n\nvar fnDaterangepicker = $.fn.daterangepicker;\n\n$.fn.daterangepicker = function(options, callback) {\n fnDaterangepicker.call(this, options, callback);\n\n if (options && (options.showWeekNumbers || options.showISOWeekNumbers)) {\n this.each(function() {\n var instance = $(this).data('daterangepicker');\n if (instance && instance.container) instance.container.addClass('with-week-numbers');\n });\n }\n\n return this;\n};\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/**\r\n* @version: 3.0.5\r\n* @author: Dan Grossman http://www.dangrossman.info/\r\n* @copyright: Copyright (c) 2012-2019 Dan Grossman. All rights reserved.\r\n* @license: Licensed under the MIT license. See http://www.opensource.org/licenses/mit-license.php\r\n* @website: http://www.daterangepicker.com/\r\n*/\n// Following the UMD template https://github.com/umdjs/umd/blob/master/templates/returnExportsGlobal.js\n(function (root, factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Make globaly available as well\n define(['moment', 'jquery'], function (moment, jquery) {\n if (!jquery.fn) jquery.fn = {}; // webpack server rendering\n\n if (typeof moment !== 'function' && moment.default) moment = moment.default;\n return factory(moment, jquery);\n });\n } else if ((typeof module === \"undefined\" ? \"undefined\" : _typeof(module)) === 'object' && module.exports) {\n // Node / Browserify\n //isomorphic issue\n var jQuery = typeof window != 'undefined' ? window.jQuery : undefined;\n\n if (!jQuery) {\n jQuery = require('jquery');\n if (!jQuery.fn) jQuery.fn = {};\n }\n\n var moment = typeof window != 'undefined' && typeof window.moment != 'undefined' ? window.moment : require('moment');\n module.exports = factory(moment, jQuery);\n } else {\n // Browser globals\n root.daterangepicker = factory(root.moment, root.jQuery);\n }\n})(this, function (moment, $) {\n var DateRangePicker = function DateRangePicker(element, options, cb) {\n //default settings for options\n this.parentEl = 'body';\n this.element = $(element);\n this.startDate = moment().startOf('day');\n this.endDate = moment().endOf('day');\n this.minDate = false;\n this.maxDate = false;\n this.maxSpan = false;\n this.autoApply = false;\n this.singleDatePicker = false;\n this.showDropdowns = false;\n this.minYear = moment().subtract(100, 'year').format('YYYY');\n this.maxYear = moment().add(100, 'year').format('YYYY');\n this.showWeekNumbers = false;\n this.showISOWeekNumbers = false;\n this.showCustomRangeLabel = true;\n this.timePicker = false;\n this.timePicker24Hour = false;\n this.timePickerIncrement = 1;\n this.timePickerSeconds = false;\n this.linkedCalendars = true;\n this.autoUpdateInput = true;\n this.alwaysShowCalendars = false;\n this.ranges = {};\n this.opens = 'right';\n if (this.element.hasClass('pull-right')) this.opens = 'left';\n this.drops = 'down';\n if (this.element.hasClass('dropup')) this.drops = 'up';\n this.buttonClasses = 'btn btn-sm';\n this.applyButtonClasses = 'btn-primary';\n this.cancelButtonClasses = 'btn-default';\n this.locale = {\n direction: 'ltr',\n format: moment.localeData().longDateFormat('L'),\n separator: ' - ',\n applyLabel: 'Apply',\n cancelLabel: 'Cancel',\n weekLabel: 'W',\n customRangeLabel: 'Custom Range',\n daysOfWeek: moment.weekdaysMin(),\n monthNames: moment.monthsShort(),\n firstDay: moment.localeData().firstDayOfWeek()\n };\n\n this.callback = function () {}; //some state information\n\n\n this.isShowing = false;\n this.leftCalendar = {};\n this.rightCalendar = {}; //custom options from user\n\n if (_typeof(options) !== 'object' || options === null) options = {}; //allow setting options with data attributes\n //data-api options will be overwritten with custom javascript options\n\n options = $.extend(this.element.data(), options); //html template for the picker UI\n\n if (typeof options.template !== 'string' && !(options.template instanceof $)) options.template = '
' + '
' + '
' + '
' + '
' + '
' + '
' + '
' + '
' + '
' + '
' + '' + '' + ' ' + '
' + '
';\n this.parentEl = options.parentEl && $(options.parentEl).length ? $(options.parentEl) : $(this.parentEl);\n this.container = $(options.template).appendTo(this.parentEl); //\n // handle all the possible options overriding defaults\n //\n\n if (_typeof(options.locale) === 'object') {\n if (typeof options.locale.direction === 'string') this.locale.direction = options.locale.direction;\n if (typeof options.locale.format === 'string') this.locale.format = options.locale.format;\n if (typeof options.locale.separator === 'string') this.locale.separator = options.locale.separator;\n if (_typeof(options.locale.daysOfWeek) === 'object') this.locale.daysOfWeek = options.locale.daysOfWeek.slice();\n if (_typeof(options.locale.monthNames) === 'object') this.locale.monthNames = options.locale.monthNames.slice();\n if (typeof options.locale.firstDay === 'number') this.locale.firstDay = options.locale.firstDay;\n if (typeof options.locale.applyLabel === 'string') this.locale.applyLabel = options.locale.applyLabel;\n if (typeof options.locale.cancelLabel === 'string') this.locale.cancelLabel = options.locale.cancelLabel;\n if (typeof options.locale.weekLabel === 'string') this.locale.weekLabel = options.locale.weekLabel;\n\n if (typeof options.locale.customRangeLabel === 'string') {\n //Support unicode chars in the custom range name.\n var elem = document.createElement('textarea');\n elem.innerHTML = options.locale.customRangeLabel;\n var rangeHtml = elem.value;\n this.locale.customRangeLabel = rangeHtml;\n }\n }\n\n this.container.addClass(this.locale.direction);\n if (typeof options.startDate === 'string') this.startDate = moment(options.startDate, this.locale.format);\n if (typeof options.endDate === 'string') this.endDate = moment(options.endDate, this.locale.format);\n if (typeof options.minDate === 'string') this.minDate = moment(options.minDate, this.locale.format);\n if (typeof options.maxDate === 'string') this.maxDate = moment(options.maxDate, this.locale.format);\n if (_typeof(options.startDate) === 'object') this.startDate = moment(options.startDate);\n if (_typeof(options.endDate) === 'object') this.endDate = moment(options.endDate);\n if (_typeof(options.minDate) === 'object') this.minDate = moment(options.minDate);\n if (_typeof(options.maxDate) === 'object') this.maxDate = moment(options.maxDate); // sanity check for bad options\n\n if (this.minDate && this.startDate.isBefore(this.minDate)) this.startDate = this.minDate.clone(); // sanity check for bad options\n\n if (this.maxDate && this.endDate.isAfter(this.maxDate)) this.endDate = this.maxDate.clone();\n if (typeof options.applyButtonClasses === 'string') this.applyButtonClasses = options.applyButtonClasses;\n if (typeof options.applyClass === 'string') //backwards compat\n this.applyButtonClasses = options.applyClass;\n if (typeof options.cancelButtonClasses === 'string') this.cancelButtonClasses = options.cancelButtonClasses;\n if (typeof options.cancelClass === 'string') //backwards compat\n this.cancelButtonClasses = options.cancelClass;\n if (_typeof(options.maxSpan) === 'object') this.maxSpan = options.maxSpan;\n if (_typeof(options.dateLimit) === 'object') //backwards compat\n this.maxSpan = options.dateLimit;\n if (typeof options.opens === 'string') this.opens = options.opens;\n if (typeof options.drops === 'string') this.drops = options.drops;\n if (typeof options.showWeekNumbers === 'boolean') this.showWeekNumbers = options.showWeekNumbers;\n if (typeof options.showISOWeekNumbers === 'boolean') this.showISOWeekNumbers = options.showISOWeekNumbers;\n if (typeof options.buttonClasses === 'string') this.buttonClasses = options.buttonClasses;\n if (_typeof(options.buttonClasses) === 'object') this.buttonClasses = options.buttonClasses.join(' ');\n if (typeof options.showDropdowns === 'boolean') this.showDropdowns = options.showDropdowns;\n if (typeof options.minYear === 'number') this.minYear = options.minYear;\n if (typeof options.maxYear === 'number') this.maxYear = options.maxYear;\n if (typeof options.showCustomRangeLabel === 'boolean') this.showCustomRangeLabel = options.showCustomRangeLabel;\n\n if (typeof options.singleDatePicker === 'boolean') {\n this.singleDatePicker = options.singleDatePicker;\n if (this.singleDatePicker) this.endDate = this.startDate.clone();\n }\n\n if (typeof options.timePicker === 'boolean') this.timePicker = options.timePicker;\n if (typeof options.timePickerSeconds === 'boolean') this.timePickerSeconds = options.timePickerSeconds;\n if (typeof options.timePickerIncrement === 'number') this.timePickerIncrement = options.timePickerIncrement;\n if (typeof options.timePicker24Hour === 'boolean') this.timePicker24Hour = options.timePicker24Hour;\n if (typeof options.autoApply === 'boolean') this.autoApply = options.autoApply;\n if (typeof options.autoUpdateInput === 'boolean') this.autoUpdateInput = options.autoUpdateInput;\n if (typeof options.linkedCalendars === 'boolean') this.linkedCalendars = options.linkedCalendars;\n if (typeof options.isInvalidDate === 'function') this.isInvalidDate = options.isInvalidDate;\n if (typeof options.isCustomDate === 'function') this.isCustomDate = options.isCustomDate;\n if (typeof options.alwaysShowCalendars === 'boolean') this.alwaysShowCalendars = options.alwaysShowCalendars; // update day names order to firstDay\n\n if (this.locale.firstDay != 0) {\n var iterator = this.locale.firstDay;\n\n while (iterator > 0) {\n this.locale.daysOfWeek.push(this.locale.daysOfWeek.shift());\n iterator--;\n }\n }\n\n var start, end, range; //if no start/end dates set, check if an input element contains initial values\n\n if (typeof options.startDate === 'undefined' && typeof options.endDate === 'undefined') {\n if ($(this.element).is(':text')) {\n var val = $(this.element).val(),\n split = val.split(this.locale.separator);\n start = end = null;\n\n if (split.length == 2) {\n start = moment(split[0], this.locale.format);\n end = moment(split[1], this.locale.format);\n } else if (this.singleDatePicker && val !== \"\") {\n start = moment(val, this.locale.format);\n end = moment(val, this.locale.format);\n }\n\n if (start !== null && end !== null) {\n this.setStartDate(start);\n this.setEndDate(end);\n }\n }\n }\n\n if (_typeof(options.ranges) === 'object') {\n for (range in options.ranges) {\n if (typeof options.ranges[range][0] === 'string') start = moment(options.ranges[range][0], this.locale.format);else start = moment(options.ranges[range][0]);\n if (typeof options.ranges[range][1] === 'string') end = moment(options.ranges[range][1], this.locale.format);else end = moment(options.ranges[range][1]); // If the start or end date exceed those allowed by the minDate or maxSpan\n // options, shorten the range to the allowable period.\n\n if (this.minDate && start.isBefore(this.minDate)) start = this.minDate.clone();\n var maxDate = this.maxDate;\n if (this.maxSpan && maxDate && start.clone().add(this.maxSpan).isAfter(maxDate)) maxDate = start.clone().add(this.maxSpan);\n if (maxDate && end.isAfter(maxDate)) end = maxDate.clone(); // If the end of the range is before the minimum or the start of the range is\n // after the maximum, don't display this range option at all.\n\n if (this.minDate && end.isBefore(this.minDate, this.timepicker ? 'minute' : 'day') || maxDate && start.isAfter(maxDate, this.timepicker ? 'minute' : 'day')) continue; //Support unicode chars in the range names.\n\n var elem = document.createElement('textarea');\n elem.innerHTML = range;\n var rangeHtml = elem.value;\n this.ranges[rangeHtml] = [start, end];\n }\n\n var list = '';\n this.container.find('.ranges').prepend(list);\n }\n\n if (typeof cb === 'function') {\n this.callback = cb;\n }\n\n if (!this.timePicker) {\n this.startDate = this.startDate.startOf('day');\n this.endDate = this.endDate.endOf('day');\n this.container.find('.calendar-time').hide();\n } //can't be used together for now\n\n\n if (this.timePicker && this.autoApply) this.autoApply = false;\n\n if (this.autoApply) {\n this.container.addClass('auto-apply');\n }\n\n if (_typeof(options.ranges) === 'object') this.container.addClass('show-ranges');\n\n if (this.singleDatePicker) {\n this.container.addClass('single');\n this.container.find('.drp-calendar.left').addClass('single');\n this.container.find('.drp-calendar.left').show();\n this.container.find('.drp-calendar.right').hide();\n\n if (!this.timePicker) {\n this.container.addClass('auto-apply');\n }\n }\n\n if (typeof options.ranges === 'undefined' && !this.singleDatePicker || this.alwaysShowCalendars) {\n this.container.addClass('show-calendar');\n }\n\n this.container.addClass('opens' + this.opens); //apply CSS classes and labels to buttons\n\n this.container.find('.applyBtn, .cancelBtn').addClass(this.buttonClasses);\n if (this.applyButtonClasses.length) this.container.find('.applyBtn').addClass(this.applyButtonClasses);\n if (this.cancelButtonClasses.length) this.container.find('.cancelBtn').addClass(this.cancelButtonClasses);\n this.container.find('.applyBtn').html(this.locale.applyLabel);\n this.container.find('.cancelBtn').html(this.locale.cancelLabel); //\n // event listeners\n //\n\n this.container.find('.drp-calendar').on('click.daterangepicker', '.prev', $.proxy(this.clickPrev, this)).on('click.daterangepicker', '.next', $.proxy(this.clickNext, this)).on('mousedown.daterangepicker', 'td.available', $.proxy(this.clickDate, this)).on('mouseenter.daterangepicker', 'td.available', $.proxy(this.hoverDate, this)).on('change.daterangepicker', 'select.yearselect', $.proxy(this.monthOrYearChanged, this)).on('change.daterangepicker', 'select.monthselect', $.proxy(this.monthOrYearChanged, this)).on('change.daterangepicker', 'select.hourselect,select.minuteselect,select.secondselect,select.ampmselect', $.proxy(this.timeChanged, this));\n this.container.find('.ranges').on('click.daterangepicker', 'li', $.proxy(this.clickRange, this));\n this.container.find('.drp-buttons').on('click.daterangepicker', 'button.applyBtn', $.proxy(this.clickApply, this)).on('click.daterangepicker', 'button.cancelBtn', $.proxy(this.clickCancel, this));\n\n if (this.element.is('input') || this.element.is('button')) {\n this.element.on({\n 'click.daterangepicker': $.proxy(this.show, this),\n 'focus.daterangepicker': $.proxy(this.show, this),\n 'keyup.daterangepicker': $.proxy(this.elementChanged, this),\n 'keydown.daterangepicker': $.proxy(this.keydown, this) //IE 11 compatibility\n\n });\n } else {\n this.element.on('click.daterangepicker', $.proxy(this.toggle, this));\n this.element.on('keydown.daterangepicker', $.proxy(this.toggle, this));\n } //\n // if attached to a text input, set the initial value\n //\n\n\n this.updateElement();\n };\n\n DateRangePicker.prototype = {\n constructor: DateRangePicker,\n setStartDate: function setStartDate(startDate) {\n if (typeof startDate === 'string') this.startDate = moment(startDate, this.locale.format);\n if (_typeof(startDate) === 'object') this.startDate = moment(startDate);\n if (!this.timePicker) this.startDate = this.startDate.startOf('day');\n if (this.timePicker && this.timePickerIncrement) this.startDate.minute(Math.round(this.startDate.minute() / this.timePickerIncrement) * this.timePickerIncrement);\n\n if (this.minDate && this.startDate.isBefore(this.minDate)) {\n this.startDate = this.minDate.clone();\n if (this.timePicker && this.timePickerIncrement) this.startDate.minute(Math.round(this.startDate.minute() / this.timePickerIncrement) * this.timePickerIncrement);\n }\n\n if (this.maxDate && this.startDate.isAfter(this.maxDate)) {\n this.startDate = this.maxDate.clone();\n if (this.timePicker && this.timePickerIncrement) this.startDate.minute(Math.floor(this.startDate.minute() / this.timePickerIncrement) * this.timePickerIncrement);\n }\n\n if (!this.isShowing) this.updateElement();\n this.updateMonthsInView();\n },\n setEndDate: function setEndDate(endDate) {\n if (typeof endDate === 'string') this.endDate = moment(endDate, this.locale.format);\n if (_typeof(endDate) === 'object') this.endDate = moment(endDate);\n if (!this.timePicker) this.endDate = this.endDate.endOf('day');\n if (this.timePicker && this.timePickerIncrement) this.endDate.minute(Math.round(this.endDate.minute() / this.timePickerIncrement) * this.timePickerIncrement);\n if (this.endDate.isBefore(this.startDate)) this.endDate = this.startDate.clone();\n if (this.maxDate && this.endDate.isAfter(this.maxDate)) this.endDate = this.maxDate.clone();\n if (this.maxSpan && this.startDate.clone().add(this.maxSpan).isBefore(this.endDate)) this.endDate = this.startDate.clone().add(this.maxSpan);\n this.previousRightTime = this.endDate.clone();\n this.container.find('.drp-selected').html(this.startDate.format(this.locale.format) + this.locale.separator + this.endDate.format(this.locale.format));\n if (!this.isShowing) this.updateElement();\n this.updateMonthsInView();\n },\n isInvalidDate: function isInvalidDate() {\n return false;\n },\n isCustomDate: function isCustomDate() {\n return false;\n },\n updateView: function updateView() {\n if (this.timePicker) {\n this.renderTimePicker('left');\n this.renderTimePicker('right');\n\n if (!this.endDate) {\n this.container.find('.right .calendar-time select').attr('disabled', 'disabled').addClass('disabled');\n } else {\n this.container.find('.right .calendar-time select').removeAttr('disabled').removeClass('disabled');\n }\n }\n\n if (this.endDate) this.container.find('.drp-selected').html(this.startDate.format(this.locale.format) + this.locale.separator + this.endDate.format(this.locale.format));\n this.updateMonthsInView();\n this.updateCalendars();\n this.updateFormInputs();\n },\n updateMonthsInView: function updateMonthsInView() {\n if (this.endDate) {\n //if both dates are visible already, do nothing\n if (!this.singleDatePicker && this.leftCalendar.month && this.rightCalendar.month && (this.startDate.format('YYYY-MM') == this.leftCalendar.month.format('YYYY-MM') || this.startDate.format('YYYY-MM') == this.rightCalendar.month.format('YYYY-MM')) && (this.endDate.format('YYYY-MM') == this.leftCalendar.month.format('YYYY-MM') || this.endDate.format('YYYY-MM') == this.rightCalendar.month.format('YYYY-MM'))) {\n return;\n }\n\n this.leftCalendar.month = this.startDate.clone().date(2);\n\n if (!this.linkedCalendars && (this.endDate.month() != this.startDate.month() || this.endDate.year() != this.startDate.year())) {\n this.rightCalendar.month = this.endDate.clone().date(2);\n } else {\n this.rightCalendar.month = this.startDate.clone().date(2).add(1, 'month');\n }\n } else {\n if (this.leftCalendar.month.format('YYYY-MM') != this.startDate.format('YYYY-MM') && this.rightCalendar.month.format('YYYY-MM') != this.startDate.format('YYYY-MM')) {\n this.leftCalendar.month = this.startDate.clone().date(2);\n this.rightCalendar.month = this.startDate.clone().date(2).add(1, 'month');\n }\n }\n\n if (this.maxDate && this.linkedCalendars && !this.singleDatePicker && this.rightCalendar.month > this.maxDate) {\n this.rightCalendar.month = this.maxDate.clone().date(2);\n this.leftCalendar.month = this.maxDate.clone().date(2).subtract(1, 'month');\n }\n },\n updateCalendars: function updateCalendars() {\n if (this.timePicker) {\n var hour, minute, second;\n\n if (this.endDate) {\n hour = parseInt(this.container.find('.left .hourselect').val(), 10);\n minute = parseInt(this.container.find('.left .minuteselect').val(), 10);\n\n if (isNaN(minute)) {\n minute = parseInt(this.container.find('.left .minuteselect option:last').val(), 10);\n }\n\n second = this.timePickerSeconds ? parseInt(this.container.find('.left .secondselect').val(), 10) : 0;\n\n if (!this.timePicker24Hour) {\n var ampm = this.container.find('.left .ampmselect').val();\n if (ampm === 'PM' && hour < 12) hour += 12;\n if (ampm === 'AM' && hour === 12) hour = 0;\n }\n } else {\n hour = parseInt(this.container.find('.right .hourselect').val(), 10);\n minute = parseInt(this.container.find('.right .minuteselect').val(), 10);\n\n if (isNaN(minute)) {\n minute = parseInt(this.container.find('.right .minuteselect option:last').val(), 10);\n }\n\n second = this.timePickerSeconds ? parseInt(this.container.find('.right .secondselect').val(), 10) : 0;\n\n if (!this.timePicker24Hour) {\n var ampm = this.container.find('.right .ampmselect').val();\n if (ampm === 'PM' && hour < 12) hour += 12;\n if (ampm === 'AM' && hour === 12) hour = 0;\n }\n }\n\n this.leftCalendar.month.hour(hour).minute(minute).second(second);\n this.rightCalendar.month.hour(hour).minute(minute).second(second);\n }\n\n this.renderCalendar('left');\n this.renderCalendar('right'); //highlight any predefined range matching the current start and end dates\n\n this.container.find('.ranges li').removeClass('active');\n if (this.endDate == null) return;\n this.calculateChosenLabel();\n },\n renderCalendar: function renderCalendar(side) {\n //\n // Build the matrix of dates that will populate the calendar\n //\n var calendar = side == 'left' ? this.leftCalendar : this.rightCalendar;\n var month = calendar.month.month();\n var year = calendar.month.year();\n var hour = calendar.month.hour();\n var minute = calendar.month.minute();\n var second = calendar.month.second();\n var daysInMonth = moment([year, month]).daysInMonth();\n var firstDay = moment([year, month, 1]);\n var lastDay = moment([year, month, daysInMonth]);\n var lastMonth = moment(firstDay).subtract(1, 'month').month();\n var lastYear = moment(firstDay).subtract(1, 'month').year();\n var daysInLastMonth = moment([lastYear, lastMonth]).daysInMonth();\n var dayOfWeek = firstDay.day(); //initialize a 6 rows x 7 columns array for the calendar\n\n var calendar = [];\n calendar.firstDay = firstDay;\n calendar.lastDay = lastDay;\n\n for (var i = 0; i < 6; i++) {\n calendar[i] = [];\n } //populate the calendar with date objects\n\n\n var startDay = daysInLastMonth - dayOfWeek + this.locale.firstDay + 1;\n if (startDay > daysInLastMonth) startDay -= 7;\n if (dayOfWeek == this.locale.firstDay) startDay = daysInLastMonth - 6;\n var curDate = moment([lastYear, lastMonth, startDay, 12, minute, second]);\n var col, row;\n\n for (var i = 0, col = 0, row = 0; i < 42; i++, col++, curDate = moment(curDate).add(24, 'hour')) {\n if (i > 0 && col % 7 === 0) {\n col = 0;\n row++;\n }\n\n calendar[row][col] = curDate.clone().hour(hour).minute(minute).second(second);\n curDate.hour(12);\n\n if (this.minDate && calendar[row][col].format('YYYY-MM-DD') == this.minDate.format('YYYY-MM-DD') && calendar[row][col].isBefore(this.minDate) && side == 'left') {\n calendar[row][col] = this.minDate.clone();\n }\n\n if (this.maxDate && calendar[row][col].format('YYYY-MM-DD') == this.maxDate.format('YYYY-MM-DD') && calendar[row][col].isAfter(this.maxDate) && side == 'right') {\n calendar[row][col] = this.maxDate.clone();\n }\n } //make the calendar object available to hoverDate/clickDate\n\n\n if (side == 'left') {\n this.leftCalendar.calendar = calendar;\n } else {\n this.rightCalendar.calendar = calendar;\n } //\n // Display the calendar\n //\n\n\n var minDate = side == 'left' ? this.minDate : this.startDate;\n var maxDate = this.maxDate;\n var selected = side == 'left' ? this.startDate : this.endDate;\n var arrow = this.locale.direction == 'ltr' ? {\n left: 'chevron-left',\n right: 'chevron-right'\n } : {\n left: 'chevron-right',\n right: 'chevron-left'\n };\n var html = '';\n html += '';\n html += ''; // add empty cell for week number\n\n if (this.showWeekNumbers || this.showISOWeekNumbers) html += '';\n\n if ((!minDate || minDate.isBefore(calendar.firstDay)) && (!this.linkedCalendars || side == 'left')) {\n html += '';\n } else {\n html += '';\n }\n\n var dateHtml = this.locale.monthNames[calendar[1][1].month()] + calendar[1][1].format(\" YYYY\");\n\n if (this.showDropdowns) {\n var currentMonth = calendar[1][1].month();\n var currentYear = calendar[1][1].year();\n var maxYear = maxDate && maxDate.year() || this.maxYear;\n var minYear = minDate && minDate.year() || this.minYear;\n var inMinYear = currentYear == minYear;\n var inMaxYear = currentYear == maxYear;\n var monthHtml = '\";\n var yearHtml = '';\n dateHtml = monthHtml + yearHtml;\n }\n\n html += '';\n\n if ((!maxDate || maxDate.isAfter(calendar.lastDay)) && (!this.linkedCalendars || side == 'right' || this.singleDatePicker)) {\n html += '';\n } else {\n html += '';\n }\n\n html += '';\n html += ''; // add week number label\n\n if (this.showWeekNumbers || this.showISOWeekNumbers) html += '';\n $.each(this.locale.daysOfWeek, function (index, dayOfWeek) {\n html += '';\n });\n html += '';\n html += '';\n html += ''; //adjust maxDate to reflect the maxSpan setting in order to\n //grey out end dates beyond the maxSpan\n\n if (this.endDate == null && this.maxSpan) {\n var maxLimit = this.startDate.clone().add(this.maxSpan).endOf('day');\n\n if (!maxDate || maxLimit.isBefore(maxDate)) {\n maxDate = maxLimit;\n }\n }\n\n for (var row = 0; row < 6; row++) {\n html += ''; // add week number\n\n if (this.showWeekNumbers) html += '';else if (this.showISOWeekNumbers) html += '';\n\n for (var col = 0; col < 7; col++) {\n var classes = []; //highlight today's date\n\n if (calendar[row][col].isSame(new Date(), \"day\")) classes.push('today'); //highlight weekends\n\n if (calendar[row][col].isoWeekday() > 5) classes.push('weekend'); //grey out the dates in other months displayed at beginning and end of this calendar\n\n if (calendar[row][col].month() != calendar[1][1].month()) classes.push('off', 'ends'); //don't allow selection of dates before the minimum date\n\n if (this.minDate && calendar[row][col].isBefore(this.minDate, 'day')) classes.push('off', 'disabled'); //don't allow selection of dates after the maximum date\n\n if (maxDate && calendar[row][col].isAfter(maxDate, 'day')) classes.push('off', 'disabled'); //don't allow selection of date if a custom function decides it's invalid\n\n if (this.isInvalidDate(calendar[row][col])) classes.push('off', 'disabled'); //highlight the currently selected start date\n\n if (calendar[row][col].format('YYYY-MM-DD') == this.startDate.format('YYYY-MM-DD')) classes.push('active', 'start-date'); //highlight the currently selected end date\n\n if (this.endDate != null && calendar[row][col].format('YYYY-MM-DD') == this.endDate.format('YYYY-MM-DD')) classes.push('active', 'end-date'); //highlight dates in-between the selected dates\n\n if (this.endDate != null && calendar[row][col] > this.startDate && calendar[row][col] < this.endDate) classes.push('in-range'); //apply custom classes for this date\n\n var isCustom = this.isCustomDate(calendar[row][col]);\n\n if (isCustom !== false) {\n if (typeof isCustom === 'string') classes.push(isCustom);else Array.prototype.push.apply(classes, isCustom);\n }\n\n var cname = '',\n disabled = false;\n\n for (var i = 0; i < classes.length; i++) {\n cname += classes[i] + ' ';\n if (classes[i] == 'disabled') disabled = true;\n }\n\n if (!disabled) cname += 'available';\n html += '';\n }\n\n html += '';\n }\n\n html += '';\n html += '
' + dateHtml + '
' + this.locale.weekLabel + '' + dayOfWeek + '
' + calendar[row][0].week() + '' + calendar[row][0].isoWeek() + '' + calendar[row][col].date() + '
';\n this.container.find('.drp-calendar.' + side + ' .calendar-table').html(html);\n },\n renderTimePicker: function renderTimePicker(side) {\n // Don't bother updating the time picker if it's currently disabled\n // because an end date hasn't been clicked yet\n if (side == 'right' && !this.endDate) return;\n var html,\n selected,\n minDate,\n maxDate = this.maxDate;\n if (this.maxSpan && (!this.maxDate || this.startDate.clone().add(this.maxSpan).isBefore(this.maxDate))) maxDate = this.startDate.clone().add(this.maxSpan);\n\n if (side == 'left') {\n selected = this.startDate.clone();\n minDate = this.minDate;\n } else if (side == 'right') {\n selected = this.endDate.clone();\n minDate = this.startDate; //Preserve the time already selected\n\n var timeSelector = this.container.find('.drp-calendar.right .calendar-time');\n\n if (timeSelector.html() != '') {\n selected.hour(!isNaN(selected.hour()) ? selected.hour() : timeSelector.find('.hourselect option:selected').val());\n selected.minute(!isNaN(selected.minute()) ? selected.minute() : timeSelector.find('.minuteselect option:selected').val());\n selected.second(!isNaN(selected.second()) ? selected.second() : timeSelector.find('.secondselect option:selected').val());\n\n if (!this.timePicker24Hour) {\n var ampm = timeSelector.find('.ampmselect option:selected').val();\n if (ampm === 'PM' && selected.hour() < 12) selected.hour(selected.hour() + 12);\n if (ampm === 'AM' && selected.hour() === 12) selected.hour(0);\n }\n }\n\n if (selected.isBefore(this.startDate)) selected = this.startDate.clone();\n if (maxDate && selected.isAfter(maxDate)) selected = maxDate.clone();\n } //\n // hours\n //\n\n\n html = ' '; //\n // minutes\n //\n\n html += ': '; //\n // seconds\n //\n\n if (this.timePickerSeconds) {\n html += ': ';\n } //\n // AM/PM\n //\n\n\n if (!this.timePicker24Hour) {\n html += '';\n }\n\n this.container.find('.drp-calendar.' + side + ' .calendar-time').html(html);\n },\n updateFormInputs: function updateFormInputs() {\n if (this.singleDatePicker || this.endDate && (this.startDate.isBefore(this.endDate) || this.startDate.isSame(this.endDate))) {\n this.container.find('button.applyBtn').removeAttr('disabled');\n } else {\n this.container.find('button.applyBtn').attr('disabled', 'disabled');\n }\n },\n move: function move() {\n var parentOffset = {\n top: 0,\n left: 0\n },\n containerTop;\n var parentRightEdge = $(window).width();\n\n if (!this.parentEl.is('body')) {\n parentOffset = {\n top: this.parentEl.offset().top - this.parentEl.scrollTop(),\n left: this.parentEl.offset().left - this.parentEl.scrollLeft()\n };\n parentRightEdge = this.parentEl[0].clientWidth + this.parentEl.offset().left;\n }\n\n if (this.drops == 'up') containerTop = this.element.offset().top - this.container.outerHeight() - parentOffset.top;else containerTop = this.element.offset().top + this.element.outerHeight() - parentOffset.top; // Force the container to it's actual width\n\n this.container.css({\n top: 0,\n left: 0,\n right: 'auto'\n });\n var containerWidth = this.container.outerWidth();\n this.container[this.drops == 'up' ? 'addClass' : 'removeClass']('drop-up');\n\n if (this.opens == 'left') {\n var containerRight = parentRightEdge - this.element.offset().left - this.element.outerWidth();\n\n if (containerWidth + containerRight > $(window).width()) {\n this.container.css({\n top: containerTop,\n right: 'auto',\n left: 9\n });\n } else {\n this.container.css({\n top: containerTop,\n right: containerRight,\n left: 'auto'\n });\n }\n } else if (this.opens == 'center') {\n var containerLeft = this.element.offset().left - parentOffset.left + this.element.outerWidth() / 2 - containerWidth / 2;\n\n if (containerLeft < 0) {\n this.container.css({\n top: containerTop,\n right: 'auto',\n left: 9\n });\n } else if (containerLeft + containerWidth > $(window).width()) {\n this.container.css({\n top: containerTop,\n left: 'auto',\n right: 0\n });\n } else {\n this.container.css({\n top: containerTop,\n left: containerLeft,\n right: 'auto'\n });\n }\n } else {\n var containerLeft = this.element.offset().left - parentOffset.left;\n\n if (containerLeft + containerWidth > $(window).width()) {\n this.container.css({\n top: containerTop,\n left: 'auto',\n right: 0\n });\n } else {\n this.container.css({\n top: containerTop,\n left: containerLeft,\n right: 'auto'\n });\n }\n }\n },\n show: function show(e) {\n if (this.isShowing) return; // Create a click proxy that is private to this instance of datepicker, for unbinding\n\n this._outsideClickProxy = $.proxy(function (e) {\n this.outsideClick(e);\n }, this); // Bind global datepicker mousedown for hiding and\n\n $(document).on('mousedown.daterangepicker', this._outsideClickProxy) // also support mobile devices\n .on('touchend.daterangepicker', this._outsideClickProxy) // also explicitly play nice with Bootstrap dropdowns, which stopPropagation when clicking them\n .on('click.daterangepicker', '[data-toggle=dropdown]', this._outsideClickProxy) // and also close when focus changes to outside the picker (eg. tabbing between controls)\n .on('focusin.daterangepicker', this._outsideClickProxy); // Reposition the picker if the window is resized while it's open\n\n $(window).on('resize.daterangepicker', $.proxy(function (e) {\n this.move(e);\n }, this));\n this.oldStartDate = this.startDate.clone();\n this.oldEndDate = this.endDate.clone();\n this.previousRightTime = this.endDate.clone();\n this.updateView();\n this.container.show();\n this.move();\n this.element.trigger('show.daterangepicker', this);\n this.isShowing = true;\n },\n hide: function hide(e) {\n if (!this.isShowing) return; //incomplete date selection, revert to last values\n\n if (!this.endDate) {\n this.startDate = this.oldStartDate.clone();\n this.endDate = this.oldEndDate.clone();\n } //if a new date range was selected, invoke the user callback function\n\n\n if (!this.startDate.isSame(this.oldStartDate) || !this.endDate.isSame(this.oldEndDate)) this.callback(this.startDate.clone(), this.endDate.clone(), this.chosenLabel); //if picker is attached to a text input, update it\n\n this.updateElement();\n $(document).off('.daterangepicker');\n $(window).off('.daterangepicker');\n this.container.hide();\n this.element.trigger('hide.daterangepicker', this);\n this.isShowing = false;\n },\n toggle: function toggle(e) {\n if (this.isShowing) {\n this.hide();\n } else {\n this.show();\n }\n },\n outsideClick: function outsideClick(e) {\n var target = $(e.target); // if the page is clicked anywhere except within the daterangerpicker/button\n // itself then call this.hide()\n\n if ( // ie modal dialog fix\n e.type == \"focusin\" || target.closest(this.element).length || target.closest(this.container).length || target.closest('.calendar-table').length) return;\n this.hide();\n this.element.trigger('outsideClick.daterangepicker', this);\n },\n showCalendars: function showCalendars() {\n this.container.addClass('show-calendar');\n this.move();\n this.element.trigger('showCalendar.daterangepicker', this);\n },\n hideCalendars: function hideCalendars() {\n this.container.removeClass('show-calendar');\n this.element.trigger('hideCalendar.daterangepicker', this);\n },\n clickRange: function clickRange(e) {\n var label = e.target.getAttribute('data-range-key');\n this.chosenLabel = label;\n\n if (label == this.locale.customRangeLabel) {\n this.showCalendars();\n } else {\n var dates = this.ranges[label];\n this.startDate = dates[0];\n this.endDate = dates[1];\n\n if (!this.timePicker) {\n this.startDate.startOf('day');\n this.endDate.endOf('day');\n }\n\n if (!this.alwaysShowCalendars) this.hideCalendars();\n this.clickApply();\n }\n },\n clickPrev: function clickPrev(e) {\n var cal = $(e.target).parents('.drp-calendar');\n\n if (cal.hasClass('left')) {\n this.leftCalendar.month.subtract(1, 'month');\n if (this.linkedCalendars) this.rightCalendar.month.subtract(1, 'month');\n } else {\n this.rightCalendar.month.subtract(1, 'month');\n }\n\n this.updateCalendars();\n },\n clickNext: function clickNext(e) {\n var cal = $(e.target).parents('.drp-calendar');\n\n if (cal.hasClass('left')) {\n this.leftCalendar.month.add(1, 'month');\n } else {\n this.rightCalendar.month.add(1, 'month');\n if (this.linkedCalendars) this.leftCalendar.month.add(1, 'month');\n }\n\n this.updateCalendars();\n },\n hoverDate: function hoverDate(e) {\n //ignore dates that can't be selected\n if (!$(e.target).hasClass('available')) return;\n var title = $(e.target).attr('data-title');\n var row = title.substr(1, 1);\n var col = title.substr(3, 1);\n var cal = $(e.target).parents('.drp-calendar');\n var date = cal.hasClass('left') ? this.leftCalendar.calendar[row][col] : this.rightCalendar.calendar[row][col]; //highlight the dates between the start date and the date being hovered as a potential end date\n\n var leftCalendar = this.leftCalendar;\n var rightCalendar = this.rightCalendar;\n var startDate = this.startDate;\n\n if (!this.endDate) {\n this.container.find('.drp-calendar tbody td').each(function (index, el) {\n //skip week numbers, only look at dates\n if ($(el).hasClass('week')) return;\n var title = $(el).attr('data-title');\n var row = title.substr(1, 1);\n var col = title.substr(3, 1);\n var cal = $(el).parents('.drp-calendar');\n var dt = cal.hasClass('left') ? leftCalendar.calendar[row][col] : rightCalendar.calendar[row][col];\n\n if (dt.isAfter(startDate) && dt.isBefore(date) || dt.isSame(date, 'day')) {\n $(el).addClass('in-range');\n } else {\n $(el).removeClass('in-range');\n }\n });\n }\n },\n clickDate: function clickDate(e) {\n if (!$(e.target).hasClass('available')) return;\n var title = $(e.target).attr('data-title');\n var row = title.substr(1, 1);\n var col = title.substr(3, 1);\n var cal = $(e.target).parents('.drp-calendar');\n var date = cal.hasClass('left') ? this.leftCalendar.calendar[row][col] : this.rightCalendar.calendar[row][col]; //\n // this function needs to do a few things:\n // * alternate between selecting a start and end date for the range,\n // * if the time picker is enabled, apply the hour/minute/second from the select boxes to the clicked date\n // * if autoapply is enabled, and an end date was chosen, apply the selection\n // * if single date picker mode, and time picker isn't enabled, apply the selection immediately\n // * if one of the inputs above the calendars was focused, cancel that manual input\n //\n\n if (this.endDate || date.isBefore(this.startDate, 'day')) {\n //picking start\n if (this.timePicker) {\n var hour = parseInt(this.container.find('.left .hourselect').val(), 10);\n\n if (!this.timePicker24Hour) {\n var ampm = this.container.find('.left .ampmselect').val();\n if (ampm === 'PM' && hour < 12) hour += 12;\n if (ampm === 'AM' && hour === 12) hour = 0;\n }\n\n var minute = parseInt(this.container.find('.left .minuteselect').val(), 10);\n\n if (isNaN(minute)) {\n minute = parseInt(this.container.find('.left .minuteselect option:last').val(), 10);\n }\n\n var second = this.timePickerSeconds ? parseInt(this.container.find('.left .secondselect').val(), 10) : 0;\n date = date.clone().hour(hour).minute(minute).second(second);\n }\n\n this.endDate = null;\n this.setStartDate(date.clone());\n } else if (!this.endDate && date.isBefore(this.startDate)) {\n //special case: clicking the same date for start/end,\n //but the time of the end date is before the start date\n this.setEndDate(this.startDate.clone());\n } else {\n // picking end\n if (this.timePicker) {\n var hour = parseInt(this.container.find('.right .hourselect').val(), 10);\n\n if (!this.timePicker24Hour) {\n var ampm = this.container.find('.right .ampmselect').val();\n if (ampm === 'PM' && hour < 12) hour += 12;\n if (ampm === 'AM' && hour === 12) hour = 0;\n }\n\n var minute = parseInt(this.container.find('.right .minuteselect').val(), 10);\n\n if (isNaN(minute)) {\n minute = parseInt(this.container.find('.right .minuteselect option:last').val(), 10);\n }\n\n var second = this.timePickerSeconds ? parseInt(this.container.find('.right .secondselect').val(), 10) : 0;\n date = date.clone().hour(hour).minute(minute).second(second);\n }\n\n this.setEndDate(date.clone());\n\n if (this.autoApply) {\n this.calculateChosenLabel();\n this.clickApply();\n }\n }\n\n if (this.singleDatePicker) {\n this.setEndDate(this.startDate);\n if (!this.timePicker) this.clickApply();\n }\n\n this.updateView(); //This is to cancel the blur event handler if the mouse was in one of the inputs\n\n e.stopPropagation();\n },\n calculateChosenLabel: function calculateChosenLabel() {\n var customRange = true;\n var i = 0;\n\n for (var range in this.ranges) {\n if (this.timePicker) {\n var format = this.timePickerSeconds ? \"YYYY-MM-DD HH:mm:ss\" : \"YYYY-MM-DD HH:mm\"; //ignore times when comparing dates if time picker seconds is not enabled\n\n if (this.startDate.format(format) == this.ranges[range][0].format(format) && this.endDate.format(format) == this.ranges[range][1].format(format)) {\n customRange = false;\n this.chosenLabel = this.container.find('.ranges li:eq(' + i + ')').addClass('active').attr('data-range-key');\n break;\n }\n } else {\n //ignore times when comparing dates if time picker is not enabled\n if (this.startDate.format('YYYY-MM-DD') == this.ranges[range][0].format('YYYY-MM-DD') && this.endDate.format('YYYY-MM-DD') == this.ranges[range][1].format('YYYY-MM-DD')) {\n customRange = false;\n this.chosenLabel = this.container.find('.ranges li:eq(' + i + ')').addClass('active').attr('data-range-key');\n break;\n }\n }\n\n i++;\n }\n\n if (customRange) {\n if (this.showCustomRangeLabel) {\n this.chosenLabel = this.container.find('.ranges li:last').addClass('active').attr('data-range-key');\n } else {\n this.chosenLabel = null;\n }\n\n this.showCalendars();\n }\n },\n clickApply: function clickApply(e) {\n this.hide();\n this.element.trigger('apply.daterangepicker', this);\n },\n clickCancel: function clickCancel(e) {\n this.startDate = this.oldStartDate;\n this.endDate = this.oldEndDate;\n this.hide();\n this.element.trigger('cancel.daterangepicker', this);\n },\n monthOrYearChanged: function monthOrYearChanged(e) {\n var isLeft = $(e.target).closest('.drp-calendar').hasClass('left'),\n leftOrRight = isLeft ? 'left' : 'right',\n cal = this.container.find('.drp-calendar.' + leftOrRight); // Month must be Number for new moment versions\n\n var month = parseInt(cal.find('.monthselect').val(), 10);\n var year = cal.find('.yearselect').val();\n\n if (!isLeft) {\n if (year < this.startDate.year() || year == this.startDate.year() && month < this.startDate.month()) {\n month = this.startDate.month();\n year = this.startDate.year();\n }\n }\n\n if (this.minDate) {\n if (year < this.minDate.year() || year == this.minDate.year() && month < this.minDate.month()) {\n month = this.minDate.month();\n year = this.minDate.year();\n }\n }\n\n if (this.maxDate) {\n if (year > this.maxDate.year() || year == this.maxDate.year() && month > this.maxDate.month()) {\n month = this.maxDate.month();\n year = this.maxDate.year();\n }\n }\n\n if (isLeft) {\n this.leftCalendar.month.month(month).year(year);\n if (this.linkedCalendars) this.rightCalendar.month = this.leftCalendar.month.clone().add(1, 'month');\n } else {\n this.rightCalendar.month.month(month).year(year);\n if (this.linkedCalendars) this.leftCalendar.month = this.rightCalendar.month.clone().subtract(1, 'month');\n }\n\n this.updateCalendars();\n },\n timeChanged: function timeChanged(e) {\n var cal = $(e.target).closest('.drp-calendar'),\n isLeft = cal.hasClass('left');\n var hour = parseInt(cal.find('.hourselect').val(), 10);\n var minute = parseInt(cal.find('.minuteselect').val(), 10);\n\n if (isNaN(minute)) {\n minute = parseInt(cal.find('.minuteselect option:last').val(), 10);\n }\n\n var second = this.timePickerSeconds ? parseInt(cal.find('.secondselect').val(), 10) : 0;\n\n if (!this.timePicker24Hour) {\n var ampm = cal.find('.ampmselect').val();\n if (ampm === 'PM' && hour < 12) hour += 12;\n if (ampm === 'AM' && hour === 12) hour = 0;\n }\n\n if (isLeft) {\n var start = this.startDate.clone();\n start.hour(hour);\n start.minute(minute);\n start.second(second);\n this.setStartDate(start);\n\n if (this.singleDatePicker) {\n this.endDate = this.startDate.clone();\n } else if (this.endDate && this.endDate.format('YYYY-MM-DD') == start.format('YYYY-MM-DD') && this.endDate.isBefore(start)) {\n this.setEndDate(start.clone());\n }\n } else if (this.endDate) {\n var end = this.endDate.clone();\n end.hour(hour);\n end.minute(minute);\n end.second(second);\n this.setEndDate(end);\n } //update the calendars so all clickable dates reflect the new time component\n\n\n this.updateCalendars(); //update the form inputs above the calendars with the new time\n\n this.updateFormInputs(); //re-render the time pickers because changing one selection can affect what's enabled in another\n\n this.renderTimePicker('left');\n this.renderTimePicker('right');\n },\n elementChanged: function elementChanged() {\n if (!this.element.is('input')) return;\n if (!this.element.val().length) return;\n var dateString = this.element.val().split(this.locale.separator),\n start = null,\n end = null;\n\n if (dateString.length === 2) {\n start = moment(dateString[0], this.locale.format);\n end = moment(dateString[1], this.locale.format);\n }\n\n if (this.singleDatePicker || start === null || end === null) {\n start = moment(this.element.val(), this.locale.format);\n end = start;\n }\n\n if (!start.isValid() || !end.isValid()) return;\n this.setStartDate(start);\n this.setEndDate(end);\n this.updateView();\n },\n keydown: function keydown(e) {\n //hide on tab or enter\n if (e.keyCode === 9 || e.keyCode === 13) {\n this.hide();\n } //hide on esc and prevent propagation\n\n\n if (e.keyCode === 27) {\n e.preventDefault();\n e.stopPropagation();\n this.hide();\n }\n },\n updateElement: function updateElement() {\n if (this.element.is('input') && this.autoUpdateInput) {\n var newValue = this.startDate.format(this.locale.format);\n\n if (!this.singleDatePicker) {\n newValue += this.locale.separator + this.endDate.format(this.locale.format);\n }\n\n if (newValue !== this.element.val()) {\n this.element.val(newValue).trigger('change');\n }\n }\n },\n remove: function remove() {\n this.container.remove();\n this.element.off('.daterangepicker');\n this.element.removeData();\n }\n };\n\n $.fn.daterangepicker = function (options, callback) {\n var implementOptions = $.extend(true, {}, $.fn.daterangepicker.defaultOptions, options);\n this.each(function () {\n var el = $(this);\n if (el.data('daterangepicker')) el.data('daterangepicker').remove();\n el.data('daterangepicker', new DateRangePicker(el, implementOptions, callback));\n });\n return this;\n };\n\n return DateRangePicker;\n});","require('bootstrap-material-datetimepicker/js/bootstrap-material-datetimepicker.js');\nrequire('./_extension.js');\n","(function ($, moment) {\n var pluginName = \"bootstrapMaterialDatePicker\";\n var pluginDataName = \"plugin_\" + pluginName;\n moment.locale('en');\n\n function Plugin(element, options) {\n this.currentView = 0;\n this.minDate;\n this.maxDate;\n this._attachedEvents = [];\n this.element = element;\n this.$element = $(element);\n this.params = {\n date: true,\n time: true,\n format: 'YYYY-MM-DD',\n minDate: null,\n maxDate: null,\n currentDate: null,\n lang: 'en',\n weekStart: 0,\n disabledDays: [],\n shortTime: false,\n clearButton: false,\n nowButton: false,\n cancelText: 'Cancel',\n okText: 'OK',\n clearText: 'Clear',\n nowText: 'Now',\n switchOnClick: false,\n triggerEvent: 'focus',\n monthPicker: false,\n year: true\n };\n this.params = $.fn.extend(this.params, options);\n this.name = \"dtp_\" + this.setName();\n this.$element.attr(\"data-dtp\", this.name);\n moment.locale(this.params.lang);\n this.init();\n }\n\n $.fn[pluginName] = function (options, p) {\n this.each(function () {\n if (!$.data(this, pluginDataName)) {\n $.data(this, pluginDataName, new Plugin(this, options));\n } else {\n if (typeof $.data(this, pluginDataName)[options] === 'function') {\n $.data(this, pluginDataName)[options](p);\n }\n\n if (options === 'destroy') {\n delete $.data(this, pluginDataName);\n }\n }\n });\n return this;\n };\n\n Plugin.prototype = {\n init: function init() {\n this.initDays();\n this.initDates();\n this.initTemplate();\n this.initButtons();\n\n this._attachEvent($(window), 'resize', this._centerBox.bind(this));\n\n this._attachEvent(this.$dtpElement.find('.dtp-content'), 'click', this._onElementClick.bind(this));\n\n this._attachEvent(this.$dtpElement, 'click', this._onBackgroundClick.bind(this));\n\n this._attachEvent(this.$dtpElement.find('.dtp-close > a'), 'click', this._onCloseClick.bind(this));\n\n this._attachEvent(this.$element, this.params.triggerEvent, this._fireCalendar.bind(this));\n },\n initDays: function initDays() {\n this.days = [];\n\n for (var i = this.params.weekStart; this.days.length < 7; i++) {\n if (i > 6) {\n i = 0;\n }\n\n this.days.push(i.toString());\n }\n },\n initDates: function initDates() {\n if (this.$element.val().length > 0) {\n if (typeof this.params.format !== 'undefined' && this.params.format !== null) {\n this.currentDate = moment(this.$element.val(), this.params.format).locale(this.params.lang);\n } else {\n this.currentDate = moment(this.$element.val()).locale(this.params.lang);\n }\n } else {\n if (typeof this.$element.attr('value') !== 'undefined' && this.$element.attr('value') !== null && this.$element.attr('value') !== \"\") {\n if (typeof this.$element.attr('value') === 'string') {\n if (typeof this.params.format !== 'undefined' && this.params.format !== null) {\n this.currentDate = moment(this.$element.attr('value'), this.params.format).locale(this.params.lang);\n } else {\n this.currentDate = moment(this.$element.attr('value')).locale(this.params.lang);\n }\n }\n } else {\n if (typeof this.params.currentDate !== 'undefined' && this.params.currentDate !== null) {\n if (typeof this.params.currentDate === 'string') {\n if (typeof this.params.format !== 'undefined' && this.params.format !== null) {\n this.currentDate = moment(this.params.currentDate, this.params.format).locale(this.params.lang);\n } else {\n this.currentDate = moment(this.params.currentDate).locale(this.params.lang);\n }\n } else {\n if (typeof this.params.currentDate.isValid === 'undefined' || typeof this.params.currentDate.isValid !== 'function') {\n var x = this.params.currentDate.getTime();\n this.currentDate = moment(x, \"x\").locale(this.params.lang);\n } else {\n this.currentDate = this.params.currentDate;\n }\n }\n\n this.$element.val(this.currentDate.format(this.params.format));\n } else this.currentDate = moment();\n }\n }\n\n if (typeof this.params.minDate !== 'undefined' && this.params.minDate !== null) {\n if (typeof this.params.minDate === 'string') {\n if (typeof this.params.format !== 'undefined' && this.params.format !== null) {\n this.minDate = moment(this.params.minDate, this.params.format).locale(this.params.lang);\n } else {\n this.minDate = moment(this.params.minDate).locale(this.params.lang);\n }\n } else {\n if (typeof this.params.minDate.isValid === 'undefined' || typeof this.params.minDate.isValid !== 'function') {\n var x = this.params.minDate.getTime();\n this.minDate = moment(x, \"x\").locale(this.params.lang);\n } else {\n this.minDate = this.params.minDate;\n }\n }\n } else if (this.params.minDate === null) {\n this.minDate = null;\n }\n\n if (typeof this.params.maxDate !== 'undefined' && this.params.maxDate !== null) {\n if (typeof this.params.maxDate === 'string') {\n if (typeof this.params.format !== 'undefined' && this.params.format !== null) {\n this.maxDate = moment(this.params.maxDate, this.params.format).locale(this.params.lang);\n } else {\n this.maxDate = moment(this.params.maxDate).locale(this.params.lang);\n }\n } else {\n if (typeof this.params.maxDate.isValid === 'undefined' || typeof this.params.maxDate.isValid !== 'function') {\n var x = this.params.maxDate.getTime();\n this.maxDate = moment(x, \"x\").locale(this.params.lang);\n } else {\n this.maxDate = this.params.maxDate;\n }\n }\n } else if (this.params.maxDate === null) {\n this.maxDate = null;\n }\n\n if (!this.isAfterMinDate(this.currentDate)) {\n this.currentDate = moment(this.minDate);\n }\n\n if (!this.isBeforeMaxDate(this.currentDate)) {\n this.currentDate = moment(this.maxDate);\n }\n },\n initTemplate: function initTemplate() {\n var yearPicker = \"\";\n var y = this.currentDate.year();\n\n for (var i = y - 3; i < y + 4; i++) {\n yearPicker += '
' + i + '
';\n }\n\n this.midYear = y;\n var yearHtml = '
' + '
keyboard_arrow_up
' + yearPicker + '
keyboard_arrow_down
' + '
';\n this.template = '
' + '
' + '
' + '
' + '
Lundi
' + '' + '
' + '
' + '
' + '
' + 'chevron_left' + '
' + '
MAR
' + '
' + 'chevron_right' + '
' + '
' + '
' + '
13
' + '
' + '
' + 'chevron_left' + '
' + '
2014
' + '
' + 'chevron_right' + '
' + '
' + '
' + '
' + '
' + '
23:55
' + '
' + '
' + '
' + '
' + '
' + '
' + 'AM' + '
' + '
' + '
' + 'PM' + '
' + '
' + '
' + '
' + '
' + '
' + yearHtml + '
' + '
' + '
' + '' + '' + '' + '' + '
' + '
' + '
' + '
';\n\n if ($('body').find(\"#\" + this.name).length <= 0) {\n $('body').append(this.template);\n if (this) this.dtpElement = $('body').find(\"#\" + this.name);\n this.$dtpElement = $(this.dtpElement);\n }\n },\n initButtons: function initButtons() {\n this._attachEvent(this.$dtpElement.find('.dtp-btn-cancel'), 'click', this._onCancelClick.bind(this));\n\n this._attachEvent(this.$dtpElement.find('.dtp-btn-ok'), 'click', this._onOKClick.bind(this));\n\n this._attachEvent(this.$dtpElement.find('a.dtp-select-month-before'), 'click', this._onMonthBeforeClick.bind(this));\n\n this._attachEvent(this.$dtpElement.find('a.dtp-select-month-after'), 'click', this._onMonthAfterClick.bind(this));\n\n this._attachEvent(this.$dtpElement.find('a.dtp-select-year-before'), 'click', this._onYearBeforeClick.bind(this));\n\n this._attachEvent(this.$dtpElement.find('a.dtp-select-year-after'), 'click', this._onYearAfterClick.bind(this));\n\n this._attachEvent(this.$dtpElement.find('.dtp-actual-year'), 'click', this._onActualYearClick.bind(this));\n\n this._attachEvent(this.$dtpElement.find('a.dtp-select-year-range.before'), 'click', this._onYearRangeBeforeClick.bind(this));\n\n this._attachEvent(this.$dtpElement.find('a.dtp-select-year-range.after'), 'click', this._onYearRangeAfterClick.bind(this));\n\n this._attachEvent(this.$dtpElement.find('div.year-picker-item'), 'click', this._onYearItemClick.bind(this));\n\n if (this.params.clearButton === true) {\n this._attachEvent(this.$dtpElement.find('.dtp-btn-clear'), 'click', this._onClearClick.bind(this));\n\n this.$dtpElement.find('.dtp-btn-clear').removeClass('hidden');\n }\n\n if (this.params.nowButton === true) {\n this._attachEvent(this.$dtpElement.find('.dtp-btn-now'), 'click', this._onNowClick.bind(this));\n\n this.$dtpElement.find('.dtp-btn-now').removeClass('hidden');\n }\n\n if (this.params.nowButton === true && this.params.clearButton === true) {\n this.$dtpElement.find('.dtp-btn-clear, .dtp-btn-now, .dtp-btn-cancel, .dtp-btn-ok').addClass('btn-xs');\n } else if (this.params.nowButton === true || this.params.clearButton === true) {\n this.$dtpElement.find('.dtp-btn-clear, .dtp-btn-now, .dtp-btn-cancel, .dtp-btn-ok').addClass('btn-sm');\n }\n },\n initMeridienButtons: function initMeridienButtons() {\n this.$dtpElement.find('a.dtp-meridien-am').off('click').on('click', this._onSelectAM.bind(this));\n this.$dtpElement.find('a.dtp-meridien-pm').off('click').on('click', this._onSelectPM.bind(this));\n },\n initDate: function initDate(d) {\n this.currentView = 0;\n\n if (this.params.monthPicker === false) {\n this.$dtpElement.find('.dtp-picker-calendar').removeClass('hidden');\n }\n\n this.$dtpElement.find('.dtp-picker-datetime').addClass('hidden');\n this.$dtpElement.find('.dtp-picker-year').addClass('hidden');\n\n var _date = typeof this.currentDate !== 'undefined' && this.currentDate !== null ? this.currentDate : null;\n\n var _calendar = this.generateCalendar(this.currentDate);\n\n if (typeof _calendar.week !== 'undefined' && typeof _calendar.days !== 'undefined') {\n var _template = this.constructHTMLCalendar(_date, _calendar);\n\n this.$dtpElement.find('a.dtp-select-day').off('click');\n this.$dtpElement.find('.dtp-picker-calendar').html(_template);\n this.$dtpElement.find('a.dtp-select-day').on('click', this._onSelectDate.bind(this));\n this.toggleButtons(_date);\n }\n\n this._centerBox();\n\n this.showDate(_date);\n },\n initHours: function initHours() {\n this.currentView = 1;\n this.showTime(this.currentDate);\n this.initMeridienButtons();\n\n if (this.currentDate.hour() < 12) {\n this.$dtpElement.find('a.dtp-meridien-am').click();\n } else {\n this.$dtpElement.find('a.dtp-meridien-pm').click();\n }\n\n var hFormat = this.params.shortTime ? 'h' : 'H';\n this.$dtpElement.find('.dtp-picker-datetime').removeClass('hidden');\n this.$dtpElement.find('.dtp-picker-calendar').addClass('hidden');\n this.$dtpElement.find('.dtp-picker-year').addClass('hidden');\n var svgClockElement = this.createSVGClock(true);\n\n for (var i = 0; i < 12; i++) {\n var x = -(162 * Math.sin(-Math.PI * 2 * (i / 12)));\n var y = -(162 * Math.cos(-Math.PI * 2 * (i / 12)));\n var fill = this.currentDate.format(hFormat) == i ? \"#8BC34A\" : 'transparent';\n var color = this.currentDate.format(hFormat) == i ? \"#fff\" : '#000';\n var svgHourCircle = this.createSVGElement(\"circle\", {\n 'id': 'h-' + i,\n 'class': 'dtp-select-hour',\n 'style': 'cursor:pointer',\n r: '30',\n cx: x,\n cy: y,\n fill: fill,\n 'data-hour': i\n });\n var svgHourText = this.createSVGElement(\"text\", {\n 'id': 'th-' + i,\n 'class': 'dtp-select-hour-text',\n 'text-anchor': 'middle',\n 'style': 'cursor:pointer',\n 'font-weight': 'bold',\n 'font-size': '20',\n x: x,\n y: y + 7,\n fill: color,\n 'data-hour': i\n });\n svgHourText.textContent = i === 0 ? this.params.shortTime ? 12 : i : i;\n\n if (!this.toggleTime(i, true)) {\n svgHourCircle.className += \" disabled\";\n svgHourText.className += \" disabled\";\n svgHourText.setAttribute('fill', '#bdbdbd');\n } else {\n svgHourCircle.addEventListener('click', this._onSelectHour.bind(this));\n svgHourText.addEventListener('click', this._onSelectHour.bind(this));\n }\n\n svgClockElement.appendChild(svgHourCircle);\n svgClockElement.appendChild(svgHourText);\n }\n\n if (!this.params.shortTime) {\n for (var i = 0; i < 12; i++) {\n var x = -(110 * Math.sin(-Math.PI * 2 * (i / 12)));\n var y = -(110 * Math.cos(-Math.PI * 2 * (i / 12)));\n var fill = this.currentDate.format(hFormat) == i + 12 ? \"#8BC34A\" : 'transparent';\n var color = this.currentDate.format(hFormat) == i + 12 ? \"#fff\" : '#000';\n var svgHourCircle = this.createSVGElement(\"circle\", {\n 'id': 'h-' + (i + 12),\n 'class': 'dtp-select-hour',\n 'style': 'cursor:pointer',\n r: '30',\n cx: x,\n cy: y,\n fill: fill,\n 'data-hour': i + 12\n });\n var svgHourText = this.createSVGElement(\"text\", {\n 'id': 'th-' + (i + 12),\n 'class': 'dtp-select-hour-text',\n 'text-anchor': 'middle',\n 'style': 'cursor:pointer',\n 'font-weight': 'bold',\n 'font-size': '22',\n x: x,\n y: y + 7,\n fill: color,\n 'data-hour': i + 12\n });\n svgHourText.textContent = i + 12;\n\n if (!this.toggleTime(i + 12, true)) {\n svgHourCircle.className += \" disabled\";\n svgHourText.className += \" disabled\";\n svgHourText.setAttribute('fill', '#bdbdbd');\n } else {\n svgHourCircle.addEventListener('click', this._onSelectHour.bind(this));\n svgHourText.addEventListener('click', this._onSelectHour.bind(this));\n }\n\n svgClockElement.appendChild(svgHourCircle);\n svgClockElement.appendChild(svgHourText);\n }\n\n this.$dtpElement.find('a.dtp-meridien-am').addClass('hidden');\n this.$dtpElement.find('a.dtp-meridien-pm').addClass('hidden');\n }\n\n this._centerBox();\n },\n initMinutes: function initMinutes() {\n this.currentView = 2;\n this.showTime(this.currentDate);\n this.initMeridienButtons();\n\n if (this.currentDate.hour() < 12) {\n this.$dtpElement.find('a.dtp-meridien-am').click();\n } else {\n this.$dtpElement.find('a.dtp-meridien-pm').click();\n }\n\n this.$dtpElement.find('.dtp-picker-year').addClass('hidden');\n this.$dtpElement.find('.dtp-picker-calendar').addClass('hidden');\n this.$dtpElement.find('.dtp-picker-datetime').removeClass('hidden');\n var svgClockElement = this.createSVGClock(false);\n\n for (var i = 0; i < 60; i++) {\n var s = i % 5 === 0 ? 162 : 158;\n var r = i % 5 === 0 ? 30 : 20;\n var x = -(s * Math.sin(-Math.PI * 2 * (i / 60)));\n var y = -(s * Math.cos(-Math.PI * 2 * (i / 60)));\n var color = this.currentDate.format(\"m\") == i ? \"#8BC34A\" : 'transparent';\n var svgMinuteCircle = this.createSVGElement(\"circle\", {\n 'id': 'm-' + i,\n 'class': 'dtp-select-minute',\n 'style': 'cursor:pointer',\n r: r,\n cx: x,\n cy: y,\n fill: color,\n 'data-minute': i\n });\n\n if (!this.toggleTime(i, false)) {\n svgMinuteCircle.className += \" disabled\";\n } else {\n svgMinuteCircle.addEventListener('click', this._onSelectMinute.bind(this));\n }\n\n svgClockElement.appendChild(svgMinuteCircle);\n }\n\n for (var i = 0; i < 60; i++) {\n if (i % 5 === 0) {\n var x = -(162 * Math.sin(-Math.PI * 2 * (i / 60)));\n var y = -(162 * Math.cos(-Math.PI * 2 * (i / 60)));\n var color = this.currentDate.format(\"m\") == i ? \"#fff\" : '#000';\n var svgMinuteText = this.createSVGElement(\"text\", {\n 'id': 'tm-' + i,\n 'class': 'dtp-select-minute-text',\n 'text-anchor': 'middle',\n 'style': 'cursor:pointer',\n 'font-weight': 'bold',\n 'font-size': '20',\n x: x,\n y: y + 7,\n fill: color,\n 'data-minute': i\n });\n svgMinuteText.textContent = i;\n\n if (!this.toggleTime(i, false)) {\n svgMinuteText.className += \" disabled\";\n svgMinuteText.setAttribute('fill', '#bdbdbd');\n } else {\n svgMinuteText.addEventListener('click', this._onSelectMinute.bind(this));\n }\n\n svgClockElement.appendChild(svgMinuteText);\n }\n }\n\n this._centerBox();\n },\n animateHands: function animateHands() {\n var H = this.currentDate.hour();\n var M = this.currentDate.minute();\n var hh = this.$dtpElement.find('.hour-hand');\n hh[0].setAttribute('transform', \"rotate(\" + 360 * H / 12 + \")\");\n var mh = this.$dtpElement.find('.minute-hand');\n mh[0].setAttribute('transform', \"rotate(\" + 360 * M / 60 + \")\");\n },\n createSVGClock: function createSVGClock(isHour) {\n var hl = this.params.shortTime ? -120 : -90;\n var svgElement = this.createSVGElement(\"svg\", {\n class: 'svg-clock',\n viewBox: '0,0,400,400'\n });\n var svgGElement = this.createSVGElement(\"g\", {\n transform: 'translate(200,200) '\n });\n var svgClockFace = this.createSVGElement(\"circle\", {\n r: '192',\n fill: '#eee',\n stroke: '#bdbdbd',\n 'stroke-width': 2\n });\n var svgClockCenter = this.createSVGElement(\"circle\", {\n r: '15',\n fill: '#757575'\n });\n svgGElement.appendChild(svgClockFace);\n\n if (isHour) {\n var svgMinuteHand = this.createSVGElement(\"line\", {\n class: 'minute-hand',\n x1: 0,\n y1: 0,\n x2: 0,\n y2: -150,\n stroke: '#bdbdbd',\n 'stroke-width': 2\n });\n var svgHourHand = this.createSVGElement(\"line\", {\n class: 'hour-hand',\n x1: 0,\n y1: 0,\n x2: 0,\n y2: hl,\n stroke: '#8BC34A',\n 'stroke-width': 8\n });\n svgGElement.appendChild(svgMinuteHand);\n svgGElement.appendChild(svgHourHand);\n } else {\n var svgMinuteHand = this.createSVGElement(\"line\", {\n class: 'minute-hand',\n x1: 0,\n y1: 0,\n x2: 0,\n y2: -150,\n stroke: '#8BC34A',\n 'stroke-width': 2\n });\n var svgHourHand = this.createSVGElement(\"line\", {\n class: 'hour-hand',\n x1: 0,\n y1: 0,\n x2: 0,\n y2: hl,\n stroke: '#bdbdbd',\n 'stroke-width': 8\n });\n svgGElement.appendChild(svgHourHand);\n svgGElement.appendChild(svgMinuteHand);\n }\n\n svgGElement.appendChild(svgClockCenter);\n svgElement.appendChild(svgGElement);\n this.$dtpElement.find(\"#dtp-svg-clock\").empty();\n this.$dtpElement.find(\"#dtp-svg-clock\")[0].appendChild(svgElement);\n this.animateHands();\n return svgGElement;\n },\n createSVGElement: function createSVGElement(tag, attrs) {\n var el = document.createElementNS('http://www.w3.org/2000/svg', tag);\n\n for (var k in attrs) {\n el.setAttribute(k, attrs[k]);\n }\n\n return el;\n },\n isAfterMinDate: function isAfterMinDate(date, checkHour, checkMinute) {\n var _return = true;\n\n if (typeof this.minDate !== 'undefined' && this.minDate !== null) {\n var _minDate = moment(this.minDate);\n\n var _date = moment(date);\n\n if (!checkHour && !checkMinute) {\n _minDate.hour(0);\n\n _minDate.minute(0);\n\n _date.hour(0);\n\n _date.minute(0);\n }\n\n _minDate.second(0);\n\n _date.second(0);\n\n _minDate.millisecond(0);\n\n _date.millisecond(0);\n\n if (!checkMinute) {\n _date.minute(0);\n\n _minDate.minute(0);\n\n _return = parseInt(_date.format(\"X\")) >= parseInt(_minDate.format(\"X\"));\n } else {\n _return = parseInt(_date.format(\"X\")) >= parseInt(_minDate.format(\"X\"));\n }\n }\n\n return _return;\n },\n isBeforeMaxDate: function isBeforeMaxDate(date, checkTime, checkMinute) {\n var _return = true;\n\n if (typeof this.maxDate !== 'undefined' && this.maxDate !== null) {\n var _maxDate = moment(this.maxDate);\n\n var _date = moment(date);\n\n if (!checkTime && !checkMinute) {\n _maxDate.hour(0);\n\n _maxDate.minute(0);\n\n _date.hour(0);\n\n _date.minute(0);\n }\n\n _maxDate.second(0);\n\n _date.second(0);\n\n _maxDate.millisecond(0);\n\n _date.millisecond(0);\n\n if (!checkMinute) {\n _date.minute(0);\n\n _maxDate.minute(0);\n\n _return = parseInt(_date.format(\"X\")) <= parseInt(_maxDate.format(\"X\"));\n } else {\n _return = parseInt(_date.format(\"X\")) <= parseInt(_maxDate.format(\"X\"));\n }\n }\n\n return _return;\n },\n rotateElement: function rotateElement(el, deg) {\n $(el).css({\n WebkitTransform: 'rotate(' + deg + 'deg)',\n '-moz-transform': 'rotate(' + deg + 'deg)'\n });\n },\n showDate: function showDate(date) {\n if (date) {\n this.$dtpElement.find('.dtp-actual-day').html(date.locale(this.params.lang).format('dddd'));\n this.$dtpElement.find('.dtp-actual-month').html(date.locale(this.params.lang).format('MMM').toUpperCase());\n this.$dtpElement.find('.dtp-actual-num').html(date.locale(this.params.lang).format('DD'));\n this.$dtpElement.find('.dtp-actual-year').html(date.locale(this.params.lang).format('YYYY'));\n }\n },\n showTime: function showTime(date) {\n if (date) {\n var minutes = date.minute();\n var content = (this.params.shortTime ? date.format('hh') : date.format('HH')) + ':' + (minutes.toString().length == 2 ? minutes : '0' + minutes) + (this.params.shortTime ? ' ' + date.format('A') : '');\n if (this.params.date) this.$dtpElement.find('.dtp-actual-time').html(content);else {\n if (this.params.shortTime) this.$dtpElement.find('.dtp-actual-day').html(date.format('A'));else this.$dtpElement.find('.dtp-actual-day').html(' ');\n this.$dtpElement.find('.dtp-actual-maxtime').html(content);\n }\n }\n },\n selectDate: function selectDate(date) {\n if (date) {\n this.currentDate.date(date);\n this.showDate(this.currentDate);\n this.$element.trigger('dateSelected', this.currentDate);\n }\n },\n generateCalendar: function generateCalendar(date) {\n var _calendar = {};\n\n if (date !== null) {\n var startOfMonth = moment(date).locale(this.params.lang).startOf('month');\n var endOfMonth = moment(date).locale(this.params.lang).endOf('month');\n var iNumDay = startOfMonth.format('d');\n _calendar.week = this.days;\n _calendar.days = [];\n\n for (var i = startOfMonth.date(); i <= endOfMonth.date(); i++) {\n if (i === startOfMonth.date()) {\n var iWeek = _calendar.week.indexOf(iNumDay.toString());\n\n if (iWeek > 0) {\n for (var x = 0; x < iWeek; x++) {\n _calendar.days.push(0);\n }\n }\n }\n\n _calendar.days.push(moment(startOfMonth).locale(this.params.lang).date(i));\n }\n }\n\n return _calendar;\n },\n constructHTMLCalendar: function constructHTMLCalendar(date, calendar) {\n var _template = \"\";\n _template += '
' + date.locale(this.params.lang).format('MMMM YYYY') + '
';\n _template += '';\n\n for (var i = 0; i < calendar.week.length; i++) {\n _template += '';\n }\n\n _template += '';\n _template += '';\n\n for (var i = 0; i < calendar.days.length; i++) {\n if (i % 7 == 0) _template += '';\n _template += '';\n }\n }\n\n _template += '
' + moment(parseInt(calendar.week[i]), \"d\").locale(this.params.lang).format(\"dd\").substring(0, 1) + '
';\n\n if (calendar.days[i] != 0) {\n if (this.isBeforeMaxDate(moment(calendar.days[i]), false, false) === false || this.isAfterMinDate(moment(calendar.days[i]), false, false) === false || this.params.disabledDays.indexOf(calendar.days[i].isoWeekday()) !== -1) {\n _template += '' + moment(calendar.days[i]).locale(this.params.lang).format(\"DD\") + '';\n } else {\n if (moment(calendar.days[i]).locale(this.params.lang).format(\"DD\") === moment(this.currentDate).locale(this.params.lang).format(\"DD\")) {\n _template += '' + moment(calendar.days[i]).locale(this.params.lang).format(\"DD\") + '';\n } else {\n _template += '' + moment(calendar.days[i]).locale(this.params.lang).format(\"DD\") + '';\n }\n }\n\n _template += '
';\n return _template;\n },\n setName: function setName() {\n var text = \"\";\n var possible = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\";\n\n for (var i = 0; i < 5; i++) {\n text += possible.charAt(Math.floor(Math.random() * possible.length));\n }\n\n return text;\n },\n isPM: function isPM() {\n return this.$dtpElement.find('a.dtp-meridien-pm').hasClass('selected');\n },\n setElementValue: function setElementValue() {\n this.$element.trigger('beforeChange', this.currentDate);\n\n if (typeof $.material !== 'undefined') {\n this.$element.removeClass('empty');\n }\n\n this.$element.val(moment(this.currentDate).locale(this.params.lang).format(this.params.format));\n this.$element.trigger('change', this.currentDate);\n },\n toggleButtons: function toggleButtons(date) {\n if (date && date.isValid()) {\n var startOfMonth = moment(date).locale(this.params.lang).startOf('month');\n var endOfMonth = moment(date).locale(this.params.lang).endOf('month');\n\n if (!this.isAfterMinDate(startOfMonth, false, false)) {\n this.$dtpElement.find('a.dtp-select-month-before').addClass('invisible');\n } else {\n this.$dtpElement.find('a.dtp-select-month-before').removeClass('invisible');\n }\n\n if (!this.isBeforeMaxDate(endOfMonth, false, false)) {\n this.$dtpElement.find('a.dtp-select-month-after').addClass('invisible');\n } else {\n this.$dtpElement.find('a.dtp-select-month-after').removeClass('invisible');\n }\n\n var startOfYear = moment(date).locale(this.params.lang).startOf('year');\n var endOfYear = moment(date).locale(this.params.lang).endOf('year');\n\n if (!this.isAfterMinDate(startOfYear, false, false)) {\n this.$dtpElement.find('a.dtp-select-year-before').addClass('invisible');\n } else {\n this.$dtpElement.find('a.dtp-select-year-before').removeClass('invisible');\n }\n\n if (!this.isBeforeMaxDate(endOfYear, false, false)) {\n this.$dtpElement.find('a.dtp-select-year-after').addClass('invisible');\n } else {\n this.$dtpElement.find('a.dtp-select-year-after').removeClass('invisible');\n }\n }\n },\n toggleTime: function toggleTime(value, isHours) {\n var result = false;\n\n if (isHours) {\n var _date = moment(this.currentDate);\n\n _date.hour(this.convertHours(value)).minute(0).second(0);\n\n result = !(this.isAfterMinDate(_date, true, false) === false || this.isBeforeMaxDate(_date, true, false) === false);\n } else {\n var _date = moment(this.currentDate);\n\n _date.minute(value).second(0);\n\n result = !(this.isAfterMinDate(_date, true, true) === false || this.isBeforeMaxDate(_date, true, true) === false);\n }\n\n return result;\n },\n _attachEvent: function _attachEvent(el, ev, fn) {\n el.on(ev, null, null, fn);\n\n this._attachedEvents.push([el, ev, fn]);\n },\n _detachEvents: function _detachEvents() {\n for (var i = this._attachedEvents.length - 1; i >= 0; i--) {\n this._attachedEvents[i][0].off(this._attachedEvents[i][1], this._attachedEvents[i][2]);\n\n this._attachedEvents.splice(i, 1);\n }\n },\n _fireCalendar: function _fireCalendar() {\n this.currentView = 0;\n this.$element.blur();\n this.initDates();\n this.show();\n\n if (this.params.date) {\n this.$dtpElement.find('.dtp-date').removeClass('hidden');\n this.initDate();\n } else {\n if (this.params.time) {\n this.$dtpElement.find('.dtp-time').removeClass('hidden');\n this.initHours();\n }\n }\n },\n _onBackgroundClick: function _onBackgroundClick(e) {\n e.stopPropagation();\n this.hide();\n },\n _onElementClick: function _onElementClick(e) {\n e.stopPropagation();\n },\n _onKeydown: function _onKeydown(e) {\n if (e.which === 27) {\n this.hide();\n }\n },\n _onCloseClick: function _onCloseClick() {\n this.hide();\n },\n _onClearClick: function _onClearClick() {\n this.currentDate = null;\n this.$element.trigger('beforeChange', this.currentDate);\n this.hide();\n\n if (typeof $.material !== 'undefined') {\n this.$element.addClass('empty');\n }\n\n this.$element.val('');\n this.$element.trigger('change', this.currentDate);\n },\n _onNowClick: function _onNowClick() {\n this.currentDate = moment();\n\n if (this.params.date === true) {\n this.showDate(this.currentDate);\n\n if (this.currentView === 0) {\n this.initDate();\n }\n }\n\n if (this.params.time === true) {\n this.showTime(this.currentDate);\n\n switch (this.currentView) {\n case 1:\n this.initHours();\n break;\n\n case 2:\n this.initMinutes();\n break;\n }\n\n this.animateHands();\n }\n },\n _onOKClick: function _onOKClick() {\n switch (this.currentView) {\n case 0:\n if (this.params.time === true) {\n this.initHours();\n } else {\n this.setElementValue();\n this.hide();\n }\n\n break;\n\n case 1:\n this.initMinutes();\n break;\n\n case 2:\n this.setElementValue();\n this.hide();\n break;\n }\n },\n _onCancelClick: function _onCancelClick() {\n if (this.params.time) {\n switch (this.currentView) {\n case 0:\n this.hide();\n break;\n\n case 1:\n if (this.params.date) {\n this.initDate();\n } else {\n this.hide();\n }\n\n break;\n\n case 2:\n this.initHours();\n break;\n }\n } else {\n this.hide();\n }\n },\n _onMonthBeforeClick: function _onMonthBeforeClick() {\n this.currentDate.subtract(1, 'months');\n this.initDate(this.currentDate);\n\n this._closeYearPicker();\n },\n _onMonthAfterClick: function _onMonthAfterClick() {\n this.currentDate.add(1, 'months');\n this.initDate(this.currentDate);\n\n this._closeYearPicker();\n },\n _onYearBeforeClick: function _onYearBeforeClick() {\n this.currentDate.subtract(1, 'years');\n this.initDate(this.currentDate);\n\n this._closeYearPicker();\n },\n _onYearAfterClick: function _onYearAfterClick() {\n this.currentDate.add(1, 'years');\n this.initDate(this.currentDate);\n\n this._closeYearPicker();\n },\n refreshYearItems: function refreshYearItems() {\n var curYear = this.currentDate.year(),\n midYear = this.midYear;\n var minYear = 1850;\n\n if (typeof this.minDate !== 'undefined' && this.minDate !== null) {\n minYear = moment(this.minDate).year();\n }\n\n var maxYear = 2200;\n\n if (typeof this.maxDate !== 'undefined' && this.maxDate !== null) {\n maxYear = moment(this.maxDate).year();\n }\n\n this.$dtpElement.find(\".dtp-picker-year .invisible\").removeClass(\"invisible\");\n this.$dtpElement.find(\".year-picker-item\").each(function (i, el) {\n var newYear = midYear - 3 + i;\n $(el).attr(\"data-year\", newYear).text(newYear).data(\"year\", newYear);\n\n if (curYear == newYear) {\n $(el).addClass(\"active\");\n } else {\n $(el).removeClass(\"active\");\n }\n\n if (newYear < minYear || newYear > maxYear) {\n $(el).addClass(\"invisible\");\n }\n });\n\n if (minYear >= midYear - 3) {\n this.$dtpElement.find(\".dtp-select-year-range.before\").addClass('invisible');\n }\n\n if (maxYear <= midYear + 3) {\n this.$dtpElement.find(\".dtp-select-year-range.after\").addClass('invisible');\n }\n\n this.$dtpElement.find(\".dtp-select-year-range\").data(\"mid\", midYear);\n },\n _onActualYearClick: function _onActualYearClick() {\n if (this.params.year) {\n if (this.$dtpElement.find('.dtp-picker-year.hidden').length > 0) {\n this.$dtpElement.find('.dtp-picker-datetime').addClass(\"hidden\");\n this.$dtpElement.find('.dtp-picker-calendar').addClass(\"hidden\");\n this.$dtpElement.find('.dtp-picker-year').removeClass(\"hidden\");\n this.midYear = this.currentDate.year();\n this.refreshYearItems();\n } else {\n this._closeYearPicker();\n }\n }\n },\n _onYearRangeBeforeClick: function _onYearRangeBeforeClick() {\n this.midYear -= 7;\n this.refreshYearItems();\n },\n _onYearRangeAfterClick: function _onYearRangeAfterClick() {\n this.midYear += 7;\n this.refreshYearItems();\n },\n _onYearItemClick: function _onYearItemClick(e) {\n var newYear = $(e.currentTarget).data('year');\n var oldYear = this.currentDate.year();\n var diff = newYear - oldYear;\n this.currentDate.add(diff, 'years');\n this.initDate(this.currentDate);\n\n this._closeYearPicker();\n\n this.$element.trigger(\"yearSelected\", this.currentDate);\n },\n _closeYearPicker: function _closeYearPicker() {\n this.$dtpElement.find('.dtp-picker-calendar').removeClass(\"hidden\");\n this.$dtpElement.find('.dtp-picker-year').addClass(\"hidden\");\n },\n enableYearPicker: function enableYearPicker() {\n this.params.year = true;\n this.$dtpElement.find(\".dtp-actual-year\").reomveClass(\"disabled\");\n },\n disableYearPicker: function disableYearPicker() {\n this.params.year = false;\n this.$dtpElement.find(\".dtp-actual-year\").addClass(\"disabled\");\n\n this._closeYearPicker();\n },\n _onSelectDate: function _onSelectDate(e) {\n this.$dtpElement.find('a.dtp-select-day').removeClass('selected');\n $(e.currentTarget).addClass('selected');\n this.selectDate($(e.currentTarget).parent().data(\"date\"));\n if (this.params.switchOnClick === true && this.params.time === true) setTimeout(this.initHours.bind(this), 200);\n\n if (this.params.switchOnClick === true && this.params.time === false) {\n setTimeout(this._onOKClick.bind(this), 200);\n }\n },\n _onSelectHour: function _onSelectHour(e) {\n if (!$(e.target).hasClass('disabled')) {\n var value = $(e.target).data('hour');\n var parent = $(e.target).parent();\n var h = parent.find('.dtp-select-hour');\n\n for (var i = 0; i < h.length; i++) {\n $(h[i]).attr('fill', 'transparent');\n }\n\n var th = parent.find('.dtp-select-hour-text');\n\n for (var i = 0; i < th.length; i++) {\n $(th[i]).attr('fill', '#000');\n }\n\n $(parent.find('#h-' + value)).attr('fill', '#8BC34A');\n $(parent.find('#th-' + value)).attr('fill', '#fff');\n this.currentDate.hour(parseInt(value));\n\n if (this.params.shortTime === true && this.isPM()) {\n this.currentDate.add(12, 'hours');\n }\n\n this.showTime(this.currentDate);\n this.animateHands();\n if (this.params.switchOnClick === true) setTimeout(this.initMinutes.bind(this), 200);\n }\n },\n _onSelectMinute: function _onSelectMinute(e) {\n if (!$(e.target).hasClass('disabled')) {\n var value = $(e.target).data('minute');\n var parent = $(e.target).parent();\n var m = parent.find('.dtp-select-minute');\n\n for (var i = 0; i < m.length; i++) {\n $(m[i]).attr('fill', 'transparent');\n }\n\n var tm = parent.find('.dtp-select-minute-text');\n\n for (var i = 0; i < tm.length; i++) {\n $(tm[i]).attr('fill', '#000');\n }\n\n $(parent.find('#m-' + value)).attr('fill', '#8BC34A');\n $(parent.find('#tm-' + value)).attr('fill', '#fff');\n this.currentDate.minute(parseInt(value));\n this.showTime(this.currentDate);\n this.animateHands();\n if (this.params.switchOnClick === true) setTimeout(function () {\n this.setElementValue();\n this.hide();\n }.bind(this), 200);\n }\n },\n _onSelectAM: function _onSelectAM(e) {\n $('.dtp-actual-meridien').find('a').removeClass('selected');\n $(e.currentTarget).addClass('selected');\n\n if (this.currentDate.hour() >= 12) {\n if (this.currentDate.subtract(12, 'hours')) this.showTime(this.currentDate);\n }\n\n this.toggleTime(this.currentView === 1);\n },\n _onSelectPM: function _onSelectPM(e) {\n $('.dtp-actual-meridien').find('a').removeClass('selected');\n $(e.currentTarget).addClass('selected');\n\n if (this.currentDate.hour() < 12) {\n if (this.currentDate.add(12, 'hours')) this.showTime(this.currentDate);\n }\n\n this.toggleTime(this.currentView === 1);\n },\n _hideCalendar: function _hideCalendar() {\n this.$dtpElement.find('.dtp-picker-calendar').addClass('hidden');\n },\n convertHours: function convertHours(h) {\n var _return = h;\n\n if (this.params.shortTime === true) {\n if (h < 12 && this.isPM()) {\n _return += 12;\n }\n }\n\n return _return;\n },\n setDate: function setDate(date) {\n this.params.currentDate = date;\n this.initDates();\n },\n setMinDate: function setMinDate(date) {\n this.params.minDate = date;\n this.initDates();\n },\n setMaxDate: function setMaxDate(date) {\n this.params.maxDate = date;\n this.initDates();\n },\n destroy: function destroy() {\n this._detachEvents();\n\n this.$dtpElement.remove();\n },\n show: function show() {\n this.$dtpElement.removeClass('hidden');\n\n this._attachEvent($(window), 'keydown', this._onKeydown.bind(this));\n\n this._centerBox();\n\n this.$element.trigger('open');\n\n if (this.params.monthPicker === true) {\n this._hideCalendar();\n }\n },\n hide: function hide() {\n $(window).off('keydown', null, null, this._onKeydown.bind(this));\n this.$dtpElement.addClass('hidden');\n this.$element.trigger('close');\n },\n _centerBox: function _centerBox() {\n var h = (this.$dtpElement.height() - this.$dtpElement.find('.dtp-content').height()) / 2;\n this.$dtpElement.find('.dtp-content').css('marginLeft', -(this.$dtpElement.find('.dtp-content').width() / 2) + 'px');\n this.$dtpElement.find('.dtp-content').css('top', h + 'px');\n },\n enableDays: function enableDays() {\n var enableDays = this.params.enableDays;\n\n if (enableDays) {\n $(\".dtp-picker-days tbody tr td\").each(function () {\n if (!($.inArray($(this).index(), enableDays) >= 0)) {\n $(this).find('a').css({\n \"background\": \"#e3e3e3\",\n \"cursor\": \"no-drop\",\n \"opacity\": \"0.5\"\n }).off(\"click\");\n }\n });\n }\n }\n };\n})(jQuery, moment);","const originalPicker = $.fn.bootstrapMaterialDatePicker;\n\n$.fn.bootstrapMaterialDatePicker = function (...args) {\n this.each(function() {\n const newInstance = !$.data(this, 'plugin_bootstrapMaterialDatePicker');\n\n originalPicker.apply($(this), args);\n\n if (newInstance) {\n const $template = $('body').find(`> #${$.data(this, 'plugin_bootstrapMaterialDatePicker').name}`);\n\n // Add animation\n $template.addClass('animated fadeIn')\n\n // Styling buttons\n $template.find('.dtp-btn-now,.dtp-btn-clear,.dtp-btn-cancel').addClass('btn-default btn-sm');\n $template.find('.dtp-btn-ok').addClass('btn-primary btn-sm');\n }\n });\n\n return this;\n};\n","require('bootstrap-select/js/bootstrap-select.js');\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n(function ($) {\n 'use strict';\n\n var DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn'];\n var uriAttrs = ['background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href'];\n var ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i;\n var DefaultWhitelist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', 'tabindex', 'style', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n div: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n };\n /**\r\n * A pattern that recognizes a commonly useful subset of URLs that are safe.\r\n *\r\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\r\n */\n\n var SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi;\n /**\r\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\r\n *\r\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\r\n */\n\n var DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i;\n\n function allowedAttribute(attr, allowedAttributeList) {\n var attrName = attr.nodeName.toLowerCase();\n\n if ($.inArray(attrName, allowedAttributeList) !== -1) {\n if ($.inArray(attrName, uriAttrs) !== -1) {\n return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN));\n }\n\n return true;\n }\n\n var regExp = $(allowedAttributeList).filter(function (index, value) {\n return value instanceof RegExp;\n }); // Check if a regular expression validates the attribute.\n\n for (var i = 0, l = regExp.length; i < l; i++) {\n if (attrName.match(regExp[i])) {\n return true;\n }\n }\n\n return false;\n }\n\n function sanitizeHtml(unsafeElements, whiteList, sanitizeFn) {\n if (sanitizeFn && typeof sanitizeFn === 'function') {\n return sanitizeFn(unsafeElements);\n }\n\n var whitelistKeys = Object.keys(whiteList);\n\n for (var i = 0, len = unsafeElements.length; i < len; i++) {\n var elements = unsafeElements[i].querySelectorAll('*');\n\n for (var j = 0, len2 = elements.length; j < len2; j++) {\n var el = elements[j];\n var elName = el.nodeName.toLowerCase();\n\n if (whitelistKeys.indexOf(elName) === -1) {\n el.parentNode.removeChild(el);\n continue;\n }\n\n var attributeList = [].slice.call(el.attributes);\n var whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || []);\n\n for (var k = 0, len3 = attributeList.length; k < len3; k++) {\n var attr = attributeList[k];\n\n if (!allowedAttribute(attr, whitelistedAttributes)) {\n el.removeAttribute(attr.nodeName);\n }\n }\n }\n }\n } // Polyfill for browsers with no classList support\n // Remove in v2\n\n\n if (!('classList' in document.createElement('_'))) {\n (function (view) {\n if (!('Element' in view)) return;\n\n var classListProp = 'classList',\n protoProp = 'prototype',\n elemCtrProto = view.Element[protoProp],\n objCtr = Object,\n classListGetter = function classListGetter() {\n var $elem = $(this);\n return {\n add: function add(classes) {\n classes = Array.prototype.slice.call(arguments).join(' ');\n return $elem.addClass(classes);\n },\n remove: function remove(classes) {\n classes = Array.prototype.slice.call(arguments).join(' ');\n return $elem.removeClass(classes);\n },\n toggle: function toggle(classes, force) {\n return $elem.toggleClass(classes, force);\n },\n contains: function contains(classes) {\n return $elem.hasClass(classes);\n }\n };\n };\n\n if (objCtr.defineProperty) {\n var classListPropDesc = {\n get: classListGetter,\n enumerable: true,\n configurable: true\n };\n\n try {\n objCtr.defineProperty(elemCtrProto, classListProp, classListPropDesc);\n } catch (ex) {\n // IE 8 doesn't support enumerable:true\n // adding undefined to fight this issue https://github.com/eligrey/classList.js/issues/36\n // modernie IE8-MSW7 machine has IE8 8.0.6001.18702 and is affected\n if (ex.number === undefined || ex.number === -0x7FF5EC54) {\n classListPropDesc.enumerable = false;\n objCtr.defineProperty(elemCtrProto, classListProp, classListPropDesc);\n }\n }\n } else if (objCtr[protoProp].__defineGetter__) {\n elemCtrProto.__defineGetter__(classListProp, classListGetter);\n }\n })(window);\n }\n\n var testElement = document.createElement('_');\n testElement.classList.add('c1', 'c2');\n\n if (!testElement.classList.contains('c2')) {\n var _add = DOMTokenList.prototype.add,\n _remove = DOMTokenList.prototype.remove;\n\n DOMTokenList.prototype.add = function () {\n Array.prototype.forEach.call(arguments, _add.bind(this));\n };\n\n DOMTokenList.prototype.remove = function () {\n Array.prototype.forEach.call(arguments, _remove.bind(this));\n };\n }\n\n testElement.classList.toggle('c3', false); // Polyfill for IE 10 and Firefox <24, where classList.toggle does not\n // support the second argument.\n\n if (testElement.classList.contains('c3')) {\n var _toggle = DOMTokenList.prototype.toggle;\n\n DOMTokenList.prototype.toggle = function (token, force) {\n if (1 in arguments && !this.contains(token) === !force) {\n return force;\n } else {\n return _toggle.call(this, token);\n }\n };\n }\n\n testElement = null; // shallow array comparison\n\n function isEqual(array1, array2) {\n return array1.length === array2.length && array1.every(function (element, index) {\n return element === array2[index];\n });\n }\n\n ; // \n\n if (!String.prototype.startsWith) {\n (function () {\n 'use strict'; // needed to support `apply`/`call` with `undefined`/`null`\n\n var defineProperty = function () {\n // IE 8 only supports `Object.defineProperty` on DOM elements\n try {\n var object = {};\n var $defineProperty = Object.defineProperty;\n var result = $defineProperty(object, object, object) && $defineProperty;\n } catch (error) {}\n\n return result;\n }();\n\n var toString = {}.toString;\n\n var startsWith = function startsWith(search) {\n if (this == null) {\n throw new TypeError();\n }\n\n var string = String(this);\n\n if (search && toString.call(search) == '[object RegExp]') {\n throw new TypeError();\n }\n\n var stringLength = string.length;\n var searchString = String(search);\n var searchLength = searchString.length;\n var position = arguments.length > 1 ? arguments[1] : undefined; // `ToInteger`\n\n var pos = position ? Number(position) : 0;\n\n if (pos != pos) {\n // better `isNaN`\n pos = 0;\n }\n\n var start = Math.min(Math.max(pos, 0), stringLength); // Avoid the `indexOf` call if no match is possible\n\n if (searchLength + start > stringLength) {\n return false;\n }\n\n var index = -1;\n\n while (++index < searchLength) {\n if (string.charCodeAt(start + index) != searchString.charCodeAt(index)) {\n return false;\n }\n }\n\n return true;\n };\n\n if (defineProperty) {\n defineProperty(String.prototype, 'startsWith', {\n 'value': startsWith,\n 'configurable': true,\n 'writable': true\n });\n } else {\n String.prototype.startsWith = startsWith;\n }\n })();\n }\n\n if (!Object.keys) {\n Object.keys = function (o, // object\n k, // key\n r // result array\n ) {\n // initialize object and result\n r = []; // iterate over object keys\n\n for (k in o) {\n // fill result array with non-prototypical keys\n r.hasOwnProperty.call(o, k) && r.push(k);\n } // return result\n\n\n return r;\n };\n }\n\n if (HTMLSelectElement && !HTMLSelectElement.prototype.hasOwnProperty('selectedOptions')) {\n Object.defineProperty(HTMLSelectElement.prototype, 'selectedOptions', {\n get: function get() {\n return this.querySelectorAll(':checked');\n }\n });\n }\n\n function getSelectedOptions(select, ignoreDisabled) {\n var selectedOptions = select.selectedOptions,\n options = [],\n opt;\n\n if (ignoreDisabled) {\n for (var i = 0, len = selectedOptions.length; i < len; i++) {\n opt = selectedOptions[i];\n\n if (!(opt.disabled || opt.parentNode.tagName === 'OPTGROUP' && opt.parentNode.disabled)) {\n options.push(opt);\n }\n }\n\n return options;\n }\n\n return selectedOptions;\n } // much faster than $.val()\n\n\n function getSelectValues(select, selectedOptions) {\n var value = [],\n options = selectedOptions || select.selectedOptions,\n opt;\n\n for (var i = 0, len = options.length; i < len; i++) {\n opt = options[i];\n\n if (!(opt.disabled || opt.parentNode.tagName === 'OPTGROUP' && opt.parentNode.disabled)) {\n value.push(opt.value);\n }\n }\n\n if (!select.multiple) {\n return !value.length ? null : value[0];\n }\n\n return value;\n } // set data-selected on select element if the value has been programmatically selected\n // prior to initialization of bootstrap-select\n // * consider removing or replacing an alternative method *\n\n\n var valHooks = {\n useDefault: false,\n _set: $.valHooks.select.set\n };\n\n $.valHooks.select.set = function (elem, value) {\n if (value && !valHooks.useDefault) $(elem).data('selected', true);\n return valHooks._set.apply(this, arguments);\n };\n\n var changedArguments = null;\n\n var EventIsSupported = function () {\n try {\n new Event('change');\n return true;\n } catch (e) {\n return false;\n }\n }();\n\n $.fn.triggerNative = function (eventName) {\n var el = this[0],\n event;\n\n if (el.dispatchEvent) {\n // for modern browsers & IE9+\n if (EventIsSupported) {\n // For modern browsers\n event = new Event(eventName, {\n bubbles: true\n });\n } else {\n // For IE since it doesn't support Event constructor\n event = document.createEvent('Event');\n event.initEvent(eventName, true, false);\n }\n\n el.dispatchEvent(event);\n } else if (el.fireEvent) {\n // for IE8\n event = document.createEventObject();\n event.eventType = eventName;\n el.fireEvent('on' + eventName, event);\n } else {\n // fall back to jQuery.trigger\n this.trigger(eventName);\n }\n }; // \n\n\n function stringSearch(li, searchString, method, normalize) {\n var stringTypes = ['display', 'subtext', 'tokens'],\n searchSuccess = false;\n\n for (var i = 0; i < stringTypes.length; i++) {\n var stringType = stringTypes[i],\n string = li[stringType];\n\n if (string) {\n string = string.toString(); // Strip HTML tags. This isn't perfect, but it's much faster than any other method\n\n if (stringType === 'display') {\n string = string.replace(/<[^>]+>/g, '');\n }\n\n if (normalize) string = normalizeToBase(string);\n string = string.toUpperCase();\n\n if (method === 'contains') {\n searchSuccess = string.indexOf(searchString) >= 0;\n } else {\n searchSuccess = string.startsWith(searchString);\n }\n\n if (searchSuccess) break;\n }\n }\n\n return searchSuccess;\n }\n\n function toInteger(value) {\n return parseInt(value, 10) || 0;\n } // Borrowed from Lodash (_.deburr)\n\n /** Used to map Latin Unicode letters to basic Latin letters. */\n\n\n var deburredLetters = {\n // Latin-1 Supplement block.\n '\\xc0': 'A',\n '\\xc1': 'A',\n '\\xc2': 'A',\n '\\xc3': 'A',\n '\\xc4': 'A',\n '\\xc5': 'A',\n '\\xe0': 'a',\n '\\xe1': 'a',\n '\\xe2': 'a',\n '\\xe3': 'a',\n '\\xe4': 'a',\n '\\xe5': 'a',\n '\\xc7': 'C',\n '\\xe7': 'c',\n '\\xd0': 'D',\n '\\xf0': 'd',\n '\\xc8': 'E',\n '\\xc9': 'E',\n '\\xca': 'E',\n '\\xcb': 'E',\n '\\xe8': 'e',\n '\\xe9': 'e',\n '\\xea': 'e',\n '\\xeb': 'e',\n '\\xcc': 'I',\n '\\xcd': 'I',\n '\\xce': 'I',\n '\\xcf': 'I',\n '\\xec': 'i',\n '\\xed': 'i',\n '\\xee': 'i',\n '\\xef': 'i',\n '\\xd1': 'N',\n '\\xf1': 'n',\n '\\xd2': 'O',\n '\\xd3': 'O',\n '\\xd4': 'O',\n '\\xd5': 'O',\n '\\xd6': 'O',\n '\\xd8': 'O',\n '\\xf2': 'o',\n '\\xf3': 'o',\n '\\xf4': 'o',\n '\\xf5': 'o',\n '\\xf6': 'o',\n '\\xf8': 'o',\n '\\xd9': 'U',\n '\\xda': 'U',\n '\\xdb': 'U',\n '\\xdc': 'U',\n '\\xf9': 'u',\n '\\xfa': 'u',\n '\\xfb': 'u',\n '\\xfc': 'u',\n '\\xdd': 'Y',\n '\\xfd': 'y',\n '\\xff': 'y',\n '\\xc6': 'Ae',\n '\\xe6': 'ae',\n '\\xde': 'Th',\n '\\xfe': 'th',\n '\\xdf': 'ss',\n // Latin Extended-A block.\n \"\\u0100\": 'A',\n \"\\u0102\": 'A',\n \"\\u0104\": 'A',\n \"\\u0101\": 'a',\n \"\\u0103\": 'a',\n \"\\u0105\": 'a',\n \"\\u0106\": 'C',\n \"\\u0108\": 'C',\n \"\\u010A\": 'C',\n \"\\u010C\": 'C',\n \"\\u0107\": 'c',\n \"\\u0109\": 'c',\n \"\\u010B\": 'c',\n \"\\u010D\": 'c',\n \"\\u010E\": 'D',\n \"\\u0110\": 'D',\n \"\\u010F\": 'd',\n \"\\u0111\": 'd',\n \"\\u0112\": 'E',\n \"\\u0114\": 'E',\n \"\\u0116\": 'E',\n \"\\u0118\": 'E',\n \"\\u011A\": 'E',\n \"\\u0113\": 'e',\n \"\\u0115\": 'e',\n \"\\u0117\": 'e',\n \"\\u0119\": 'e',\n \"\\u011B\": 'e',\n \"\\u011C\": 'G',\n \"\\u011E\": 'G',\n \"\\u0120\": 'G',\n \"\\u0122\": 'G',\n \"\\u011D\": 'g',\n \"\\u011F\": 'g',\n \"\\u0121\": 'g',\n \"\\u0123\": 'g',\n \"\\u0124\": 'H',\n \"\\u0126\": 'H',\n \"\\u0125\": 'h',\n \"\\u0127\": 'h',\n \"\\u0128\": 'I',\n \"\\u012A\": 'I',\n \"\\u012C\": 'I',\n \"\\u012E\": 'I',\n \"\\u0130\": 'I',\n \"\\u0129\": 'i',\n \"\\u012B\": 'i',\n \"\\u012D\": 'i',\n \"\\u012F\": 'i',\n \"\\u0131\": 'i',\n \"\\u0134\": 'J',\n \"\\u0135\": 'j',\n \"\\u0136\": 'K',\n \"\\u0137\": 'k',\n \"\\u0138\": 'k',\n \"\\u0139\": 'L',\n \"\\u013B\": 'L',\n \"\\u013D\": 'L',\n \"\\u013F\": 'L',\n \"\\u0141\": 'L',\n \"\\u013A\": 'l',\n \"\\u013C\": 'l',\n \"\\u013E\": 'l',\n \"\\u0140\": 'l',\n \"\\u0142\": 'l',\n \"\\u0143\": 'N',\n \"\\u0145\": 'N',\n \"\\u0147\": 'N',\n \"\\u014A\": 'N',\n \"\\u0144\": 'n',\n \"\\u0146\": 'n',\n \"\\u0148\": 'n',\n \"\\u014B\": 'n',\n \"\\u014C\": 'O',\n \"\\u014E\": 'O',\n \"\\u0150\": 'O',\n \"\\u014D\": 'o',\n \"\\u014F\": 'o',\n \"\\u0151\": 'o',\n \"\\u0154\": 'R',\n \"\\u0156\": 'R',\n \"\\u0158\": 'R',\n \"\\u0155\": 'r',\n \"\\u0157\": 'r',\n \"\\u0159\": 'r',\n \"\\u015A\": 'S',\n \"\\u015C\": 'S',\n \"\\u015E\": 'S',\n \"\\u0160\": 'S',\n \"\\u015B\": 's',\n \"\\u015D\": 's',\n \"\\u015F\": 's',\n \"\\u0161\": 's',\n \"\\u0162\": 'T',\n \"\\u0164\": 'T',\n \"\\u0166\": 'T',\n \"\\u0163\": 't',\n \"\\u0165\": 't',\n \"\\u0167\": 't',\n \"\\u0168\": 'U',\n \"\\u016A\": 'U',\n \"\\u016C\": 'U',\n \"\\u016E\": 'U',\n \"\\u0170\": 'U',\n \"\\u0172\": 'U',\n \"\\u0169\": 'u',\n \"\\u016B\": 'u',\n \"\\u016D\": 'u',\n \"\\u016F\": 'u',\n \"\\u0171\": 'u',\n \"\\u0173\": 'u',\n \"\\u0174\": 'W',\n \"\\u0175\": 'w',\n \"\\u0176\": 'Y',\n \"\\u0177\": 'y',\n \"\\u0178\": 'Y',\n \"\\u0179\": 'Z',\n \"\\u017B\": 'Z',\n \"\\u017D\": 'Z',\n \"\\u017A\": 'z',\n \"\\u017C\": 'z',\n \"\\u017E\": 'z',\n \"\\u0132\": 'IJ',\n \"\\u0133\": 'ij',\n \"\\u0152\": 'Oe',\n \"\\u0153\": 'oe',\n \"\\u0149\": \"'n\",\n \"\\u017F\": 's'\n };\n /** Used to match Latin Unicode letters (excluding mathematical operators). */\n\n var reLatin = /[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g;\n /** Used to compose unicode character classes. */\n\n var rsComboMarksRange = \"\\\\u0300-\\\\u036f\",\n reComboHalfMarksRange = \"\\\\ufe20-\\\\ufe2f\",\n rsComboSymbolsRange = \"\\\\u20d0-\\\\u20ff\",\n rsComboMarksExtendedRange = \"\\\\u1ab0-\\\\u1aff\",\n rsComboMarksSupplementRange = \"\\\\u1dc0-\\\\u1dff\",\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange + rsComboMarksExtendedRange + rsComboMarksSupplementRange;\n /** Used to compose unicode capture groups. */\n\n var rsCombo = '[' + rsComboRange + ']';\n /**\r\n * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and\r\n * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols).\r\n */\n\n var reComboMark = RegExp(rsCombo, 'g');\n\n function deburrLetter(key) {\n return deburredLetters[key];\n }\n\n ;\n\n function normalizeToBase(string) {\n string = string.toString();\n return string && string.replace(reLatin, deburrLetter).replace(reComboMark, '');\n } // List of HTML entities for escaping.\n\n\n var escapeMap = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '`': '`'\n }; // Functions for escaping and unescaping strings to/from HTML interpolation.\n\n var createEscaper = function createEscaper(map) {\n var escaper = function escaper(match) {\n return map[match];\n }; // Regexes for identifying a key that needs to be escaped.\n\n\n var source = '(?:' + Object.keys(map).join('|') + ')';\n var testRegexp = RegExp(source);\n var replaceRegexp = RegExp(source, 'g');\n return function (string) {\n string = string == null ? '' : '' + string;\n return testRegexp.test(string) ? string.replace(replaceRegexp, escaper) : string;\n };\n };\n\n var htmlEscape = createEscaper(escapeMap);\n /**\r\n * ------------------------------------------------------------------------\r\n * Constants\r\n * ------------------------------------------------------------------------\r\n */\n\n var keyCodeMap = {\n 32: ' ',\n 48: '0',\n 49: '1',\n 50: '2',\n 51: '3',\n 52: '4',\n 53: '5',\n 54: '6',\n 55: '7',\n 56: '8',\n 57: '9',\n 59: ';',\n 65: 'A',\n 66: 'B',\n 67: 'C',\n 68: 'D',\n 69: 'E',\n 70: 'F',\n 71: 'G',\n 72: 'H',\n 73: 'I',\n 74: 'J',\n 75: 'K',\n 76: 'L',\n 77: 'M',\n 78: 'N',\n 79: 'O',\n 80: 'P',\n 81: 'Q',\n 82: 'R',\n 83: 'S',\n 84: 'T',\n 85: 'U',\n 86: 'V',\n 87: 'W',\n 88: 'X',\n 89: 'Y',\n 90: 'Z',\n 96: '0',\n 97: '1',\n 98: '2',\n 99: '3',\n 100: '4',\n 101: '5',\n 102: '6',\n 103: '7',\n 104: '8',\n 105: '9'\n };\n var keyCodes = {\n ESCAPE: 27,\n // KeyboardEvent.which value for Escape (Esc) key\n ENTER: 13,\n // KeyboardEvent.which value for Enter key\n SPACE: 32,\n // KeyboardEvent.which value for space key\n TAB: 9,\n // KeyboardEvent.which value for tab key\n ARROW_UP: 38,\n // KeyboardEvent.which value for up arrow key\n ARROW_DOWN: 40 // KeyboardEvent.which value for down arrow key\n\n };\n var version = {\n success: false,\n major: '3'\n };\n\n try {\n version.full = ($.fn.dropdown.Constructor.VERSION || '').split(' ')[0].split('.');\n version.major = version.full[0];\n version.success = true;\n } catch (err) {// do nothing\n }\n\n var selectId = 0;\n var EVENT_KEY = '.bs.select';\n var classNames = {\n DISABLED: 'disabled',\n DIVIDER: 'divider',\n SHOW: 'open',\n DROPUP: 'dropup',\n MENU: 'dropdown-menu',\n MENURIGHT: 'dropdown-menu-right',\n MENULEFT: 'dropdown-menu-left',\n // to-do: replace with more advanced template/customization options\n BUTTONCLASS: 'btn-default',\n POPOVERHEADER: 'popover-title',\n ICONBASE: 'glyphicon',\n TICKICON: 'glyphicon-ok'\n };\n var Selector = {\n MENU: '.' + classNames.MENU\n };\n var elementTemplates = {\n div: document.createElement('div'),\n span: document.createElement('span'),\n i: document.createElement('i'),\n subtext: document.createElement('small'),\n a: document.createElement('a'),\n li: document.createElement('li'),\n whitespace: document.createTextNode(\"\\xA0\"),\n fragment: document.createDocumentFragment()\n };\n elementTemplates.noResults = elementTemplates.li.cloneNode(false);\n elementTemplates.noResults.className = 'no-results';\n elementTemplates.a.setAttribute('role', 'option');\n if (version.major === '4') elementTemplates.a.className = 'dropdown-item';\n elementTemplates.subtext.className = 'text-muted';\n elementTemplates.text = elementTemplates.span.cloneNode(false);\n elementTemplates.text.className = 'text';\n elementTemplates.checkMark = elementTemplates.span.cloneNode(false);\n var REGEXP_ARROW = new RegExp(keyCodes.ARROW_UP + '|' + keyCodes.ARROW_DOWN);\n var REGEXP_TAB_OR_ESCAPE = new RegExp('^' + keyCodes.TAB + '$|' + keyCodes.ESCAPE);\n var generateOption = {\n li: function li(content, classes, optgroup) {\n var li = elementTemplates.li.cloneNode(false);\n\n if (content) {\n if (content.nodeType === 1 || content.nodeType === 11) {\n li.appendChild(content);\n } else {\n li.innerHTML = content;\n }\n }\n\n if (typeof classes !== 'undefined' && classes !== '') li.className = classes;\n if (typeof optgroup !== 'undefined' && optgroup !== null) li.classList.add('optgroup-' + optgroup);\n return li;\n },\n a: function a(text, classes, inline) {\n var a = elementTemplates.a.cloneNode(true);\n\n if (text) {\n if (text.nodeType === 11) {\n a.appendChild(text);\n } else {\n a.insertAdjacentHTML('beforeend', text);\n }\n }\n\n if (typeof classes !== 'undefined' && classes !== '') a.classList.add.apply(a.classList, classes.split(/\\s+/));\n if (inline) a.setAttribute('style', inline);\n return a;\n },\n text: function text(options, useFragment) {\n var textElement = elementTemplates.text.cloneNode(false),\n subtextElement,\n iconElement;\n\n if (options.content) {\n textElement.innerHTML = options.content;\n } else {\n textElement.textContent = options.text;\n\n if (options.icon) {\n var whitespace = elementTemplates.whitespace.cloneNode(false); // need to use for icons in the button to prevent a breaking change\n // note: switch to span in next major release\n\n iconElement = (useFragment === true ? elementTemplates.i : elementTemplates.span).cloneNode(false);\n iconElement.className = this.options.iconBase + ' ' + options.icon;\n elementTemplates.fragment.appendChild(iconElement);\n elementTemplates.fragment.appendChild(whitespace);\n }\n\n if (options.subtext) {\n subtextElement = elementTemplates.subtext.cloneNode(false);\n subtextElement.textContent = options.subtext;\n textElement.appendChild(subtextElement);\n }\n }\n\n if (useFragment === true) {\n while (textElement.childNodes.length > 0) {\n elementTemplates.fragment.appendChild(textElement.childNodes[0]);\n }\n } else {\n elementTemplates.fragment.appendChild(textElement);\n }\n\n return elementTemplates.fragment;\n },\n label: function label(options) {\n var textElement = elementTemplates.text.cloneNode(false),\n subtextElement,\n iconElement;\n textElement.innerHTML = options.display;\n\n if (options.icon) {\n var whitespace = elementTemplates.whitespace.cloneNode(false);\n iconElement = elementTemplates.span.cloneNode(false);\n iconElement.className = this.options.iconBase + ' ' + options.icon;\n elementTemplates.fragment.appendChild(iconElement);\n elementTemplates.fragment.appendChild(whitespace);\n }\n\n if (options.subtext) {\n subtextElement = elementTemplates.subtext.cloneNode(false);\n subtextElement.textContent = options.subtext;\n textElement.appendChild(subtextElement);\n }\n\n elementTemplates.fragment.appendChild(textElement);\n return elementTemplates.fragment;\n }\n };\n\n function showNoResults(searchMatch, searchValue) {\n if (!searchMatch.length) {\n elementTemplates.noResults.innerHTML = this.options.noneResultsText.replace('{0}', '\"' + htmlEscape(searchValue) + '\"');\n this.$menuInner[0].firstChild.appendChild(elementTemplates.noResults);\n }\n }\n\n var Selectpicker = function Selectpicker(element, options) {\n var that = this; // bootstrap-select has been initialized - revert valHooks.select.set back to its original function\n\n if (!valHooks.useDefault) {\n $.valHooks.select.set = valHooks._set;\n valHooks.useDefault = true;\n }\n\n this.$element = $(element);\n this.$newElement = null;\n this.$button = null;\n this.$menu = null;\n this.options = options;\n this.selectpicker = {\n main: {},\n search: {},\n current: {},\n // current changes if a search is in progress\n view: {},\n isSearching: false,\n keydown: {\n keyHistory: '',\n resetKeyHistory: {\n start: function start() {\n return setTimeout(function () {\n that.selectpicker.keydown.keyHistory = '';\n }, 800);\n }\n }\n }\n };\n this.sizeInfo = {}; // If we have no title yet, try to pull it from the html title attribute (jQuery doesnt' pick it up as it's not a\n // data-attribute)\n\n if (this.options.title === null) {\n this.options.title = this.$element.attr('title');\n } // Format window padding\n\n\n var winPad = this.options.windowPadding;\n\n if (typeof winPad === 'number') {\n this.options.windowPadding = [winPad, winPad, winPad, winPad];\n } // Expose public methods\n\n\n this.val = Selectpicker.prototype.val;\n this.render = Selectpicker.prototype.render;\n this.refresh = Selectpicker.prototype.refresh;\n this.setStyle = Selectpicker.prototype.setStyle;\n this.selectAll = Selectpicker.prototype.selectAll;\n this.deselectAll = Selectpicker.prototype.deselectAll;\n this.destroy = Selectpicker.prototype.destroy;\n this.remove = Selectpicker.prototype.remove;\n this.show = Selectpicker.prototype.show;\n this.hide = Selectpicker.prototype.hide;\n this.init();\n };\n\n Selectpicker.VERSION = '1.13.16'; // part of this is duplicated in i18n/defaults-en_US.js. Make sure to update both.\n\n Selectpicker.DEFAULTS = {\n noneSelectedText: 'Nothing selected',\n noneResultsText: 'No results matched {0}',\n countSelectedText: function countSelectedText(numSelected, numTotal) {\n return numSelected == 1 ? '{0} item selected' : '{0} items selected';\n },\n maxOptionsText: function maxOptionsText(numAll, numGroup) {\n return [numAll == 1 ? 'Limit reached ({n} item max)' : 'Limit reached ({n} items max)', numGroup == 1 ? 'Group limit reached ({n} item max)' : 'Group limit reached ({n} items max)'];\n },\n selectAllText: 'Select All',\n deselectAllText: 'Deselect All',\n doneButton: false,\n doneButtonText: 'Close',\n multipleSeparator: ', ',\n styleBase: 'btn',\n style: classNames.BUTTONCLASS,\n size: 'auto',\n title: null,\n selectedTextFormat: 'values',\n width: false,\n container: false,\n hideDisabled: false,\n showSubtext: false,\n showIcon: true,\n showContent: true,\n dropupAuto: true,\n header: false,\n liveSearch: false,\n liveSearchPlaceholder: null,\n liveSearchNormalize: false,\n liveSearchStyle: 'contains',\n actionsBox: false,\n iconBase: classNames.ICONBASE,\n tickIcon: classNames.TICKICON,\n showTick: false,\n template: {\n caret: ''\n },\n maxOptions: false,\n mobile: false,\n selectOnTab: false,\n dropdownAlignRight: false,\n windowPadding: 0,\n virtualScroll: 600,\n display: false,\n sanitize: true,\n sanitizeFn: null,\n whiteList: DefaultWhitelist\n };\n Selectpicker.prototype = {\n constructor: Selectpicker,\n init: function init() {\n var that = this,\n id = this.$element.attr('id');\n selectId++;\n this.selectId = 'bs-select-' + selectId;\n this.$element[0].classList.add('bs-select-hidden');\n this.multiple = this.$element.prop('multiple');\n this.autofocus = this.$element.prop('autofocus');\n\n if (this.$element[0].classList.contains('show-tick')) {\n this.options.showTick = true;\n }\n\n this.$newElement = this.createDropdown();\n this.buildData();\n this.$element.after(this.$newElement).prependTo(this.$newElement);\n this.$button = this.$newElement.children('button');\n this.$menu = this.$newElement.children(Selector.MENU);\n this.$menuInner = this.$menu.children('.inner');\n this.$searchbox = this.$menu.find('input');\n this.$element[0].classList.remove('bs-select-hidden');\n if (this.options.dropdownAlignRight === true) this.$menu[0].classList.add(classNames.MENURIGHT);\n\n if (typeof id !== 'undefined') {\n this.$button.attr('data-id', id);\n }\n\n this.checkDisabled();\n this.clickListener();\n\n if (this.options.liveSearch) {\n this.liveSearchListener();\n this.focusedParent = this.$searchbox[0];\n } else {\n this.focusedParent = this.$menuInner[0];\n }\n\n this.setStyle();\n this.render();\n this.setWidth();\n\n if (this.options.container) {\n this.selectPosition();\n } else {\n this.$element.on('hide' + EVENT_KEY, function () {\n if (that.isVirtual()) {\n // empty menu on close\n var menuInner = that.$menuInner[0],\n emptyMenu = menuInner.firstChild.cloneNode(false); // replace the existing UL with an empty one - this is faster than $.empty() or innerHTML = ''\n\n menuInner.replaceChild(emptyMenu, menuInner.firstChild);\n menuInner.scrollTop = 0;\n }\n });\n }\n\n this.$menu.data('this', this);\n this.$newElement.data('this', this);\n if (this.options.mobile) this.mobile();\n this.$newElement.on({\n 'hide.bs.dropdown': function hideBsDropdown(e) {\n that.$element.trigger('hide' + EVENT_KEY, e);\n },\n 'hidden.bs.dropdown': function hiddenBsDropdown(e) {\n that.$element.trigger('hidden' + EVENT_KEY, e);\n },\n 'show.bs.dropdown': function showBsDropdown(e) {\n that.$element.trigger('show' + EVENT_KEY, e);\n },\n 'shown.bs.dropdown': function shownBsDropdown(e) {\n that.$element.trigger('shown' + EVENT_KEY, e);\n }\n });\n\n if (that.$element[0].hasAttribute('required')) {\n this.$element.on('invalid' + EVENT_KEY, function () {\n that.$button[0].classList.add('bs-invalid');\n that.$element.on('shown' + EVENT_KEY + '.invalid', function () {\n that.$element.val(that.$element.val()) // set the value to hide the validation message in Chrome when menu is opened\n .off('shown' + EVENT_KEY + '.invalid');\n }).on('rendered' + EVENT_KEY, function () {\n // if select is no longer invalid, remove the bs-invalid class\n if (this.validity.valid) that.$button[0].classList.remove('bs-invalid');\n that.$element.off('rendered' + EVENT_KEY);\n });\n that.$button.on('blur' + EVENT_KEY, function () {\n that.$element.trigger('focus').trigger('blur');\n that.$button.off('blur' + EVENT_KEY);\n });\n });\n }\n\n setTimeout(function () {\n that.buildList();\n that.$element.trigger('loaded' + EVENT_KEY);\n });\n },\n createDropdown: function createDropdown() {\n // Options\n // If we are multiple or showTick option is set, then add the show-tick class\n var showTick = this.multiple || this.options.showTick ? ' show-tick' : '',\n multiselectable = this.multiple ? ' aria-multiselectable=\"true\"' : '',\n inputGroup = '',\n autofocus = this.autofocus ? ' autofocus' : '';\n\n if (version.major < 4 && this.$element.parent().hasClass('input-group')) {\n inputGroup = ' input-group-btn';\n } // Elements\n\n\n var drop,\n header = '',\n searchbox = '',\n actionsbox = '',\n donebutton = '';\n\n if (this.options.header) {\n header = '
' + '' + this.options.header + '
';\n }\n\n if (this.options.liveSearch) {\n searchbox = '
' + '' + '
';\n }\n\n if (this.multiple && this.options.actionsBox) {\n actionsbox = '
' + '
' + '' + '' + '
' + '
';\n }\n\n if (this.multiple && this.options.doneButton) {\n donebutton = '
' + '
' + '' + '
' + '
';\n }\n\n drop = '
' + '' + '
' + header + searchbox + actionsbox + '
' + '
    ' + '
' + '
' + donebutton + '
' + '
';\n return $(drop);\n },\n setPositionData: function setPositionData() {\n this.selectpicker.view.canHighlight = [];\n this.selectpicker.view.size = 0;\n\n for (var i = 0; i < this.selectpicker.current.data.length; i++) {\n var li = this.selectpicker.current.data[i],\n canHighlight = true;\n\n if (li.type === 'divider') {\n canHighlight = false;\n li.height = this.sizeInfo.dividerHeight;\n } else if (li.type === 'optgroup-label') {\n canHighlight = false;\n li.height = this.sizeInfo.dropdownHeaderHeight;\n } else {\n li.height = this.sizeInfo.liHeight;\n }\n\n if (li.disabled) canHighlight = false;\n this.selectpicker.view.canHighlight.push(canHighlight);\n\n if (canHighlight) {\n this.selectpicker.view.size++;\n li.posinset = this.selectpicker.view.size;\n }\n\n li.position = (i === 0 ? 0 : this.selectpicker.current.data[i - 1].position) + li.height;\n }\n },\n isVirtual: function isVirtual() {\n return this.options.virtualScroll !== false && this.selectpicker.main.elements.length >= this.options.virtualScroll || this.options.virtualScroll === true;\n },\n createView: function createView(isSearching, setSize, refresh) {\n var that = this,\n scrollTop = 0,\n active = [],\n selected,\n prevActive;\n this.selectpicker.isSearching = isSearching;\n this.selectpicker.current = isSearching ? this.selectpicker.search : this.selectpicker.main;\n this.setPositionData();\n\n if (setSize) {\n if (refresh) {\n scrollTop = this.$menuInner[0].scrollTop;\n } else if (!that.multiple) {\n var element = that.$element[0],\n selectedIndex = (element.options[element.selectedIndex] || {}).liIndex;\n\n if (typeof selectedIndex === 'number' && that.options.size !== false) {\n var selectedData = that.selectpicker.main.data[selectedIndex],\n position = selectedData && selectedData.position;\n\n if (position) {\n scrollTop = position - (that.sizeInfo.menuInnerHeight + that.sizeInfo.liHeight) / 2;\n }\n }\n }\n }\n\n scroll(scrollTop, true);\n this.$menuInner.off('scroll.createView').on('scroll.createView', function (e, updateValue) {\n if (!that.noScroll) scroll(this.scrollTop, updateValue);\n that.noScroll = false;\n });\n\n function scroll(scrollTop, init) {\n var size = that.selectpicker.current.elements.length,\n chunks = [],\n chunkSize,\n chunkCount,\n firstChunk,\n lastChunk,\n currentChunk,\n prevPositions,\n positionIsDifferent,\n previousElements,\n menuIsDifferent = true,\n isVirtual = that.isVirtual();\n that.selectpicker.view.scrollTop = scrollTop;\n chunkSize = Math.ceil(that.sizeInfo.menuInnerHeight / that.sizeInfo.liHeight * 1.5); // number of options in a chunk\n\n chunkCount = Math.round(size / chunkSize) || 1; // number of chunks\n\n for (var i = 0; i < chunkCount; i++) {\n var endOfChunk = (i + 1) * chunkSize;\n\n if (i === chunkCount - 1) {\n endOfChunk = size;\n }\n\n chunks[i] = [i * chunkSize + (!i ? 0 : 1), endOfChunk];\n if (!size) break;\n\n if (currentChunk === undefined && scrollTop - 1 <= that.selectpicker.current.data[endOfChunk - 1].position - that.sizeInfo.menuInnerHeight) {\n currentChunk = i;\n }\n }\n\n if (currentChunk === undefined) currentChunk = 0;\n prevPositions = [that.selectpicker.view.position0, that.selectpicker.view.position1]; // always display previous, current, and next chunks\n\n firstChunk = Math.max(0, currentChunk - 1);\n lastChunk = Math.min(chunkCount - 1, currentChunk + 1);\n that.selectpicker.view.position0 = isVirtual === false ? 0 : Math.max(0, chunks[firstChunk][0]) || 0;\n that.selectpicker.view.position1 = isVirtual === false ? size : Math.min(size, chunks[lastChunk][1]) || 0;\n positionIsDifferent = prevPositions[0] !== that.selectpicker.view.position0 || prevPositions[1] !== that.selectpicker.view.position1;\n\n if (that.activeIndex !== undefined) {\n prevActive = that.selectpicker.main.elements[that.prevActiveIndex];\n active = that.selectpicker.main.elements[that.activeIndex];\n selected = that.selectpicker.main.elements[that.selectedIndex];\n\n if (init) {\n if (that.activeIndex !== that.selectedIndex) {\n that.defocusItem(active);\n }\n\n that.activeIndex = undefined;\n }\n\n if (that.activeIndex && that.activeIndex !== that.selectedIndex) {\n that.defocusItem(selected);\n }\n }\n\n if (that.prevActiveIndex !== undefined && that.prevActiveIndex !== that.activeIndex && that.prevActiveIndex !== that.selectedIndex) {\n that.defocusItem(prevActive);\n }\n\n if (init || positionIsDifferent) {\n previousElements = that.selectpicker.view.visibleElements ? that.selectpicker.view.visibleElements.slice() : [];\n\n if (isVirtual === false) {\n that.selectpicker.view.visibleElements = that.selectpicker.current.elements;\n } else {\n that.selectpicker.view.visibleElements = that.selectpicker.current.elements.slice(that.selectpicker.view.position0, that.selectpicker.view.position1);\n }\n\n that.setOptionStatus(); // if searching, check to make sure the list has actually been updated before updating DOM\n // this prevents unnecessary repaints\n\n if (isSearching || isVirtual === false && init) menuIsDifferent = !isEqual(previousElements, that.selectpicker.view.visibleElements); // if virtual scroll is disabled and not searching,\n // menu should never need to be updated more than once\n\n if ((init || isVirtual === true) && menuIsDifferent) {\n var menuInner = that.$menuInner[0],\n menuFragment = document.createDocumentFragment(),\n emptyMenu = menuInner.firstChild.cloneNode(false),\n marginTop,\n marginBottom,\n elements = that.selectpicker.view.visibleElements,\n toSanitize = []; // replace the existing UL with an empty one - this is faster than $.empty()\n\n menuInner.replaceChild(emptyMenu, menuInner.firstChild);\n\n for (var i = 0, visibleElementsLen = elements.length; i < visibleElementsLen; i++) {\n var element = elements[i],\n elText,\n elementData;\n\n if (that.options.sanitize) {\n elText = element.lastChild;\n\n if (elText) {\n elementData = that.selectpicker.current.data[i + that.selectpicker.view.position0];\n\n if (elementData && elementData.content && !elementData.sanitized) {\n toSanitize.push(elText);\n elementData.sanitized = true;\n }\n }\n }\n\n menuFragment.appendChild(element);\n }\n\n if (that.options.sanitize && toSanitize.length) {\n sanitizeHtml(toSanitize, that.options.whiteList, that.options.sanitizeFn);\n }\n\n if (isVirtual === true) {\n marginTop = that.selectpicker.view.position0 === 0 ? 0 : that.selectpicker.current.data[that.selectpicker.view.position0 - 1].position;\n marginBottom = that.selectpicker.view.position1 > size - 1 ? 0 : that.selectpicker.current.data[size - 1].position - that.selectpicker.current.data[that.selectpicker.view.position1 - 1].position;\n menuInner.firstChild.style.marginTop = marginTop + 'px';\n menuInner.firstChild.style.marginBottom = marginBottom + 'px';\n } else {\n menuInner.firstChild.style.marginTop = 0;\n menuInner.firstChild.style.marginBottom = 0;\n }\n\n menuInner.firstChild.appendChild(menuFragment); // if an option is encountered that is wider than the current menu width, update the menu width accordingly\n // switch to ResizeObserver with increased browser support\n\n if (isVirtual === true && that.sizeInfo.hasScrollBar) {\n var menuInnerInnerWidth = menuInner.firstChild.offsetWidth;\n\n if (init && menuInnerInnerWidth < that.sizeInfo.menuInnerInnerWidth && that.sizeInfo.totalMenuWidth > that.sizeInfo.selectWidth) {\n menuInner.firstChild.style.minWidth = that.sizeInfo.menuInnerInnerWidth + 'px';\n } else if (menuInnerInnerWidth > that.sizeInfo.menuInnerInnerWidth) {\n // set to 0 to get actual width of menu\n that.$menu[0].style.minWidth = 0;\n var actualMenuWidth = menuInner.firstChild.offsetWidth;\n\n if (actualMenuWidth > that.sizeInfo.menuInnerInnerWidth) {\n that.sizeInfo.menuInnerInnerWidth = actualMenuWidth;\n menuInner.firstChild.style.minWidth = that.sizeInfo.menuInnerInnerWidth + 'px';\n } // reset to default CSS styling\n\n\n that.$menu[0].style.minWidth = '';\n }\n }\n }\n }\n\n that.prevActiveIndex = that.activeIndex;\n\n if (!that.options.liveSearch) {\n that.$menuInner.trigger('focus');\n } else if (isSearching && init) {\n var index = 0,\n newActive;\n\n if (!that.selectpicker.view.canHighlight[index]) {\n index = 1 + that.selectpicker.view.canHighlight.slice(1).indexOf(true);\n }\n\n newActive = that.selectpicker.view.visibleElements[index];\n that.defocusItem(that.selectpicker.view.currentActive);\n that.activeIndex = (that.selectpicker.current.data[index] || {}).index;\n that.focusItem(newActive);\n }\n }\n\n $(window).off('resize' + EVENT_KEY + '.' + this.selectId + '.createView').on('resize' + EVENT_KEY + '.' + this.selectId + '.createView', function () {\n var isActive = that.$newElement.hasClass(classNames.SHOW);\n if (isActive) scroll(that.$menuInner[0].scrollTop);\n });\n },\n focusItem: function focusItem(li, liData, noStyle) {\n if (li) {\n liData = liData || this.selectpicker.main.data[this.activeIndex];\n var a = li.firstChild;\n\n if (a) {\n a.setAttribute('aria-setsize', this.selectpicker.view.size);\n a.setAttribute('aria-posinset', liData.posinset);\n\n if (noStyle !== true) {\n this.focusedParent.setAttribute('aria-activedescendant', a.id);\n li.classList.add('active');\n a.classList.add('active');\n }\n }\n }\n },\n defocusItem: function defocusItem(li) {\n if (li) {\n li.classList.remove('active');\n if (li.firstChild) li.firstChild.classList.remove('active');\n }\n },\n setPlaceholder: function setPlaceholder() {\n var updateIndex = false;\n\n if (this.options.title && !this.multiple) {\n if (!this.selectpicker.view.titleOption) this.selectpicker.view.titleOption = document.createElement('option'); // this option doesn't create a new
  • element, but does add a new option at the start,\n // so startIndex should increase to prevent having to check every option for the bs-title-option class\n\n updateIndex = true;\n var element = this.$element[0],\n isSelected = false,\n titleNotAppended = !this.selectpicker.view.titleOption.parentNode;\n\n if (titleNotAppended) {\n // Use native JS to prepend option (faster)\n this.selectpicker.view.titleOption.className = 'bs-title-option';\n this.selectpicker.view.titleOption.value = ''; // Check if selected or data-selected attribute is already set on an option. If not, select the titleOption option.\n // the selected item may have been changed by user or programmatically before the bootstrap select plugin runs,\n // if so, the select will have the data-selected attribute\n\n var $opt = $(element.options[element.selectedIndex]);\n isSelected = $opt.attr('selected') === undefined && this.$element.data('selected') === undefined;\n }\n\n if (titleNotAppended || this.selectpicker.view.titleOption.index !== 0) {\n element.insertBefore(this.selectpicker.view.titleOption, element.firstChild);\n } // Set selected *after* appending to select,\n // otherwise the option doesn't get selected in IE\n // set using selectedIndex, as setting the selected attr to true here doesn't work in IE11\n\n\n if (isSelected) element.selectedIndex = 0;\n }\n\n return updateIndex;\n },\n buildData: function buildData() {\n var optionSelector = ':not([hidden]):not([data-hidden=\"true\"])',\n mainData = [],\n optID = 0,\n startIndex = this.setPlaceholder() ? 1 : 0; // append the titleOption if necessary and skip the first option in the loop\n\n if (this.options.hideDisabled) optionSelector += ':not(:disabled)';\n var selectOptions = this.$element[0].querySelectorAll('select > *' + optionSelector);\n\n function addDivider(config) {\n var previousData = mainData[mainData.length - 1]; // ensure optgroup doesn't create back-to-back dividers\n\n if (previousData && previousData.type === 'divider' && (previousData.optID || config.optID)) {\n return;\n }\n\n config = config || {};\n config.type = 'divider';\n mainData.push(config);\n }\n\n function addOption(option, config) {\n config = config || {};\n config.divider = option.getAttribute('data-divider') === 'true';\n\n if (config.divider) {\n addDivider({\n optID: config.optID\n });\n } else {\n var liIndex = mainData.length,\n cssText = option.style.cssText,\n inlineStyle = cssText ? htmlEscape(cssText) : '',\n optionClass = (option.className || '') + (config.optgroupClass || '');\n if (config.optID) optionClass = 'opt ' + optionClass;\n config.optionClass = optionClass.trim();\n config.inlineStyle = inlineStyle;\n config.text = option.textContent;\n config.content = option.getAttribute('data-content');\n config.tokens = option.getAttribute('data-tokens');\n config.subtext = option.getAttribute('data-subtext');\n config.icon = option.getAttribute('data-icon');\n option.liIndex = liIndex;\n config.display = config.content || config.text;\n config.type = 'option';\n config.index = liIndex;\n config.option = option;\n config.selected = !!option.selected;\n config.disabled = config.disabled || !!option.disabled;\n mainData.push(config);\n }\n }\n\n function addOptgroup(index, selectOptions) {\n var optgroup = selectOptions[index],\n // skip placeholder option\n previous = index - 1 < startIndex ? false : selectOptions[index - 1],\n next = selectOptions[index + 1],\n options = optgroup.querySelectorAll('option' + optionSelector);\n if (!options.length) return;\n var config = {\n display: htmlEscape(optgroup.label),\n subtext: optgroup.getAttribute('data-subtext'),\n icon: optgroup.getAttribute('data-icon'),\n type: 'optgroup-label',\n optgroupClass: ' ' + (optgroup.className || '')\n },\n headerIndex,\n lastIndex;\n optID++;\n\n if (previous) {\n addDivider({\n optID: optID\n });\n }\n\n config.optID = optID;\n mainData.push(config);\n\n for (var j = 0, len = options.length; j < len; j++) {\n var option = options[j];\n\n if (j === 0) {\n headerIndex = mainData.length - 1;\n lastIndex = headerIndex + len;\n }\n\n addOption(option, {\n headerIndex: headerIndex,\n lastIndex: lastIndex,\n optID: config.optID,\n optgroupClass: config.optgroupClass,\n disabled: optgroup.disabled\n });\n }\n\n if (next) {\n addDivider({\n optID: optID\n });\n }\n }\n\n for (var len = selectOptions.length; startIndex < len; startIndex++) {\n var item = selectOptions[startIndex];\n\n if (item.tagName !== 'OPTGROUP') {\n addOption(item, {});\n } else {\n addOptgroup(startIndex, selectOptions);\n }\n }\n\n this.selectpicker.main.data = this.selectpicker.current.data = mainData;\n },\n buildList: function buildList() {\n var that = this,\n selectData = this.selectpicker.main.data,\n mainElements = [],\n widestOptionLength = 0;\n\n if ((that.options.showTick || that.multiple) && !elementTemplates.checkMark.parentNode) {\n elementTemplates.checkMark.className = this.options.iconBase + ' ' + that.options.tickIcon + ' check-mark';\n elementTemplates.a.appendChild(elementTemplates.checkMark);\n }\n\n function buildElement(item) {\n var liElement,\n combinedLength = 0;\n\n switch (item.type) {\n case 'divider':\n liElement = generateOption.li(false, classNames.DIVIDER, item.optID ? item.optID + 'div' : undefined);\n break;\n\n case 'option':\n liElement = generateOption.li(generateOption.a(generateOption.text.call(that, item), item.optionClass, item.inlineStyle), '', item.optID);\n\n if (liElement.firstChild) {\n liElement.firstChild.id = that.selectId + '-' + item.index;\n }\n\n break;\n\n case 'optgroup-label':\n liElement = generateOption.li(generateOption.label.call(that, item), 'dropdown-header' + item.optgroupClass, item.optID);\n break;\n }\n\n item.element = liElement;\n mainElements.push(liElement); // count the number of characters in the option - not perfect, but should work in most cases\n\n if (item.display) combinedLength += item.display.length;\n if (item.subtext) combinedLength += item.subtext.length; // if there is an icon, ensure this option's width is checked\n\n if (item.icon) combinedLength += 1;\n\n if (combinedLength > widestOptionLength) {\n widestOptionLength = combinedLength; // guess which option is the widest\n // use this when calculating menu width\n // not perfect, but it's fast, and the width will be updating accordingly when scrolling\n\n that.selectpicker.view.widestOption = mainElements[mainElements.length - 1];\n }\n }\n\n for (var len = selectData.length, i = 0; i < len; i++) {\n var item = selectData[i];\n buildElement(item);\n }\n\n this.selectpicker.main.elements = this.selectpicker.current.elements = mainElements;\n },\n findLis: function findLis() {\n return this.$menuInner.find('.inner > li');\n },\n render: function render() {\n var that = this,\n element = this.$element[0],\n // ensure titleOption is appended and selected (if necessary) before getting selectedOptions\n placeholderSelected = this.setPlaceholder() && element.selectedIndex === 0,\n selectedOptions = getSelectedOptions(element, this.options.hideDisabled),\n selectedCount = selectedOptions.length,\n button = this.$button[0],\n buttonInner = button.querySelector('.filter-option-inner-inner'),\n multipleSeparator = document.createTextNode(this.options.multipleSeparator),\n titleFragment = elementTemplates.fragment.cloneNode(false),\n showCount,\n countMax,\n hasContent = false;\n button.classList.toggle('bs-placeholder', that.multiple ? !selectedCount : !getSelectValues(element, selectedOptions));\n this.tabIndex();\n\n if (this.options.selectedTextFormat === 'static') {\n titleFragment = generateOption.text.call(this, {\n text: this.options.title\n }, true);\n } else {\n showCount = this.multiple && this.options.selectedTextFormat.indexOf('count') !== -1 && selectedCount > 1; // determine if the number of selected options will be shown (showCount === true)\n\n if (showCount) {\n countMax = this.options.selectedTextFormat.split('>');\n showCount = countMax.length > 1 && selectedCount > countMax[1] || countMax.length === 1 && selectedCount >= 2;\n } // only loop through all selected options if the count won't be shown\n\n\n if (showCount === false) {\n if (!placeholderSelected) {\n for (var selectedIndex = 0; selectedIndex < selectedCount; selectedIndex++) {\n if (selectedIndex < 50) {\n var option = selectedOptions[selectedIndex],\n thisData = this.selectpicker.main.data[option.liIndex],\n titleOptions = {};\n\n if (this.multiple && selectedIndex > 0) {\n titleFragment.appendChild(multipleSeparator.cloneNode(false));\n }\n\n if (option.title) {\n titleOptions.text = option.title;\n } else if (thisData) {\n if (thisData.content && that.options.showContent) {\n titleOptions.content = thisData.content.toString();\n hasContent = true;\n } else {\n if (that.options.showIcon) {\n titleOptions.icon = thisData.icon;\n }\n\n if (that.options.showSubtext && !that.multiple && thisData.subtext) titleOptions.subtext = ' ' + thisData.subtext;\n titleOptions.text = option.textContent.trim();\n }\n }\n\n titleFragment.appendChild(generateOption.text.call(this, titleOptions, true));\n } else {\n break;\n }\n } // add ellipsis\n\n\n if (selectedCount > 49) {\n titleFragment.appendChild(document.createTextNode('...'));\n }\n }\n } else {\n var optionSelector = ':not([hidden]):not([data-hidden=\"true\"]):not([data-divider=\"true\"])';\n if (this.options.hideDisabled) optionSelector += ':not(:disabled)'; // If this is a multiselect, and selectedTextFormat is count, then show 1 of 2 selected, etc.\n\n var totalCount = this.$element[0].querySelectorAll('select > option' + optionSelector + ', optgroup' + optionSelector + ' option' + optionSelector).length,\n tr8nText = typeof this.options.countSelectedText === 'function' ? this.options.countSelectedText(selectedCount, totalCount) : this.options.countSelectedText;\n titleFragment = generateOption.text.call(this, {\n text: tr8nText.replace('{0}', selectedCount.toString()).replace('{1}', totalCount.toString())\n }, true);\n }\n }\n\n if (this.options.title == undefined) {\n // use .attr to ensure undefined is returned if title attribute is not set\n this.options.title = this.$element.attr('title');\n } // If the select doesn't have a title, then use the default, or if nothing is set at all, use noneSelectedText\n\n\n if (!titleFragment.childNodes.length) {\n titleFragment = generateOption.text.call(this, {\n text: typeof this.options.title !== 'undefined' ? this.options.title : this.options.noneSelectedText\n }, true);\n } // strip all HTML tags and trim the result, then unescape any escaped tags\n\n\n button.title = titleFragment.textContent.replace(/<[^>]*>?/g, '').trim();\n\n if (this.options.sanitize && hasContent) {\n sanitizeHtml([titleFragment], that.options.whiteList, that.options.sanitizeFn);\n }\n\n buttonInner.innerHTML = '';\n buttonInner.appendChild(titleFragment);\n\n if (version.major < 4 && this.$newElement[0].classList.contains('bs3-has-addon')) {\n var filterExpand = button.querySelector('.filter-expand'),\n clone = buttonInner.cloneNode(true);\n clone.className = 'filter-expand';\n\n if (filterExpand) {\n button.replaceChild(clone, filterExpand);\n } else {\n button.appendChild(clone);\n }\n }\n\n this.$element.trigger('rendered' + EVENT_KEY);\n },\n\n /**\r\n * @param [style]\r\n * @param [status]\r\n */\n setStyle: function setStyle(newStyle, status) {\n var button = this.$button[0],\n newElement = this.$newElement[0],\n style = this.options.style.trim(),\n buttonClass;\n\n if (this.$element.attr('class')) {\n this.$newElement.addClass(this.$element.attr('class').replace(/selectpicker|mobile-device|bs-select-hidden|validate\\[.*\\]/gi, ''));\n }\n\n if (version.major < 4) {\n newElement.classList.add('bs3');\n\n if (newElement.parentNode.classList && newElement.parentNode.classList.contains('input-group') && (newElement.previousElementSibling || newElement.nextElementSibling) && (newElement.previousElementSibling || newElement.nextElementSibling).classList.contains('input-group-addon')) {\n newElement.classList.add('bs3-has-addon');\n }\n }\n\n if (newStyle) {\n buttonClass = newStyle.trim();\n } else {\n buttonClass = style;\n }\n\n if (status == 'add') {\n if (buttonClass) button.classList.add.apply(button.classList, buttonClass.split(' '));\n } else if (status == 'remove') {\n if (buttonClass) button.classList.remove.apply(button.classList, buttonClass.split(' '));\n } else {\n if (style) button.classList.remove.apply(button.classList, style.split(' '));\n if (buttonClass) button.classList.add.apply(button.classList, buttonClass.split(' '));\n }\n },\n liHeight: function liHeight(refresh) {\n if (!refresh && (this.options.size === false || Object.keys(this.sizeInfo).length)) return;\n var newElement = elementTemplates.div.cloneNode(false),\n menu = elementTemplates.div.cloneNode(false),\n menuInner = elementTemplates.div.cloneNode(false),\n menuInnerInner = document.createElement('ul'),\n divider = elementTemplates.li.cloneNode(false),\n dropdownHeader = elementTemplates.li.cloneNode(false),\n li,\n a = elementTemplates.a.cloneNode(false),\n text = elementTemplates.span.cloneNode(false),\n header = this.options.header && this.$menu.find('.' + classNames.POPOVERHEADER).length > 0 ? this.$menu.find('.' + classNames.POPOVERHEADER)[0].cloneNode(true) : null,\n search = this.options.liveSearch ? elementTemplates.div.cloneNode(false) : null,\n actions = this.options.actionsBox && this.multiple && this.$menu.find('.bs-actionsbox').length > 0 ? this.$menu.find('.bs-actionsbox')[0].cloneNode(true) : null,\n doneButton = this.options.doneButton && this.multiple && this.$menu.find('.bs-donebutton').length > 0 ? this.$menu.find('.bs-donebutton')[0].cloneNode(true) : null,\n firstOption = this.$element.find('option')[0];\n this.sizeInfo.selectWidth = this.$newElement[0].offsetWidth;\n text.className = 'text';\n a.className = 'dropdown-item ' + (firstOption ? firstOption.className : '');\n newElement.className = this.$menu[0].parentNode.className + ' ' + classNames.SHOW;\n newElement.style.width = 0; // ensure button width doesn't affect natural width of menu when calculating\n\n if (this.options.width === 'auto') menu.style.minWidth = 0;\n menu.className = classNames.MENU + ' ' + classNames.SHOW;\n menuInner.className = 'inner ' + classNames.SHOW;\n menuInnerInner.className = classNames.MENU + ' inner ' + (version.major === '4' ? classNames.SHOW : '');\n divider.className = classNames.DIVIDER;\n dropdownHeader.className = 'dropdown-header';\n text.appendChild(document.createTextNode(\"\\u200B\"));\n\n if (this.selectpicker.current.data.length) {\n for (var i = 0; i < this.selectpicker.current.data.length; i++) {\n var data = this.selectpicker.current.data[i];\n\n if (data.type === 'option') {\n li = data.element;\n break;\n }\n }\n } else {\n li = elementTemplates.li.cloneNode(false);\n a.appendChild(text);\n li.appendChild(a);\n }\n\n dropdownHeader.appendChild(text.cloneNode(true));\n\n if (this.selectpicker.view.widestOption) {\n menuInnerInner.appendChild(this.selectpicker.view.widestOption.cloneNode(true));\n }\n\n menuInnerInner.appendChild(li);\n menuInnerInner.appendChild(divider);\n menuInnerInner.appendChild(dropdownHeader);\n if (header) menu.appendChild(header);\n\n if (search) {\n var input = document.createElement('input');\n search.className = 'bs-searchbox';\n input.className = 'form-control';\n search.appendChild(input);\n menu.appendChild(search);\n }\n\n if (actions) menu.appendChild(actions);\n menuInner.appendChild(menuInnerInner);\n menu.appendChild(menuInner);\n if (doneButton) menu.appendChild(doneButton);\n newElement.appendChild(menu);\n document.body.appendChild(newElement);\n var liHeight = li.offsetHeight,\n dropdownHeaderHeight = dropdownHeader ? dropdownHeader.offsetHeight : 0,\n headerHeight = header ? header.offsetHeight : 0,\n searchHeight = search ? search.offsetHeight : 0,\n actionsHeight = actions ? actions.offsetHeight : 0,\n doneButtonHeight = doneButton ? doneButton.offsetHeight : 0,\n dividerHeight = $(divider).outerHeight(true),\n // fall back to jQuery if getComputedStyle is not supported\n menuStyle = window.getComputedStyle ? window.getComputedStyle(menu) : false,\n menuWidth = menu.offsetWidth,\n $menu = menuStyle ? null : $(menu),\n menuPadding = {\n vert: toInteger(menuStyle ? menuStyle.paddingTop : $menu.css('paddingTop')) + toInteger(menuStyle ? menuStyle.paddingBottom : $menu.css('paddingBottom')) + toInteger(menuStyle ? menuStyle.borderTopWidth : $menu.css('borderTopWidth')) + toInteger(menuStyle ? menuStyle.borderBottomWidth : $menu.css('borderBottomWidth')),\n horiz: toInteger(menuStyle ? menuStyle.paddingLeft : $menu.css('paddingLeft')) + toInteger(menuStyle ? menuStyle.paddingRight : $menu.css('paddingRight')) + toInteger(menuStyle ? menuStyle.borderLeftWidth : $menu.css('borderLeftWidth')) + toInteger(menuStyle ? menuStyle.borderRightWidth : $menu.css('borderRightWidth'))\n },\n menuExtras = {\n vert: menuPadding.vert + toInteger(menuStyle ? menuStyle.marginTop : $menu.css('marginTop')) + toInteger(menuStyle ? menuStyle.marginBottom : $menu.css('marginBottom')) + 2,\n horiz: menuPadding.horiz + toInteger(menuStyle ? menuStyle.marginLeft : $menu.css('marginLeft')) + toInteger(menuStyle ? menuStyle.marginRight : $menu.css('marginRight')) + 2\n },\n scrollBarWidth;\n menuInner.style.overflowY = 'scroll';\n scrollBarWidth = menu.offsetWidth - menuWidth;\n document.body.removeChild(newElement);\n this.sizeInfo.liHeight = liHeight;\n this.sizeInfo.dropdownHeaderHeight = dropdownHeaderHeight;\n this.sizeInfo.headerHeight = headerHeight;\n this.sizeInfo.searchHeight = searchHeight;\n this.sizeInfo.actionsHeight = actionsHeight;\n this.sizeInfo.doneButtonHeight = doneButtonHeight;\n this.sizeInfo.dividerHeight = dividerHeight;\n this.sizeInfo.menuPadding = menuPadding;\n this.sizeInfo.menuExtras = menuExtras;\n this.sizeInfo.menuWidth = menuWidth;\n this.sizeInfo.menuInnerInnerWidth = menuWidth - menuPadding.horiz;\n this.sizeInfo.totalMenuWidth = this.sizeInfo.menuWidth;\n this.sizeInfo.scrollBarWidth = scrollBarWidth;\n this.sizeInfo.selectHeight = this.$newElement[0].offsetHeight;\n this.setPositionData();\n },\n getSelectPosition: function getSelectPosition() {\n var that = this,\n $window = $(window),\n pos = that.$newElement.offset(),\n $container = $(that.options.container),\n containerPos;\n\n if (that.options.container && $container.length && !$container.is('body')) {\n containerPos = $container.offset();\n containerPos.top += parseInt($container.css('borderTopWidth'));\n containerPos.left += parseInt($container.css('borderLeftWidth'));\n } else {\n containerPos = {\n top: 0,\n left: 0\n };\n }\n\n var winPad = that.options.windowPadding;\n this.sizeInfo.selectOffsetTop = pos.top - containerPos.top - $window.scrollTop();\n this.sizeInfo.selectOffsetBot = $window.height() - this.sizeInfo.selectOffsetTop - this.sizeInfo.selectHeight - containerPos.top - winPad[2];\n this.sizeInfo.selectOffsetLeft = pos.left - containerPos.left - $window.scrollLeft();\n this.sizeInfo.selectOffsetRight = $window.width() - this.sizeInfo.selectOffsetLeft - this.sizeInfo.selectWidth - containerPos.left - winPad[1];\n this.sizeInfo.selectOffsetTop -= winPad[0];\n this.sizeInfo.selectOffsetLeft -= winPad[3];\n },\n setMenuSize: function setMenuSize(isAuto) {\n this.getSelectPosition();\n\n var selectWidth = this.sizeInfo.selectWidth,\n liHeight = this.sizeInfo.liHeight,\n headerHeight = this.sizeInfo.headerHeight,\n searchHeight = this.sizeInfo.searchHeight,\n actionsHeight = this.sizeInfo.actionsHeight,\n doneButtonHeight = this.sizeInfo.doneButtonHeight,\n divHeight = this.sizeInfo.dividerHeight,\n menuPadding = this.sizeInfo.menuPadding,\n menuInnerHeight,\n menuHeight,\n divLength = 0,\n minHeight,\n _minHeight,\n maxHeight,\n menuInnerMinHeight,\n estimate,\n isDropup;\n\n if (this.options.dropupAuto) {\n // Get the estimated height of the menu without scrollbars.\n // This is useful for smaller menus, where there might be plenty of room\n // below the button without setting dropup, but we can't know\n // the exact height of the menu until createView is called later\n estimate = liHeight * this.selectpicker.current.elements.length + menuPadding.vert;\n isDropup = this.sizeInfo.selectOffsetTop - this.sizeInfo.selectOffsetBot > this.sizeInfo.menuExtras.vert && estimate + this.sizeInfo.menuExtras.vert + 50 > this.sizeInfo.selectOffsetBot; // ensure dropup doesn't change while searching (so menu doesn't bounce back and forth)\n\n if (this.selectpicker.isSearching === true) {\n isDropup = this.selectpicker.dropup;\n }\n\n this.$newElement.toggleClass(classNames.DROPUP, isDropup);\n this.selectpicker.dropup = isDropup;\n }\n\n if (this.options.size === 'auto') {\n _minHeight = this.selectpicker.current.elements.length > 3 ? this.sizeInfo.liHeight * 3 + this.sizeInfo.menuExtras.vert - 2 : 0;\n menuHeight = this.sizeInfo.selectOffsetBot - this.sizeInfo.menuExtras.vert;\n minHeight = _minHeight + headerHeight + searchHeight + actionsHeight + doneButtonHeight;\n menuInnerMinHeight = Math.max(_minHeight - menuPadding.vert, 0);\n\n if (this.$newElement.hasClass(classNames.DROPUP)) {\n menuHeight = this.sizeInfo.selectOffsetTop - this.sizeInfo.menuExtras.vert;\n }\n\n maxHeight = menuHeight;\n menuInnerHeight = menuHeight - headerHeight - searchHeight - actionsHeight - doneButtonHeight - menuPadding.vert;\n } else if (this.options.size && this.options.size != 'auto' && this.selectpicker.current.elements.length > this.options.size) {\n for (var i = 0; i < this.options.size; i++) {\n if (this.selectpicker.current.data[i].type === 'divider') divLength++;\n }\n\n menuHeight = liHeight * this.options.size + divLength * divHeight + menuPadding.vert;\n menuInnerHeight = menuHeight - menuPadding.vert;\n maxHeight = menuHeight + headerHeight + searchHeight + actionsHeight + doneButtonHeight;\n minHeight = menuInnerMinHeight = '';\n }\n\n this.$menu.css({\n 'max-height': maxHeight + 'px',\n 'overflow': 'hidden',\n 'min-height': minHeight + 'px'\n });\n this.$menuInner.css({\n 'max-height': menuInnerHeight + 'px',\n 'overflow-y': 'auto',\n 'min-height': menuInnerMinHeight + 'px'\n }); // ensure menuInnerHeight is always a positive number to prevent issues calculating chunkSize in createView\n\n this.sizeInfo.menuInnerHeight = Math.max(menuInnerHeight, 1);\n\n if (this.selectpicker.current.data.length && this.selectpicker.current.data[this.selectpicker.current.data.length - 1].position > this.sizeInfo.menuInnerHeight) {\n this.sizeInfo.hasScrollBar = true;\n this.sizeInfo.totalMenuWidth = this.sizeInfo.menuWidth + this.sizeInfo.scrollBarWidth;\n }\n\n if (this.options.dropdownAlignRight === 'auto') {\n this.$menu.toggleClass(classNames.MENURIGHT, this.sizeInfo.selectOffsetLeft > this.sizeInfo.selectOffsetRight && this.sizeInfo.selectOffsetRight < this.sizeInfo.totalMenuWidth - selectWidth);\n }\n\n if (this.dropdown && this.dropdown._popper) this.dropdown._popper.update();\n },\n setSize: function setSize(refresh) {\n this.liHeight(refresh);\n if (this.options.header) this.$menu.css('padding-top', 0);\n\n if (this.options.size !== false) {\n var that = this,\n $window = $(window);\n this.setMenuSize();\n\n if (this.options.liveSearch) {\n this.$searchbox.off('input.setMenuSize propertychange.setMenuSize').on('input.setMenuSize propertychange.setMenuSize', function () {\n return that.setMenuSize();\n });\n }\n\n if (this.options.size === 'auto') {\n $window.off('resize' + EVENT_KEY + '.' + this.selectId + '.setMenuSize' + ' scroll' + EVENT_KEY + '.' + this.selectId + '.setMenuSize').on('resize' + EVENT_KEY + '.' + this.selectId + '.setMenuSize' + ' scroll' + EVENT_KEY + '.' + this.selectId + '.setMenuSize', function () {\n return that.setMenuSize();\n });\n } else if (this.options.size && this.options.size != 'auto' && this.selectpicker.current.elements.length > this.options.size) {\n $window.off('resize' + EVENT_KEY + '.' + this.selectId + '.setMenuSize' + ' scroll' + EVENT_KEY + '.' + this.selectId + '.setMenuSize');\n }\n }\n\n this.createView(false, true, refresh);\n },\n setWidth: function setWidth() {\n var that = this;\n\n if (this.options.width === 'auto') {\n requestAnimationFrame(function () {\n that.$menu.css('min-width', '0');\n that.$element.on('loaded' + EVENT_KEY, function () {\n that.liHeight();\n that.setMenuSize(); // Get correct width if element is hidden\n\n var $selectClone = that.$newElement.clone().appendTo('body'),\n btnWidth = $selectClone.css('width', 'auto').children('button').outerWidth();\n $selectClone.remove(); // Set width to whatever's larger, button title or longest option\n\n that.sizeInfo.selectWidth = Math.max(that.sizeInfo.totalMenuWidth, btnWidth);\n that.$newElement.css('width', that.sizeInfo.selectWidth + 'px');\n });\n });\n } else if (this.options.width === 'fit') {\n // Remove inline min-width so width can be changed from 'auto'\n this.$menu.css('min-width', '');\n this.$newElement.css('width', '').addClass('fit-width');\n } else if (this.options.width) {\n // Remove inline min-width so width can be changed from 'auto'\n this.$menu.css('min-width', '');\n this.$newElement.css('width', this.options.width);\n } else {\n // Remove inline min-width/width so width can be changed\n this.$menu.css('min-width', '');\n this.$newElement.css('width', '');\n } // Remove fit-width class if width is changed programmatically\n\n\n if (this.$newElement.hasClass('fit-width') && this.options.width !== 'fit') {\n this.$newElement[0].classList.remove('fit-width');\n }\n },\n selectPosition: function selectPosition() {\n this.$bsContainer = $('
    ');\n\n var that = this,\n $container = $(this.options.container),\n pos,\n containerPos,\n actualHeight,\n getPlacement = function getPlacement($element) {\n var containerPosition = {},\n // fall back to dropdown's default display setting if display is not manually set\n display = that.options.display || ( // Bootstrap 3 doesn't have $.fn.dropdown.Constructor.Default\n $.fn.dropdown.Constructor.Default ? $.fn.dropdown.Constructor.Default.display : false);\n that.$bsContainer.addClass($element.attr('class').replace(/form-control|fit-width/gi, '')).toggleClass(classNames.DROPUP, $element.hasClass(classNames.DROPUP));\n pos = $element.offset();\n\n if (!$container.is('body')) {\n containerPos = $container.offset();\n containerPos.top += parseInt($container.css('borderTopWidth')) - $container.scrollTop();\n containerPos.left += parseInt($container.css('borderLeftWidth')) - $container.scrollLeft();\n } else {\n containerPos = {\n top: 0,\n left: 0\n };\n }\n\n actualHeight = $element.hasClass(classNames.DROPUP) ? 0 : $element[0].offsetHeight; // Bootstrap 4+ uses Popper for menu positioning\n\n if (version.major < 4 || display === 'static') {\n containerPosition.top = pos.top - containerPos.top + actualHeight;\n containerPosition.left = pos.left - containerPos.left;\n }\n\n containerPosition.width = $element[0].offsetWidth;\n that.$bsContainer.css(containerPosition);\n };\n\n this.$button.on('click.bs.dropdown.data-api', function () {\n if (that.isDisabled()) {\n return;\n }\n\n getPlacement(that.$newElement);\n that.$bsContainer.appendTo(that.options.container).toggleClass(classNames.SHOW, !that.$button.hasClass(classNames.SHOW)).append(that.$menu);\n });\n $(window).off('resize' + EVENT_KEY + '.' + this.selectId + ' scroll' + EVENT_KEY + '.' + this.selectId).on('resize' + EVENT_KEY + '.' + this.selectId + ' scroll' + EVENT_KEY + '.' + this.selectId, function () {\n var isActive = that.$newElement.hasClass(classNames.SHOW);\n if (isActive) getPlacement(that.$newElement);\n });\n this.$element.on('hide' + EVENT_KEY, function () {\n that.$menu.data('height', that.$menu.height());\n that.$bsContainer.detach();\n });\n },\n setOptionStatus: function setOptionStatus(selectedOnly) {\n var that = this;\n that.noScroll = false;\n\n if (that.selectpicker.view.visibleElements && that.selectpicker.view.visibleElements.length) {\n for (var i = 0; i < that.selectpicker.view.visibleElements.length; i++) {\n var liData = that.selectpicker.current.data[i + that.selectpicker.view.position0],\n option = liData.option;\n\n if (option) {\n if (selectedOnly !== true) {\n that.setDisabled(liData.index, liData.disabled);\n }\n\n that.setSelected(liData.index, option.selected);\n }\n }\n }\n },\n\n /**\r\n * @param {number} index - the index of the option that is being changed\r\n * @param {boolean} selected - true if the option is being selected, false if being deselected\r\n */\n setSelected: function setSelected(index, selected) {\n var li = this.selectpicker.main.elements[index],\n liData = this.selectpicker.main.data[index],\n activeIndexIsSet = this.activeIndex !== undefined,\n thisIsActive = this.activeIndex === index,\n prevActive,\n a,\n // if current option is already active\n // OR\n // if the current option is being selected, it's NOT multiple, and\n // activeIndex is undefined:\n // - when the menu is first being opened, OR\n // - after a search has been performed, OR\n // - when retainActive is false when selecting a new option (i.e. index of the newly selected option is not the same as the current activeIndex)\n keepActive = thisIsActive || selected && !this.multiple && !activeIndexIsSet;\n liData.selected = selected;\n a = li.firstChild;\n\n if (selected) {\n this.selectedIndex = index;\n }\n\n li.classList.toggle('selected', selected);\n\n if (keepActive) {\n this.focusItem(li, liData);\n this.selectpicker.view.currentActive = li;\n this.activeIndex = index;\n } else {\n this.defocusItem(li);\n }\n\n if (a) {\n a.classList.toggle('selected', selected);\n\n if (selected) {\n a.setAttribute('aria-selected', true);\n } else {\n if (this.multiple) {\n a.setAttribute('aria-selected', false);\n } else {\n a.removeAttribute('aria-selected');\n }\n }\n }\n\n if (!keepActive && !activeIndexIsSet && selected && this.prevActiveIndex !== undefined) {\n prevActive = this.selectpicker.main.elements[this.prevActiveIndex];\n this.defocusItem(prevActive);\n }\n },\n\n /**\r\n * @param {number} index - the index of the option that is being disabled\r\n * @param {boolean} disabled - true if the option is being disabled, false if being enabled\r\n */\n setDisabled: function setDisabled(index, disabled) {\n var li = this.selectpicker.main.elements[index],\n a;\n this.selectpicker.main.data[index].disabled = disabled;\n a = li.firstChild;\n li.classList.toggle(classNames.DISABLED, disabled);\n\n if (a) {\n if (version.major === '4') a.classList.toggle(classNames.DISABLED, disabled);\n\n if (disabled) {\n a.setAttribute('aria-disabled', disabled);\n a.setAttribute('tabindex', -1);\n } else {\n a.removeAttribute('aria-disabled');\n a.setAttribute('tabindex', 0);\n }\n }\n },\n isDisabled: function isDisabled() {\n return this.$element[0].disabled;\n },\n checkDisabled: function checkDisabled() {\n if (this.isDisabled()) {\n this.$newElement[0].classList.add(classNames.DISABLED);\n this.$button.addClass(classNames.DISABLED).attr('tabindex', -1).attr('aria-disabled', true);\n } else {\n if (this.$button[0].classList.contains(classNames.DISABLED)) {\n this.$newElement[0].classList.remove(classNames.DISABLED);\n this.$button.removeClass(classNames.DISABLED).attr('aria-disabled', false);\n }\n\n if (this.$button.attr('tabindex') == -1 && !this.$element.data('tabindex')) {\n this.$button.removeAttr('tabindex');\n }\n }\n },\n tabIndex: function tabIndex() {\n if (this.$element.data('tabindex') !== this.$element.attr('tabindex') && this.$element.attr('tabindex') !== -98 && this.$element.attr('tabindex') !== '-98') {\n this.$element.data('tabindex', this.$element.attr('tabindex'));\n this.$button.attr('tabindex', this.$element.data('tabindex'));\n }\n\n this.$element.attr('tabindex', -98);\n },\n clickListener: function clickListener() {\n var that = this,\n $document = $(document);\n $document.data('spaceSelect', false);\n this.$button.on('keyup', function (e) {\n if (/(32)/.test(e.keyCode.toString(10)) && $document.data('spaceSelect')) {\n e.preventDefault();\n $document.data('spaceSelect', false);\n }\n });\n this.$newElement.on('show.bs.dropdown', function () {\n if (version.major > 3 && !that.dropdown) {\n that.dropdown = that.$button.data('bs.dropdown');\n that.dropdown._menu = that.$menu[0];\n }\n });\n this.$button.on('click.bs.dropdown.data-api', function () {\n if (!that.$newElement.hasClass(classNames.SHOW)) {\n that.setSize();\n }\n });\n\n function setFocus() {\n if (that.options.liveSearch) {\n that.$searchbox.trigger('focus');\n } else {\n that.$menuInner.trigger('focus');\n }\n }\n\n function checkPopperExists() {\n if (that.dropdown && that.dropdown._popper && that.dropdown._popper.state.isCreated) {\n setFocus();\n } else {\n requestAnimationFrame(checkPopperExists);\n }\n }\n\n this.$element.on('shown' + EVENT_KEY, function () {\n if (that.$menuInner[0].scrollTop !== that.selectpicker.view.scrollTop) {\n that.$menuInner[0].scrollTop = that.selectpicker.view.scrollTop;\n }\n\n if (version.major > 3) {\n requestAnimationFrame(checkPopperExists);\n } else {\n setFocus();\n }\n }); // ensure posinset and setsize are correct before selecting an option via a click\n\n this.$menuInner.on('mouseenter', 'li a', function (e) {\n var hoverLi = this.parentElement,\n position0 = that.isVirtual() ? that.selectpicker.view.position0 : 0,\n index = Array.prototype.indexOf.call(hoverLi.parentElement.children, hoverLi),\n hoverData = that.selectpicker.current.data[index + position0];\n that.focusItem(hoverLi, hoverData, true);\n });\n this.$menuInner.on('click', 'li a', function (e, retainActive) {\n var $this = $(this),\n element = that.$element[0],\n position0 = that.isVirtual() ? that.selectpicker.view.position0 : 0,\n clickedData = that.selectpicker.current.data[$this.parent().index() + position0],\n clickedIndex = clickedData.index,\n prevValue = getSelectValues(element),\n prevIndex = element.selectedIndex,\n prevOption = element.options[prevIndex],\n triggerChange = true; // Don't close on multi choice menu\n\n if (that.multiple && that.options.maxOptions !== 1) {\n e.stopPropagation();\n }\n\n e.preventDefault(); // Don't run if the select is disabled\n\n if (!that.isDisabled() && !$this.parent().hasClass(classNames.DISABLED)) {\n var option = clickedData.option,\n $option = $(option),\n state = option.selected,\n $optgroup = $option.parent('optgroup'),\n $optgroupOptions = $optgroup.find('option'),\n maxOptions = that.options.maxOptions,\n maxOptionsGrp = $optgroup.data('maxOptions') || false;\n if (clickedIndex === that.activeIndex) retainActive = true;\n\n if (!retainActive) {\n that.prevActiveIndex = that.activeIndex;\n that.activeIndex = undefined;\n }\n\n if (!that.multiple) {\n // Deselect all others if not multi select box\n if (prevOption) prevOption.selected = false;\n option.selected = true;\n that.setSelected(clickedIndex, true);\n } else {\n // Toggle the one we have chosen if we are multi select.\n option.selected = !state;\n that.setSelected(clickedIndex, !state);\n $this.trigger('blur');\n\n if (maxOptions !== false || maxOptionsGrp !== false) {\n var maxReached = maxOptions < getSelectedOptions(element).length,\n maxReachedGrp = maxOptionsGrp < $optgroup.find('option:selected').length;\n\n if (maxOptions && maxReached || maxOptionsGrp && maxReachedGrp) {\n if (maxOptions && maxOptions == 1) {\n element.selectedIndex = -1;\n option.selected = true;\n that.setOptionStatus(true);\n } else if (maxOptionsGrp && maxOptionsGrp == 1) {\n for (var i = 0; i < $optgroupOptions.length; i++) {\n var _option = $optgroupOptions[i];\n _option.selected = false;\n that.setSelected(_option.liIndex, false);\n }\n\n option.selected = true;\n that.setSelected(clickedIndex, true);\n } else {\n var maxOptionsText = typeof that.options.maxOptionsText === 'string' ? [that.options.maxOptionsText, that.options.maxOptionsText] : that.options.maxOptionsText,\n maxOptionsArr = typeof maxOptionsText === 'function' ? maxOptionsText(maxOptions, maxOptionsGrp) : maxOptionsText,\n maxTxt = maxOptionsArr[0].replace('{n}', maxOptions),\n maxTxtGrp = maxOptionsArr[1].replace('{n}', maxOptionsGrp),\n $notify = $('
    '); // If {var} is set in array, replace it\n\n /** @deprecated */\n\n if (maxOptionsArr[2]) {\n maxTxt = maxTxt.replace('{var}', maxOptionsArr[2][maxOptions > 1 ? 0 : 1]);\n maxTxtGrp = maxTxtGrp.replace('{var}', maxOptionsArr[2][maxOptionsGrp > 1 ? 0 : 1]);\n }\n\n option.selected = false;\n that.$menu.append($notify);\n\n if (maxOptions && maxReached) {\n $notify.append($('
    ' + maxTxt + '
    '));\n triggerChange = false;\n that.$element.trigger('maxReached' + EVENT_KEY);\n }\n\n if (maxOptionsGrp && maxReachedGrp) {\n $notify.append($('
    ' + maxTxtGrp + '
    '));\n triggerChange = false;\n that.$element.trigger('maxReachedGrp' + EVENT_KEY);\n }\n\n setTimeout(function () {\n that.setSelected(clickedIndex, false);\n }, 10);\n $notify[0].classList.add('fadeOut');\n setTimeout(function () {\n $notify.remove();\n }, 1050);\n }\n }\n }\n }\n\n if (!that.multiple || that.multiple && that.options.maxOptions === 1) {\n that.$button.trigger('focus');\n } else if (that.options.liveSearch) {\n that.$searchbox.trigger('focus');\n } // Trigger select 'change'\n\n\n if (triggerChange) {\n if (that.multiple || prevIndex !== element.selectedIndex) {\n // $option.prop('selected') is current option state (selected/unselected). prevValue is the value of the select prior to being changed.\n changedArguments = [option.index, $option.prop('selected'), prevValue];\n that.$element.triggerNative('change');\n }\n }\n }\n });\n this.$menu.on('click', 'li.' + classNames.DISABLED + ' a, .' + classNames.POPOVERHEADER + ', .' + classNames.POPOVERHEADER + ' :not(.close)', function (e) {\n if (e.currentTarget == this) {\n e.preventDefault();\n e.stopPropagation();\n\n if (that.options.liveSearch && !$(e.target).hasClass('close')) {\n that.$searchbox.trigger('focus');\n } else {\n that.$button.trigger('focus');\n }\n }\n });\n this.$menuInner.on('click', '.divider, .dropdown-header', function (e) {\n e.preventDefault();\n e.stopPropagation();\n\n if (that.options.liveSearch) {\n that.$searchbox.trigger('focus');\n } else {\n that.$button.trigger('focus');\n }\n });\n this.$menu.on('click', '.' + classNames.POPOVERHEADER + ' .close', function () {\n that.$button.trigger('click');\n });\n this.$searchbox.on('click', function (e) {\n e.stopPropagation();\n });\n this.$menu.on('click', '.actions-btn', function (e) {\n if (that.options.liveSearch) {\n that.$searchbox.trigger('focus');\n } else {\n that.$button.trigger('focus');\n }\n\n e.preventDefault();\n e.stopPropagation();\n\n if ($(this).hasClass('bs-select-all')) {\n that.selectAll();\n } else {\n that.deselectAll();\n }\n });\n this.$element.on('change' + EVENT_KEY, function () {\n that.render();\n that.$element.trigger('changed' + EVENT_KEY, changedArguments);\n changedArguments = null;\n }).on('focus' + EVENT_KEY, function () {\n if (!that.options.mobile) that.$button.trigger('focus');\n });\n },\n liveSearchListener: function liveSearchListener() {\n var that = this;\n this.$button.on('click.bs.dropdown.data-api', function () {\n if (!!that.$searchbox.val()) {\n that.$searchbox.val('');\n }\n });\n this.$searchbox.on('click.bs.dropdown.data-api focus.bs.dropdown.data-api touchend.bs.dropdown.data-api', function (e) {\n e.stopPropagation();\n });\n this.$searchbox.on('input propertychange', function () {\n var searchValue = that.$searchbox.val();\n that.selectpicker.search.elements = [];\n that.selectpicker.search.data = [];\n\n if (searchValue) {\n var i,\n searchMatch = [],\n q = searchValue.toUpperCase(),\n cache = {},\n cacheArr = [],\n searchStyle = that._searchStyle(),\n normalizeSearch = that.options.liveSearchNormalize;\n\n if (normalizeSearch) q = normalizeToBase(q);\n\n for (var i = 0; i < that.selectpicker.main.data.length; i++) {\n var li = that.selectpicker.main.data[i];\n\n if (!cache[i]) {\n cache[i] = stringSearch(li, q, searchStyle, normalizeSearch);\n }\n\n if (cache[i] && li.headerIndex !== undefined && cacheArr.indexOf(li.headerIndex) === -1) {\n if (li.headerIndex > 0) {\n cache[li.headerIndex - 1] = true;\n cacheArr.push(li.headerIndex - 1);\n }\n\n cache[li.headerIndex] = true;\n cacheArr.push(li.headerIndex);\n cache[li.lastIndex + 1] = true;\n }\n\n if (cache[i] && li.type !== 'optgroup-label') cacheArr.push(i);\n }\n\n for (var i = 0, cacheLen = cacheArr.length; i < cacheLen; i++) {\n var index = cacheArr[i],\n prevIndex = cacheArr[i - 1],\n li = that.selectpicker.main.data[index],\n liPrev = that.selectpicker.main.data[prevIndex];\n\n if (li.type !== 'divider' || li.type === 'divider' && liPrev && liPrev.type !== 'divider' && cacheLen - 1 !== i) {\n that.selectpicker.search.data.push(li);\n searchMatch.push(that.selectpicker.main.elements[index]);\n }\n }\n\n that.activeIndex = undefined;\n that.noScroll = true;\n that.$menuInner.scrollTop(0);\n that.selectpicker.search.elements = searchMatch;\n that.createView(true);\n showNoResults.call(that, searchMatch, searchValue);\n } else {\n that.$menuInner.scrollTop(0);\n that.createView(false);\n }\n });\n },\n _searchStyle: function _searchStyle() {\n return this.options.liveSearchStyle || 'contains';\n },\n val: function val(value) {\n var element = this.$element[0];\n\n if (typeof value !== 'undefined') {\n var prevValue = getSelectValues(element);\n changedArguments = [null, null, prevValue];\n this.$element.val(value).trigger('changed' + EVENT_KEY, changedArguments);\n\n if (this.$newElement.hasClass(classNames.SHOW)) {\n if (this.multiple) {\n this.setOptionStatus(true);\n } else {\n var liSelectedIndex = (element.options[element.selectedIndex] || {}).liIndex;\n\n if (typeof liSelectedIndex === 'number') {\n this.setSelected(this.selectedIndex, false);\n this.setSelected(liSelectedIndex, true);\n }\n }\n }\n\n this.render();\n changedArguments = null;\n return this.$element;\n } else {\n return this.$element.val();\n }\n },\n changeAll: function changeAll(status) {\n if (!this.multiple) return;\n if (typeof status === 'undefined') status = true;\n var element = this.$element[0],\n previousSelected = 0,\n currentSelected = 0,\n prevValue = getSelectValues(element);\n element.classList.add('bs-select-hidden');\n\n for (var i = 0, data = this.selectpicker.current.data, len = data.length; i < len; i++) {\n var liData = data[i],\n option = liData.option;\n\n if (option && !liData.disabled && liData.type !== 'divider') {\n if (liData.selected) previousSelected++;\n option.selected = status;\n if (status === true) currentSelected++;\n }\n }\n\n element.classList.remove('bs-select-hidden');\n if (previousSelected === currentSelected) return;\n this.setOptionStatus();\n changedArguments = [null, null, prevValue];\n this.$element.triggerNative('change');\n },\n selectAll: function selectAll() {\n return this.changeAll(true);\n },\n deselectAll: function deselectAll() {\n return this.changeAll(false);\n },\n toggle: function toggle(e) {\n e = e || window.event;\n if (e) e.stopPropagation();\n this.$button.trigger('click.bs.dropdown.data-api');\n },\n keydown: function keydown(e) {\n var $this = $(this),\n isToggle = $this.hasClass('dropdown-toggle'),\n $parent = isToggle ? $this.closest('.dropdown') : $this.closest(Selector.MENU),\n that = $parent.data('this'),\n $items = that.findLis(),\n index,\n isActive,\n liActive,\n activeLi,\n offset,\n updateScroll = false,\n downOnTab = e.which === keyCodes.TAB && !isToggle && !that.options.selectOnTab,\n isArrowKey = REGEXP_ARROW.test(e.which) || downOnTab,\n scrollTop = that.$menuInner[0].scrollTop,\n isVirtual = that.isVirtual(),\n position0 = isVirtual === true ? that.selectpicker.view.position0 : 0; // do nothing if a function key is pressed\n\n if (e.which >= 112 && e.which <= 123) return;\n isActive = that.$newElement.hasClass(classNames.SHOW);\n\n if (!isActive && (isArrowKey || e.which >= 48 && e.which <= 57 || e.which >= 96 && e.which <= 105 || e.which >= 65 && e.which <= 90)) {\n that.$button.trigger('click.bs.dropdown.data-api');\n\n if (that.options.liveSearch) {\n that.$searchbox.trigger('focus');\n return;\n }\n }\n\n if (e.which === keyCodes.ESCAPE && isActive) {\n e.preventDefault();\n that.$button.trigger('click.bs.dropdown.data-api').trigger('focus');\n }\n\n if (isArrowKey) {\n // if up or down\n if (!$items.length) return;\n liActive = that.selectpicker.main.elements[that.activeIndex];\n index = liActive ? Array.prototype.indexOf.call(liActive.parentElement.children, liActive) : -1;\n\n if (index !== -1) {\n that.defocusItem(liActive);\n }\n\n if (e.which === keyCodes.ARROW_UP) {\n // up\n if (index !== -1) index--;\n if (index + position0 < 0) index += $items.length;\n\n if (!that.selectpicker.view.canHighlight[index + position0]) {\n index = that.selectpicker.view.canHighlight.slice(0, index + position0).lastIndexOf(true) - position0;\n if (index === -1) index = $items.length - 1;\n }\n } else if (e.which === keyCodes.ARROW_DOWN || downOnTab) {\n // down\n index++;\n if (index + position0 >= that.selectpicker.view.canHighlight.length) index = 0;\n\n if (!that.selectpicker.view.canHighlight[index + position0]) {\n index = index + 1 + that.selectpicker.view.canHighlight.slice(index + position0 + 1).indexOf(true);\n }\n }\n\n e.preventDefault();\n var liActiveIndex = position0 + index;\n\n if (e.which === keyCodes.ARROW_UP) {\n // up\n // scroll to bottom and highlight last option\n if (position0 === 0 && index === $items.length - 1) {\n that.$menuInner[0].scrollTop = that.$menuInner[0].scrollHeight;\n liActiveIndex = that.selectpicker.current.elements.length - 1;\n } else {\n activeLi = that.selectpicker.current.data[liActiveIndex];\n offset = activeLi.position - activeLi.height;\n updateScroll = offset < scrollTop;\n }\n } else if (e.which === keyCodes.ARROW_DOWN || downOnTab) {\n // down\n // scroll to top and highlight first option\n if (index === 0) {\n that.$menuInner[0].scrollTop = 0;\n liActiveIndex = 0;\n } else {\n activeLi = that.selectpicker.current.data[liActiveIndex];\n offset = activeLi.position - that.sizeInfo.menuInnerHeight;\n updateScroll = offset > scrollTop;\n }\n }\n\n liActive = that.selectpicker.current.elements[liActiveIndex];\n that.activeIndex = that.selectpicker.current.data[liActiveIndex].index;\n that.focusItem(liActive);\n that.selectpicker.view.currentActive = liActive;\n if (updateScroll) that.$menuInner[0].scrollTop = offset;\n\n if (that.options.liveSearch) {\n that.$searchbox.trigger('focus');\n } else {\n $this.trigger('focus');\n }\n } else if (!$this.is('input') && !REGEXP_TAB_OR_ESCAPE.test(e.which) || e.which === keyCodes.SPACE && that.selectpicker.keydown.keyHistory) {\n var searchMatch,\n matches = [],\n keyHistory;\n e.preventDefault();\n that.selectpicker.keydown.keyHistory += keyCodeMap[e.which];\n if (that.selectpicker.keydown.resetKeyHistory.cancel) clearTimeout(that.selectpicker.keydown.resetKeyHistory.cancel);\n that.selectpicker.keydown.resetKeyHistory.cancel = that.selectpicker.keydown.resetKeyHistory.start();\n keyHistory = that.selectpicker.keydown.keyHistory; // if all letters are the same, set keyHistory to just the first character when searching\n\n if (/^(.)\\1+$/.test(keyHistory)) {\n keyHistory = keyHistory.charAt(0);\n } // find matches\n\n\n for (var i = 0; i < that.selectpicker.current.data.length; i++) {\n var li = that.selectpicker.current.data[i],\n hasMatch;\n hasMatch = stringSearch(li, keyHistory, 'startsWith', true);\n\n if (hasMatch && that.selectpicker.view.canHighlight[i]) {\n matches.push(li.index);\n }\n }\n\n if (matches.length) {\n var matchIndex = 0;\n $items.removeClass('active').find('a').removeClass('active'); // either only one key has been pressed or they are all the same key\n\n if (keyHistory.length === 1) {\n matchIndex = matches.indexOf(that.activeIndex);\n\n if (matchIndex === -1 || matchIndex === matches.length - 1) {\n matchIndex = 0;\n } else {\n matchIndex++;\n }\n }\n\n searchMatch = matches[matchIndex];\n activeLi = that.selectpicker.main.data[searchMatch];\n\n if (scrollTop - activeLi.position > 0) {\n offset = activeLi.position - activeLi.height;\n updateScroll = true;\n } else {\n offset = activeLi.position - that.sizeInfo.menuInnerHeight; // if the option is already visible at the current scroll position, just keep it the same\n\n updateScroll = activeLi.position > scrollTop + that.sizeInfo.menuInnerHeight;\n }\n\n liActive = that.selectpicker.main.elements[searchMatch];\n that.activeIndex = matches[matchIndex];\n that.focusItem(liActive);\n if (liActive) liActive.firstChild.focus();\n if (updateScroll) that.$menuInner[0].scrollTop = offset;\n $this.trigger('focus');\n }\n } // Select focused option if \"Enter\", \"Spacebar\" or \"Tab\" (when selectOnTab is true) are pressed inside the menu.\n\n\n if (isActive && (e.which === keyCodes.SPACE && !that.selectpicker.keydown.keyHistory || e.which === keyCodes.ENTER || e.which === keyCodes.TAB && that.options.selectOnTab)) {\n if (e.which !== keyCodes.SPACE) e.preventDefault();\n\n if (!that.options.liveSearch || e.which !== keyCodes.SPACE) {\n that.$menuInner.find('.active a').trigger('click', true); // retain active class\n\n $this.trigger('focus');\n\n if (!that.options.liveSearch) {\n // Prevent screen from scrolling if the user hits the spacebar\n e.preventDefault(); // Fixes spacebar selection of dropdown items in FF & IE\n\n $(document).data('spaceSelect', true);\n }\n }\n }\n },\n mobile: function mobile() {\n this.$element[0].classList.add('mobile-device');\n },\n refresh: function refresh() {\n // update options if data attributes have been changed\n var config = $.extend({}, this.options, this.$element.data());\n this.options = config;\n this.checkDisabled();\n this.buildData();\n this.setStyle();\n this.render();\n this.buildList();\n this.setWidth();\n this.setSize(true);\n this.$element.trigger('refreshed' + EVENT_KEY);\n },\n hide: function hide() {\n this.$newElement.hide();\n },\n show: function show() {\n this.$newElement.show();\n },\n remove: function remove() {\n this.$newElement.remove();\n this.$element.remove();\n },\n destroy: function destroy() {\n this.$newElement.before(this.$element).remove();\n\n if (this.$bsContainer) {\n this.$bsContainer.remove();\n } else {\n this.$menu.remove();\n }\n\n this.$element.off(EVENT_KEY).removeData('selectpicker').removeClass('bs-select-hidden selectpicker');\n $(window).off(EVENT_KEY + '.' + this.selectId);\n }\n }; // SELECTPICKER PLUGIN DEFINITION\n // ==============================\n\n function Plugin(option) {\n // get the args of the outer function..\n var args = arguments; // The arguments of the function are explicitly re-defined from the argument list, because the shift causes them\n // to get lost/corrupted in android 2.3 and IE9 #715 #775\n\n var _option = option;\n [].shift.apply(args); // if the version was not set successfully\n\n if (!version.success) {\n // try to retreive it again\n try {\n version.full = ($.fn.dropdown.Constructor.VERSION || '').split(' ')[0].split('.');\n } catch (err) {\n // fall back to use BootstrapVersion if set\n if (Selectpicker.BootstrapVersion) {\n version.full = Selectpicker.BootstrapVersion.split(' ')[0].split('.');\n } else {\n version.full = [version.major, '0', '0'];\n console.warn('There was an issue retrieving Bootstrap\\'s version. ' + 'Ensure Bootstrap is being loaded before bootstrap-select and there is no namespace collision. ' + 'If loading Bootstrap asynchronously, the version may need to be manually specified via $.fn.selectpicker.Constructor.BootstrapVersion.', err);\n }\n }\n\n version.major = version.full[0];\n version.success = true;\n }\n\n if (version.major === '4') {\n // some defaults need to be changed if using Bootstrap 4\n // check to see if they have already been manually changed before forcing them to update\n var toUpdate = [];\n if (Selectpicker.DEFAULTS.style === classNames.BUTTONCLASS) toUpdate.push({\n name: 'style',\n className: 'BUTTONCLASS'\n });\n if (Selectpicker.DEFAULTS.iconBase === classNames.ICONBASE) toUpdate.push({\n name: 'iconBase',\n className: 'ICONBASE'\n });\n if (Selectpicker.DEFAULTS.tickIcon === classNames.TICKICON) toUpdate.push({\n name: 'tickIcon',\n className: 'TICKICON'\n });\n classNames.DIVIDER = 'dropdown-divider';\n classNames.SHOW = 'show';\n classNames.BUTTONCLASS = 'btn-light';\n classNames.POPOVERHEADER = 'popover-header';\n classNames.ICONBASE = '';\n classNames.TICKICON = 'bs-ok-default';\n\n for (var i = 0; i < toUpdate.length; i++) {\n var option = toUpdate[i];\n Selectpicker.DEFAULTS[option.name] = classNames[option.className];\n }\n }\n\n var value;\n var chain = this.each(function () {\n var $this = $(this);\n\n if ($this.is('select')) {\n var data = $this.data('selectpicker'),\n options = _typeof(_option) == 'object' && _option;\n\n if (!data) {\n var dataAttributes = $this.data();\n\n for (var dataAttr in dataAttributes) {\n if (Object.prototype.hasOwnProperty.call(dataAttributes, dataAttr) && $.inArray(dataAttr, DISALLOWED_ATTRIBUTES) !== -1) {\n delete dataAttributes[dataAttr];\n }\n }\n\n var config = $.extend({}, Selectpicker.DEFAULTS, $.fn.selectpicker.defaults || {}, dataAttributes, options);\n config.template = $.extend({}, Selectpicker.DEFAULTS.template, $.fn.selectpicker.defaults ? $.fn.selectpicker.defaults.template : {}, dataAttributes.template, options.template);\n $this.data('selectpicker', data = new Selectpicker(this, config));\n } else if (options) {\n for (var i in options) {\n if (Object.prototype.hasOwnProperty.call(options, i)) {\n data.options[i] = options[i];\n }\n }\n }\n\n if (typeof _option == 'string') {\n if (data[_option] instanceof Function) {\n value = data[_option].apply(data, args);\n } else {\n value = data.options[_option];\n }\n }\n }\n });\n\n if (typeof value !== 'undefined') {\n // noinspection JSUnusedAssignment\n return value;\n } else {\n return chain;\n }\n }\n\n var old = $.fn.selectpicker;\n $.fn.selectpicker = Plugin;\n $.fn.selectpicker.Constructor = Selectpicker; // SELECTPICKER NO CONFLICT\n // ========================\n\n $.fn.selectpicker.noConflict = function () {\n $.fn.selectpicker = old;\n return this;\n }; // get Bootstrap's keydown event handler for either Bootstrap 4 or Bootstrap 3\n\n\n function keydownHandler() {\n if ($.fn.dropdown) {\n // wait to define until function is called in case Bootstrap isn't loaded yet\n var bootstrapKeydown = $.fn.dropdown.Constructor._dataApiKeydownHandler || $.fn.dropdown.Constructor.prototype.keydown;\n return bootstrapKeydown.apply(this, arguments);\n }\n }\n\n $(document).off('keydown.bs.dropdown.data-api').on('keydown.bs.dropdown.data-api', ':not(.bootstrap-select) > [data-toggle=\"dropdown\"]', keydownHandler).on('keydown.bs.dropdown.data-api', ':not(.bootstrap-select) > .dropdown-menu', keydownHandler).on('keydown' + EVENT_KEY, '.bootstrap-select [data-toggle=\"dropdown\"], .bootstrap-select [role=\"listbox\"], .bootstrap-select .bs-searchbox input', Selectpicker.prototype.keydown).on('focusin.modal', '.bootstrap-select [data-toggle=\"dropdown\"], .bootstrap-select [role=\"listbox\"], .bootstrap-select .bs-searchbox input', function (e) {\n e.stopPropagation();\n }); // SELECTPICKER DATA-API\n // =====================\n\n $(window).on('load' + EVENT_KEY + '.data-api', function () {\n $('.selectpicker').each(function () {\n var $selectpicker = $(this);\n Plugin.call($selectpicker, $selectpicker.data());\n });\n });\n})(jQuery);","import * as dragula from 'dragula/dragula.js';\n\nexport { dragula };\n","'use strict';\n\nvar atoa = require('atoa');\n\nvar debounce = require('./debounce');\n\nmodule.exports = function emitter(thing, options) {\n var opts = options || {};\n var evt = {};\n\n if (thing === undefined) {\n thing = {};\n }\n\n thing.on = function (type, fn) {\n if (!evt[type]) {\n evt[type] = [fn];\n } else {\n evt[type].push(fn);\n }\n\n return thing;\n };\n\n thing.once = function (type, fn) {\n fn._once = true; // thing.off(fn) still works!\n\n thing.on(type, fn);\n return thing;\n };\n\n thing.off = function (type, fn) {\n var c = arguments.length;\n\n if (c === 1) {\n delete evt[type];\n } else if (c === 0) {\n evt = {};\n } else {\n var et = evt[type];\n\n if (!et) {\n return thing;\n }\n\n et.splice(et.indexOf(fn), 1);\n }\n\n return thing;\n };\n\n thing.emit = function () {\n var args = atoa(arguments);\n return thing.emitterSnapshot(args.shift()).apply(this, args);\n };\n\n thing.emitterSnapshot = function (type) {\n var et = (evt[type] || []).slice(0);\n return function () {\n var args = atoa(arguments);\n var ctx = this || thing;\n\n if (type === 'error' && opts.throws !== false && !et.length) {\n throw args.length === 1 ? args[0] : args;\n }\n\n et.forEach(function emitter(listen) {\n if (opts.async) {\n debounce(listen, args, ctx);\n } else {\n listen.apply(ctx, args);\n }\n\n if (listen._once) {\n thing.off(type, listen);\n }\n });\n return thing;\n };\n };\n\n return thing;\n};","module.exports = function atoa(a, n) {\n return Array.prototype.slice.call(a, n);\n};","'use strict';\n\nvar ticky = require('ticky');\n\nmodule.exports = function debounce(fn, args, ctx) {\n if (!fn) {\n return;\n }\n\n ticky(function run() {\n fn.apply(ctx || null, args || []);\n });\n};","var si = typeof setImmediate === 'function',\n tick;\n\nif (si) {\n tick = function tick(fn) {\n setImmediate(fn);\n };\n} else {\n tick = function tick(fn) {\n setTimeout(fn, 0);\n };\n}\n\nmodule.exports = tick;","'use strict';\n\nvar customEvent = require('custom-event');\n\nvar eventmap = require('./eventmap');\n\nvar doc = global.document;\nvar addEvent = addEventEasy;\nvar removeEvent = removeEventEasy;\nvar hardCache = [];\n\nif (!global.addEventListener) {\n addEvent = addEventHard;\n removeEvent = removeEventHard;\n}\n\nmodule.exports = {\n add: addEvent,\n remove: removeEvent,\n fabricate: fabricateEvent\n};\n\nfunction addEventEasy(el, type, fn, capturing) {\n return el.addEventListener(type, fn, capturing);\n}\n\nfunction addEventHard(el, type, fn) {\n return el.attachEvent('on' + type, wrap(el, type, fn));\n}\n\nfunction removeEventEasy(el, type, fn, capturing) {\n return el.removeEventListener(type, fn, capturing);\n}\n\nfunction removeEventHard(el, type, fn) {\n var listener = unwrap(el, type, fn);\n\n if (listener) {\n return el.detachEvent('on' + type, listener);\n }\n}\n\nfunction fabricateEvent(el, type, model) {\n var e = eventmap.indexOf(type) === -1 ? makeCustomEvent() : makeClassicEvent();\n\n if (el.dispatchEvent) {\n el.dispatchEvent(e);\n } else {\n el.fireEvent('on' + type, e);\n }\n\n function makeClassicEvent() {\n var e;\n\n if (doc.createEvent) {\n e = doc.createEvent('Event');\n e.initEvent(type, true, true);\n } else if (doc.createEventObject) {\n e = doc.createEventObject();\n }\n\n return e;\n }\n\n function makeCustomEvent() {\n return new customEvent(type, {\n detail: model\n });\n }\n}\n\nfunction wrapperFactory(el, type, fn) {\n return function wrapper(originalEvent) {\n var e = originalEvent || global.event;\n e.target = e.target || e.srcElement;\n\n e.preventDefault = e.preventDefault || function preventDefault() {\n e.returnValue = false;\n };\n\n e.stopPropagation = e.stopPropagation || function stopPropagation() {\n e.cancelBubble = true;\n };\n\n e.which = e.which || e.keyCode;\n fn.call(el, e);\n };\n}\n\nfunction wrap(el, type, fn) {\n var wrapper = unwrap(el, type, fn) || wrapperFactory(el, type, fn);\n hardCache.push({\n wrapper: wrapper,\n element: el,\n type: type,\n fn: fn\n });\n return wrapper;\n}\n\nfunction unwrap(el, type, fn) {\n var i = find(el, type, fn);\n\n if (i) {\n var wrapper = hardCache[i].wrapper;\n hardCache.splice(i, 1); // free up a tad of memory\n\n return wrapper;\n }\n}\n\nfunction find(el, type, fn) {\n var i, item;\n\n for (i = 0; i < hardCache.length; i++) {\n item = hardCache[i];\n\n if (item.element === el && item.type === type && item.fn === fn) {\n return i;\n }\n }\n}","var NativeCustomEvent = global.CustomEvent;\n\nfunction useNative() {\n try {\n var p = new NativeCustomEvent('cat', {\n detail: {\n foo: 'bar'\n }\n });\n return 'cat' === p.type && 'bar' === p.detail.foo;\n } catch (e) {}\n\n return false;\n}\n/**\n * Cross-browser `CustomEvent` constructor.\n *\n * https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent.CustomEvent\n *\n * @public\n */\n\n\nmodule.exports = useNative() ? NativeCustomEvent : // IE >= 9\n'function' === typeof document.createEvent ? function CustomEvent(type, params) {\n var e = document.createEvent('CustomEvent');\n\n if (params) {\n e.initCustomEvent(type, params.bubbles, params.cancelable, params.detail);\n } else {\n e.initCustomEvent(type, false, false, void 0);\n }\n\n return e;\n} : // IE <= 8\nfunction CustomEvent(type, params) {\n var e = document.createEventObject();\n e.type = type;\n\n if (params) {\n e.bubbles = Boolean(params.bubbles);\n e.cancelable = Boolean(params.cancelable);\n e.detail = params.detail;\n } else {\n e.bubbles = false;\n e.cancelable = false;\n e.detail = void 0;\n }\n\n return e;\n};","'use strict';\n\nvar eventmap = [];\nvar eventname = '';\nvar ron = /^on/;\n\nfor (eventname in global) {\n if (ron.test(eventname)) {\n eventmap.push(eventname.slice(2));\n }\n}\n\nmodule.exports = eventmap;","'use strict';\n\nvar cache = {};\nvar start = '(?:^|\\\\s)';\nvar end = '(?:\\\\s|$)';\n\nfunction lookupClass(className) {\n var cached = cache[className];\n\n if (cached) {\n cached.lastIndex = 0;\n } else {\n cache[className] = cached = new RegExp(start + className + end, 'g');\n }\n\n return cached;\n}\n\nfunction addClass(el, className) {\n var current = el.className;\n\n if (!current.length) {\n el.className = className;\n } else if (!lookupClass(className).test(current)) {\n el.className += ' ' + className;\n }\n}\n\nfunction rmClass(el, className) {\n el.className = el.className.replace(lookupClass(className), ' ').trim();\n}\n\nmodule.exports = {\n add: addClass,\n rm: rmClass\n};","import Dropzone from 'dropzone/dist/dropzone.js';\n\nDropzone.autoDiscover = false;\n\n// Extend Dropzone default options\nDropzone.prototype.defaultOptions.previewTemplate = `\n
    \n
    \n
    \n \n No preview\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    `;\n\nexport { Dropzone };\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/*globals jQuery, define, module, exports, require, window, document, postMessage */\n(function (factory) {\n \"use strict\";\n\n if (typeof define === 'function' && define.amd) {\n define(['jquery'], factory);\n } else if (typeof module !== 'undefined' && module.exports) {\n module.exports = factory(require('jquery'));\n } else {\n factory(jQuery);\n }\n})(function ($, undefined) {\n \"use strict\";\n /*!\n * jsTree 3.3.12\n * http://jstree.com/\n *\n * Copyright (c) 2014 Ivan Bozhanov (http://vakata.com)\n *\n * Licensed same as jquery - under the terms of the MIT License\n * http://www.opensource.org/licenses/mit-license.php\n */\n\n /*!\n * if using jslint please allow for the jQuery global and use following options:\n * jslint: loopfunc: true, browser: true, ass: true, bitwise: true, continue: true, nomen: true, plusplus: true, regexp: true, unparam: true, todo: true, white: true\n */\n\n /*jshint -W083 */\n // prevent another load? maybe there is a better way?\n\n if ($.jstree) {\n return;\n }\n /**\n * ### jsTree core functionality\n */\n // internal variables\n\n\n var instance_counter = 0,\n ccp_node = false,\n ccp_mode = false,\n ccp_inst = false,\n themes_loaded = [],\n src = $('script:last').attr('src'),\n document = window.document; // local variable is always faster to access then a global\n\n var setImmediate = window.setImmediate;\n var Promise = window.Promise;\n\n if (!setImmediate && Promise) {\n // Good enough approximation of setImmediate\n setImmediate = function setImmediate(cb, arg) {\n Promise.resolve(arg).then(cb);\n };\n }\n /**\n * holds all jstree related functions and variables, including the actual class and methods to create, access and manipulate instances.\n * @name $.jstree\n */\n\n\n $.jstree = {\n /**\n * specifies the jstree version in use\n * @name $.jstree.version\n */\n version: '3.3.12',\n\n /**\n * holds all the default options used when creating new instances\n * @name $.jstree.defaults\n */\n defaults: {\n /**\n * configure which plugins will be active on an instance. Should be an array of strings, where each element is a plugin name. The default is `[]`\n * @name $.jstree.defaults.plugins\n */\n plugins: []\n },\n\n /**\n * stores all loaded jstree plugins (used internally)\n * @name $.jstree.plugins\n */\n plugins: {},\n path: src && src.indexOf('/') !== -1 ? src.replace(/\\/[^\\/]+$/, '') : '',\n idregex: /[\\\\:&!^|()\\[\\]<>@*'+~#\";.,=\\- \\/${}%?`]/g,\n root: '#'\n };\n /**\n * creates a jstree instance\n * @name $.jstree.create(el [, options])\n * @param {DOMElement|jQuery|String} el the element to create the instance on, can be jQuery extended or a selector\n * @param {Object} options options for this instance (extends `$.jstree.defaults`)\n * @return {jsTree} the new instance\n */\n\n $.jstree.create = function (el, options) {\n var tmp = new $.jstree.core(++instance_counter),\n opt = options;\n options = $.extend(true, {}, $.jstree.defaults, options);\n\n if (opt && opt.plugins) {\n options.plugins = opt.plugins;\n }\n\n $.each(options.plugins, function (i, k) {\n if (i !== 'core') {\n tmp = tmp.plugin(k, options[k]);\n }\n });\n $(el).data('jstree', tmp);\n tmp.init(el, options);\n return tmp;\n };\n /**\n * remove all traces of jstree from the DOM and destroy all instances\n * @name $.jstree.destroy()\n */\n\n\n $.jstree.destroy = function () {\n $('.jstree:jstree').jstree('destroy');\n $(document).off('.jstree');\n };\n /**\n * the jstree class constructor, used only internally\n * @private\n * @name $.jstree.core(id)\n * @param {Number} id this instance's index\n */\n\n\n $.jstree.core = function (id) {\n this._id = id;\n this._cnt = 0;\n this._wrk = null;\n this._data = {\n core: {\n themes: {\n name: false,\n dots: false,\n icons: false,\n ellipsis: false\n },\n selected: [],\n last_error: {},\n working: false,\n worker_queue: [],\n focused: null\n }\n };\n };\n /**\n * get a reference to an existing instance\n *\n * __Examples__\n *\n *\t// provided a container with an ID of \"tree\", and a nested node with an ID of \"branch\"\n *\t// all of there will return the same instance\n *\t$.jstree.reference('tree');\n *\t$.jstree.reference('#tree');\n *\t$.jstree.reference($('#tree'));\n *\t$.jstree.reference(document.getElementByID('tree'));\n *\t$.jstree.reference('branch');\n *\t$.jstree.reference('#branch');\n *\t$.jstree.reference($('#branch'));\n *\t$.jstree.reference(document.getElementByID('branch'));\n *\n * @name $.jstree.reference(needle)\n * @param {DOMElement|jQuery|String} needle\n * @return {jsTree|null} the instance or `null` if not found\n */\n\n\n $.jstree.reference = function (needle) {\n var tmp = null,\n obj = null;\n\n if (needle && needle.id && (!needle.tagName || !needle.nodeType)) {\n needle = needle.id;\n }\n\n if (!obj || !obj.length) {\n try {\n obj = $(needle);\n } catch (ignore) {}\n }\n\n if (!obj || !obj.length) {\n try {\n obj = $('#' + needle.replace($.jstree.idregex, '\\\\$&'));\n } catch (ignore) {}\n }\n\n if (obj && obj.length && (obj = obj.closest('.jstree')).length && (obj = obj.data('jstree'))) {\n tmp = obj;\n } else {\n $('.jstree').each(function () {\n var inst = $(this).data('jstree');\n\n if (inst && inst._model.data[needle]) {\n tmp = inst;\n return false;\n }\n });\n }\n\n return tmp;\n };\n /**\n * Create an instance, get an instance or invoke a command on a instance.\n *\n * If there is no instance associated with the current node a new one is created and `arg` is used to extend `$.jstree.defaults` for this new instance. There would be no return value (chaining is not broken).\n *\n * If there is an existing instance and `arg` is a string the command specified by `arg` is executed on the instance, with any additional arguments passed to the function. If the function returns a value it will be returned (chaining could break depending on function).\n *\n * If there is an existing instance and `arg` is not a string the instance itself is returned (similar to `$.jstree.reference`).\n *\n * In any other case - nothing is returned and chaining is not broken.\n *\n * __Examples__\n *\n *\t$('#tree1').jstree(); // creates an instance\n *\t$('#tree2').jstree({ plugins : [] }); // create an instance with some options\n *\t$('#tree1').jstree('open_node', '#branch_1'); // call a method on an existing instance, passing additional arguments\n *\t$('#tree2').jstree(); // get an existing instance (or create an instance)\n *\t$('#tree2').jstree(true); // get an existing instance (will not create new instance)\n *\t$('#branch_1').jstree().select_node('#branch_1'); // get an instance (using a nested element and call a method)\n *\n * @name $().jstree([arg])\n * @param {String|Object} arg\n * @return {Mixed}\n */\n\n\n $.fn.jstree = function (arg) {\n // check for string argument\n var is_method = typeof arg === 'string',\n args = Array.prototype.slice.call(arguments, 1),\n result = null;\n\n if (arg === true && !this.length) {\n return false;\n }\n\n this.each(function () {\n // get the instance (if there is one) and method (if it exists)\n var instance = $.jstree.reference(this),\n method = is_method && instance ? instance[arg] : null; // if calling a method, and method is available - execute on the instance\n\n result = is_method && method ? method.apply(instance, args) : null; // if there is no instance and no method is being called - create one\n\n if (!instance && !is_method && (arg === undefined || $.isPlainObject(arg))) {\n $.jstree.create(this, arg);\n } // if there is an instance and no method is called - return the instance\n\n\n if (instance && !is_method || arg === true) {\n result = instance || false;\n } // if there was a method call which returned a result - break and return the value\n\n\n if (result !== null && result !== undefined) {\n return false;\n }\n }); // if there was a method call with a valid return value - return that, otherwise continue the chain\n\n return result !== null && result !== undefined ? result : this;\n };\n /**\n * used to find elements containing an instance\n *\n * __Examples__\n *\n *\t$('div:jstree').each(function () {\n *\t\t$(this).jstree('destroy');\n *\t});\n *\n * @name $(':jstree')\n * @return {jQuery}\n */\n\n\n $.expr.pseudos.jstree = $.expr.createPseudo(function (search) {\n return function (a) {\n return $(a).hasClass('jstree') && $(a).data('jstree') !== undefined;\n };\n });\n /**\n * stores all defaults for the core\n * @name $.jstree.defaults.core\n */\n\n $.jstree.defaults.core = {\n /**\n * data configuration\n *\n * If left as `false` the HTML inside the jstree container element is used to populate the tree (that should be an unordered list with list items).\n *\n * You can also pass in a HTML string or a JSON array here.\n *\n * It is possible to pass in a standard jQuery-like AJAX config and jstree will automatically determine if the response is JSON or HTML and use that to populate the tree.\n * In addition to the standard jQuery ajax options here you can supply functions for `data` and `url`, the functions will be run in the current instance's scope and a param will be passed indicating which node is being loaded, the return value of those functions will be used.\n *\n * The last option is to specify a function, that function will receive the node being loaded as argument and a second param which is a function which should be called with the result.\n *\n * __Examples__\n *\n *\t// AJAX\n *\t$('#tree').jstree({\n *\t\t'core' : {\n *\t\t\t'data' : {\n *\t\t\t\t'url' : '/get/children/',\n *\t\t\t\t'data' : function (node) {\n *\t\t\t\t\treturn { 'id' : node.id };\n *\t\t\t\t}\n *\t\t\t}\n *\t\t});\n *\n *\t// direct data\n *\t$('#tree').jstree({\n *\t\t'core' : {\n *\t\t\t'data' : [\n *\t\t\t\t'Simple root node',\n *\t\t\t\t{\n *\t\t\t\t\t'id' : 'node_2',\n *\t\t\t\t\t'text' : 'Root node with options',\n *\t\t\t\t\t'state' : { 'opened' : true, 'selected' : true },\n *\t\t\t\t\t'children' : [ { 'text' : 'Child 1' }, 'Child 2']\n *\t\t\t\t}\n *\t\t\t]\n *\t\t}\n *\t});\n *\n *\t// function\n *\t$('#tree').jstree({\n *\t\t'core' : {\n *\t\t\t'data' : function (obj, callback) {\n *\t\t\t\tcallback.call(this, ['Root 1', 'Root 2']);\n *\t\t\t}\n *\t\t});\n *\n * @name $.jstree.defaults.core.data\n */\n data: false,\n\n /**\n * configure the various strings used throughout the tree\n *\n * You can use an object where the key is the string you need to replace and the value is your replacement.\n * Another option is to specify a function which will be called with an argument of the needed string and should return the replacement.\n * If left as `false` no replacement is made.\n *\n * __Examples__\n *\n *\t$('#tree').jstree({\n *\t\t'core' : {\n *\t\t\t'strings' : {\n *\t\t\t\t'Loading ...' : 'Please wait ...'\n *\t\t\t}\n *\t\t}\n *\t});\n *\n * @name $.jstree.defaults.core.strings\n */\n strings: false,\n\n /**\n * determines what happens when a user tries to modify the structure of the tree\n * If left as `false` all operations like create, rename, delete, move or copy are prevented.\n * You can set this to `true` to allow all interactions or use a function to have better control.\n *\n * __Examples__\n *\n *\t$('#tree').jstree({\n *\t\t'core' : {\n *\t\t\t'check_callback' : function (operation, node, node_parent, node_position, more) {\n *\t\t\t\t// operation can be 'create_node', 'rename_node', 'delete_node', 'move_node', 'copy_node' or 'edit'\n *\t\t\t\t// in case of 'rename_node' node_position is filled with the new node name\n *\t\t\t\treturn operation === 'rename_node' ? true : false;\n *\t\t\t}\n *\t\t}\n *\t});\n *\n * @name $.jstree.defaults.core.check_callback\n */\n check_callback: false,\n\n /**\n * a callback called with a single object parameter in the instance's scope when something goes wrong (operation prevented, ajax failed, etc)\n * @name $.jstree.defaults.core.error\n */\n error: $.noop,\n\n /**\n * the open / close animation duration in milliseconds - set this to `false` to disable the animation (default is `200`)\n * @name $.jstree.defaults.core.animation\n */\n animation: 200,\n\n /**\n * a boolean indicating if multiple nodes can be selected\n * @name $.jstree.defaults.core.multiple\n */\n multiple: true,\n\n /**\n * theme configuration object\n * @name $.jstree.defaults.core.themes\n */\n themes: {\n /**\n * the name of the theme to use (if left as `false` the default theme is used)\n * @name $.jstree.defaults.core.themes.name\n */\n name: false,\n\n /**\n * the URL of the theme's CSS file, leave this as `false` if you have manually included the theme CSS (recommended). You can set this to `true` too which will try to autoload the theme.\n * @name $.jstree.defaults.core.themes.url\n */\n url: false,\n\n /**\n * the location of all jstree themes - only used if `url` is set to `true`\n * @name $.jstree.defaults.core.themes.dir\n */\n dir: false,\n\n /**\n * a boolean indicating if connecting dots are shown\n * @name $.jstree.defaults.core.themes.dots\n */\n dots: true,\n\n /**\n * a boolean indicating if node icons are shown\n * @name $.jstree.defaults.core.themes.icons\n */\n icons: true,\n\n /**\n * a boolean indicating if node ellipsis should be shown - this only works with a fixed with on the container\n * @name $.jstree.defaults.core.themes.ellipsis\n */\n ellipsis: false,\n\n /**\n * a boolean indicating if the tree background is striped\n * @name $.jstree.defaults.core.themes.stripes\n */\n stripes: false,\n\n /**\n * a string (or boolean `false`) specifying the theme variant to use (if the theme supports variants)\n * @name $.jstree.defaults.core.themes.variant\n */\n variant: false,\n\n /**\n * a boolean specifying if a reponsive version of the theme should kick in on smaller screens (if the theme supports it). Defaults to `false`.\n * @name $.jstree.defaults.core.themes.responsive\n */\n responsive: false\n },\n\n /**\n * if left as `true` all parents of all selected nodes will be opened once the tree loads (so that all selected nodes are visible to the user)\n * @name $.jstree.defaults.core.expand_selected_onload\n */\n expand_selected_onload: true,\n\n /**\n * if left as `true` web workers will be used to parse incoming JSON data where possible, so that the UI will not be blocked by large requests. Workers are however about 30% slower. Defaults to `true`\n * @name $.jstree.defaults.core.worker\n */\n worker: true,\n\n /**\n * Force node text to plain text (and escape HTML). Defaults to `false`\n * @name $.jstree.defaults.core.force_text\n */\n force_text: false,\n\n /**\n * Should the node be toggled if the text is double clicked. Defaults to `true`\n * @name $.jstree.defaults.core.dblclick_toggle\n */\n dblclick_toggle: true,\n\n /**\n * Should the loaded nodes be part of the state. Defaults to `false`\n * @name $.jstree.defaults.core.loaded_state\n */\n loaded_state: false,\n\n /**\n * Should the last active node be focused when the tree container is blurred and the focused again. This helps working with screen readers. Defaults to `true`\n * @name $.jstree.defaults.core.restore_focus\n */\n restore_focus: true,\n\n /**\n * Force to compute and set \"aria-setsize\" and \"aria-posinset\" explicitly for each treeitem. \n * Some browsers may compute incorrect elements position and produce wrong announcements for screen readers. Defaults to `false`\n * @name $.jstree.defaults.core.compute_elements_positions\n */\n compute_elements_positions: false,\n\n /**\n * Default keyboard shortcuts (an object where each key is the button name or combo - like 'enter', 'ctrl-space', 'p', etc and the value is the function to execute in the instance's scope)\n * @name $.jstree.defaults.core.keyboard\n */\n keyboard: {\n 'ctrl-space': function ctrlSpace(e) {\n // aria defines space only with Ctrl\n e.type = \"click\";\n $(e.currentTarget).trigger(e);\n },\n 'enter': function enter(e) {\n // enter\n e.type = \"click\";\n $(e.currentTarget).trigger(e);\n },\n 'left': function left(e) {\n // left\n e.preventDefault();\n\n if (this.is_open(e.currentTarget)) {\n this.close_node(e.currentTarget);\n } else {\n var o = this.get_parent(e.currentTarget);\n\n if (o && o.id !== $.jstree.root) {\n this.get_node(o, true).children('.jstree-anchor').trigger('focus');\n }\n }\n },\n 'up': function up(e) {\n // up\n e.preventDefault();\n var o = this.get_prev_dom(e.currentTarget);\n\n if (o && o.length) {\n o.children('.jstree-anchor').trigger('focus');\n }\n },\n 'right': function right(e) {\n // right\n e.preventDefault();\n\n if (this.is_closed(e.currentTarget)) {\n this.open_node(e.currentTarget, function (o) {\n this.get_node(o, true).children('.jstree-anchor').trigger('focus');\n });\n } else if (this.is_open(e.currentTarget)) {\n var o = this.get_node(e.currentTarget, true).children('.jstree-children')[0];\n\n if (o) {\n $(this._firstChild(o)).children('.jstree-anchor').trigger('focus');\n }\n }\n },\n 'down': function down(e) {\n // down\n e.preventDefault();\n var o = this.get_next_dom(e.currentTarget);\n\n if (o && o.length) {\n o.children('.jstree-anchor').trigger('focus');\n }\n },\n '*': function _(e) {\n // aria defines * on numpad as open_all - not very common\n this.open_all();\n },\n 'home': function home(e) {\n // home\n e.preventDefault();\n\n var o = this._firstChild(this.get_container_ul()[0]);\n\n if (o) {\n $(o).children('.jstree-anchor').filter(':visible').trigger('focus');\n }\n },\n 'end': function end(e) {\n // end\n e.preventDefault();\n this.element.find('.jstree-anchor').filter(':visible').last().trigger('focus');\n },\n 'f2': function f2(e) {\n // f2 - safe to include - if check_callback is false it will fail\n e.preventDefault();\n this.edit(e.currentTarget);\n }\n }\n };\n $.jstree.core.prototype = {\n /**\n * used to decorate an instance with a plugin. Used internally.\n * @private\n * @name plugin(deco [, opts])\n * @param {String} deco the plugin to decorate with\n * @param {Object} opts options for the plugin\n * @return {jsTree}\n */\n plugin: function plugin(deco, opts) {\n var Child = $.jstree.plugins[deco];\n\n if (Child) {\n this._data[deco] = {};\n Child.prototype = this;\n return new Child(opts, this);\n }\n\n return this;\n },\n\n /**\n * initialize the instance. Used internally.\n * @private\n * @name init(el, optons)\n * @param {DOMElement|jQuery|String} el the element we are transforming\n * @param {Object} options options for this instance\n * @trigger init.jstree, loading.jstree, loaded.jstree, ready.jstree, changed.jstree\n */\n init: function init(el, options) {\n this._model = {\n data: {},\n changed: [],\n force_full_redraw: false,\n redraw_timeout: false,\n default_state: {\n loaded: true,\n opened: false,\n selected: false,\n disabled: false\n }\n };\n this._model.data[$.jstree.root] = {\n id: $.jstree.root,\n parent: null,\n parents: [],\n children: [],\n children_d: [],\n state: {\n loaded: false\n }\n };\n this.element = $(el).addClass('jstree jstree-' + this._id);\n this.settings = options;\n this._data.core.ready = false;\n this._data.core.loaded = false;\n this._data.core.rtl = this.element.css(\"direction\") === \"rtl\";\n this.element[this._data.core.rtl ? 'addClass' : 'removeClass'](\"jstree-rtl\");\n this.element.attr('role', 'tree');\n\n if (this.settings.core.multiple) {\n this.element.attr('aria-multiselectable', true);\n }\n\n if (!this.element.attr('tabindex')) {\n this.element.attr('tabindex', '0');\n }\n\n this.bind();\n /**\n * triggered after all events are bound\n * @event\n * @name init.jstree\n */\n\n this.trigger(\"init\");\n this._data.core.original_container_html = this.element.find(\" > ul > li\").clone(true);\n\n this._data.core.original_container_html.find(\"li\").addBack().contents().filter(function () {\n return this.nodeType === 3 && (!this.nodeValue || /^\\s+$/.test(this.nodeValue));\n }).remove();\n\n this.element.html(\"<\" + \"ul class='jstree-container-ul jstree-children' role='group'><\" + \"li id='j\" + this._id + \"_loading' class='jstree-initial-node jstree-loading jstree-leaf jstree-last' role='none'><\" + \"a class='jstree-anchor' role='treeitem' href='#'>\" + this.get_string(\"Loading ...\") + \"
  • \");\n this.element.attr('aria-activedescendant', 'j' + this._id + '_loading');\n this._data.core.li_height = this.get_container_ul().children(\"li\").first().outerHeight() || 24;\n this._data.core.node = this._create_prototype_node();\n /**\n * triggered after the loading text is shown and before loading starts\n * @event\n * @name loading.jstree\n */\n\n this.trigger(\"loading\");\n this.load_node($.jstree.root);\n },\n\n /**\n * destroy an instance\n * @name destroy()\n * @param {Boolean} keep_html if not set to `true` the container will be emptied, otherwise the current DOM elements will be kept intact\n */\n destroy: function destroy(keep_html) {\n /**\n * triggered before the tree is destroyed\n * @event\n * @name destroy.jstree\n */\n this.trigger(\"destroy\");\n\n if (this._wrk) {\n try {\n window.URL.revokeObjectURL(this._wrk);\n this._wrk = null;\n } catch (ignore) {}\n }\n\n if (!keep_html) {\n this.element.empty();\n }\n\n this.teardown();\n },\n\n /**\n * Create a prototype node\n * @name _create_prototype_node()\n * @return {DOMElement}\n */\n _create_prototype_node: function _create_prototype_node() {\n var _node = document.createElement('LI'),\n _temp1,\n _temp2;\n\n _node.setAttribute('role', 'none');\n\n _temp1 = document.createElement('I');\n _temp1.className = 'jstree-icon jstree-ocl';\n\n _temp1.setAttribute('role', 'presentation');\n\n _node.appendChild(_temp1);\n\n _temp1 = document.createElement('A');\n _temp1.className = 'jstree-anchor';\n\n _temp1.setAttribute('href', '#');\n\n _temp1.setAttribute('tabindex', '-1');\n\n _temp1.setAttribute('role', 'treeitem');\n\n _temp2 = document.createElement('I');\n _temp2.className = 'jstree-icon jstree-themeicon';\n\n _temp2.setAttribute('role', 'presentation');\n\n _temp1.appendChild(_temp2);\n\n _node.appendChild(_temp1);\n\n _temp1 = _temp2 = null;\n return _node;\n },\n _kbevent_to_func: function _kbevent_to_func(e) {\n var keys = {\n 8: \"Backspace\",\n 9: \"Tab\",\n 13: \"Enter\",\n 19: \"Pause\",\n 27: \"Esc\",\n 32: \"Space\",\n 33: \"PageUp\",\n 34: \"PageDown\",\n 35: \"End\",\n 36: \"Home\",\n 37: \"Left\",\n 38: \"Up\",\n 39: \"Right\",\n 40: \"Down\",\n 44: \"Print\",\n 45: \"Insert\",\n 46: \"Delete\",\n 96: \"Numpad0\",\n 97: \"Numpad1\",\n 98: \"Numpad2\",\n 99: \"Numpad3\",\n 100: \"Numpad4\",\n 101: \"Numpad5\",\n 102: \"Numpad6\",\n 103: \"Numpad7\",\n 104: \"Numpad8\",\n 105: \"Numpad9\",\n '-13': \"NumpadEnter\",\n 112: \"F1\",\n 113: \"F2\",\n 114: \"F3\",\n 115: \"F4\",\n 116: \"F5\",\n 117: \"F6\",\n 118: \"F7\",\n 119: \"F8\",\n 120: \"F9\",\n 121: \"F10\",\n 122: \"F11\",\n 123: \"F12\",\n 144: \"Numlock\",\n 145: \"Scrolllock\",\n 16: 'Shift',\n 17: 'Ctrl',\n 18: 'Alt',\n 48: '0',\n 49: '1',\n 50: '2',\n 51: '3',\n 52: '4',\n 53: '5',\n 54: '6',\n 55: '7',\n 56: '8',\n 57: '9',\n 59: ';',\n 61: '=',\n 65: 'a',\n 66: 'b',\n 67: 'c',\n 68: 'd',\n 69: 'e',\n 70: 'f',\n 71: 'g',\n 72: 'h',\n 73: 'i',\n 74: 'j',\n 75: 'k',\n 76: 'l',\n 77: 'm',\n 78: 'n',\n 79: 'o',\n 80: 'p',\n 81: 'q',\n 82: 'r',\n 83: 's',\n 84: 't',\n 85: 'u',\n 86: 'v',\n 87: 'w',\n 88: 'x',\n 89: 'y',\n 90: 'z',\n 107: '+',\n 109: '-',\n 110: '.',\n 186: ';',\n 187: '=',\n 188: ',',\n 189: '-',\n 190: '.',\n 191: '/',\n 192: '`',\n 219: '[',\n 220: '\\\\',\n 221: ']',\n 222: \"'\",\n 111: '/',\n 106: '*',\n 173: '-'\n };\n var parts = [];\n\n if (e.ctrlKey) {\n parts.push('ctrl');\n }\n\n if (e.altKey) {\n parts.push('alt');\n }\n\n if (e.shiftKey) {\n parts.push('shift');\n }\n\n parts.push(keys[e.which] || e.which);\n parts = parts.sort().join('-').toLowerCase();\n\n if (parts === 'shift-shift' || parts === 'ctrl-ctrl' || parts === 'alt-alt') {\n return null;\n }\n\n var kb = this.settings.core.keyboard,\n i,\n tmp;\n\n for (i in kb) {\n if (kb.hasOwnProperty(i)) {\n tmp = i;\n\n if (tmp !== '-' && tmp !== '+') {\n tmp = tmp.replace('--', '-MINUS').replace('+-', '-MINUS').replace('++', '-PLUS').replace('-+', '-PLUS');\n tmp = tmp.split(/-|\\+/).sort().join('-').replace('MINUS', '-').replace('PLUS', '+').toLowerCase();\n }\n\n if (tmp === parts) {\n return kb[i];\n }\n }\n }\n\n return null;\n },\n\n /**\n * part of the destroying of an instance. Used internally.\n * @private\n * @name teardown()\n */\n teardown: function teardown() {\n this.unbind();\n this.element.removeClass('jstree').removeData('jstree').find(\"[class^='jstree']\").addBack().attr(\"class\", function () {\n return this.className.replace(/jstree[^ ]*|$/ig, '');\n });\n this.element = null;\n },\n\n /**\n * bind all events. Used internally.\n * @private\n * @name bind()\n */\n bind: function bind() {\n var word = '',\n tout = null,\n was_click = 0;\n this.element.on(\"dblclick.jstree\", function (e) {\n if (e.target.tagName && e.target.tagName.toLowerCase() === \"input\") {\n return true;\n }\n\n if (document.selection && document.selection.empty) {\n document.selection.empty();\n } else {\n if (window.getSelection) {\n var sel = window.getSelection();\n\n try {\n sel.removeAllRanges();\n sel.collapse();\n } catch (ignore) {}\n }\n }\n }).on(\"mousedown.jstree\", function (e) {\n if (e.target === this.element[0]) {\n e.preventDefault(); // prevent losing focus when clicking scroll arrows (FF, Chrome)\n\n was_click = +new Date(); // ie does not allow to prevent losing focus\n }\n }.bind(this)).on(\"mousedown.jstree\", \".jstree-ocl\", function (e) {\n e.preventDefault(); // prevent any node inside from losing focus when clicking the open/close icon\n }).on(\"click.jstree\", \".jstree-ocl\", function (e) {\n this.toggle_node(e.target);\n }.bind(this)).on(\"dblclick.jstree\", \".jstree-anchor\", function (e) {\n if (e.target.tagName && e.target.tagName.toLowerCase() === \"input\") {\n return true;\n }\n\n if (this.settings.core.dblclick_toggle) {\n this.toggle_node(e.target);\n }\n }.bind(this)).on(\"click.jstree\", \".jstree-anchor\", function (e) {\n e.preventDefault();\n\n if (e.currentTarget !== document.activeElement) {\n $(e.currentTarget).trigger('focus');\n }\n\n this.activate_node(e.currentTarget, e);\n }.bind(this)).on('keydown.jstree', '.jstree-anchor', function (e) {\n if (e.target.tagName && e.target.tagName.toLowerCase() === \"input\") {\n return true;\n }\n\n if (this._data.core.rtl) {\n if (e.which === 37) {\n e.which = 39;\n } else if (e.which === 39) {\n e.which = 37;\n }\n }\n\n var f = this._kbevent_to_func(e);\n\n if (f) {\n var r = f.call(this, e);\n\n if (r === false || r === true) {\n return r;\n }\n }\n }.bind(this)).on(\"load_node.jstree\", function (e, data) {\n if (data.status) {\n if (data.node.id === $.jstree.root && !this._data.core.loaded) {\n this._data.core.loaded = true;\n\n if (this._firstChild(this.get_container_ul()[0])) {\n this.element.attr('aria-activedescendant', this._firstChild(this.get_container_ul()[0]).id);\n }\n /**\n * triggered after the root node is loaded for the first time\n * @event\n * @name loaded.jstree\n */\n\n\n this.trigger(\"loaded\");\n }\n\n if (!this._data.core.ready) {\n setTimeout(function () {\n if (this.element && !this.get_container_ul().find('.jstree-loading').length) {\n this._data.core.ready = true;\n\n if (this._data.core.selected.length) {\n if (this.settings.core.expand_selected_onload) {\n var tmp = [],\n i,\n j;\n\n for (i = 0, j = this._data.core.selected.length; i < j; i++) {\n tmp = tmp.concat(this._model.data[this._data.core.selected[i]].parents);\n }\n\n tmp = $.vakata.array_unique(tmp);\n\n for (i = 0, j = tmp.length; i < j; i++) {\n this.open_node(tmp[i], false, 0);\n }\n }\n\n this.trigger('changed', {\n 'action': 'ready',\n 'selected': this._data.core.selected\n });\n }\n /**\n * triggered after all nodes are finished loading\n * @event\n * @name ready.jstree\n */\n\n\n this.trigger(\"ready\");\n }\n }.bind(this), 0);\n }\n }\n }.bind(this)) // quick searching when the tree is focused\n .on('keypress.jstree', function (e) {\n if (e.target.tagName && e.target.tagName.toLowerCase() === \"input\") {\n return true;\n }\n\n if (tout) {\n clearTimeout(tout);\n }\n\n tout = setTimeout(function () {\n word = '';\n }, 500);\n var chr = String.fromCharCode(e.which).toLowerCase(),\n col = this.element.find('.jstree-anchor').filter(':visible'),\n ind = col.index(document.activeElement) || 0,\n end = false;\n word += chr; // match for whole word from current node down (including the current node)\n\n if (word.length > 1) {\n col.slice(ind).each(function (i, v) {\n if ($(v).text().toLowerCase().indexOf(word) === 0) {\n $(v).trigger('focus');\n end = true;\n return false;\n }\n }.bind(this));\n\n if (end) {\n return;\n } // match for whole word from the beginning of the tree\n\n\n col.slice(0, ind).each(function (i, v) {\n if ($(v).text().toLowerCase().indexOf(word) === 0) {\n $(v).trigger('focus');\n end = true;\n return false;\n }\n }.bind(this));\n\n if (end) {\n return;\n }\n } // list nodes that start with that letter (only if word consists of a single char)\n\n\n if (new RegExp('^' + chr.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&') + '+$').test(word)) {\n // search for the next node starting with that letter\n col.slice(ind + 1).each(function (i, v) {\n if ($(v).text().toLowerCase().charAt(0) === chr) {\n $(v).trigger('focus');\n end = true;\n return false;\n }\n }.bind(this));\n\n if (end) {\n return;\n } // search from the beginning\n\n\n col.slice(0, ind + 1).each(function (i, v) {\n if ($(v).text().toLowerCase().charAt(0) === chr) {\n $(v).trigger('focus');\n end = true;\n return false;\n }\n }.bind(this));\n\n if (end) {\n return;\n }\n }\n }.bind(this)) // THEME RELATED\n .on(\"init.jstree\", function () {\n var s = this.settings.core.themes;\n this._data.core.themes.dots = s.dots;\n this._data.core.themes.stripes = s.stripes;\n this._data.core.themes.icons = s.icons;\n this._data.core.themes.ellipsis = s.ellipsis;\n this.set_theme(s.name || \"default\", s.url);\n this.set_theme_variant(s.variant);\n }.bind(this)).on(\"loading.jstree\", function () {\n this[this._data.core.themes.dots ? \"show_dots\" : \"hide_dots\"]();\n this[this._data.core.themes.icons ? \"show_icons\" : \"hide_icons\"]();\n this[this._data.core.themes.stripes ? \"show_stripes\" : \"hide_stripes\"]();\n this[this._data.core.themes.ellipsis ? \"show_ellipsis\" : \"hide_ellipsis\"]();\n }.bind(this)).on('blur.jstree', '.jstree-anchor', function (e) {\n this._data.core.focused = null;\n $(e.currentTarget).filter('.jstree-hovered').trigger('mouseleave');\n this.element.attr('tabindex', '0');\n }.bind(this)).on('focus.jstree', '.jstree-anchor', function (e) {\n var tmp = this.get_node(e.currentTarget);\n\n if (tmp && tmp.id) {\n this._data.core.focused = tmp.id;\n }\n\n this.element.find('.jstree-hovered').not(e.currentTarget).trigger('mouseleave');\n $(e.currentTarget).trigger('mouseenter');\n this.element.attr('tabindex', '-1');\n }.bind(this)).on('focus.jstree', function () {\n if (+new Date() - was_click > 500 && !this._data.core.focused && this.settings.core.restore_focus) {\n was_click = 0;\n var act = this.get_node(this.element.attr('aria-activedescendant'), true);\n\n if (act) {\n act.find('> .jstree-anchor').trigger('focus');\n }\n }\n }.bind(this)).on('mouseenter.jstree', '.jstree-anchor', function (e) {\n this.hover_node(e.currentTarget);\n }.bind(this)).on('mouseleave.jstree', '.jstree-anchor', function (e) {\n this.dehover_node(e.currentTarget);\n }.bind(this));\n },\n\n /**\n * part of the destroying of an instance. Used internally.\n * @private\n * @name unbind()\n */\n unbind: function unbind() {\n this.element.off('.jstree');\n $(document).off('.jstree-' + this._id);\n },\n\n /**\n * trigger an event. Used internally.\n * @private\n * @name trigger(ev [, data])\n * @param {String} ev the name of the event to trigger\n * @param {Object} data additional data to pass with the event\n */\n trigger: function trigger(ev, data) {\n if (!data) {\n data = {};\n }\n\n data.instance = this;\n this.element.triggerHandler(ev.replace('.jstree', '') + '.jstree', data);\n },\n\n /**\n * returns the jQuery extended instance container\n * @name get_container()\n * @return {jQuery}\n */\n get_container: function get_container() {\n return this.element;\n },\n\n /**\n * returns the jQuery extended main UL node inside the instance container. Used internally.\n * @private\n * @name get_container_ul()\n * @return {jQuery}\n */\n get_container_ul: function get_container_ul() {\n return this.element.children(\".jstree-children\").first();\n },\n\n /**\n * gets string replacements (localization). Used internally.\n * @private\n * @name get_string(key)\n * @param {String} key\n * @return {String}\n */\n get_string: function get_string(key) {\n var a = this.settings.core.strings;\n\n if ($.vakata.is_function(a)) {\n return a.call(this, key);\n }\n\n if (a && a[key]) {\n return a[key];\n }\n\n return key;\n },\n\n /**\n * gets the first child of a DOM node. Used internally.\n * @private\n * @name _firstChild(dom)\n * @param {DOMElement} dom\n * @return {DOMElement}\n */\n _firstChild: function _firstChild(dom) {\n dom = dom ? dom.firstChild : null;\n\n while (dom !== null && dom.nodeType !== 1) {\n dom = dom.nextSibling;\n }\n\n return dom;\n },\n\n /**\n * gets the next sibling of a DOM node. Used internally.\n * @private\n * @name _nextSibling(dom)\n * @param {DOMElement} dom\n * @return {DOMElement}\n */\n _nextSibling: function _nextSibling(dom) {\n dom = dom ? dom.nextSibling : null;\n\n while (dom !== null && dom.nodeType !== 1) {\n dom = dom.nextSibling;\n }\n\n return dom;\n },\n\n /**\n * gets the previous sibling of a DOM node. Used internally.\n * @private\n * @name _previousSibling(dom)\n * @param {DOMElement} dom\n * @return {DOMElement}\n */\n _previousSibling: function _previousSibling(dom) {\n dom = dom ? dom.previousSibling : null;\n\n while (dom !== null && dom.nodeType !== 1) {\n dom = dom.previousSibling;\n }\n\n return dom;\n },\n\n /**\n * get the JSON representation of a node (or the actual jQuery extended DOM node) by using any input (child DOM element, ID string, selector, etc)\n * @name get_node(obj [, as_dom])\n * @param {mixed} obj\n * @param {Boolean} as_dom\n * @return {Object|jQuery}\n */\n get_node: function get_node(obj, as_dom) {\n if (obj && obj.id) {\n obj = obj.id;\n }\n\n if (obj instanceof $ && obj.length && obj[0].id) {\n obj = obj[0].id;\n }\n\n var dom;\n\n try {\n if (this._model.data[obj]) {\n obj = this._model.data[obj];\n } else if (typeof obj === \"string\" && this._model.data[obj.replace(/^#/, '')]) {\n obj = this._model.data[obj.replace(/^#/, '')];\n } else if (typeof obj === \"string\" && (dom = $('#' + obj.replace($.jstree.idregex, '\\\\$&'), this.element)).length && this._model.data[dom.closest('.jstree-node').attr('id')]) {\n obj = this._model.data[dom.closest('.jstree-node').attr('id')];\n } else if ((dom = this.element.find(obj)).length && this._model.data[dom.closest('.jstree-node').attr('id')]) {\n obj = this._model.data[dom.closest('.jstree-node').attr('id')];\n } else if ((dom = this.element.find(obj)).length && dom.hasClass('jstree')) {\n obj = this._model.data[$.jstree.root];\n } else {\n return false;\n }\n\n if (as_dom) {\n obj = obj.id === $.jstree.root ? this.element : $('#' + obj.id.replace($.jstree.idregex, '\\\\$&'), this.element);\n }\n\n return obj;\n } catch (ex) {\n return false;\n }\n },\n\n /**\n * get the path to a node, either consisting of node texts, or of node IDs, optionally glued together (otherwise an array)\n * @name get_path(obj [, glue, ids])\n * @param {mixed} obj the node\n * @param {String} glue if you want the path as a string - pass the glue here (for example '/'), if a falsy value is supplied here, an array is returned\n * @param {Boolean} ids if set to true build the path using ID, otherwise node text is used\n * @return {mixed}\n */\n get_path: function get_path(obj, glue, ids) {\n obj = obj.parents ? obj : this.get_node(obj);\n\n if (!obj || obj.id === $.jstree.root || !obj.parents) {\n return false;\n }\n\n var i,\n j,\n p = [];\n p.push(ids ? obj.id : obj.text);\n\n for (i = 0, j = obj.parents.length; i < j; i++) {\n p.push(ids ? obj.parents[i] : this.get_text(obj.parents[i]));\n }\n\n p = p.reverse().slice(1);\n return glue ? p.join(glue) : p;\n },\n\n /**\n * get the next visible node that is below the `obj` node. If `strict` is set to `true` only sibling nodes are returned.\n * @name get_next_dom(obj [, strict])\n * @param {mixed} obj\n * @param {Boolean} strict\n * @return {jQuery}\n */\n get_next_dom: function get_next_dom(obj, strict) {\n var tmp;\n obj = this.get_node(obj, true);\n\n if (obj[0] === this.element[0]) {\n tmp = this._firstChild(this.get_container_ul()[0]);\n\n while (tmp && tmp.offsetHeight === 0) {\n tmp = this._nextSibling(tmp);\n }\n\n return tmp ? $(tmp) : false;\n }\n\n if (!obj || !obj.length) {\n return false;\n }\n\n if (strict) {\n tmp = obj[0];\n\n do {\n tmp = this._nextSibling(tmp);\n } while (tmp && tmp.offsetHeight === 0);\n\n return tmp ? $(tmp) : false;\n }\n\n if (obj.hasClass(\"jstree-open\")) {\n tmp = this._firstChild(obj.children('.jstree-children')[0]);\n\n while (tmp && tmp.offsetHeight === 0) {\n tmp = this._nextSibling(tmp);\n }\n\n if (tmp !== null) {\n return $(tmp);\n }\n }\n\n tmp = obj[0];\n\n do {\n tmp = this._nextSibling(tmp);\n } while (tmp && tmp.offsetHeight === 0);\n\n if (tmp !== null) {\n return $(tmp);\n }\n\n return obj.parentsUntil(\".jstree\", \".jstree-node\").nextAll(\".jstree-node:visible\").first();\n },\n\n /**\n * get the previous visible node that is above the `obj` node. If `strict` is set to `true` only sibling nodes are returned.\n * @name get_prev_dom(obj [, strict])\n * @param {mixed} obj\n * @param {Boolean} strict\n * @return {jQuery}\n */\n get_prev_dom: function get_prev_dom(obj, strict) {\n var tmp;\n obj = this.get_node(obj, true);\n\n if (obj[0] === this.element[0]) {\n tmp = this.get_container_ul()[0].lastChild;\n\n while (tmp && tmp.offsetHeight === 0) {\n tmp = this._previousSibling(tmp);\n }\n\n return tmp ? $(tmp) : false;\n }\n\n if (!obj || !obj.length) {\n return false;\n }\n\n if (strict) {\n tmp = obj[0];\n\n do {\n tmp = this._previousSibling(tmp);\n } while (tmp && tmp.offsetHeight === 0);\n\n return tmp ? $(tmp) : false;\n }\n\n tmp = obj[0];\n\n do {\n tmp = this._previousSibling(tmp);\n } while (tmp && tmp.offsetHeight === 0);\n\n if (tmp !== null) {\n obj = $(tmp);\n\n while (obj.hasClass(\"jstree-open\")) {\n obj = obj.children(\".jstree-children\").first().children(\".jstree-node:visible:last\");\n }\n\n return obj;\n }\n\n tmp = obj[0].parentNode.parentNode;\n return tmp && tmp.className && tmp.className.indexOf('jstree-node') !== -1 ? $(tmp) : false;\n },\n\n /**\n * get the parent ID of a node\n * @name get_parent(obj)\n * @param {mixed} obj\n * @return {String}\n */\n get_parent: function get_parent(obj) {\n obj = this.get_node(obj);\n\n if (!obj || obj.id === $.jstree.root) {\n return false;\n }\n\n return obj.parent;\n },\n\n /**\n * get a jQuery collection of all the children of a node (node must be rendered), returns false on error\n * @name get_children_dom(obj)\n * @param {mixed} obj\n * @return {jQuery}\n */\n get_children_dom: function get_children_dom(obj) {\n obj = this.get_node(obj, true);\n\n if (obj[0] === this.element[0]) {\n return this.get_container_ul().children(\".jstree-node\");\n }\n\n if (!obj || !obj.length) {\n return false;\n }\n\n return obj.children(\".jstree-children\").children(\".jstree-node\");\n },\n\n /**\n * checks if a node has children\n * @name is_parent(obj)\n * @param {mixed} obj\n * @return {Boolean}\n */\n is_parent: function is_parent(obj) {\n obj = this.get_node(obj);\n return obj && (obj.state.loaded === false || obj.children.length > 0);\n },\n\n /**\n * checks if a node is loaded (its children are available)\n * @name is_loaded(obj)\n * @param {mixed} obj\n * @return {Boolean}\n */\n is_loaded: function is_loaded(obj) {\n obj = this.get_node(obj);\n return obj && obj.state.loaded;\n },\n\n /**\n * check if a node is currently loading (fetching children)\n * @name is_loading(obj)\n * @param {mixed} obj\n * @return {Boolean}\n */\n is_loading: function is_loading(obj) {\n obj = this.get_node(obj);\n return obj && obj.state && obj.state.loading;\n },\n\n /**\n * check if a node is opened\n * @name is_open(obj)\n * @param {mixed} obj\n * @return {Boolean}\n */\n is_open: function is_open(obj) {\n obj = this.get_node(obj);\n return obj && obj.state.opened;\n },\n\n /**\n * check if a node is in a closed state\n * @name is_closed(obj)\n * @param {mixed} obj\n * @return {Boolean}\n */\n is_closed: function is_closed(obj) {\n obj = this.get_node(obj);\n return obj && this.is_parent(obj) && !obj.state.opened;\n },\n\n /**\n * check if a node has no children\n * @name is_leaf(obj)\n * @param {mixed} obj\n * @return {Boolean}\n */\n is_leaf: function is_leaf(obj) {\n return !this.is_parent(obj);\n },\n\n /**\n * loads a node (fetches its children using the `core.data` setting). Multiple nodes can be passed to by using an array.\n * @name load_node(obj [, callback])\n * @param {mixed} obj\n * @param {function} callback a function to be executed once loading is complete, the function is executed in the instance's scope and receives two arguments - the node and a boolean status\n * @return {Boolean}\n * @trigger load_node.jstree\n */\n load_node: function load_node(obj, callback) {\n var k, l, i, j, c;\n\n if ($.vakata.is_array(obj)) {\n this._load_nodes(obj.slice(), callback);\n\n return true;\n }\n\n obj = this.get_node(obj);\n\n if (!obj) {\n if (callback) {\n callback.call(this, obj, false);\n }\n\n return false;\n } // if(obj.state.loading) { } // the node is already loading - just wait for it to load and invoke callback? but if called implicitly it should be loaded again?\n\n\n if (obj.state.loaded) {\n obj.state.loaded = false;\n\n for (i = 0, j = obj.parents.length; i < j; i++) {\n this._model.data[obj.parents[i]].children_d = $.vakata.array_filter(this._model.data[obj.parents[i]].children_d, function (v) {\n return $.inArray(v, obj.children_d) === -1;\n });\n }\n\n for (k = 0, l = obj.children_d.length; k < l; k++) {\n if (this._model.data[obj.children_d[k]].state.selected) {\n c = true;\n }\n\n delete this._model.data[obj.children_d[k]];\n }\n\n if (c) {\n this._data.core.selected = $.vakata.array_filter(this._data.core.selected, function (v) {\n return $.inArray(v, obj.children_d) === -1;\n });\n }\n\n obj.children = [];\n obj.children_d = [];\n\n if (c) {\n this.trigger('changed', {\n 'action': 'load_node',\n 'node': obj,\n 'selected': this._data.core.selected\n });\n }\n }\n\n obj.state.failed = false;\n obj.state.loading = true;\n this.get_node(obj, true).addClass(\"jstree-loading\").attr('aria-busy', true);\n\n this._load_node(obj, function (status) {\n obj = this._model.data[obj.id];\n obj.state.loading = false;\n obj.state.loaded = status;\n obj.state.failed = !obj.state.loaded;\n var dom = this.get_node(obj, true),\n i = 0,\n j = 0,\n m = this._model.data,\n has_children = false;\n\n for (i = 0, j = obj.children.length; i < j; i++) {\n if (m[obj.children[i]] && !m[obj.children[i]].state.hidden) {\n has_children = true;\n break;\n }\n }\n\n if (obj.state.loaded && dom && dom.length) {\n dom.removeClass('jstree-closed jstree-open jstree-leaf');\n\n if (!has_children) {\n dom.addClass('jstree-leaf');\n } else {\n if (obj.id !== '#') {\n dom.addClass(obj.state.opened ? 'jstree-open' : 'jstree-closed');\n }\n }\n }\n\n dom.removeClass(\"jstree-loading\").attr('aria-busy', false);\n /**\n * triggered after a node is loaded\n * @event\n * @name load_node.jstree\n * @param {Object} node the node that was loading\n * @param {Boolean} status was the node loaded successfully\n */\n\n this.trigger('load_node', {\n \"node\": obj,\n \"status\": status\n });\n\n if (callback) {\n callback.call(this, obj, status);\n }\n }.bind(this));\n\n return true;\n },\n\n /**\n * load an array of nodes (will also load unavailable nodes as soon as they appear in the structure). Used internally.\n * @private\n * @name _load_nodes(nodes [, callback])\n * @param {array} nodes\n * @param {function} callback a function to be executed once loading is complete, the function is executed in the instance's scope and receives one argument - the array passed to _load_nodes\n */\n _load_nodes: function _load_nodes(nodes, callback, is_callback, force_reload) {\n var r = true,\n c = function c() {\n this._load_nodes(nodes, callback, true);\n },\n m = this._model.data,\n i,\n j,\n tmp = [];\n\n for (i = 0, j = nodes.length; i < j; i++) {\n if (m[nodes[i]] && (!m[nodes[i]].state.loaded && !m[nodes[i]].state.failed || !is_callback && force_reload)) {\n if (!this.is_loading(nodes[i])) {\n this.load_node(nodes[i], c);\n }\n\n r = false;\n }\n }\n\n if (r) {\n for (i = 0, j = nodes.length; i < j; i++) {\n if (m[nodes[i]] && m[nodes[i]].state.loaded) {\n tmp.push(nodes[i]);\n }\n }\n\n if (callback && !callback.done) {\n callback.call(this, tmp);\n callback.done = true;\n }\n }\n },\n\n /**\n * loads all unloaded nodes\n * @name load_all([obj, callback])\n * @param {mixed} obj the node to load recursively, omit to load all nodes in the tree\n * @param {function} callback a function to be executed once loading all the nodes is complete,\n * @trigger load_all.jstree\n */\n load_all: function load_all(obj, callback) {\n if (!obj) {\n obj = $.jstree.root;\n }\n\n obj = this.get_node(obj);\n\n if (!obj) {\n return false;\n }\n\n var to_load = [],\n m = this._model.data,\n c = m[obj.id].children_d,\n i,\n j;\n\n if (obj.state && !obj.state.loaded) {\n to_load.push(obj.id);\n }\n\n for (i = 0, j = c.length; i < j; i++) {\n if (m[c[i]] && m[c[i]].state && !m[c[i]].state.loaded) {\n to_load.push(c[i]);\n }\n }\n\n if (to_load.length) {\n this._load_nodes(to_load, function () {\n this.load_all(obj, callback);\n });\n } else {\n /**\n * triggered after a load_all call completes\n * @event\n * @name load_all.jstree\n * @param {Object} node the recursively loaded node\n */\n if (callback) {\n callback.call(this, obj);\n }\n\n this.trigger('load_all', {\n \"node\": obj\n });\n }\n },\n\n /**\n * handles the actual loading of a node. Used only internally.\n * @private\n * @name _load_node(obj [, callback])\n * @param {mixed} obj\n * @param {function} callback a function to be executed once loading is complete, the function is executed in the instance's scope and receives one argument - a boolean status\n * @return {Boolean}\n */\n _load_node: function _load_node(obj, callback) {\n var s = this.settings.core.data,\n t;\n\n var notTextOrCommentNode = function notTextOrCommentNode() {\n return this.nodeType !== 3 && this.nodeType !== 8;\n }; // use original HTML\n\n\n if (!s) {\n if (obj.id === $.jstree.root) {\n return this._append_html_data(obj, this._data.core.original_container_html.clone(true), function (status) {\n callback.call(this, status);\n });\n } else {\n return callback.call(this, false);\n } // return callback.call(this, obj.id === $.jstree.root ? this._append_html_data(obj, this._data.core.original_container_html.clone(true)) : false);\n\n }\n\n if ($.vakata.is_function(s)) {\n return s.call(this, obj, function (d) {\n if (d === false) {\n callback.call(this, false);\n } else {\n this[typeof d === 'string' ? '_append_html_data' : '_append_json_data'](obj, typeof d === 'string' ? $($.parseHTML(d)).filter(notTextOrCommentNode) : d, function (status) {\n callback.call(this, status);\n });\n } // return d === false ? callback.call(this, false) : callback.call(this, this[typeof d === 'string' ? '_append_html_data' : '_append_json_data'](obj, typeof d === 'string' ? $(d) : d));\n\n }.bind(this));\n }\n\n if (_typeof(s) === 'object') {\n if (s.url) {\n s = $.extend(true, {}, s);\n\n if ($.vakata.is_function(s.url)) {\n s.url = s.url.call(this, obj);\n }\n\n if ($.vakata.is_function(s.data)) {\n s.data = s.data.call(this, obj);\n }\n\n return $.ajax(s).done(function (d, t, x) {\n var type = x.getResponseHeader('Content-Type');\n\n if (type && type.indexOf('json') !== -1 || _typeof(d) === \"object\") {\n return this._append_json_data(obj, d, function (status) {\n callback.call(this, status);\n }); //return callback.call(this, this._append_json_data(obj, d));\n }\n\n if (type && type.indexOf('html') !== -1 || typeof d === \"string\") {\n return this._append_html_data(obj, $($.parseHTML(d)).filter(notTextOrCommentNode), function (status) {\n callback.call(this, status);\n }); // return callback.call(this, this._append_html_data(obj, $(d)));\n }\n\n this._data.core.last_error = {\n 'error': 'ajax',\n 'plugin': 'core',\n 'id': 'core_04',\n 'reason': 'Could not load node',\n 'data': JSON.stringify({\n 'id': obj.id,\n 'xhr': x\n })\n };\n this.settings.core.error.call(this, this._data.core.last_error);\n return callback.call(this, false);\n }.bind(this)).fail(function (f) {\n this._data.core.last_error = {\n 'error': 'ajax',\n 'plugin': 'core',\n 'id': 'core_04',\n 'reason': 'Could not load node',\n 'data': JSON.stringify({\n 'id': obj.id,\n 'xhr': f\n })\n };\n callback.call(this, false);\n this.settings.core.error.call(this, this._data.core.last_error);\n }.bind(this));\n }\n\n if ($.vakata.is_array(s)) {\n t = $.extend(true, [], s);\n } else if ($.isPlainObject(s)) {\n t = $.extend(true, {}, s);\n } else {\n t = s;\n }\n\n if (obj.id === $.jstree.root) {\n return this._append_json_data(obj, t, function (status) {\n callback.call(this, status);\n });\n } else {\n this._data.core.last_error = {\n 'error': 'nodata',\n 'plugin': 'core',\n 'id': 'core_05',\n 'reason': 'Could not load node',\n 'data': JSON.stringify({\n 'id': obj.id\n })\n };\n this.settings.core.error.call(this, this._data.core.last_error);\n return callback.call(this, false);\n } //return callback.call(this, (obj.id === $.jstree.root ? this._append_json_data(obj, t) : false) );\n\n }\n\n if (typeof s === 'string') {\n if (obj.id === $.jstree.root) {\n return this._append_html_data(obj, $($.parseHTML(s)).filter(notTextOrCommentNode), function (status) {\n callback.call(this, status);\n });\n } else {\n this._data.core.last_error = {\n 'error': 'nodata',\n 'plugin': 'core',\n 'id': 'core_06',\n 'reason': 'Could not load node',\n 'data': JSON.stringify({\n 'id': obj.id\n })\n };\n this.settings.core.error.call(this, this._data.core.last_error);\n return callback.call(this, false);\n } //return callback.call(this, (obj.id === $.jstree.root ? this._append_html_data(obj, $(s)) : false) );\n\n }\n\n return callback.call(this, false);\n },\n\n /**\n * adds a node to the list of nodes to redraw. Used only internally.\n * @private\n * @name _node_changed(obj [, callback])\n * @param {mixed} obj\n */\n _node_changed: function _node_changed(obj) {\n obj = this.get_node(obj);\n\n if (obj && $.inArray(obj.id, this._model.changed) === -1) {\n this._model.changed.push(obj.id);\n }\n },\n\n /**\n * appends HTML content to the tree. Used internally.\n * @private\n * @name _append_html_data(obj, data)\n * @param {mixed} obj the node to append to\n * @param {String} data the HTML string to parse and append\n * @trigger model.jstree, changed.jstree\n */\n _append_html_data: function _append_html_data(dom, data, cb) {\n dom = this.get_node(dom);\n dom.children = [];\n dom.children_d = [];\n var dat = data.is('ul') ? data.children() : data,\n par = dom.id,\n chd = [],\n dpc = [],\n m = this._model.data,\n p = m[par],\n s = this._data.core.selected.length,\n tmp,\n i,\n j;\n dat.each(function (i, v) {\n tmp = this._parse_model_from_html($(v), par, p.parents.concat());\n\n if (tmp) {\n chd.push(tmp);\n dpc.push(tmp);\n\n if (m[tmp].children_d.length) {\n dpc = dpc.concat(m[tmp].children_d);\n }\n }\n }.bind(this));\n p.children = chd;\n p.children_d = dpc;\n\n for (i = 0, j = p.parents.length; i < j; i++) {\n m[p.parents[i]].children_d = m[p.parents[i]].children_d.concat(dpc);\n }\n /**\n * triggered when new data is inserted to the tree model\n * @event\n * @name model.jstree\n * @param {Array} nodes an array of node IDs\n * @param {String} parent the parent ID of the nodes\n */\n\n\n this.trigger('model', {\n \"nodes\": dpc,\n 'parent': par\n });\n\n if (par !== $.jstree.root) {\n this._node_changed(par);\n\n this.redraw();\n } else {\n this.get_container_ul().children('.jstree-initial-node').remove();\n this.redraw(true);\n }\n\n if (this._data.core.selected.length !== s) {\n this.trigger('changed', {\n 'action': 'model',\n 'selected': this._data.core.selected\n });\n }\n\n cb.call(this, true);\n },\n\n /**\n * appends JSON content to the tree. Used internally.\n * @private\n * @name _append_json_data(obj, data)\n * @param {mixed} obj the node to append to\n * @param {String} data the JSON object to parse and append\n * @param {Boolean} force_processing internal param - do not set\n * @trigger model.jstree, changed.jstree\n */\n _append_json_data: function _append_json_data(dom, data, cb, force_processing) {\n if (this.element === null) {\n return;\n }\n\n dom = this.get_node(dom);\n dom.children = [];\n dom.children_d = []; // *%$@!!!\n\n if (data.d) {\n data = data.d;\n\n if (typeof data === \"string\") {\n data = JSON.parse(data);\n }\n }\n\n if (!$.vakata.is_array(data)) {\n data = [data];\n }\n\n var w = null,\n args = {\n 'df': this._model.default_state,\n 'dat': data,\n 'par': dom.id,\n 'm': this._model.data,\n 't_id': this._id,\n 't_cnt': this._cnt,\n 'sel': this._data.core.selected\n },\n inst = this,\n func = function func(data, undefined) {\n if (data.data) {\n data = data.data;\n }\n\n var dat = data.dat,\n par = data.par,\n chd = [],\n dpc = [],\n add = [],\n df = data.df,\n t_id = data.t_id,\n t_cnt = data.t_cnt,\n m = data.m,\n p = m[par],\n sel = data.sel,\n tmp,\n i,\n j,\n rslt,\n parse_flat = function parse_flat(d, p, ps) {\n if (!ps) {\n ps = [];\n } else {\n ps = ps.concat();\n }\n\n if (p) {\n ps.unshift(p);\n }\n\n var tid = d.id.toString(),\n i,\n j,\n c,\n e,\n tmp = {\n id: tid,\n text: d.text || '',\n icon: d.icon !== undefined ? d.icon : true,\n parent: p,\n parents: ps,\n children: d.children || [],\n children_d: d.children_d || [],\n data: d.data,\n state: {},\n li_attr: {\n id: false\n },\n a_attr: {\n href: '#'\n },\n original: false\n };\n\n for (i in df) {\n if (df.hasOwnProperty(i)) {\n tmp.state[i] = df[i];\n }\n }\n\n if (d && d.data && d.data.jstree && d.data.jstree.icon) {\n tmp.icon = d.data.jstree.icon;\n }\n\n if (tmp.icon === undefined || tmp.icon === null || tmp.icon === \"\") {\n tmp.icon = true;\n }\n\n if (d && d.data) {\n tmp.data = d.data;\n\n if (d.data.jstree) {\n for (i in d.data.jstree) {\n if (d.data.jstree.hasOwnProperty(i)) {\n tmp.state[i] = d.data.jstree[i];\n }\n }\n }\n }\n\n if (d && _typeof(d.state) === 'object') {\n for (i in d.state) {\n if (d.state.hasOwnProperty(i)) {\n tmp.state[i] = d.state[i];\n }\n }\n }\n\n if (d && _typeof(d.li_attr) === 'object') {\n for (i in d.li_attr) {\n if (d.li_attr.hasOwnProperty(i)) {\n tmp.li_attr[i] = d.li_attr[i];\n }\n }\n }\n\n if (!tmp.li_attr.id) {\n tmp.li_attr.id = tid;\n }\n\n if (d && _typeof(d.a_attr) === 'object') {\n for (i in d.a_attr) {\n if (d.a_attr.hasOwnProperty(i)) {\n tmp.a_attr[i] = d.a_attr[i];\n }\n }\n }\n\n if (d && d.children && d.children === true) {\n tmp.state.loaded = false;\n tmp.children = [];\n tmp.children_d = [];\n }\n\n m[tmp.id] = tmp;\n\n for (i = 0, j = tmp.children.length; i < j; i++) {\n c = parse_flat(m[tmp.children[i]], tmp.id, ps);\n e = m[c];\n tmp.children_d.push(c);\n\n if (e.children_d.length) {\n tmp.children_d = tmp.children_d.concat(e.children_d);\n }\n }\n\n delete d.data;\n delete d.children;\n m[tmp.id].original = d;\n\n if (tmp.state.selected) {\n add.push(tmp.id);\n }\n\n return tmp.id;\n },\n parse_nest = function parse_nest(d, p, ps) {\n if (!ps) {\n ps = [];\n } else {\n ps = ps.concat();\n }\n\n if (p) {\n ps.unshift(p);\n }\n\n var tid = false,\n i,\n j,\n c,\n e,\n tmp;\n\n do {\n tid = 'j' + t_id + '_' + ++t_cnt;\n } while (m[tid]);\n\n tmp = {\n id: false,\n text: typeof d === 'string' ? d : '',\n icon: _typeof(d) === 'object' && d.icon !== undefined ? d.icon : true,\n parent: p,\n parents: ps,\n children: [],\n children_d: [],\n data: null,\n state: {},\n li_attr: {\n id: false\n },\n a_attr: {\n href: '#'\n },\n original: false\n };\n\n for (i in df) {\n if (df.hasOwnProperty(i)) {\n tmp.state[i] = df[i];\n }\n }\n\n if (d && d.id) {\n tmp.id = d.id.toString();\n }\n\n if (d && d.text) {\n tmp.text = d.text;\n }\n\n if (d && d.data && d.data.jstree && d.data.jstree.icon) {\n tmp.icon = d.data.jstree.icon;\n }\n\n if (tmp.icon === undefined || tmp.icon === null || tmp.icon === \"\") {\n tmp.icon = true;\n }\n\n if (d && d.data) {\n tmp.data = d.data;\n\n if (d.data.jstree) {\n for (i in d.data.jstree) {\n if (d.data.jstree.hasOwnProperty(i)) {\n tmp.state[i] = d.data.jstree[i];\n }\n }\n }\n }\n\n if (d && _typeof(d.state) === 'object') {\n for (i in d.state) {\n if (d.state.hasOwnProperty(i)) {\n tmp.state[i] = d.state[i];\n }\n }\n }\n\n if (d && _typeof(d.li_attr) === 'object') {\n for (i in d.li_attr) {\n if (d.li_attr.hasOwnProperty(i)) {\n tmp.li_attr[i] = d.li_attr[i];\n }\n }\n }\n\n if (tmp.li_attr.id && !tmp.id) {\n tmp.id = tmp.li_attr.id.toString();\n }\n\n if (!tmp.id) {\n tmp.id = tid;\n }\n\n if (!tmp.li_attr.id) {\n tmp.li_attr.id = tmp.id;\n }\n\n if (d && _typeof(d.a_attr) === 'object') {\n for (i in d.a_attr) {\n if (d.a_attr.hasOwnProperty(i)) {\n tmp.a_attr[i] = d.a_attr[i];\n }\n }\n }\n\n if (d && d.children && d.children.length) {\n for (i = 0, j = d.children.length; i < j; i++) {\n c = parse_nest(d.children[i], tmp.id, ps);\n e = m[c];\n tmp.children.push(c);\n\n if (e.children_d.length) {\n tmp.children_d = tmp.children_d.concat(e.children_d);\n }\n }\n\n tmp.children_d = tmp.children_d.concat(tmp.children);\n }\n\n if (d && d.children && d.children === true) {\n tmp.state.loaded = false;\n tmp.children = [];\n tmp.children_d = [];\n }\n\n delete d.data;\n delete d.children;\n tmp.original = d;\n m[tmp.id] = tmp;\n\n if (tmp.state.selected) {\n add.push(tmp.id);\n }\n\n return tmp.id;\n };\n\n if (dat.length && dat[0].id !== undefined && dat[0].parent !== undefined) {\n // Flat JSON support (for easy import from DB):\n // 1) convert to object (foreach)\n for (i = 0, j = dat.length; i < j; i++) {\n if (!dat[i].children) {\n dat[i].children = [];\n }\n\n if (!dat[i].state) {\n dat[i].state = {};\n }\n\n m[dat[i].id.toString()] = dat[i];\n } // 2) populate children (foreach)\n\n\n for (i = 0, j = dat.length; i < j; i++) {\n if (!m[dat[i].parent.toString()]) {\n if (typeof inst !== \"undefined\") {\n inst._data.core.last_error = {\n 'error': 'parse',\n 'plugin': 'core',\n 'id': 'core_07',\n 'reason': 'Node with invalid parent',\n 'data': JSON.stringify({\n 'id': dat[i].id.toString(),\n 'parent': dat[i].parent.toString()\n })\n };\n inst.settings.core.error.call(inst, inst._data.core.last_error);\n }\n\n continue;\n }\n\n m[dat[i].parent.toString()].children.push(dat[i].id.toString()); // populate parent.children_d\n\n p.children_d.push(dat[i].id.toString());\n } // 3) normalize && populate parents and children_d with recursion\n\n\n for (i = 0, j = p.children.length; i < j; i++) {\n tmp = parse_flat(m[p.children[i]], par, p.parents.concat());\n dpc.push(tmp);\n\n if (m[tmp].children_d.length) {\n dpc = dpc.concat(m[tmp].children_d);\n }\n }\n\n for (i = 0, j = p.parents.length; i < j; i++) {\n m[p.parents[i]].children_d = m[p.parents[i]].children_d.concat(dpc);\n } // ?) three_state selection - p.state.selected && t - (if three_state foreach(dat => ch) -> foreach(parents) if(parent.selected) child.selected = true;\n\n\n rslt = {\n 'cnt': t_cnt,\n 'mod': m,\n 'sel': sel,\n 'par': par,\n 'dpc': dpc,\n 'add': add\n };\n } else {\n for (i = 0, j = dat.length; i < j; i++) {\n tmp = parse_nest(dat[i], par, p.parents.concat());\n\n if (tmp) {\n chd.push(tmp);\n dpc.push(tmp);\n\n if (m[tmp].children_d.length) {\n dpc = dpc.concat(m[tmp].children_d);\n }\n }\n }\n\n p.children = chd;\n p.children_d = dpc;\n\n for (i = 0, j = p.parents.length; i < j; i++) {\n m[p.parents[i]].children_d = m[p.parents[i]].children_d.concat(dpc);\n }\n\n rslt = {\n 'cnt': t_cnt,\n 'mod': m,\n 'sel': sel,\n 'par': par,\n 'dpc': dpc,\n 'add': add\n };\n }\n\n if (typeof window === 'undefined' || typeof window.document === 'undefined') {\n postMessage(rslt);\n } else {\n return rslt;\n }\n },\n rslt = function rslt(_rslt, worker) {\n if (this.element === null) {\n return;\n }\n\n this._cnt = _rslt.cnt;\n var i,\n m = this._model.data;\n\n for (i in m) {\n if (m.hasOwnProperty(i) && m[i].state && m[i].state.loading && _rslt.mod[i]) {\n _rslt.mod[i].state.loading = true;\n }\n }\n\n this._model.data = _rslt.mod; // breaks the reference in load_node - careful\n\n if (worker) {\n var j,\n a = _rslt.add,\n r = _rslt.sel,\n s = this._data.core.selected.slice();\n\n m = this._model.data; // if selection was changed while calculating in worker\n\n if (r.length !== s.length || $.vakata.array_unique(r.concat(s)).length !== r.length) {\n // deselect nodes that are no longer selected\n for (i = 0, j = r.length; i < j; i++) {\n if ($.inArray(r[i], a) === -1 && $.inArray(r[i], s) === -1) {\n m[r[i]].state.selected = false;\n }\n } // select nodes that were selected in the mean time\n\n\n for (i = 0, j = s.length; i < j; i++) {\n if ($.inArray(s[i], r) === -1) {\n m[s[i]].state.selected = true;\n }\n }\n }\n }\n\n if (_rslt.add.length) {\n this._data.core.selected = this._data.core.selected.concat(_rslt.add);\n }\n\n this.trigger('model', {\n \"nodes\": _rslt.dpc,\n 'parent': _rslt.par\n });\n\n if (_rslt.par !== $.jstree.root) {\n this._node_changed(_rslt.par);\n\n this.redraw();\n } else {\n // this.get_container_ul().children('.jstree-initial-node').remove();\n this.redraw(true);\n }\n\n if (_rslt.add.length) {\n this.trigger('changed', {\n 'action': 'model',\n 'selected': this._data.core.selected\n });\n } // If no worker, try to mimic worker behavioour, by invoking cb asynchronously\n\n\n if (!worker && setImmediate) {\n setImmediate(function () {\n cb.call(inst, true);\n });\n } else {\n cb.call(inst, true);\n }\n };\n\n if (this.settings.core.worker && window.Blob && window.URL && window.Worker) {\n try {\n if (this._wrk === null) {\n this._wrk = window.URL.createObjectURL(new window.Blob(['self.onmessage = ' + func.toString()], {\n type: \"text/javascript\"\n }));\n }\n\n if (!this._data.core.working || force_processing) {\n this._data.core.working = true;\n w = new window.Worker(this._wrk);\n\n w.onmessage = function (e) {\n rslt.call(this, e.data, true);\n\n try {\n w.terminate();\n w = null;\n } catch (ignore) {}\n\n if (this._data.core.worker_queue.length) {\n this._append_json_data.apply(this, this._data.core.worker_queue.shift());\n } else {\n this._data.core.working = false;\n }\n }.bind(this);\n\n if (!args.par) {\n if (this._data.core.worker_queue.length) {\n this._append_json_data.apply(this, this._data.core.worker_queue.shift());\n } else {\n this._data.core.working = false;\n }\n } else {\n w.postMessage(args);\n }\n } else {\n this._data.core.worker_queue.push([dom, data, cb, true]);\n }\n } catch (e) {\n rslt.call(this, func(args), false);\n\n if (this._data.core.worker_queue.length) {\n this._append_json_data.apply(this, this._data.core.worker_queue.shift());\n } else {\n this._data.core.working = false;\n }\n }\n } else {\n rslt.call(this, func(args), false);\n }\n },\n\n /**\n * parses a node from a jQuery object and appends them to the in memory tree model. Used internally.\n * @private\n * @name _parse_model_from_html(d [, p, ps])\n * @param {jQuery} d the jQuery object to parse\n * @param {String} p the parent ID\n * @param {Array} ps list of all parents\n * @return {String} the ID of the object added to the model\n */\n _parse_model_from_html: function _parse_model_from_html(d, p, ps) {\n if (!ps) {\n ps = [];\n } else {\n ps = [].concat(ps);\n }\n\n if (p) {\n ps.unshift(p);\n }\n\n var c,\n e,\n m = this._model.data,\n data = {\n id: false,\n text: false,\n icon: true,\n parent: p,\n parents: ps,\n children: [],\n children_d: [],\n data: null,\n state: {},\n li_attr: {\n id: false\n },\n a_attr: {\n href: '#'\n },\n original: false\n },\n i,\n tmp,\n tid;\n\n for (i in this._model.default_state) {\n if (this._model.default_state.hasOwnProperty(i)) {\n data.state[i] = this._model.default_state[i];\n }\n }\n\n tmp = $.vakata.attributes(d, true);\n $.each(tmp, function (i, v) {\n v = $.vakata.trim(v);\n\n if (!v.length) {\n return true;\n }\n\n data.li_attr[i] = v;\n\n if (i === 'id') {\n data.id = v.toString();\n }\n });\n tmp = d.children('a').first();\n\n if (tmp.length) {\n tmp = $.vakata.attributes(tmp, true);\n $.each(tmp, function (i, v) {\n v = $.vakata.trim(v);\n\n if (v.length) {\n data.a_attr[i] = v;\n }\n });\n }\n\n tmp = d.children(\"a\").first().length ? d.children(\"a\").first().clone() : d.clone();\n tmp.children(\"ins, i, ul\").remove();\n tmp = tmp.html();\n tmp = $('
    ').html(tmp);\n data.text = this.settings.core.force_text ? tmp.text() : tmp.html();\n tmp = d.data();\n data.data = tmp ? $.extend(true, {}, tmp) : null;\n data.state.opened = d.hasClass('jstree-open');\n data.state.selected = d.children('a').hasClass('jstree-clicked');\n data.state.disabled = d.children('a').hasClass('jstree-disabled');\n\n if (data.data && data.data.jstree) {\n for (i in data.data.jstree) {\n if (data.data.jstree.hasOwnProperty(i)) {\n data.state[i] = data.data.jstree[i];\n }\n }\n }\n\n tmp = d.children(\"a\").children(\".jstree-themeicon\");\n\n if (tmp.length) {\n data.icon = tmp.hasClass('jstree-themeicon-hidden') ? false : tmp.attr('rel');\n }\n\n if (data.state.icon !== undefined) {\n data.icon = data.state.icon;\n }\n\n if (data.icon === undefined || data.icon === null || data.icon === \"\") {\n data.icon = true;\n }\n\n tmp = d.children(\"ul\").children(\"li\");\n\n do {\n tid = 'j' + this._id + '_' + ++this._cnt;\n } while (m[tid]);\n\n data.id = data.li_attr.id ? data.li_attr.id.toString() : tid;\n\n if (tmp.length) {\n tmp.each(function (i, v) {\n c = this._parse_model_from_html($(v), data.id, ps);\n e = this._model.data[c];\n data.children.push(c);\n\n if (e.children_d.length) {\n data.children_d = data.children_d.concat(e.children_d);\n }\n }.bind(this));\n data.children_d = data.children_d.concat(data.children);\n } else {\n if (d.hasClass('jstree-closed')) {\n data.state.loaded = false;\n }\n }\n\n if (data.li_attr['class']) {\n data.li_attr['class'] = data.li_attr['class'].replace('jstree-closed', '').replace('jstree-open', '');\n }\n\n if (data.a_attr['class']) {\n data.a_attr['class'] = data.a_attr['class'].replace('jstree-clicked', '').replace('jstree-disabled', '');\n }\n\n m[data.id] = data;\n\n if (data.state.selected) {\n this._data.core.selected.push(data.id);\n }\n\n return data.id;\n },\n\n /**\n * parses a node from a JSON object (used when dealing with flat data, which has no nesting of children, but has id and parent properties) and appends it to the in memory tree model. Used internally.\n * @private\n * @name _parse_model_from_flat_json(d [, p, ps])\n * @param {Object} d the JSON object to parse\n * @param {String} p the parent ID\n * @param {Array} ps list of all parents\n * @return {String} the ID of the object added to the model\n */\n _parse_model_from_flat_json: function _parse_model_from_flat_json(d, p, ps) {\n if (!ps) {\n ps = [];\n } else {\n ps = ps.concat();\n }\n\n if (p) {\n ps.unshift(p);\n }\n\n var tid = d.id.toString(),\n m = this._model.data,\n df = this._model.default_state,\n i,\n j,\n c,\n e,\n tmp = {\n id: tid,\n text: d.text || '',\n icon: d.icon !== undefined ? d.icon : true,\n parent: p,\n parents: ps,\n children: d.children || [],\n children_d: d.children_d || [],\n data: d.data,\n state: {},\n li_attr: {\n id: false\n },\n a_attr: {\n href: '#'\n },\n original: false\n };\n\n for (i in df) {\n if (df.hasOwnProperty(i)) {\n tmp.state[i] = df[i];\n }\n }\n\n if (d && d.data && d.data.jstree && d.data.jstree.icon) {\n tmp.icon = d.data.jstree.icon;\n }\n\n if (tmp.icon === undefined || tmp.icon === null || tmp.icon === \"\") {\n tmp.icon = true;\n }\n\n if (d && d.data) {\n tmp.data = d.data;\n\n if (d.data.jstree) {\n for (i in d.data.jstree) {\n if (d.data.jstree.hasOwnProperty(i)) {\n tmp.state[i] = d.data.jstree[i];\n }\n }\n }\n }\n\n if (d && _typeof(d.state) === 'object') {\n for (i in d.state) {\n if (d.state.hasOwnProperty(i)) {\n tmp.state[i] = d.state[i];\n }\n }\n }\n\n if (d && _typeof(d.li_attr) === 'object') {\n for (i in d.li_attr) {\n if (d.li_attr.hasOwnProperty(i)) {\n tmp.li_attr[i] = d.li_attr[i];\n }\n }\n }\n\n if (!tmp.li_attr.id) {\n tmp.li_attr.id = tid;\n }\n\n if (d && _typeof(d.a_attr) === 'object') {\n for (i in d.a_attr) {\n if (d.a_attr.hasOwnProperty(i)) {\n tmp.a_attr[i] = d.a_attr[i];\n }\n }\n }\n\n if (d && d.children && d.children === true) {\n tmp.state.loaded = false;\n tmp.children = [];\n tmp.children_d = [];\n }\n\n m[tmp.id] = tmp;\n\n for (i = 0, j = tmp.children.length; i < j; i++) {\n c = this._parse_model_from_flat_json(m[tmp.children[i]], tmp.id, ps);\n e = m[c];\n tmp.children_d.push(c);\n\n if (e.children_d.length) {\n tmp.children_d = tmp.children_d.concat(e.children_d);\n }\n }\n\n delete d.data;\n delete d.children;\n m[tmp.id].original = d;\n\n if (tmp.state.selected) {\n this._data.core.selected.push(tmp.id);\n }\n\n return tmp.id;\n },\n\n /**\n * parses a node from a JSON object and appends it to the in memory tree model. Used internally.\n * @private\n * @name _parse_model_from_json(d [, p, ps])\n * @param {Object} d the JSON object to parse\n * @param {String} p the parent ID\n * @param {Array} ps list of all parents\n * @return {String} the ID of the object added to the model\n */\n _parse_model_from_json: function _parse_model_from_json(d, p, ps) {\n if (!ps) {\n ps = [];\n } else {\n ps = ps.concat();\n }\n\n if (p) {\n ps.unshift(p);\n }\n\n var tid = false,\n i,\n j,\n c,\n e,\n m = this._model.data,\n df = this._model.default_state,\n tmp;\n\n do {\n tid = 'j' + this._id + '_' + ++this._cnt;\n } while (m[tid]);\n\n tmp = {\n id: false,\n text: typeof d === 'string' ? d : '',\n icon: _typeof(d) === 'object' && d.icon !== undefined ? d.icon : true,\n parent: p,\n parents: ps,\n children: [],\n children_d: [],\n data: null,\n state: {},\n li_attr: {\n id: false\n },\n a_attr: {\n href: '#'\n },\n original: false\n };\n\n for (i in df) {\n if (df.hasOwnProperty(i)) {\n tmp.state[i] = df[i];\n }\n }\n\n if (d && d.id) {\n tmp.id = d.id.toString();\n }\n\n if (d && d.text) {\n tmp.text = d.text;\n }\n\n if (d && d.data && d.data.jstree && d.data.jstree.icon) {\n tmp.icon = d.data.jstree.icon;\n }\n\n if (tmp.icon === undefined || tmp.icon === null || tmp.icon === \"\") {\n tmp.icon = true;\n }\n\n if (d && d.data) {\n tmp.data = d.data;\n\n if (d.data.jstree) {\n for (i in d.data.jstree) {\n if (d.data.jstree.hasOwnProperty(i)) {\n tmp.state[i] = d.data.jstree[i];\n }\n }\n }\n }\n\n if (d && _typeof(d.state) === 'object') {\n for (i in d.state) {\n if (d.state.hasOwnProperty(i)) {\n tmp.state[i] = d.state[i];\n }\n }\n }\n\n if (d && _typeof(d.li_attr) === 'object') {\n for (i in d.li_attr) {\n if (d.li_attr.hasOwnProperty(i)) {\n tmp.li_attr[i] = d.li_attr[i];\n }\n }\n }\n\n if (tmp.li_attr.id && !tmp.id) {\n tmp.id = tmp.li_attr.id.toString();\n }\n\n if (!tmp.id) {\n tmp.id = tid;\n }\n\n if (!tmp.li_attr.id) {\n tmp.li_attr.id = tmp.id;\n }\n\n if (d && _typeof(d.a_attr) === 'object') {\n for (i in d.a_attr) {\n if (d.a_attr.hasOwnProperty(i)) {\n tmp.a_attr[i] = d.a_attr[i];\n }\n }\n }\n\n if (d && d.children && d.children.length) {\n for (i = 0, j = d.children.length; i < j; i++) {\n c = this._parse_model_from_json(d.children[i], tmp.id, ps);\n e = m[c];\n tmp.children.push(c);\n\n if (e.children_d.length) {\n tmp.children_d = tmp.children_d.concat(e.children_d);\n }\n }\n\n tmp.children_d = tmp.children.concat(tmp.children_d);\n }\n\n if (d && d.children && d.children === true) {\n tmp.state.loaded = false;\n tmp.children = [];\n tmp.children_d = [];\n }\n\n delete d.data;\n delete d.children;\n tmp.original = d;\n m[tmp.id] = tmp;\n\n if (tmp.state.selected) {\n this._data.core.selected.push(tmp.id);\n }\n\n return tmp.id;\n },\n\n /**\n * redraws all nodes that need to be redrawn. Used internally.\n * @private\n * @name _redraw()\n * @trigger redraw.jstree\n */\n _redraw: function _redraw() {\n var nodes = this._model.force_full_redraw ? this._model.data[$.jstree.root].children.concat([]) : this._model.changed.concat([]),\n f = document.createElement('UL'),\n tmp,\n i,\n j,\n fe = this._data.core.focused;\n\n for (i = 0, j = nodes.length; i < j; i++) {\n tmp = this.redraw_node(nodes[i], true, this._model.force_full_redraw);\n\n if (tmp && this._model.force_full_redraw) {\n f.appendChild(tmp);\n }\n }\n\n if (this._model.force_full_redraw) {\n f.className = this.get_container_ul()[0].className;\n f.setAttribute('role', 'group');\n this.element.empty().append(f); //this.get_container_ul()[0].appendChild(f);\n }\n\n if (fe !== null && this.settings.core.restore_focus) {\n tmp = this.get_node(fe, true);\n\n if (tmp && tmp.length && tmp.children('.jstree-anchor')[0] !== document.activeElement) {\n tmp.children('.jstree-anchor').trigger('focus');\n } else {\n this._data.core.focused = null;\n }\n }\n\n this._model.force_full_redraw = false;\n this._model.changed = [];\n /**\n * triggered after nodes are redrawn\n * @event\n * @name redraw.jstree\n * @param {array} nodes the redrawn nodes\n */\n\n this.trigger('redraw', {\n \"nodes\": nodes\n });\n },\n\n /**\n * redraws all nodes that need to be redrawn or optionally - the whole tree\n * @name redraw([full])\n * @param {Boolean} full if set to `true` all nodes are redrawn.\n */\n redraw: function redraw(full) {\n if (full) {\n this._model.force_full_redraw = true;\n } //if(this._model.redraw_timeout) {\n //\tclearTimeout(this._model.redraw_timeout);\n //}\n //this._model.redraw_timeout = setTimeout($.proxy(this._redraw, this),0);\n\n\n this._redraw();\n },\n\n /**\n * redraws a single node's children. Used internally.\n * @private\n * @name draw_children(node)\n * @param {mixed} node the node whose children will be redrawn\n */\n draw_children: function draw_children(node) {\n var obj = this.get_node(node),\n i = false,\n j = false,\n k = false,\n d = document;\n\n if (!obj) {\n return false;\n }\n\n if (obj.id === $.jstree.root) {\n return this.redraw(true);\n }\n\n node = this.get_node(node, true);\n\n if (!node || !node.length) {\n return false;\n } // TODO: quick toggle\n\n\n node.children('.jstree-children').remove();\n node = node[0];\n\n if (obj.children.length && obj.state.loaded) {\n k = d.createElement('UL');\n k.setAttribute('role', 'group');\n k.className = 'jstree-children';\n\n for (i = 0, j = obj.children.length; i < j; i++) {\n k.appendChild(this.redraw_node(obj.children[i], true, true));\n }\n\n node.appendChild(k);\n }\n },\n\n /**\n * redraws a single node. Used internally.\n * @private\n * @name redraw_node(node, deep, is_callback, force_render)\n * @param {mixed} node the node to redraw\n * @param {Boolean} deep should child nodes be redrawn too\n * @param {Boolean} is_callback is this a recursion call\n * @param {Boolean} force_render should children of closed parents be drawn anyway\n */\n redraw_node: function redraw_node(node, deep, is_callback, force_render) {\n var obj = this.get_node(node),\n par = false,\n ind = false,\n old = false,\n i = false,\n j = false,\n k = false,\n c = '',\n d = document,\n m = this._model.data,\n f = false,\n s = false,\n tmp = null,\n t = 0,\n l = 0,\n has_children = false,\n last_sibling = false;\n\n if (!obj) {\n return false;\n }\n\n if (obj.id === $.jstree.root) {\n return this.redraw(true);\n }\n\n deep = deep || obj.children.length === 0;\n node = !document.querySelector ? document.getElementById(obj.id) : this.element[0].querySelector('#' + (\"0123456789\".indexOf(obj.id[0]) !== -1 ? '\\\\3' + obj.id[0] + ' ' + obj.id.substr(1).replace($.jstree.idregex, '\\\\$&') : obj.id.replace($.jstree.idregex, '\\\\$&'))); //, this.element);\n\n if (!node) {\n deep = true; //node = d.createElement('LI');\n\n if (!is_callback) {\n par = obj.parent !== $.jstree.root ? $('#' + obj.parent.replace($.jstree.idregex, '\\\\$&'), this.element)[0] : null;\n\n if (par !== null && (!par || !m[obj.parent].state.opened)) {\n return false;\n }\n\n ind = $.inArray(obj.id, par === null ? m[$.jstree.root].children : m[obj.parent].children);\n }\n } else {\n node = $(node);\n\n if (!is_callback) {\n par = node.parent().parent()[0];\n\n if (par === this.element[0]) {\n par = null;\n }\n\n ind = node.index();\n } // m[obj.id].data = node.data(); // use only node's data, no need to touch jquery storage\n\n\n if (!deep && obj.children.length && !node.children('.jstree-children').length) {\n deep = true;\n }\n\n if (!deep) {\n old = node.children('.jstree-children')[0];\n }\n\n f = node.children('.jstree-anchor')[0] === document.activeElement;\n node.remove(); //node = d.createElement('LI');\n //node = node[0];\n }\n\n node = this._data.core.node.cloneNode(true); // node is DOM, deep is boolean\n\n c = 'jstree-node ';\n\n for (i in obj.li_attr) {\n if (obj.li_attr.hasOwnProperty(i)) {\n if (i === 'id') {\n continue;\n }\n\n if (i !== 'class') {\n node.setAttribute(i, obj.li_attr[i]);\n } else {\n c += obj.li_attr[i];\n }\n }\n }\n\n if (!obj.a_attr.id) {\n obj.a_attr.id = obj.id + '_anchor';\n }\n\n node.childNodes[1].setAttribute('aria-selected', !!obj.state.selected);\n node.childNodes[1].setAttribute('aria-level', obj.parents.length);\n\n if (this.settings.core.compute_elements_positions) {\n node.childNodes[1].setAttribute('aria-setsize', m[obj.parent].children.length);\n node.childNodes[1].setAttribute('aria-posinset', m[obj.parent].children.indexOf(obj.id) + 1);\n }\n\n if (obj.state.disabled) {\n node.childNodes[1].setAttribute('aria-disabled', true);\n }\n\n for (i = 0, j = obj.children.length; i < j; i++) {\n if (!m[obj.children[i]].state.hidden) {\n has_children = true;\n break;\n }\n }\n\n if (obj.parent !== null && m[obj.parent] && !obj.state.hidden) {\n i = $.inArray(obj.id, m[obj.parent].children);\n last_sibling = obj.id;\n\n if (i !== -1) {\n i++;\n\n for (j = m[obj.parent].children.length; i < j; i++) {\n if (!m[m[obj.parent].children[i]].state.hidden) {\n last_sibling = m[obj.parent].children[i];\n }\n\n if (last_sibling !== obj.id) {\n break;\n }\n }\n }\n }\n\n if (obj.state.hidden) {\n c += ' jstree-hidden';\n }\n\n if (obj.state.loading) {\n c += ' jstree-loading';\n }\n\n if (obj.state.loaded && !has_children) {\n c += ' jstree-leaf';\n } else {\n c += obj.state.opened && obj.state.loaded ? ' jstree-open' : ' jstree-closed';\n node.childNodes[1].setAttribute('aria-expanded', obj.state.opened && obj.state.loaded);\n }\n\n if (last_sibling === obj.id) {\n c += ' jstree-last';\n }\n\n node.id = obj.id;\n node.className = c;\n c = (obj.state.selected ? ' jstree-clicked' : '') + (obj.state.disabled ? ' jstree-disabled' : '');\n\n for (j in obj.a_attr) {\n if (obj.a_attr.hasOwnProperty(j)) {\n if (j === 'href' && obj.a_attr[j] === '#') {\n continue;\n }\n\n if (j !== 'class') {\n node.childNodes[1].setAttribute(j, obj.a_attr[j]);\n } else {\n c += ' ' + obj.a_attr[j];\n }\n }\n }\n\n if (c.length) {\n node.childNodes[1].className = 'jstree-anchor ' + c;\n }\n\n if (obj.icon && obj.icon !== true || obj.icon === false) {\n if (obj.icon === false) {\n node.childNodes[1].childNodes[0].className += ' jstree-themeicon-hidden';\n } else if (obj.icon.indexOf('/') === -1 && obj.icon.indexOf('.') === -1) {\n node.childNodes[1].childNodes[0].className += ' ' + obj.icon + ' jstree-themeicon-custom';\n } else {\n node.childNodes[1].childNodes[0].style.backgroundImage = 'url(\"' + obj.icon + '\")';\n node.childNodes[1].childNodes[0].style.backgroundPosition = 'center center';\n node.childNodes[1].childNodes[0].style.backgroundSize = 'auto';\n node.childNodes[1].childNodes[0].className += ' jstree-themeicon-custom';\n }\n }\n\n if (this.settings.core.force_text) {\n node.childNodes[1].appendChild(d.createTextNode(obj.text));\n } else {\n node.childNodes[1].innerHTML += obj.text;\n }\n\n if (deep && obj.children.length && (obj.state.opened || force_render) && obj.state.loaded) {\n k = d.createElement('UL');\n k.setAttribute('role', 'group');\n k.className = 'jstree-children';\n\n for (i = 0, j = obj.children.length; i < j; i++) {\n k.appendChild(this.redraw_node(obj.children[i], deep, true));\n }\n\n node.appendChild(k);\n }\n\n if (old) {\n node.appendChild(old);\n }\n\n if (!is_callback) {\n // append back using par / ind\n if (!par) {\n par = this.element[0];\n }\n\n for (i = 0, j = par.childNodes.length; i < j; i++) {\n if (par.childNodes[i] && par.childNodes[i].className && par.childNodes[i].className.indexOf('jstree-children') !== -1) {\n tmp = par.childNodes[i];\n break;\n }\n }\n\n if (!tmp) {\n tmp = d.createElement('UL');\n tmp.setAttribute('role', 'group');\n tmp.className = 'jstree-children';\n par.appendChild(tmp);\n }\n\n par = tmp;\n\n if (ind < par.childNodes.length) {\n par.insertBefore(node, par.childNodes[ind]);\n } else {\n par.appendChild(node);\n }\n\n if (f) {\n t = this.element[0].scrollTop;\n l = this.element[0].scrollLeft;\n node.childNodes[1].focus();\n this.element[0].scrollTop = t;\n this.element[0].scrollLeft = l;\n }\n }\n\n if (obj.state.opened && !obj.state.loaded) {\n obj.state.opened = false;\n setTimeout(function () {\n this.open_node(obj.id, false, 0);\n }.bind(this), 0);\n }\n\n return node;\n },\n\n /**\n * opens a node, revealing its children. If the node is not loaded it will be loaded and opened once ready.\n * @name open_node(obj [, callback, animation])\n * @param {mixed} obj the node to open\n * @param {Function} callback a function to execute once the node is opened\n * @param {Number} animation the animation duration in milliseconds when opening the node (overrides the `core.animation` setting). Use `false` for no animation.\n * @trigger open_node.jstree, after_open.jstree, before_open.jstree\n */\n open_node: function open_node(obj, callback, animation) {\n var t1, t2, d, t;\n\n if ($.vakata.is_array(obj)) {\n obj = obj.slice();\n\n for (t1 = 0, t2 = obj.length; t1 < t2; t1++) {\n this.open_node(obj[t1], callback, animation);\n }\n\n return true;\n }\n\n obj = this.get_node(obj);\n\n if (!obj || obj.id === $.jstree.root) {\n return false;\n }\n\n animation = animation === undefined ? this.settings.core.animation : animation;\n\n if (!this.is_closed(obj)) {\n if (callback) {\n callback.call(this, obj, false);\n }\n\n return false;\n }\n\n if (!this.is_loaded(obj)) {\n if (this.is_loading(obj)) {\n return setTimeout(function () {\n this.open_node(obj, callback, animation);\n }.bind(this), 500);\n }\n\n this.load_node(obj, function (o, ok) {\n return ok ? this.open_node(o, callback, animation) : callback ? callback.call(this, o, false) : false;\n });\n } else {\n d = this.get_node(obj, true);\n t = this;\n\n if (d.length) {\n if (animation && d.children(\".jstree-children\").length) {\n d.children(\".jstree-children\").stop(true, true);\n }\n\n if (obj.children.length && !this._firstChild(d.children('.jstree-children')[0])) {\n this.draw_children(obj); //d = this.get_node(obj, true);\n }\n\n if (!animation) {\n this.trigger('before_open', {\n \"node\": obj\n });\n d[0].className = d[0].className.replace('jstree-closed', 'jstree-open');\n d[0].childNodes[1].setAttribute(\"aria-expanded\", true);\n } else {\n this.trigger('before_open', {\n \"node\": obj\n });\n d.children(\".jstree-children\").css(\"display\", \"none\").end().removeClass(\"jstree-closed\").addClass(\"jstree-open\").children('.jstree-anchor').attr(\"aria-expanded\", true).end().children(\".jstree-children\").stop(true, true).slideDown(animation, function () {\n this.style.display = \"\";\n\n if (t.element) {\n t.trigger(\"after_open\", {\n \"node\": obj\n });\n }\n });\n }\n }\n\n obj.state.opened = true;\n\n if (callback) {\n callback.call(this, obj, true);\n }\n\n if (!d.length) {\n /**\n * triggered when a node is about to be opened (if the node is supposed to be in the DOM, it will be, but it won't be visible yet)\n * @event\n * @name before_open.jstree\n * @param {Object} node the opened node\n */\n this.trigger('before_open', {\n \"node\": obj\n });\n }\n /**\n * triggered when a node is opened (if there is an animation it will not be completed yet)\n * @event\n * @name open_node.jstree\n * @param {Object} node the opened node\n */\n\n\n this.trigger('open_node', {\n \"node\": obj\n });\n\n if (!animation || !d.length) {\n /**\n * triggered when a node is opened and the animation is complete\n * @event\n * @name after_open.jstree\n * @param {Object} node the opened node\n */\n this.trigger(\"after_open\", {\n \"node\": obj\n });\n }\n\n return true;\n }\n },\n\n /**\n * opens every parent of a node (node should be loaded)\n * @name _open_to(obj)\n * @param {mixed} obj the node to reveal\n * @private\n */\n _open_to: function _open_to(obj) {\n obj = this.get_node(obj);\n\n if (!obj || obj.id === $.jstree.root) {\n return false;\n }\n\n var i,\n j,\n p = obj.parents;\n\n for (i = 0, j = p.length; i < j; i += 1) {\n if (i !== $.jstree.root) {\n this.open_node(p[i], false, 0);\n }\n }\n\n return $('#' + obj.id.replace($.jstree.idregex, '\\\\$&'), this.element);\n },\n\n /**\n * closes a node, hiding its children\n * @name close_node(obj [, animation])\n * @param {mixed} obj the node to close\n * @param {Number} animation the animation duration in milliseconds when closing the node (overrides the `core.animation` setting). Use `false` for no animation.\n * @trigger close_node.jstree, after_close.jstree\n */\n close_node: function close_node(obj, animation) {\n var t1, t2, t, d;\n\n if ($.vakata.is_array(obj)) {\n obj = obj.slice();\n\n for (t1 = 0, t2 = obj.length; t1 < t2; t1++) {\n this.close_node(obj[t1], animation);\n }\n\n return true;\n }\n\n obj = this.get_node(obj);\n\n if (!obj || obj.id === $.jstree.root) {\n return false;\n }\n\n if (this.is_closed(obj)) {\n return false;\n }\n\n animation = animation === undefined ? this.settings.core.animation : animation;\n t = this;\n d = this.get_node(obj, true);\n obj.state.opened = false;\n /**\n * triggered when a node is closed (if there is an animation it will not be complete yet)\n * @event\n * @name close_node.jstree\n * @param {Object} node the closed node\n */\n\n this.trigger('close_node', {\n \"node\": obj\n });\n\n if (!d.length) {\n /**\n * triggered when a node is closed and the animation is complete\n * @event\n * @name after_close.jstree\n * @param {Object} node the closed node\n */\n this.trigger(\"after_close\", {\n \"node\": obj\n });\n } else {\n if (!animation) {\n d[0].className = d[0].className.replace('jstree-open', 'jstree-closed');\n d.children('.jstree-anchor').attr(\"aria-expanded\", false);\n d.children('.jstree-children').remove();\n this.trigger(\"after_close\", {\n \"node\": obj\n });\n } else {\n d.children(\".jstree-children\").attr(\"style\", \"display:block !important\").end().removeClass(\"jstree-open\").addClass(\"jstree-closed\").children('.jstree-anchor').attr(\"aria-expanded\", false).end().children(\".jstree-children\").stop(true, true).slideUp(animation, function () {\n this.style.display = \"\";\n d.children('.jstree-children').remove();\n\n if (t.element) {\n t.trigger(\"after_close\", {\n \"node\": obj\n });\n }\n });\n }\n }\n },\n\n /**\n * toggles a node - closing it if it is open, opening it if it is closed\n * @name toggle_node(obj)\n * @param {mixed} obj the node to toggle\n */\n toggle_node: function toggle_node(obj) {\n var t1, t2;\n\n if ($.vakata.is_array(obj)) {\n obj = obj.slice();\n\n for (t1 = 0, t2 = obj.length; t1 < t2; t1++) {\n this.toggle_node(obj[t1]);\n }\n\n return true;\n }\n\n if (this.is_closed(obj)) {\n return this.open_node(obj);\n }\n\n if (this.is_open(obj)) {\n return this.close_node(obj);\n }\n },\n\n /**\n * opens all nodes within a node (or the tree), revealing their children. If the node is not loaded it will be loaded and opened once ready.\n * @name open_all([obj, animation, original_obj])\n * @param {mixed} obj the node to open recursively, omit to open all nodes in the tree\n * @param {Number} animation the animation duration in milliseconds when opening the nodes, the default is no animation\n * @param {jQuery} reference to the node that started the process (internal use)\n * @trigger open_all.jstree\n */\n open_all: function open_all(obj, animation, original_obj) {\n if (!obj) {\n obj = $.jstree.root;\n }\n\n obj = this.get_node(obj);\n\n if (!obj) {\n return false;\n }\n\n var dom = obj.id === $.jstree.root ? this.get_container_ul() : this.get_node(obj, true),\n i,\n j,\n _this;\n\n if (!dom.length) {\n for (i = 0, j = obj.children_d.length; i < j; i++) {\n if (this.is_closed(this._model.data[obj.children_d[i]])) {\n this._model.data[obj.children_d[i]].state.opened = true;\n }\n }\n\n return this.trigger('open_all', {\n \"node\": obj\n });\n }\n\n original_obj = original_obj || dom;\n _this = this;\n dom = this.is_closed(obj) ? dom.find('.jstree-closed').addBack() : dom.find('.jstree-closed');\n dom.each(function () {\n _this.open_node(this, function (node, status) {\n if (status && this.is_parent(node)) {\n this.open_all(node, animation, original_obj);\n }\n }, animation || 0);\n });\n\n if (original_obj.find('.jstree-closed').length === 0) {\n /**\n * triggered when an `open_all` call completes\n * @event\n * @name open_all.jstree\n * @param {Object} node the opened node\n */\n this.trigger('open_all', {\n \"node\": this.get_node(original_obj)\n });\n }\n },\n\n /**\n * closes all nodes within a node (or the tree), revealing their children\n * @name close_all([obj, animation])\n * @param {mixed} obj the node to close recursively, omit to close all nodes in the tree\n * @param {Number} animation the animation duration in milliseconds when closing the nodes, the default is no animation\n * @trigger close_all.jstree\n */\n close_all: function close_all(obj, animation) {\n if (!obj) {\n obj = $.jstree.root;\n }\n\n obj = this.get_node(obj);\n\n if (!obj) {\n return false;\n }\n\n var dom = obj.id === $.jstree.root ? this.get_container_ul() : this.get_node(obj, true),\n _this = this,\n i,\n j;\n\n if (dom.length) {\n dom = this.is_open(obj) ? dom.find('.jstree-open').addBack() : dom.find('.jstree-open');\n $(dom.get().reverse()).each(function () {\n _this.close_node(this, animation || 0);\n });\n }\n\n for (i = 0, j = obj.children_d.length; i < j; i++) {\n this._model.data[obj.children_d[i]].state.opened = false;\n }\n /**\n * triggered when an `close_all` call completes\n * @event\n * @name close_all.jstree\n * @param {Object} node the closed node\n */\n\n\n this.trigger('close_all', {\n \"node\": obj\n });\n },\n\n /**\n * checks if a node is disabled (not selectable)\n * @name is_disabled(obj)\n * @param {mixed} obj\n * @return {Boolean}\n */\n is_disabled: function is_disabled(obj) {\n obj = this.get_node(obj);\n return obj && obj.state && obj.state.disabled;\n },\n\n /**\n * enables a node - so that it can be selected\n * @name enable_node(obj)\n * @param {mixed} obj the node to enable\n * @trigger enable_node.jstree\n */\n enable_node: function enable_node(obj) {\n var t1, t2;\n\n if ($.vakata.is_array(obj)) {\n obj = obj.slice();\n\n for (t1 = 0, t2 = obj.length; t1 < t2; t1++) {\n this.enable_node(obj[t1]);\n }\n\n return true;\n }\n\n obj = this.get_node(obj);\n\n if (!obj || obj.id === $.jstree.root) {\n return false;\n }\n\n obj.state.disabled = false;\n this.get_node(obj, true).children('.jstree-anchor').removeClass('jstree-disabled').attr('aria-disabled', false);\n /**\n * triggered when an node is enabled\n * @event\n * @name enable_node.jstree\n * @param {Object} node the enabled node\n */\n\n this.trigger('enable_node', {\n 'node': obj\n });\n },\n\n /**\n * disables a node - so that it can not be selected\n * @name disable_node(obj)\n * @param {mixed} obj the node to disable\n * @trigger disable_node.jstree\n */\n disable_node: function disable_node(obj) {\n var t1, t2;\n\n if ($.vakata.is_array(obj)) {\n obj = obj.slice();\n\n for (t1 = 0, t2 = obj.length; t1 < t2; t1++) {\n this.disable_node(obj[t1]);\n }\n\n return true;\n }\n\n obj = this.get_node(obj);\n\n if (!obj || obj.id === $.jstree.root) {\n return false;\n }\n\n obj.state.disabled = true;\n this.get_node(obj, true).children('.jstree-anchor').addClass('jstree-disabled').attr('aria-disabled', true);\n /**\n * triggered when an node is disabled\n * @event\n * @name disable_node.jstree\n * @param {Object} node the disabled node\n */\n\n this.trigger('disable_node', {\n 'node': obj\n });\n },\n\n /**\n * determines if a node is hidden\n * @name is_hidden(obj)\n * @param {mixed} obj the node\n */\n is_hidden: function is_hidden(obj) {\n obj = this.get_node(obj);\n return obj.state.hidden === true;\n },\n\n /**\n * hides a node - it is still in the structure but will not be visible\n * @name hide_node(obj)\n * @param {mixed} obj the node to hide\n * @param {Boolean} skip_redraw internal parameter controlling if redraw is called\n * @trigger hide_node.jstree\n */\n hide_node: function hide_node(obj, skip_redraw) {\n var t1, t2;\n\n if ($.vakata.is_array(obj)) {\n obj = obj.slice();\n\n for (t1 = 0, t2 = obj.length; t1 < t2; t1++) {\n this.hide_node(obj[t1], true);\n }\n\n if (!skip_redraw) {\n this.redraw();\n }\n\n return true;\n }\n\n obj = this.get_node(obj);\n\n if (!obj || obj.id === $.jstree.root) {\n return false;\n }\n\n if (!obj.state.hidden) {\n obj.state.hidden = true;\n\n this._node_changed(obj.parent);\n\n if (!skip_redraw) {\n this.redraw();\n }\n /**\n * triggered when an node is hidden\n * @event\n * @name hide_node.jstree\n * @param {Object} node the hidden node\n */\n\n\n this.trigger('hide_node', {\n 'node': obj\n });\n }\n },\n\n /**\n * shows a node\n * @name show_node(obj)\n * @param {mixed} obj the node to show\n * @param {Boolean} skip_redraw internal parameter controlling if redraw is called\n * @trigger show_node.jstree\n */\n show_node: function show_node(obj, skip_redraw) {\n var t1, t2;\n\n if ($.vakata.is_array(obj)) {\n obj = obj.slice();\n\n for (t1 = 0, t2 = obj.length; t1 < t2; t1++) {\n this.show_node(obj[t1], true);\n }\n\n if (!skip_redraw) {\n this.redraw();\n }\n\n return true;\n }\n\n obj = this.get_node(obj);\n\n if (!obj || obj.id === $.jstree.root) {\n return false;\n }\n\n if (obj.state.hidden) {\n obj.state.hidden = false;\n\n this._node_changed(obj.parent);\n\n if (!skip_redraw) {\n this.redraw();\n }\n /**\n * triggered when an node is shown\n * @event\n * @name show_node.jstree\n * @param {Object} node the shown node\n */\n\n\n this.trigger('show_node', {\n 'node': obj\n });\n }\n },\n\n /**\n * hides all nodes\n * @name hide_all()\n * @trigger hide_all.jstree\n */\n hide_all: function hide_all(skip_redraw) {\n var i,\n m = this._model.data,\n ids = [];\n\n for (i in m) {\n if (m.hasOwnProperty(i) && i !== $.jstree.root && !m[i].state.hidden) {\n m[i].state.hidden = true;\n ids.push(i);\n }\n }\n\n this._model.force_full_redraw = true;\n\n if (!skip_redraw) {\n this.redraw();\n }\n /**\n * triggered when all nodes are hidden\n * @event\n * @name hide_all.jstree\n * @param {Array} nodes the IDs of all hidden nodes\n */\n\n\n this.trigger('hide_all', {\n 'nodes': ids\n });\n return ids;\n },\n\n /**\n * shows all nodes\n * @name show_all()\n * @trigger show_all.jstree\n */\n show_all: function show_all(skip_redraw) {\n var i,\n m = this._model.data,\n ids = [];\n\n for (i in m) {\n if (m.hasOwnProperty(i) && i !== $.jstree.root && m[i].state.hidden) {\n m[i].state.hidden = false;\n ids.push(i);\n }\n }\n\n this._model.force_full_redraw = true;\n\n if (!skip_redraw) {\n this.redraw();\n }\n /**\n * triggered when all nodes are shown\n * @event\n * @name show_all.jstree\n * @param {Array} nodes the IDs of all shown nodes\n */\n\n\n this.trigger('show_all', {\n 'nodes': ids\n });\n return ids;\n },\n\n /**\n * called when a node is selected by the user. Used internally.\n * @private\n * @name activate_node(obj, e)\n * @param {mixed} obj the node\n * @param {Object} e the related event\n * @trigger activate_node.jstree, changed.jstree\n */\n activate_node: function activate_node(obj, e) {\n if (this.is_disabled(obj)) {\n return false;\n }\n\n if (!e || _typeof(e) !== 'object') {\n e = {};\n } // ensure last_clicked is still in the DOM, make it fresh (maybe it was moved?) and make sure it is still selected, if not - make last_clicked the last selected node\n\n\n this._data.core.last_clicked = this._data.core.last_clicked && this._data.core.last_clicked.id !== undefined ? this.get_node(this._data.core.last_clicked.id) : null;\n\n if (this._data.core.last_clicked && !this._data.core.last_clicked.state.selected) {\n this._data.core.last_clicked = null;\n }\n\n if (!this._data.core.last_clicked && this._data.core.selected.length) {\n this._data.core.last_clicked = this.get_node(this._data.core.selected[this._data.core.selected.length - 1]);\n }\n\n if (!this.settings.core.multiple || !e.metaKey && !e.ctrlKey && !e.shiftKey || e.shiftKey && (!this._data.core.last_clicked || !this.get_parent(obj) || this.get_parent(obj) !== this._data.core.last_clicked.parent)) {\n if (!this.settings.core.multiple && (e.metaKey || e.ctrlKey || e.shiftKey) && this.is_selected(obj)) {\n this.deselect_node(obj, false, e);\n } else {\n this.deselect_all(true);\n this.select_node(obj, false, false, e);\n this._data.core.last_clicked = this.get_node(obj);\n }\n } else {\n if (e.shiftKey) {\n var o = this.get_node(obj).id,\n l = this._data.core.last_clicked.id,\n p = this.get_node(this._data.core.last_clicked.parent).children,\n c = false,\n i,\n j;\n\n for (i = 0, j = p.length; i < j; i += 1) {\n // separate IFs work whem o and l are the same\n if (p[i] === o) {\n c = !c;\n }\n\n if (p[i] === l) {\n c = !c;\n }\n\n if (!this.is_disabled(p[i]) && (c || p[i] === o || p[i] === l)) {\n if (!this.is_hidden(p[i])) {\n this.select_node(p[i], true, false, e);\n }\n } else {\n this.deselect_node(p[i], true, e);\n }\n }\n\n this.trigger('changed', {\n 'action': 'select_node',\n 'node': this.get_node(obj),\n 'selected': this._data.core.selected,\n 'event': e\n });\n } else {\n if (!this.is_selected(obj)) {\n this.select_node(obj, false, false, e);\n } else {\n this.deselect_node(obj, false, e);\n }\n }\n }\n /**\n * triggered when an node is clicked or intercated with by the user\n * @event\n * @name activate_node.jstree\n * @param {Object} node\n * @param {Object} event the ooriginal event (if any) which triggered the call (may be an empty object)\n */\n\n\n this.trigger('activate_node', {\n 'node': this.get_node(obj),\n 'event': e\n });\n },\n\n /**\n * applies the hover state on a node, called when a node is hovered by the user. Used internally.\n * @private\n * @name hover_node(obj)\n * @param {mixed} obj\n * @trigger hover_node.jstree\n */\n hover_node: function hover_node(obj) {\n obj = this.get_node(obj, true);\n\n if (!obj || !obj.length || obj.children('.jstree-hovered').length) {\n return false;\n }\n\n var o = this.element.find('.jstree-hovered'),\n t = this.element;\n\n if (o && o.length) {\n this.dehover_node(o);\n }\n\n obj.children('.jstree-anchor').addClass('jstree-hovered');\n /**\n * triggered when an node is hovered\n * @event\n * @name hover_node.jstree\n * @param {Object} node\n */\n\n this.trigger('hover_node', {\n 'node': this.get_node(obj)\n });\n setTimeout(function () {\n t.attr('aria-activedescendant', obj[0].id);\n }, 0);\n },\n\n /**\n * removes the hover state from a nodecalled when a node is no longer hovered by the user. Used internally.\n * @private\n * @name dehover_node(obj)\n * @param {mixed} obj\n * @trigger dehover_node.jstree\n */\n dehover_node: function dehover_node(obj) {\n obj = this.get_node(obj, true);\n\n if (!obj || !obj.length || !obj.children('.jstree-hovered').length) {\n return false;\n }\n\n obj.children('.jstree-anchor').removeClass('jstree-hovered');\n /**\n * triggered when an node is no longer hovered\n * @event\n * @name dehover_node.jstree\n * @param {Object} node\n */\n\n this.trigger('dehover_node', {\n 'node': this.get_node(obj)\n });\n },\n\n /**\n * select a node\n * @name select_node(obj [, supress_event, prevent_open])\n * @param {mixed} obj an array can be used to select multiple nodes\n * @param {Boolean} supress_event if set to `true` the `changed.jstree` event won't be triggered\n * @param {Boolean} prevent_open if set to `true` parents of the selected node won't be opened\n * @trigger select_node.jstree, changed.jstree\n */\n select_node: function select_node(obj, supress_event, prevent_open, e) {\n var dom, t1, t2, th;\n\n if ($.vakata.is_array(obj)) {\n obj = obj.slice();\n\n for (t1 = 0, t2 = obj.length; t1 < t2; t1++) {\n this.select_node(obj[t1], supress_event, prevent_open, e);\n }\n\n return true;\n }\n\n obj = this.get_node(obj);\n\n if (!obj || obj.id === $.jstree.root) {\n return false;\n }\n\n dom = this.get_node(obj, true);\n\n if (!obj.state.selected) {\n obj.state.selected = true;\n\n this._data.core.selected.push(obj.id);\n\n if (!prevent_open) {\n dom = this._open_to(obj);\n }\n\n if (dom && dom.length) {\n dom.children('.jstree-anchor').addClass('jstree-clicked').attr('aria-selected', true);\n }\n /**\n * triggered when an node is selected\n * @event\n * @name select_node.jstree\n * @param {Object} node\n * @param {Array} selected the current selection\n * @param {Object} event the event (if any) that triggered this select_node\n */\n\n\n this.trigger('select_node', {\n 'node': obj,\n 'selected': this._data.core.selected,\n 'event': e\n });\n\n if (!supress_event) {\n /**\n * triggered when selection changes\n * @event\n * @name changed.jstree\n * @param {Object} node\n * @param {Object} action the action that caused the selection to change\n * @param {Array} selected the current selection\n * @param {Object} event the event (if any) that triggered this changed event\n */\n this.trigger('changed', {\n 'action': 'select_node',\n 'node': obj,\n 'selected': this._data.core.selected,\n 'event': e\n });\n }\n }\n },\n\n /**\n * deselect a node\n * @name deselect_node(obj [, supress_event])\n * @param {mixed} obj an array can be used to deselect multiple nodes\n * @param {Boolean} supress_event if set to `true` the `changed.jstree` event won't be triggered\n * @trigger deselect_node.jstree, changed.jstree\n */\n deselect_node: function deselect_node(obj, supress_event, e) {\n var t1, t2, dom;\n\n if ($.vakata.is_array(obj)) {\n obj = obj.slice();\n\n for (t1 = 0, t2 = obj.length; t1 < t2; t1++) {\n this.deselect_node(obj[t1], supress_event, e);\n }\n\n return true;\n }\n\n obj = this.get_node(obj);\n\n if (!obj || obj.id === $.jstree.root) {\n return false;\n }\n\n dom = this.get_node(obj, true);\n\n if (obj.state.selected) {\n obj.state.selected = false;\n this._data.core.selected = $.vakata.array_remove_item(this._data.core.selected, obj.id);\n\n if (dom.length) {\n dom.children('.jstree-anchor').removeClass('jstree-clicked').attr('aria-selected', false);\n }\n /**\n * triggered when an node is deselected\n * @event\n * @name deselect_node.jstree\n * @param {Object} node\n * @param {Array} selected the current selection\n * @param {Object} event the event (if any) that triggered this deselect_node\n */\n\n\n this.trigger('deselect_node', {\n 'node': obj,\n 'selected': this._data.core.selected,\n 'event': e\n });\n\n if (!supress_event) {\n this.trigger('changed', {\n 'action': 'deselect_node',\n 'node': obj,\n 'selected': this._data.core.selected,\n 'event': e\n });\n }\n }\n },\n\n /**\n * select all nodes in the tree\n * @name select_all([supress_event])\n * @param {Boolean} supress_event if set to `true` the `changed.jstree` event won't be triggered\n * @trigger select_all.jstree, changed.jstree\n */\n select_all: function select_all(supress_event) {\n var tmp = this._data.core.selected.concat([]),\n i,\n j;\n\n this._data.core.selected = this._model.data[$.jstree.root].children_d.concat();\n\n for (i = 0, j = this._data.core.selected.length; i < j; i++) {\n if (this._model.data[this._data.core.selected[i]]) {\n this._model.data[this._data.core.selected[i]].state.selected = true;\n }\n }\n\n this.redraw(true);\n /**\n * triggered when all nodes are selected\n * @event\n * @name select_all.jstree\n * @param {Array} selected the current selection\n */\n\n this.trigger('select_all', {\n 'selected': this._data.core.selected\n });\n\n if (!supress_event) {\n this.trigger('changed', {\n 'action': 'select_all',\n 'selected': this._data.core.selected,\n 'old_selection': tmp\n });\n }\n },\n\n /**\n * deselect all selected nodes\n * @name deselect_all([supress_event])\n * @param {Boolean} supress_event if set to `true` the `changed.jstree` event won't be triggered\n * @trigger deselect_all.jstree, changed.jstree\n */\n deselect_all: function deselect_all(supress_event) {\n var tmp = this._data.core.selected.concat([]),\n i,\n j;\n\n for (i = 0, j = this._data.core.selected.length; i < j; i++) {\n if (this._model.data[this._data.core.selected[i]]) {\n this._model.data[this._data.core.selected[i]].state.selected = false;\n }\n }\n\n this._data.core.selected = [];\n this.element.find('.jstree-clicked').removeClass('jstree-clicked').attr('aria-selected', false);\n /**\n * triggered when all nodes are deselected\n * @event\n * @name deselect_all.jstree\n * @param {Object} node the previous selection\n * @param {Array} selected the current selection\n */\n\n this.trigger('deselect_all', {\n 'selected': this._data.core.selected,\n 'node': tmp\n });\n\n if (!supress_event) {\n this.trigger('changed', {\n 'action': 'deselect_all',\n 'selected': this._data.core.selected,\n 'old_selection': tmp\n });\n }\n },\n\n /**\n * checks if a node is selected\n * @name is_selected(obj)\n * @param {mixed} obj\n * @return {Boolean}\n */\n is_selected: function is_selected(obj) {\n obj = this.get_node(obj);\n\n if (!obj || obj.id === $.jstree.root) {\n return false;\n }\n\n return obj.state.selected;\n },\n\n /**\n * get an array of all selected nodes\n * @name get_selected([full])\n * @param {mixed} full if set to `true` the returned array will consist of the full node objects, otherwise - only IDs will be returned\n * @return {Array}\n */\n get_selected: function get_selected(full) {\n return full ? $.map(this._data.core.selected, function (i) {\n return this.get_node(i);\n }.bind(this)) : this._data.core.selected.slice();\n },\n\n /**\n * get an array of all top level selected nodes (ignoring children of selected nodes)\n * @name get_top_selected([full])\n * @param {mixed} full if set to `true` the returned array will consist of the full node objects, otherwise - only IDs will be returned\n * @return {Array}\n */\n get_top_selected: function get_top_selected(full) {\n var tmp = this.get_selected(true),\n obj = {},\n i,\n j,\n k,\n l;\n\n for (i = 0, j = tmp.length; i < j; i++) {\n obj[tmp[i].id] = tmp[i];\n }\n\n for (i = 0, j = tmp.length; i < j; i++) {\n for (k = 0, l = tmp[i].children_d.length; k < l; k++) {\n if (obj[tmp[i].children_d[k]]) {\n delete obj[tmp[i].children_d[k]];\n }\n }\n }\n\n tmp = [];\n\n for (i in obj) {\n if (obj.hasOwnProperty(i)) {\n tmp.push(i);\n }\n }\n\n return full ? $.map(tmp, function (i) {\n return this.get_node(i);\n }.bind(this)) : tmp;\n },\n\n /**\n * get an array of all bottom level selected nodes (ignoring selected parents)\n * @name get_bottom_selected([full])\n * @param {mixed} full if set to `true` the returned array will consist of the full node objects, otherwise - only IDs will be returned\n * @return {Array}\n */\n get_bottom_selected: function get_bottom_selected(full) {\n var tmp = this.get_selected(true),\n obj = [],\n i,\n j;\n\n for (i = 0, j = tmp.length; i < j; i++) {\n if (!tmp[i].children.length) {\n obj.push(tmp[i].id);\n }\n }\n\n return full ? $.map(obj, function (i) {\n return this.get_node(i);\n }.bind(this)) : obj;\n },\n\n /**\n * gets the current state of the tree so that it can be restored later with `set_state(state)`. Used internally.\n * @name get_state()\n * @private\n * @return {Object}\n */\n get_state: function get_state() {\n var state = {\n 'core': {\n 'open': [],\n 'loaded': [],\n 'scroll': {\n 'left': this.element.scrollLeft(),\n 'top': this.element.scrollTop()\n },\n\n /*!\n 'themes' : {\n \t'name' : this.get_theme(),\n \t'icons' : this._data.core.themes.icons,\n \t'dots' : this._data.core.themes.dots\n },\n */\n 'selected': []\n }\n },\n i;\n\n for (i in this._model.data) {\n if (this._model.data.hasOwnProperty(i)) {\n if (i !== $.jstree.root) {\n if (this._model.data[i].state.loaded && this.settings.core.loaded_state) {\n state.core.loaded.push(i);\n }\n\n if (this._model.data[i].state.opened) {\n state.core.open.push(i);\n }\n\n if (this._model.data[i].state.selected) {\n state.core.selected.push(i);\n }\n }\n }\n }\n\n return state;\n },\n\n /**\n * sets the state of the tree. Used internally.\n * @name set_state(state [, callback])\n * @private\n * @param {Object} state the state to restore. Keep in mind this object is passed by reference and jstree will modify it.\n * @param {Function} callback an optional function to execute once the state is restored.\n * @trigger set_state.jstree\n */\n set_state: function set_state(state, callback) {\n if (state) {\n if (state.core && state.core.selected && state.core.initial_selection === undefined) {\n state.core.initial_selection = this._data.core.selected.concat([]).sort().join(',');\n }\n\n if (state.core) {\n var res, n, t, _this, i;\n\n if (state.core.loaded) {\n if (!this.settings.core.loaded_state || !$.vakata.is_array(state.core.loaded) || !state.core.loaded.length) {\n delete state.core.loaded;\n this.set_state(state, callback);\n } else {\n this._load_nodes(state.core.loaded, function (nodes) {\n delete state.core.loaded;\n this.set_state(state, callback);\n });\n }\n\n return false;\n }\n\n if (state.core.open) {\n if (!$.vakata.is_array(state.core.open) || !state.core.open.length) {\n delete state.core.open;\n this.set_state(state, callback);\n } else {\n this._load_nodes(state.core.open, function (nodes) {\n this.open_node(nodes, false, 0);\n delete state.core.open;\n this.set_state(state, callback);\n });\n }\n\n return false;\n }\n\n if (state.core.scroll) {\n if (state.core.scroll && state.core.scroll.left !== undefined) {\n this.element.scrollLeft(state.core.scroll.left);\n }\n\n if (state.core.scroll && state.core.scroll.top !== undefined) {\n this.element.scrollTop(state.core.scroll.top);\n }\n\n delete state.core.scroll;\n this.set_state(state, callback);\n return false;\n }\n\n if (state.core.selected) {\n _this = this;\n\n if (state.core.initial_selection === undefined || state.core.initial_selection === this._data.core.selected.concat([]).sort().join(',')) {\n this.deselect_all();\n $.each(state.core.selected, function (i, v) {\n _this.select_node(v, false, true);\n });\n }\n\n delete state.core.initial_selection;\n delete state.core.selected;\n this.set_state(state, callback);\n return false;\n }\n\n for (i in state) {\n if (state.hasOwnProperty(i) && i !== \"core\" && $.inArray(i, this.settings.plugins) === -1) {\n delete state[i];\n }\n }\n\n if ($.isEmptyObject(state.core)) {\n delete state.core;\n this.set_state(state, callback);\n return false;\n }\n }\n\n if ($.isEmptyObject(state)) {\n state = null;\n\n if (callback) {\n callback.call(this);\n }\n /**\n * triggered when a `set_state` call completes\n * @event\n * @name set_state.jstree\n */\n\n\n this.trigger('set_state');\n return false;\n }\n\n return true;\n }\n\n return false;\n },\n\n /**\n * refreshes the tree - all nodes are reloaded with calls to `load_node`.\n * @name refresh()\n * @param {Boolean} skip_loading an option to skip showing the loading indicator\n * @param {Mixed} forget_state if set to `true` state will not be reapplied, if set to a function (receiving the current state as argument) the result of that function will be used as state\n * @trigger refresh.jstree\n */\n refresh: function refresh(skip_loading, forget_state) {\n this._data.core.state = forget_state === true ? {} : this.get_state();\n\n if (forget_state && $.vakata.is_function(forget_state)) {\n this._data.core.state = forget_state.call(this, this._data.core.state);\n }\n\n this._cnt = 0;\n this._model.data = {};\n this._model.data[$.jstree.root] = {\n id: $.jstree.root,\n parent: null,\n parents: [],\n children: [],\n children_d: [],\n state: {\n loaded: false\n }\n };\n this._data.core.selected = [];\n this._data.core.last_clicked = null;\n this._data.core.focused = null;\n var c = this.get_container_ul()[0].className;\n\n if (!skip_loading) {\n this.element.html(\"<\" + \"ul class='\" + c + \"' role='group'><\" + \"li class='jstree-initial-node jstree-loading jstree-leaf jstree-last' role='none' id='j\" + this._id + \"_loading'><\" + \"a class='jstree-anchor' role='treeitem' href='#'>\" + this.get_string(\"Loading ...\") + \"\");\n this.element.attr('aria-activedescendant', 'j' + this._id + '_loading');\n }\n\n this.load_node($.jstree.root, function (o, s) {\n if (s) {\n this.get_container_ul()[0].className = c;\n\n if (this._firstChild(this.get_container_ul()[0])) {\n this.element.attr('aria-activedescendant', this._firstChild(this.get_container_ul()[0]).id);\n }\n\n this.set_state($.extend(true, {}, this._data.core.state), function () {\n /**\n * triggered when a `refresh` call completes\n * @event\n * @name refresh.jstree\n */\n this.trigger('refresh');\n });\n }\n\n this._data.core.state = null;\n });\n },\n\n /**\n * refreshes a node in the tree (reload its children) all opened nodes inside that node are reloaded with calls to `load_node`.\n * @name refresh_node(obj)\n * @param {mixed} obj the node\n * @trigger refresh_node.jstree\n */\n refresh_node: function refresh_node(obj) {\n obj = this.get_node(obj);\n\n if (!obj || obj.id === $.jstree.root) {\n return false;\n }\n\n var opened = [],\n to_load = [],\n s = this._data.core.selected.concat([]);\n\n to_load.push(obj.id);\n\n if (obj.state.opened === true) {\n opened.push(obj.id);\n }\n\n this.get_node(obj, true).find('.jstree-open').each(function () {\n to_load.push(this.id);\n opened.push(this.id);\n });\n\n this._load_nodes(to_load, function (nodes) {\n this.open_node(opened, false, 0);\n this.select_node(s);\n /**\n * triggered when a node is refreshed\n * @event\n * @name refresh_node.jstree\n * @param {Object} node - the refreshed node\n * @param {Array} nodes - an array of the IDs of the nodes that were reloaded\n */\n\n this.trigger('refresh_node', {\n 'node': obj,\n 'nodes': nodes\n });\n }.bind(this), false, true);\n },\n\n /**\n * set (change) the ID of a node\n * @name set_id(obj, id)\n * @param {mixed} obj the node\n * @param {String} id the new ID\n * @return {Boolean}\n * @trigger set_id.jstree\n */\n set_id: function set_id(obj, id) {\n obj = this.get_node(obj);\n\n if (!obj || obj.id === $.jstree.root) {\n return false;\n }\n\n var i,\n j,\n m = this._model.data,\n old = obj.id;\n id = id.toString(); // update parents (replace current ID with new one in children and children_d)\n\n m[obj.parent].children[$.inArray(obj.id, m[obj.parent].children)] = id;\n\n for (i = 0, j = obj.parents.length; i < j; i++) {\n m[obj.parents[i]].children_d[$.inArray(obj.id, m[obj.parents[i]].children_d)] = id;\n } // update children (replace current ID with new one in parent and parents)\n\n\n for (i = 0, j = obj.children.length; i < j; i++) {\n m[obj.children[i]].parent = id;\n }\n\n for (i = 0, j = obj.children_d.length; i < j; i++) {\n m[obj.children_d[i]].parents[$.inArray(obj.id, m[obj.children_d[i]].parents)] = id;\n }\n\n i = $.inArray(obj.id, this._data.core.selected);\n\n if (i !== -1) {\n this._data.core.selected[i] = id;\n } // update model and obj itself (obj.id, this._model.data[KEY])\n\n\n i = this.get_node(obj.id, true);\n\n if (i) {\n i.attr('id', id); //.children('.jstree-anchor').attr('id', id + '_anchor').end().attr('aria-labelledby', id + '_anchor');\n\n if (this.element.attr('aria-activedescendant') === obj.id) {\n this.element.attr('aria-activedescendant', id);\n }\n }\n\n delete m[obj.id];\n obj.id = id;\n obj.li_attr.id = id;\n m[id] = obj;\n /**\n * triggered when a node id value is changed\n * @event\n * @name set_id.jstree\n * @param {Object} node\n * @param {String} old the old id\n */\n\n this.trigger('set_id', {\n \"node\": obj,\n \"new\": obj.id,\n \"old\": old\n });\n return true;\n },\n\n /**\n * get the text value of a node\n * @name get_text(obj)\n * @param {mixed} obj the node\n * @return {String}\n */\n get_text: function get_text(obj) {\n obj = this.get_node(obj);\n return !obj || obj.id === $.jstree.root ? false : obj.text;\n },\n\n /**\n * set the text value of a node. Used internally, please use `rename_node(obj, val)`.\n * @private\n * @name set_text(obj, val)\n * @param {mixed} obj the node, you can pass an array to set the text on multiple nodes\n * @param {String} val the new text value\n * @return {Boolean}\n * @trigger set_text.jstree\n */\n set_text: function set_text(obj, val) {\n var t1, t2;\n\n if ($.vakata.is_array(obj)) {\n obj = obj.slice();\n\n for (t1 = 0, t2 = obj.length; t1 < t2; t1++) {\n this.set_text(obj[t1], val);\n }\n\n return true;\n }\n\n obj = this.get_node(obj);\n\n if (!obj || obj.id === $.jstree.root) {\n return false;\n }\n\n obj.text = val;\n\n if (this.get_node(obj, true).length) {\n this.redraw_node(obj.id);\n }\n /**\n * triggered when a node text value is changed\n * @event\n * @name set_text.jstree\n * @param {Object} obj\n * @param {String} text the new value\n */\n\n\n this.trigger('set_text', {\n \"obj\": obj,\n \"text\": val\n });\n return true;\n },\n\n /**\n * gets a JSON representation of a node (or the whole tree)\n * @name get_json([obj, options])\n * @param {mixed} obj\n * @param {Object} options\n * @param {Boolean} options.no_state do not return state information\n * @param {Boolean} options.no_id do not return ID\n * @param {Boolean} options.no_children do not include children\n * @param {Boolean} options.no_data do not include node data\n * @param {Boolean} options.no_li_attr do not include LI attributes\n * @param {Boolean} options.no_a_attr do not include A attributes\n * @param {Boolean} options.flat return flat JSON instead of nested\n * @return {Object}\n */\n get_json: function get_json(obj, options, flat) {\n obj = this.get_node(obj || $.jstree.root);\n\n if (!obj) {\n return false;\n }\n\n if (options && options.flat && !flat) {\n flat = [];\n }\n\n var tmp = {\n 'id': obj.id,\n 'text': obj.text,\n 'icon': this.get_icon(obj),\n 'li_attr': $.extend(true, {}, obj.li_attr),\n 'a_attr': $.extend(true, {}, obj.a_attr),\n 'state': {},\n 'data': options && options.no_data ? false : $.extend(true, $.vakata.is_array(obj.data) ? [] : {}, obj.data) //( this.get_node(obj, true).length ? this.get_node(obj, true).data() : obj.data ),\n\n },\n i,\n j;\n\n if (options && options.flat) {\n tmp.parent = obj.parent;\n } else {\n tmp.children = [];\n }\n\n if (!options || !options.no_state) {\n for (i in obj.state) {\n if (obj.state.hasOwnProperty(i)) {\n tmp.state[i] = obj.state[i];\n }\n }\n } else {\n delete tmp.state;\n }\n\n if (options && options.no_li_attr) {\n delete tmp.li_attr;\n }\n\n if (options && options.no_a_attr) {\n delete tmp.a_attr;\n }\n\n if (options && options.no_id) {\n delete tmp.id;\n\n if (tmp.li_attr && tmp.li_attr.id) {\n delete tmp.li_attr.id;\n }\n\n if (tmp.a_attr && tmp.a_attr.id) {\n delete tmp.a_attr.id;\n }\n }\n\n if (options && options.flat && obj.id !== $.jstree.root) {\n flat.push(tmp);\n }\n\n if (!options || !options.no_children) {\n for (i = 0, j = obj.children.length; i < j; i++) {\n if (options && options.flat) {\n this.get_json(obj.children[i], options, flat);\n } else {\n tmp.children.push(this.get_json(obj.children[i], options));\n }\n }\n }\n\n return options && options.flat ? flat : obj.id === $.jstree.root ? tmp.children : tmp;\n },\n\n /**\n * create a new node (do not confuse with load_node)\n * @name create_node([par, node, pos, callback, is_loaded])\n * @param {mixed} par the parent node (to create a root node use either \"#\" (string) or `null`)\n * @param {mixed} node the data for the new node (a valid JSON object, or a simple string with the name)\n * @param {mixed} pos the index at which to insert the node, \"first\" and \"last\" are also supported, default is \"last\"\n * @param {Function} callback a function to be called once the node is created\n * @param {Boolean} is_loaded internal argument indicating if the parent node was succesfully loaded\n * @return {String} the ID of the newly create node\n * @trigger model.jstree, create_node.jstree\n */\n create_node: function create_node(par, node, pos, callback, is_loaded) {\n if (par === null) {\n par = $.jstree.root;\n }\n\n par = this.get_node(par);\n\n if (!par) {\n return false;\n }\n\n pos = pos === undefined ? \"last\" : pos;\n\n if (!pos.toString().match(/^(before|after)$/) && !is_loaded && !this.is_loaded(par)) {\n return this.load_node(par, function () {\n this.create_node(par, node, pos, callback, true);\n });\n }\n\n if (!node) {\n node = {\n \"text\": this.get_string('New node')\n };\n }\n\n if (typeof node === \"string\") {\n node = {\n \"text\": node\n };\n } else {\n node = $.extend(true, {}, node);\n }\n\n if (node.text === undefined) {\n node.text = this.get_string('New node');\n }\n\n var tmp, dpc, i, j;\n\n if (par.id === $.jstree.root) {\n if (pos === \"before\") {\n pos = \"first\";\n }\n\n if (pos === \"after\") {\n pos = \"last\";\n }\n }\n\n switch (pos) {\n case \"before\":\n tmp = this.get_node(par.parent);\n pos = $.inArray(par.id, tmp.children);\n par = tmp;\n break;\n\n case \"after\":\n tmp = this.get_node(par.parent);\n pos = $.inArray(par.id, tmp.children) + 1;\n par = tmp;\n break;\n\n case \"inside\":\n case \"first\":\n pos = 0;\n break;\n\n case \"last\":\n pos = par.children.length;\n break;\n\n default:\n if (!pos) {\n pos = 0;\n }\n\n break;\n }\n\n if (pos > par.children.length) {\n pos = par.children.length;\n }\n\n if (!node.id) {\n node.id = true;\n }\n\n if (!this.check(\"create_node\", node, par, pos)) {\n this.settings.core.error.call(this, this._data.core.last_error);\n return false;\n }\n\n if (node.id === true) {\n delete node.id;\n }\n\n node = this._parse_model_from_json(node, par.id, par.parents.concat());\n\n if (!node) {\n return false;\n }\n\n tmp = this.get_node(node);\n dpc = [];\n dpc.push(node);\n dpc = dpc.concat(tmp.children_d);\n this.trigger('model', {\n \"nodes\": dpc,\n \"parent\": par.id\n });\n par.children_d = par.children_d.concat(dpc);\n\n for (i = 0, j = par.parents.length; i < j; i++) {\n this._model.data[par.parents[i]].children_d = this._model.data[par.parents[i]].children_d.concat(dpc);\n }\n\n node = tmp;\n tmp = [];\n\n for (i = 0, j = par.children.length; i < j; i++) {\n tmp[i >= pos ? i + 1 : i] = par.children[i];\n }\n\n tmp[pos] = node.id;\n par.children = tmp;\n this.redraw_node(par, true);\n /**\n * triggered when a node is created\n * @event\n * @name create_node.jstree\n * @param {Object} node\n * @param {String} parent the parent's ID\n * @param {Number} position the position of the new node among the parent's children\n */\n\n this.trigger('create_node', {\n \"node\": this.get_node(node),\n \"parent\": par.id,\n \"position\": pos\n });\n\n if (callback) {\n callback.call(this, this.get_node(node));\n }\n\n return node.id;\n },\n\n /**\n * set the text value of a node\n * @name rename_node(obj, val)\n * @param {mixed} obj the node, you can pass an array to rename multiple nodes to the same name\n * @param {String} val the new text value\n * @return {Boolean}\n * @trigger rename_node.jstree\n */\n rename_node: function rename_node(obj, val) {\n var t1, t2, old;\n\n if ($.vakata.is_array(obj)) {\n obj = obj.slice();\n\n for (t1 = 0, t2 = obj.length; t1 < t2; t1++) {\n this.rename_node(obj[t1], val);\n }\n\n return true;\n }\n\n obj = this.get_node(obj);\n\n if (!obj || obj.id === $.jstree.root) {\n return false;\n }\n\n old = obj.text;\n\n if (!this.check(\"rename_node\", obj, this.get_parent(obj), val)) {\n this.settings.core.error.call(this, this._data.core.last_error);\n return false;\n }\n\n this.set_text(obj, val); // .apply(this, Array.prototype.slice.call(arguments))\n\n /**\n * triggered when a node is renamed\n * @event\n * @name rename_node.jstree\n * @param {Object} node\n * @param {String} text the new value\n * @param {String} old the old value\n */\n\n this.trigger('rename_node', {\n \"node\": obj,\n \"text\": val,\n \"old\": old\n });\n return true;\n },\n\n /**\n * remove a node\n * @name delete_node(obj)\n * @param {mixed} obj the node, you can pass an array to delete multiple nodes\n * @return {Boolean}\n * @trigger delete_node.jstree, changed.jstree\n */\n delete_node: function delete_node(obj) {\n var t1, t2, par, pos, tmp, i, j, k, l, c, top, lft;\n\n if ($.vakata.is_array(obj)) {\n obj = obj.slice();\n\n for (t1 = 0, t2 = obj.length; t1 < t2; t1++) {\n this.delete_node(obj[t1]);\n }\n\n return true;\n }\n\n obj = this.get_node(obj);\n\n if (!obj || obj.id === $.jstree.root) {\n return false;\n }\n\n par = this.get_node(obj.parent);\n pos = $.inArray(obj.id, par.children);\n c = false;\n\n if (!this.check(\"delete_node\", obj, par, pos)) {\n this.settings.core.error.call(this, this._data.core.last_error);\n return false;\n }\n\n if (pos !== -1) {\n par.children = $.vakata.array_remove(par.children, pos);\n }\n\n tmp = obj.children_d.concat([]);\n tmp.push(obj.id);\n\n for (i = 0, j = obj.parents.length; i < j; i++) {\n this._model.data[obj.parents[i]].children_d = $.vakata.array_filter(this._model.data[obj.parents[i]].children_d, function (v) {\n return $.inArray(v, tmp) === -1;\n });\n }\n\n for (k = 0, l = tmp.length; k < l; k++) {\n if (this._model.data[tmp[k]].state.selected) {\n c = true;\n break;\n }\n }\n\n if (c) {\n this._data.core.selected = $.vakata.array_filter(this._data.core.selected, function (v) {\n return $.inArray(v, tmp) === -1;\n });\n }\n /**\n * triggered when a node is deleted\n * @event\n * @name delete_node.jstree\n * @param {Object} node\n * @param {String} parent the parent's ID\n */\n\n\n this.trigger('delete_node', {\n \"node\": obj,\n \"parent\": par.id\n });\n\n if (c) {\n this.trigger('changed', {\n 'action': 'delete_node',\n 'node': obj,\n 'selected': this._data.core.selected,\n 'parent': par.id\n });\n }\n\n for (k = 0, l = tmp.length; k < l; k++) {\n delete this._model.data[tmp[k]];\n }\n\n if ($.inArray(this._data.core.focused, tmp) !== -1) {\n this._data.core.focused = null;\n top = this.element[0].scrollTop;\n lft = this.element[0].scrollLeft;\n\n if (par.id === $.jstree.root) {\n if (this._model.data[$.jstree.root].children[0]) {\n this.get_node(this._model.data[$.jstree.root].children[0], true).children('.jstree-anchor').triger('focus');\n }\n } else {\n this.get_node(par, true).children('.jstree-anchor').trigger('focus');\n }\n\n this.element[0].scrollTop = top;\n this.element[0].scrollLeft = lft;\n }\n\n this.redraw_node(par, true);\n return true;\n },\n\n /**\n * check if an operation is premitted on the tree. Used internally.\n * @private\n * @name check(chk, obj, par, pos)\n * @param {String} chk the operation to check, can be \"create_node\", \"rename_node\", \"delete_node\", \"copy_node\" or \"move_node\"\n * @param {mixed} obj the node\n * @param {mixed} par the parent\n * @param {mixed} pos the position to insert at, or if \"rename_node\" - the new name\n * @param {mixed} more some various additional information, for example if a \"move_node\" operations is triggered by DND this will be the hovered node\n * @return {Boolean}\n */\n check: function check(chk, obj, par, pos, more) {\n obj = obj && obj.id ? obj : this.get_node(obj);\n par = par && par.id ? par : this.get_node(par);\n var tmp = chk.match(/^move_node|copy_node|create_node$/i) ? par : obj,\n chc = this.settings.core.check_callback;\n\n if (chk === \"move_node\" || chk === \"copy_node\") {\n if ((!more || !more.is_multi) && chk === \"move_node\" && $.inArray(obj.id, par.children) === pos) {\n this._data.core.last_error = {\n 'error': 'check',\n 'plugin': 'core',\n 'id': 'core_08',\n 'reason': 'Moving node to its current position',\n 'data': JSON.stringify({\n 'chk': chk,\n 'pos': pos,\n 'obj': obj && obj.id ? obj.id : false,\n 'par': par && par.id ? par.id : false\n })\n };\n return false;\n }\n\n if ((!more || !more.is_multi) && (obj.id === par.id || chk === \"move_node\" && $.inArray(obj.id, par.children) === pos || $.inArray(par.id, obj.children_d) !== -1)) {\n this._data.core.last_error = {\n 'error': 'check',\n 'plugin': 'core',\n 'id': 'core_01',\n 'reason': 'Moving parent inside child',\n 'data': JSON.stringify({\n 'chk': chk,\n 'pos': pos,\n 'obj': obj && obj.id ? obj.id : false,\n 'par': par && par.id ? par.id : false\n })\n };\n return false;\n }\n }\n\n if (tmp && tmp.data) {\n tmp = tmp.data;\n }\n\n if (tmp && tmp.functions && (tmp.functions[chk] === false || tmp.functions[chk] === true)) {\n if (tmp.functions[chk] === false) {\n this._data.core.last_error = {\n 'error': 'check',\n 'plugin': 'core',\n 'id': 'core_02',\n 'reason': 'Node data prevents function: ' + chk,\n 'data': JSON.stringify({\n 'chk': chk,\n 'pos': pos,\n 'obj': obj && obj.id ? obj.id : false,\n 'par': par && par.id ? par.id : false\n })\n };\n }\n\n return tmp.functions[chk];\n }\n\n if (chc === false || $.vakata.is_function(chc) && chc.call(this, chk, obj, par, pos, more) === false || chc && chc[chk] === false) {\n this._data.core.last_error = {\n 'error': 'check',\n 'plugin': 'core',\n 'id': 'core_03',\n 'reason': 'User config for core.check_callback prevents function: ' + chk,\n 'data': JSON.stringify({\n 'chk': chk,\n 'pos': pos,\n 'obj': obj && obj.id ? obj.id : false,\n 'par': par && par.id ? par.id : false\n })\n };\n return false;\n }\n\n return true;\n },\n\n /**\n * get the last error\n * @name last_error()\n * @return {Object}\n */\n last_error: function last_error() {\n return this._data.core.last_error;\n },\n\n /**\n * move a node to a new parent\n * @name move_node(obj, par [, pos, callback, is_loaded])\n * @param {mixed} obj the node to move, pass an array to move multiple nodes\n * @param {mixed} par the new parent\n * @param {mixed} pos the position to insert at (besides integer values, \"first\" and \"last\" are supported, as well as \"before\" and \"after\"), defaults to integer `0`\n * @param {function} callback a function to call once the move is completed, receives 3 arguments - the node, the new parent and the position\n * @param {Boolean} is_loaded internal parameter indicating if the parent node has been loaded\n * @param {Boolean} skip_redraw internal parameter indicating if the tree should be redrawn\n * @param {Boolean} instance internal parameter indicating if the node comes from another instance\n * @trigger move_node.jstree\n */\n move_node: function move_node(obj, par, pos, callback, is_loaded, skip_redraw, origin) {\n var t1, t2, old_par, old_pos, new_par, old_ins, is_multi, dpc, tmp, i, j, k, l, p;\n par = this.get_node(par);\n pos = pos === undefined ? 0 : pos;\n\n if (!par) {\n return false;\n }\n\n if (!pos.toString().match(/^(before|after)$/) && !is_loaded && !this.is_loaded(par)) {\n return this.load_node(par, function () {\n this.move_node(obj, par, pos, callback, true, false, origin);\n });\n }\n\n if ($.vakata.is_array(obj)) {\n if (obj.length === 1) {\n obj = obj[0];\n } else {\n //obj = obj.slice();\n for (t1 = 0, t2 = obj.length; t1 < t2; t1++) {\n if (tmp = this.move_node(obj[t1], par, pos, callback, is_loaded, false, origin)) {\n par = tmp;\n pos = \"after\";\n }\n }\n\n this.redraw();\n return true;\n }\n }\n\n obj = obj && obj.id ? obj : this.get_node(obj);\n\n if (!obj || obj.id === $.jstree.root) {\n return false;\n }\n\n old_par = (obj.parent || $.jstree.root).toString();\n new_par = !pos.toString().match(/^(before|after)$/) || par.id === $.jstree.root ? par : this.get_node(par.parent);\n old_ins = origin ? origin : this._model.data[obj.id] ? this : $.jstree.reference(obj.id);\n is_multi = !old_ins || !old_ins._id || this._id !== old_ins._id;\n old_pos = old_ins && old_ins._id && old_par && old_ins._model.data[old_par] && old_ins._model.data[old_par].children ? $.inArray(obj.id, old_ins._model.data[old_par].children) : -1;\n\n if (old_ins && old_ins._id) {\n obj = old_ins._model.data[obj.id];\n }\n\n if (is_multi) {\n if (tmp = this.copy_node(obj, par, pos, callback, is_loaded, false, origin)) {\n if (old_ins) {\n old_ins.delete_node(obj);\n }\n\n return tmp;\n }\n\n return false;\n } //var m = this._model.data;\n\n\n if (par.id === $.jstree.root) {\n if (pos === \"before\") {\n pos = \"first\";\n }\n\n if (pos === \"after\") {\n pos = \"last\";\n }\n }\n\n switch (pos) {\n case \"before\":\n pos = $.inArray(par.id, new_par.children);\n break;\n\n case \"after\":\n pos = $.inArray(par.id, new_par.children) + 1;\n break;\n\n case \"inside\":\n case \"first\":\n pos = 0;\n break;\n\n case \"last\":\n pos = new_par.children.length;\n break;\n\n default:\n if (!pos) {\n pos = 0;\n }\n\n break;\n }\n\n if (pos > new_par.children.length) {\n pos = new_par.children.length;\n }\n\n if (!this.check(\"move_node\", obj, new_par, pos, {\n 'core': true,\n 'origin': origin,\n 'is_multi': old_ins && old_ins._id && old_ins._id !== this._id,\n 'is_foreign': !old_ins || !old_ins._id\n })) {\n this.settings.core.error.call(this, this._data.core.last_error);\n return false;\n }\n\n if (obj.parent === new_par.id) {\n dpc = new_par.children.concat();\n tmp = $.inArray(obj.id, dpc);\n\n if (tmp !== -1) {\n dpc = $.vakata.array_remove(dpc, tmp);\n\n if (pos > tmp) {\n pos--;\n }\n }\n\n tmp = [];\n\n for (i = 0, j = dpc.length; i < j; i++) {\n tmp[i >= pos ? i + 1 : i] = dpc[i];\n }\n\n tmp[pos] = obj.id;\n new_par.children = tmp;\n\n this._node_changed(new_par.id);\n\n this.redraw(new_par.id === $.jstree.root);\n } else {\n // clean old parent and up\n tmp = obj.children_d.concat();\n tmp.push(obj.id);\n\n for (i = 0, j = obj.parents.length; i < j; i++) {\n dpc = [];\n p = old_ins._model.data[obj.parents[i]].children_d;\n\n for (k = 0, l = p.length; k < l; k++) {\n if ($.inArray(p[k], tmp) === -1) {\n dpc.push(p[k]);\n }\n }\n\n old_ins._model.data[obj.parents[i]].children_d = dpc;\n }\n\n old_ins._model.data[old_par].children = $.vakata.array_remove_item(old_ins._model.data[old_par].children, obj.id); // insert into new parent and up\n\n for (i = 0, j = new_par.parents.length; i < j; i++) {\n this._model.data[new_par.parents[i]].children_d = this._model.data[new_par.parents[i]].children_d.concat(tmp);\n }\n\n dpc = [];\n\n for (i = 0, j = new_par.children.length; i < j; i++) {\n dpc[i >= pos ? i + 1 : i] = new_par.children[i];\n }\n\n dpc[pos] = obj.id;\n new_par.children = dpc;\n new_par.children_d.push(obj.id);\n new_par.children_d = new_par.children_d.concat(obj.children_d); // update object\n\n obj.parent = new_par.id;\n tmp = new_par.parents.concat();\n tmp.unshift(new_par.id);\n p = obj.parents.length;\n obj.parents = tmp; // update object children\n\n tmp = tmp.concat();\n\n for (i = 0, j = obj.children_d.length; i < j; i++) {\n this._model.data[obj.children_d[i]].parents = this._model.data[obj.children_d[i]].parents.slice(0, p * -1);\n Array.prototype.push.apply(this._model.data[obj.children_d[i]].parents, tmp);\n }\n\n if (old_par === $.jstree.root || new_par.id === $.jstree.root) {\n this._model.force_full_redraw = true;\n }\n\n if (!this._model.force_full_redraw) {\n this._node_changed(old_par);\n\n this._node_changed(new_par.id);\n }\n\n if (!skip_redraw) {\n this.redraw();\n }\n }\n\n if (callback) {\n callback.call(this, obj, new_par, pos);\n }\n /**\n * triggered when a node is moved\n * @event\n * @name move_node.jstree\n * @param {Object} node\n * @param {String} parent the parent's ID\n * @param {Number} position the position of the node among the parent's children\n * @param {String} old_parent the old parent of the node\n * @param {Number} old_position the old position of the node\n * @param {Boolean} is_multi do the node and new parent belong to different instances\n * @param {jsTree} old_instance the instance the node came from\n * @param {jsTree} new_instance the instance of the new parent\n */\n\n\n this.trigger('move_node', {\n \"node\": obj,\n \"parent\": new_par.id,\n \"position\": pos,\n \"old_parent\": old_par,\n \"old_position\": old_pos,\n 'is_multi': old_ins && old_ins._id && old_ins._id !== this._id,\n 'is_foreign': !old_ins || !old_ins._id,\n 'old_instance': old_ins,\n 'new_instance': this\n });\n return obj.id;\n },\n\n /**\n * copy a node to a new parent\n * @name copy_node(obj, par [, pos, callback, is_loaded])\n * @param {mixed} obj the node to copy, pass an array to copy multiple nodes\n * @param {mixed} par the new parent\n * @param {mixed} pos the position to insert at (besides integer values, \"first\" and \"last\" are supported, as well as \"before\" and \"after\"), defaults to integer `0`\n * @param {function} callback a function to call once the move is completed, receives 3 arguments - the node, the new parent and the position\n * @param {Boolean} is_loaded internal parameter indicating if the parent node has been loaded\n * @param {Boolean} skip_redraw internal parameter indicating if the tree should be redrawn\n * @param {Boolean} instance internal parameter indicating if the node comes from another instance\n * @trigger model.jstree copy_node.jstree\n */\n copy_node: function copy_node(obj, par, pos, callback, is_loaded, skip_redraw, origin) {\n var t1, t2, dpc, tmp, i, j, node, old_par, new_par, old_ins, is_multi;\n par = this.get_node(par);\n pos = pos === undefined ? 0 : pos;\n\n if (!par) {\n return false;\n }\n\n if (!pos.toString().match(/^(before|after)$/) && !is_loaded && !this.is_loaded(par)) {\n return this.load_node(par, function () {\n this.copy_node(obj, par, pos, callback, true, false, origin);\n });\n }\n\n if ($.vakata.is_array(obj)) {\n if (obj.length === 1) {\n obj = obj[0];\n } else {\n //obj = obj.slice();\n for (t1 = 0, t2 = obj.length; t1 < t2; t1++) {\n if (tmp = this.copy_node(obj[t1], par, pos, callback, is_loaded, true, origin)) {\n par = tmp;\n pos = \"after\";\n }\n }\n\n this.redraw();\n return true;\n }\n }\n\n obj = obj && obj.id ? obj : this.get_node(obj);\n\n if (!obj || obj.id === $.jstree.root) {\n return false;\n }\n\n old_par = (obj.parent || $.jstree.root).toString();\n new_par = !pos.toString().match(/^(before|after)$/) || par.id === $.jstree.root ? par : this.get_node(par.parent);\n old_ins = origin ? origin : this._model.data[obj.id] ? this : $.jstree.reference(obj.id);\n is_multi = !old_ins || !old_ins._id || this._id !== old_ins._id;\n\n if (old_ins && old_ins._id) {\n obj = old_ins._model.data[obj.id];\n }\n\n if (par.id === $.jstree.root) {\n if (pos === \"before\") {\n pos = \"first\";\n }\n\n if (pos === \"after\") {\n pos = \"last\";\n }\n }\n\n switch (pos) {\n case \"before\":\n pos = $.inArray(par.id, new_par.children);\n break;\n\n case \"after\":\n pos = $.inArray(par.id, new_par.children) + 1;\n break;\n\n case \"inside\":\n case \"first\":\n pos = 0;\n break;\n\n case \"last\":\n pos = new_par.children.length;\n break;\n\n default:\n if (!pos) {\n pos = 0;\n }\n\n break;\n }\n\n if (pos > new_par.children.length) {\n pos = new_par.children.length;\n }\n\n if (!this.check(\"copy_node\", obj, new_par, pos, {\n 'core': true,\n 'origin': origin,\n 'is_multi': old_ins && old_ins._id && old_ins._id !== this._id,\n 'is_foreign': !old_ins || !old_ins._id\n })) {\n this.settings.core.error.call(this, this._data.core.last_error);\n return false;\n }\n\n node = old_ins ? old_ins.get_json(obj, {\n no_id: true,\n no_data: true,\n no_state: true\n }) : obj;\n\n if (!node) {\n return false;\n }\n\n if (node.id === true) {\n delete node.id;\n }\n\n node = this._parse_model_from_json(node, new_par.id, new_par.parents.concat());\n\n if (!node) {\n return false;\n }\n\n tmp = this.get_node(node);\n\n if (obj && obj.state && obj.state.loaded === false) {\n tmp.state.loaded = false;\n }\n\n dpc = [];\n dpc.push(node);\n dpc = dpc.concat(tmp.children_d);\n this.trigger('model', {\n \"nodes\": dpc,\n \"parent\": new_par.id\n }); // insert into new parent and up\n\n for (i = 0, j = new_par.parents.length; i < j; i++) {\n this._model.data[new_par.parents[i]].children_d = this._model.data[new_par.parents[i]].children_d.concat(dpc);\n }\n\n dpc = [];\n\n for (i = 0, j = new_par.children.length; i < j; i++) {\n dpc[i >= pos ? i + 1 : i] = new_par.children[i];\n }\n\n dpc[pos] = tmp.id;\n new_par.children = dpc;\n new_par.children_d.push(tmp.id);\n new_par.children_d = new_par.children_d.concat(tmp.children_d);\n\n if (new_par.id === $.jstree.root) {\n this._model.force_full_redraw = true;\n }\n\n if (!this._model.force_full_redraw) {\n this._node_changed(new_par.id);\n }\n\n if (!skip_redraw) {\n this.redraw(new_par.id === $.jstree.root);\n }\n\n if (callback) {\n callback.call(this, tmp, new_par, pos);\n }\n /**\n * triggered when a node is copied\n * @event\n * @name copy_node.jstree\n * @param {Object} node the copied node\n * @param {Object} original the original node\n * @param {String} parent the parent's ID\n * @param {Number} position the position of the node among the parent's children\n * @param {String} old_parent the old parent of the node\n * @param {Number} old_position the position of the original node\n * @param {Boolean} is_multi do the node and new parent belong to different instances\n * @param {jsTree} old_instance the instance the node came from\n * @param {jsTree} new_instance the instance of the new parent\n */\n\n\n this.trigger('copy_node', {\n \"node\": tmp,\n \"original\": obj,\n \"parent\": new_par.id,\n \"position\": pos,\n \"old_parent\": old_par,\n \"old_position\": old_ins && old_ins._id && old_par && old_ins._model.data[old_par] && old_ins._model.data[old_par].children ? $.inArray(obj.id, old_ins._model.data[old_par].children) : -1,\n 'is_multi': old_ins && old_ins._id && old_ins._id !== this._id,\n 'is_foreign': !old_ins || !old_ins._id,\n 'old_instance': old_ins,\n 'new_instance': this\n });\n return tmp.id;\n },\n\n /**\n * cut a node (a later call to `paste(obj)` would move the node)\n * @name cut(obj)\n * @param {mixed} obj multiple objects can be passed using an array\n * @trigger cut.jstree\n */\n cut: function cut(obj) {\n if (!obj) {\n obj = this._data.core.selected.concat();\n }\n\n if (!$.vakata.is_array(obj)) {\n obj = [obj];\n }\n\n if (!obj.length) {\n return false;\n }\n\n var tmp = [],\n o,\n t1,\n t2;\n\n for (t1 = 0, t2 = obj.length; t1 < t2; t1++) {\n o = this.get_node(obj[t1]);\n\n if (o && o.id && o.id !== $.jstree.root) {\n tmp.push(o);\n }\n }\n\n if (!tmp.length) {\n return false;\n }\n\n ccp_node = tmp;\n ccp_inst = this;\n ccp_mode = 'move_node';\n /**\n * triggered when nodes are added to the buffer for moving\n * @event\n * @name cut.jstree\n * @param {Array} node\n */\n\n this.trigger('cut', {\n \"node\": obj\n });\n },\n\n /**\n * copy a node (a later call to `paste(obj)` would copy the node)\n * @name copy(obj)\n * @param {mixed} obj multiple objects can be passed using an array\n * @trigger copy.jstree\n */\n copy: function copy(obj) {\n if (!obj) {\n obj = this._data.core.selected.concat();\n }\n\n if (!$.vakata.is_array(obj)) {\n obj = [obj];\n }\n\n if (!obj.length) {\n return false;\n }\n\n var tmp = [],\n o,\n t1,\n t2;\n\n for (t1 = 0, t2 = obj.length; t1 < t2; t1++) {\n o = this.get_node(obj[t1]);\n\n if (o && o.id && o.id !== $.jstree.root) {\n tmp.push(o);\n }\n }\n\n if (!tmp.length) {\n return false;\n }\n\n ccp_node = tmp;\n ccp_inst = this;\n ccp_mode = 'copy_node';\n /**\n * triggered when nodes are added to the buffer for copying\n * @event\n * @name copy.jstree\n * @param {Array} node\n */\n\n this.trigger('copy', {\n \"node\": obj\n });\n },\n\n /**\n * get the current buffer (any nodes that are waiting for a paste operation)\n * @name get_buffer()\n * @return {Object} an object consisting of `mode` (\"copy_node\" or \"move_node\"), `node` (an array of objects) and `inst` (the instance)\n */\n get_buffer: function get_buffer() {\n return {\n 'mode': ccp_mode,\n 'node': ccp_node,\n 'inst': ccp_inst\n };\n },\n\n /**\n * check if there is something in the buffer to paste\n * @name can_paste()\n * @return {Boolean}\n */\n can_paste: function can_paste() {\n return ccp_mode !== false && ccp_node !== false; // && ccp_inst._model.data[ccp_node];\n },\n\n /**\n * copy or move the previously cut or copied nodes to a new parent\n * @name paste(obj [, pos])\n * @param {mixed} obj the new parent\n * @param {mixed} pos the position to insert at (besides integer, \"first\" and \"last\" are supported), defaults to integer `0`\n * @trigger paste.jstree\n */\n paste: function paste(obj, pos) {\n obj = this.get_node(obj);\n\n if (!obj || !ccp_mode || !ccp_mode.match(/^(copy_node|move_node)$/) || !ccp_node) {\n return false;\n }\n\n if (this[ccp_mode](ccp_node, obj, pos, false, false, false, ccp_inst)) {\n /**\n * triggered when paste is invoked\n * @event\n * @name paste.jstree\n * @param {String} parent the ID of the receiving node\n * @param {Array} node the nodes in the buffer\n * @param {String} mode the performed operation - \"copy_node\" or \"move_node\"\n */\n this.trigger('paste', {\n \"parent\": obj.id,\n \"node\": ccp_node,\n \"mode\": ccp_mode\n });\n }\n\n ccp_node = false;\n ccp_mode = false;\n ccp_inst = false;\n },\n\n /**\n * clear the buffer of previously copied or cut nodes\n * @name clear_buffer()\n * @trigger clear_buffer.jstree\n */\n clear_buffer: function clear_buffer() {\n ccp_node = false;\n ccp_mode = false;\n ccp_inst = false;\n /**\n * triggered when the copy / cut buffer is cleared\n * @event\n * @name clear_buffer.jstree\n */\n\n this.trigger('clear_buffer');\n },\n\n /**\n * put a node in edit mode (input field to rename the node)\n * @name edit(obj [, default_text, callback])\n * @param {mixed} obj\n * @param {String} default_text the text to populate the input with (if omitted or set to a non-string value the node's text value is used)\n * @param {Function} callback a function to be called once the text box is blurred, it is called in the instance's scope and receives the node, a status parameter (true if the rename is successful, false otherwise), a boolean indicating if the user cancelled the edit and the original unescaped value provided by the user. You can also access the node's title using .text\n */\n edit: function edit(obj, default_text, callback) {\n var rtl,\n w,\n a,\n s,\n t,\n h1,\n h2,\n fn,\n tmp,\n cancel = false;\n obj = this.get_node(obj);\n\n if (!obj) {\n return false;\n }\n\n if (!this.check(\"edit\", obj, this.get_parent(obj))) {\n this.settings.core.error.call(this, this._data.core.last_error);\n return false;\n }\n\n tmp = obj;\n default_text = typeof default_text === 'string' ? default_text : obj.text;\n this.set_text(obj, \"\");\n obj = this._open_to(obj);\n tmp.text = default_text;\n rtl = this._data.core.rtl;\n w = this.element.width();\n this._data.core.focused = tmp.id;\n a = obj.children('.jstree-anchor').trigger('focus');\n s = $('');\n /*!\n oi = obj.children(\"i:visible\"),\n ai = a.children(\"i:visible\"),\n w1 = oi.width() * oi.length,\n w2 = ai.width() * ai.length,\n */\n\n t = default_text;\n h1 = $(\"<\" + \"div>\", {\n css: {\n \"position\": \"absolute\",\n \"top\": \"-200px\",\n \"left\": rtl ? \"0px\" : \"-1000px\",\n \"visibility\": \"hidden\"\n }\n }).appendTo(document.body);\n h2 = $(\"<\" + \"input />\", {\n \"value\": t,\n \"class\": \"jstree-rename-input\",\n // \"size\" : t.length,\n \"css\": {\n \"padding\": \"0\",\n \"border\": \"1px solid silver\",\n \"box-sizing\": \"border-box\",\n \"display\": \"inline-block\",\n \"height\": this._data.core.li_height + \"px\",\n \"lineHeight\": this._data.core.li_height + \"px\",\n \"width\": \"150px\" // will be set a bit further down\n\n },\n \"blur\": function (e) {\n e.stopImmediatePropagation();\n e.preventDefault();\n var i = s.children(\".jstree-rename-input\"),\n v = i.val(),\n f = this.settings.core.force_text,\n nv;\n\n if (v === \"\") {\n v = t;\n }\n\n h1.remove();\n s.replaceWith(a);\n s.remove();\n t = f ? t : $('
    ').append($.parseHTML(t)).html();\n obj = this.get_node(obj);\n this.set_text(obj, t);\n nv = !!this.rename_node(obj, f ? $('
    ').text(v).text() : $('
    ').append($.parseHTML(v)).html());\n\n if (!nv) {\n this.set_text(obj, t); // move this up? and fix #483\n }\n\n this._data.core.focused = tmp.id;\n setTimeout(function () {\n var node = this.get_node(tmp.id, true);\n\n if (node.length) {\n this._data.core.focused = tmp.id;\n node.children('.jstree-anchor').trigger('focus');\n }\n }.bind(this), 0);\n\n if (callback) {\n callback.call(this, tmp, nv, cancel, v);\n }\n\n h2 = null;\n }.bind(this),\n \"keydown\": function keydown(e) {\n var key = e.which;\n\n if (key === 27) {\n cancel = true;\n this.value = t;\n }\n\n if (key === 27 || key === 13 || key === 37 || key === 38 || key === 39 || key === 40 || key === 32) {\n e.stopImmediatePropagation();\n }\n\n if (key === 27 || key === 13) {\n e.preventDefault();\n this.blur();\n }\n },\n \"click\": function click(e) {\n e.stopImmediatePropagation();\n },\n \"mousedown\": function mousedown(e) {\n e.stopImmediatePropagation();\n },\n \"keyup\": function keyup(e) {\n h2.width(Math.min(h1.text(\"pW\" + this.value).width(), w));\n },\n \"keypress\": function keypress(e) {\n if (e.which === 13) {\n return false;\n }\n }\n });\n fn = {\n fontFamily: a.css('fontFamily') || '',\n fontSize: a.css('fontSize') || '',\n fontWeight: a.css('fontWeight') || '',\n fontStyle: a.css('fontStyle') || '',\n fontStretch: a.css('fontStretch') || '',\n fontVariant: a.css('fontVariant') || '',\n letterSpacing: a.css('letterSpacing') || '',\n wordSpacing: a.css('wordSpacing') || ''\n };\n s.attr('class', a.attr('class')).append(a.contents().clone()).append(h2);\n a.replaceWith(s);\n h1.css(fn);\n h2.css(fn).width(Math.min(h1.text(\"pW\" + h2[0].value).width(), w))[0].select();\n $(document).one('mousedown.jstree touchstart.jstree dnd_start.vakata', function (e) {\n if (h2 && e.target !== h2) {\n $(h2).trigger('blur');\n }\n });\n },\n\n /**\n * changes the theme\n * @name set_theme(theme_name [, theme_url])\n * @param {String} theme_name the name of the new theme to apply\n * @param {mixed} theme_url the location of the CSS file for this theme. Omit or set to `false` if you manually included the file. Set to `true` to autoload from the `core.themes.dir` directory.\n * @trigger set_theme.jstree\n */\n set_theme: function set_theme(theme_name, theme_url) {\n if (!theme_name) {\n return false;\n }\n\n if (theme_url === true) {\n var dir = this.settings.core.themes.dir;\n\n if (!dir) {\n dir = $.jstree.path + '/themes';\n }\n\n theme_url = dir + '/' + theme_name + '/style.css';\n }\n\n if (theme_url && $.inArray(theme_url, themes_loaded) === -1) {\n $('head').append('<' + 'link rel=\"stylesheet\" href=\"' + theme_url + '\" type=\"text/css\" />');\n themes_loaded.push(theme_url);\n }\n\n if (this._data.core.themes.name) {\n this.element.removeClass('jstree-' + this._data.core.themes.name);\n }\n\n this._data.core.themes.name = theme_name;\n this.element.addClass('jstree-' + theme_name);\n this.element[this.settings.core.themes.responsive ? 'addClass' : 'removeClass']('jstree-' + theme_name + '-responsive');\n /**\n * triggered when a theme is set\n * @event\n * @name set_theme.jstree\n * @param {String} theme the new theme\n */\n\n this.trigger('set_theme', {\n 'theme': theme_name\n });\n },\n\n /**\n * gets the name of the currently applied theme name\n * @name get_theme()\n * @return {String}\n */\n get_theme: function get_theme() {\n return this._data.core.themes.name;\n },\n\n /**\n * changes the theme variant (if the theme has variants)\n * @name set_theme_variant(variant_name)\n * @param {String|Boolean} variant_name the variant to apply (if `false` is used the current variant is removed)\n */\n set_theme_variant: function set_theme_variant(variant_name) {\n if (this._data.core.themes.variant) {\n this.element.removeClass('jstree-' + this._data.core.themes.name + '-' + this._data.core.themes.variant);\n }\n\n this._data.core.themes.variant = variant_name;\n\n if (variant_name) {\n this.element.addClass('jstree-' + this._data.core.themes.name + '-' + this._data.core.themes.variant);\n }\n },\n\n /**\n * gets the name of the currently applied theme variant\n * @name get_theme()\n * @return {String}\n */\n get_theme_variant: function get_theme_variant() {\n return this._data.core.themes.variant;\n },\n\n /**\n * shows a striped background on the container (if the theme supports it)\n * @name show_stripes()\n */\n show_stripes: function show_stripes() {\n this._data.core.themes.stripes = true;\n this.get_container_ul().addClass(\"jstree-striped\");\n /**\n * triggered when stripes are shown\n * @event\n * @name show_stripes.jstree\n */\n\n this.trigger('show_stripes');\n },\n\n /**\n * hides the striped background on the container\n * @name hide_stripes()\n */\n hide_stripes: function hide_stripes() {\n this._data.core.themes.stripes = false;\n this.get_container_ul().removeClass(\"jstree-striped\");\n /**\n * triggered when stripes are hidden\n * @event\n * @name hide_stripes.jstree\n */\n\n this.trigger('hide_stripes');\n },\n\n /**\n * toggles the striped background on the container\n * @name toggle_stripes()\n */\n toggle_stripes: function toggle_stripes() {\n if (this._data.core.themes.stripes) {\n this.hide_stripes();\n } else {\n this.show_stripes();\n }\n },\n\n /**\n * shows the connecting dots (if the theme supports it)\n * @name show_dots()\n */\n show_dots: function show_dots() {\n this._data.core.themes.dots = true;\n this.get_container_ul().removeClass(\"jstree-no-dots\");\n /**\n * triggered when dots are shown\n * @event\n * @name show_dots.jstree\n */\n\n this.trigger('show_dots');\n },\n\n /**\n * hides the connecting dots\n * @name hide_dots()\n */\n hide_dots: function hide_dots() {\n this._data.core.themes.dots = false;\n this.get_container_ul().addClass(\"jstree-no-dots\");\n /**\n * triggered when dots are hidden\n * @event\n * @name hide_dots.jstree\n */\n\n this.trigger('hide_dots');\n },\n\n /**\n * toggles the connecting dots\n * @name toggle_dots()\n */\n toggle_dots: function toggle_dots() {\n if (this._data.core.themes.dots) {\n this.hide_dots();\n } else {\n this.show_dots();\n }\n },\n\n /**\n * show the node icons\n * @name show_icons()\n */\n show_icons: function show_icons() {\n this._data.core.themes.icons = true;\n this.get_container_ul().removeClass(\"jstree-no-icons\");\n /**\n * triggered when icons are shown\n * @event\n * @name show_icons.jstree\n */\n\n this.trigger('show_icons');\n },\n\n /**\n * hide the node icons\n * @name hide_icons()\n */\n hide_icons: function hide_icons() {\n this._data.core.themes.icons = false;\n this.get_container_ul().addClass(\"jstree-no-icons\");\n /**\n * triggered when icons are hidden\n * @event\n * @name hide_icons.jstree\n */\n\n this.trigger('hide_icons');\n },\n\n /**\n * toggle the node icons\n * @name toggle_icons()\n */\n toggle_icons: function toggle_icons() {\n if (this._data.core.themes.icons) {\n this.hide_icons();\n } else {\n this.show_icons();\n }\n },\n\n /**\n * show the node ellipsis\n * @name show_icons()\n */\n show_ellipsis: function show_ellipsis() {\n this._data.core.themes.ellipsis = true;\n this.get_container_ul().addClass(\"jstree-ellipsis\");\n /**\n * triggered when ellisis is shown\n * @event\n * @name show_ellipsis.jstree\n */\n\n this.trigger('show_ellipsis');\n },\n\n /**\n * hide the node ellipsis\n * @name hide_ellipsis()\n */\n hide_ellipsis: function hide_ellipsis() {\n this._data.core.themes.ellipsis = false;\n this.get_container_ul().removeClass(\"jstree-ellipsis\");\n /**\n * triggered when ellisis is hidden\n * @event\n * @name hide_ellipsis.jstree\n */\n\n this.trigger('hide_ellipsis');\n },\n\n /**\n * toggle the node ellipsis\n * @name toggle_icons()\n */\n toggle_ellipsis: function toggle_ellipsis() {\n if (this._data.core.themes.ellipsis) {\n this.hide_ellipsis();\n } else {\n this.show_ellipsis();\n }\n },\n\n /**\n * set the node icon for a node\n * @name set_icon(obj, icon)\n * @param {mixed} obj\n * @param {String} icon the new icon - can be a path to an icon or a className, if using an image that is in the current directory use a `./` prefix, otherwise it will be detected as a class\n */\n set_icon: function set_icon(obj, icon) {\n var t1, t2, dom, old;\n\n if ($.vakata.is_array(obj)) {\n obj = obj.slice();\n\n for (t1 = 0, t2 = obj.length; t1 < t2; t1++) {\n this.set_icon(obj[t1], icon);\n }\n\n return true;\n }\n\n obj = this.get_node(obj);\n\n if (!obj || obj.id === $.jstree.root) {\n return false;\n }\n\n old = obj.icon;\n obj.icon = icon === true || icon === null || icon === undefined || icon === '' ? true : icon;\n dom = this.get_node(obj, true).children(\".jstree-anchor\").children(\".jstree-themeicon\");\n\n if (icon === false) {\n dom.removeClass('jstree-themeicon-custom ' + old).css(\"background\", \"\").removeAttr(\"rel\");\n this.hide_icon(obj);\n } else if (icon === true || icon === null || icon === undefined || icon === '') {\n dom.removeClass('jstree-themeicon-custom ' + old).css(\"background\", \"\").removeAttr(\"rel\");\n\n if (old === false) {\n this.show_icon(obj);\n }\n } else if (icon.indexOf(\"/\") === -1 && icon.indexOf(\".\") === -1) {\n dom.removeClass(old).css(\"background\", \"\");\n dom.addClass(icon + ' jstree-themeicon-custom').attr(\"rel\", icon);\n\n if (old === false) {\n this.show_icon(obj);\n }\n } else {\n dom.removeClass(old).css(\"background\", \"\");\n dom.addClass('jstree-themeicon-custom').css(\"background\", \"url('\" + icon + \"') center center no-repeat\").attr(\"rel\", icon);\n\n if (old === false) {\n this.show_icon(obj);\n }\n }\n\n return true;\n },\n\n /**\n * get the node icon for a node\n * @name get_icon(obj)\n * @param {mixed} obj\n * @return {String}\n */\n get_icon: function get_icon(obj) {\n obj = this.get_node(obj);\n return !obj || obj.id === $.jstree.root ? false : obj.icon;\n },\n\n /**\n * hide the icon on an individual node\n * @name hide_icon(obj)\n * @param {mixed} obj\n */\n hide_icon: function hide_icon(obj) {\n var t1, t2;\n\n if ($.vakata.is_array(obj)) {\n obj = obj.slice();\n\n for (t1 = 0, t2 = obj.length; t1 < t2; t1++) {\n this.hide_icon(obj[t1]);\n }\n\n return true;\n }\n\n obj = this.get_node(obj);\n\n if (!obj || obj === $.jstree.root) {\n return false;\n }\n\n obj.icon = false;\n this.get_node(obj, true).children(\".jstree-anchor\").children(\".jstree-themeicon\").addClass('jstree-themeicon-hidden');\n return true;\n },\n\n /**\n * show the icon on an individual node\n * @name show_icon(obj)\n * @param {mixed} obj\n */\n show_icon: function show_icon(obj) {\n var t1, t2, dom;\n\n if ($.vakata.is_array(obj)) {\n obj = obj.slice();\n\n for (t1 = 0, t2 = obj.length; t1 < t2; t1++) {\n this.show_icon(obj[t1]);\n }\n\n return true;\n }\n\n obj = this.get_node(obj);\n\n if (!obj || obj === $.jstree.root) {\n return false;\n }\n\n dom = this.get_node(obj, true);\n obj.icon = dom.length ? dom.children(\".jstree-anchor\").children(\".jstree-themeicon\").attr('rel') : true;\n\n if (!obj.icon) {\n obj.icon = true;\n }\n\n dom.children(\".jstree-anchor\").children(\".jstree-themeicon\").removeClass('jstree-themeicon-hidden');\n return true;\n }\n }; // helpers\n\n $.vakata = {}; // collect attributes\n\n $.vakata.attributes = function (node, with_values) {\n node = $(node)[0];\n var attr = with_values ? {} : [];\n\n if (node && node.attributes) {\n $.each(node.attributes, function (i, v) {\n if ($.inArray(v.name.toLowerCase(), ['style', 'contenteditable', 'hasfocus', 'tabindex']) !== -1) {\n return;\n }\n\n if (v.value !== null && $.vakata.trim(v.value) !== '') {\n if (with_values) {\n attr[v.name] = v.value;\n } else {\n attr.push(v.name);\n }\n }\n });\n }\n\n return attr;\n };\n\n $.vakata.array_unique = function (array) {\n var a = [],\n i,\n j,\n l,\n o = {};\n\n for (i = 0, l = array.length; i < l; i++) {\n if (o[array[i]] === undefined) {\n a.push(array[i]);\n o[array[i]] = true;\n }\n }\n\n return a;\n }; // remove item from array\n\n\n $.vakata.array_remove = function (array, from) {\n array.splice(from, 1);\n return array; //var rest = array.slice((to || from) + 1 || array.length);\n //array.length = from < 0 ? array.length + from : from;\n //array.push.apply(array, rest);\n //return array;\n }; // remove item from array\n\n\n $.vakata.array_remove_item = function (array, item) {\n var tmp = $.inArray(item, array);\n return tmp !== -1 ? $.vakata.array_remove(array, tmp) : array;\n };\n\n $.vakata.array_filter = function (c, a, b, d, e) {\n if (c.filter) {\n return c.filter(a, b);\n }\n\n d = [];\n\n for (e in c) {\n if (~~e + '' === e + '' && e >= 0 && a.call(b, c[e], +e, c)) {\n d.push(c[e]);\n }\n }\n\n return d;\n };\n\n $.vakata.trim = function (text) {\n return String.prototype.trim ? String.prototype.trim.call(text.toString()) : text.toString().replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n };\n\n $.vakata.is_function = function (obj) {\n return typeof obj === \"function\" && typeof obj.nodeType !== \"number\";\n };\n\n $.vakata.is_array = Array.isArray || function (obj) {\n return Object.prototype.toString.call(obj) === \"[object Array]\";\n }; // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_objects/Function/bind#polyfill\n\n\n if (!Function.prototype.bind) {\n Function.prototype.bind = function () {\n var thatFunc = this,\n thatArg = arguments[0];\n var args = Array.prototype.slice.call(arguments, 1);\n\n if (typeof thatFunc !== 'function') {\n // closest thing possible to the ECMAScript 5\n // internal IsCallable function\n throw new TypeError('Function.prototype.bind - what is trying to be bound is not callable');\n }\n\n return function () {\n var funcArgs = args.concat(Array.prototype.slice.call(arguments));\n return thatFunc.apply(thatArg, funcArgs);\n };\n };\n }\n /**\n * ### Changed plugin\n *\n * This plugin adds more information to the `changed.jstree` event. The new data is contained in the `changed` event data property, and contains a lists of `selected` and `deselected` nodes.\n */\n\n\n $.jstree.plugins.changed = function (options, parent) {\n var last = [];\n\n this.trigger = function (ev, data) {\n var i, j;\n\n if (!data) {\n data = {};\n }\n\n if (ev.replace('.jstree', '') === 'changed') {\n data.changed = {\n selected: [],\n deselected: []\n };\n var tmp = {};\n\n for (i = 0, j = last.length; i < j; i++) {\n tmp[last[i]] = 1;\n }\n\n for (i = 0, j = data.selected.length; i < j; i++) {\n if (!tmp[data.selected[i]]) {\n data.changed.selected.push(data.selected[i]);\n } else {\n tmp[data.selected[i]] = 2;\n }\n }\n\n for (i = 0, j = last.length; i < j; i++) {\n if (tmp[last[i]] === 1) {\n data.changed.deselected.push(last[i]);\n }\n }\n\n last = data.selected.slice();\n }\n /**\n * triggered when selection changes (the \"changed\" plugin enhances the original event with more data)\n * @event\n * @name changed.jstree\n * @param {Object} node\n * @param {Object} action the action that caused the selection to change\n * @param {Array} selected the current selection\n * @param {Object} changed an object containing two properties `selected` and `deselected` - both arrays of node IDs, which were selected or deselected since the last changed event\n * @param {Object} event the event (if any) that triggered this changed event\n * @plugin changed\n */\n\n\n parent.trigger.call(this, ev, data);\n };\n\n this.refresh = function (skip_loading, forget_state) {\n last = [];\n return parent.refresh.apply(this, arguments);\n };\n };\n /**\n * ### Checkbox plugin\n *\n * This plugin renders checkbox icons in front of each node, making multiple selection much easier.\n * It also supports tri-state behavior, meaning that if a node has a few of its children checked it will be rendered as undetermined, and state will be propagated up.\n */\n\n\n var _i = document.createElement('I');\n\n _i.className = 'jstree-icon jstree-checkbox';\n\n _i.setAttribute('role', 'presentation');\n /**\n * stores all defaults for the checkbox plugin\n * @name $.jstree.defaults.checkbox\n * @plugin checkbox\n */\n\n\n $.jstree.defaults.checkbox = {\n /**\n * a boolean indicating if checkboxes should be visible (can be changed at a later time using `show_checkboxes()` and `hide_checkboxes`). Defaults to `true`.\n * @name $.jstree.defaults.checkbox.visible\n * @plugin checkbox\n */\n visible: true,\n\n /**\n * a boolean indicating if checkboxes should cascade down and have an undetermined state. Defaults to `true`.\n * @name $.jstree.defaults.checkbox.three_state\n * @plugin checkbox\n */\n three_state: true,\n\n /**\n * a boolean indicating if clicking anywhere on the node should act as clicking on the checkbox. Defaults to `true`.\n * @name $.jstree.defaults.checkbox.whole_node\n * @plugin checkbox\n */\n whole_node: true,\n\n /**\n * a boolean indicating if the selected style of a node should be kept, or removed. Defaults to `true`.\n * @name $.jstree.defaults.checkbox.keep_selected_style\n * @plugin checkbox\n */\n keep_selected_style: true,\n\n /**\n * This setting controls how cascading and undetermined nodes are applied.\n * If 'up' is in the string - cascading up is enabled, if 'down' is in the string - cascading down is enabled, if 'undetermined' is in the string - undetermined nodes will be used.\n * If `three_state` is set to `true` this setting is automatically set to 'up+down+undetermined'. Defaults to ''.\n * @name $.jstree.defaults.checkbox.cascade\n * @plugin checkbox\n */\n cascade: '',\n\n /**\n * This setting controls if checkbox are bound to the general tree selection or to an internal array maintained by the checkbox plugin. Defaults to `true`, only set to `false` if you know exactly what you are doing.\n * @name $.jstree.defaults.checkbox.tie_selection\n * @plugin checkbox\n */\n tie_selection: true,\n\n /**\n * This setting controls if cascading down affects disabled checkboxes\n * @name $.jstree.defaults.checkbox.cascade_to_disabled\n * @plugin checkbox\n */\n cascade_to_disabled: true,\n\n /**\n * This setting controls if cascading down affects hidden checkboxes\n * @name $.jstree.defaults.checkbox.cascade_to_hidden\n * @plugin checkbox\n */\n cascade_to_hidden: true\n };\n\n $.jstree.plugins.checkbox = function (options, parent) {\n this.bind = function () {\n parent.bind.call(this);\n this._data.checkbox.uto = false;\n this._data.checkbox.selected = [];\n\n if (this.settings.checkbox.three_state) {\n this.settings.checkbox.cascade = 'up+down+undetermined';\n }\n\n this.element.on(\"init.jstree\", function () {\n this._data.checkbox.visible = this.settings.checkbox.visible;\n\n if (!this.settings.checkbox.keep_selected_style) {\n this.element.addClass('jstree-checkbox-no-clicked');\n }\n\n if (this.settings.checkbox.tie_selection) {\n this.element.addClass('jstree-checkbox-selection');\n }\n }.bind(this)).on(\"loading.jstree\", function () {\n this[this._data.checkbox.visible ? 'show_checkboxes' : 'hide_checkboxes']();\n }.bind(this));\n\n if (this.settings.checkbox.cascade.indexOf('undetermined') !== -1) {\n this.element.on('changed.jstree uncheck_node.jstree check_node.jstree uncheck_all.jstree check_all.jstree move_node.jstree copy_node.jstree redraw.jstree open_node.jstree', function () {\n // only if undetermined is in setting\n if (this._data.checkbox.uto) {\n clearTimeout(this._data.checkbox.uto);\n }\n\n this._data.checkbox.uto = setTimeout(this._undetermined.bind(this), 50);\n }.bind(this));\n }\n\n if (!this.settings.checkbox.tie_selection) {\n this.element.on('model.jstree', function (e, data) {\n var m = this._model.data,\n p = m[data.parent],\n dpc = data.nodes,\n i,\n j;\n\n for (i = 0, j = dpc.length; i < j; i++) {\n m[dpc[i]].state.checked = m[dpc[i]].state.checked || m[dpc[i]].original && m[dpc[i]].original.state && m[dpc[i]].original.state.checked;\n\n if (m[dpc[i]].state.checked) {\n this._data.checkbox.selected.push(dpc[i]);\n }\n }\n }.bind(this));\n }\n\n if (this.settings.checkbox.cascade.indexOf('up') !== -1 || this.settings.checkbox.cascade.indexOf('down') !== -1) {\n this.element.on('model.jstree', function (e, data) {\n var m = this._model.data,\n p = m[data.parent],\n dpc = data.nodes,\n chd = [],\n c,\n i,\n j,\n k,\n l,\n tmp,\n s = this.settings.checkbox.cascade,\n t = this.settings.checkbox.tie_selection;\n\n if (s.indexOf('down') !== -1) {\n // apply down\n if (p.state[t ? 'selected' : 'checked']) {\n for (i = 0, j = dpc.length; i < j; i++) {\n m[dpc[i]].state[t ? 'selected' : 'checked'] = true;\n }\n\n this._data[t ? 'core' : 'checkbox'].selected = this._data[t ? 'core' : 'checkbox'].selected.concat(dpc);\n } else {\n for (i = 0, j = dpc.length; i < j; i++) {\n if (m[dpc[i]].state[t ? 'selected' : 'checked']) {\n for (k = 0, l = m[dpc[i]].children_d.length; k < l; k++) {\n m[m[dpc[i]].children_d[k]].state[t ? 'selected' : 'checked'] = true;\n }\n\n this._data[t ? 'core' : 'checkbox'].selected = this._data[t ? 'core' : 'checkbox'].selected.concat(m[dpc[i]].children_d);\n }\n }\n }\n }\n\n if (s.indexOf('up') !== -1) {\n // apply up\n for (i = 0, j = p.children_d.length; i < j; i++) {\n if (!m[p.children_d[i]].children.length) {\n chd.push(m[p.children_d[i]].parent);\n }\n }\n\n chd = $.vakata.array_unique(chd);\n\n for (k = 0, l = chd.length; k < l; k++) {\n p = m[chd[k]];\n\n while (p && p.id !== $.jstree.root) {\n c = 0;\n\n for (i = 0, j = p.children.length; i < j; i++) {\n c += m[p.children[i]].state[t ? 'selected' : 'checked'];\n }\n\n if (c === j) {\n p.state[t ? 'selected' : 'checked'] = true;\n\n this._data[t ? 'core' : 'checkbox'].selected.push(p.id);\n\n tmp = this.get_node(p, true);\n\n if (tmp && tmp.length) {\n tmp.attr('aria-selected', true).children('.jstree-anchor').addClass(t ? 'jstree-clicked' : 'jstree-checked');\n }\n } else {\n break;\n }\n\n p = this.get_node(p.parent);\n }\n }\n }\n\n this._data[t ? 'core' : 'checkbox'].selected = $.vakata.array_unique(this._data[t ? 'core' : 'checkbox'].selected);\n }.bind(this)).on(this.settings.checkbox.tie_selection ? 'select_node.jstree' : 'check_node.jstree', function (e, data) {\n var self = this,\n obj = data.node,\n m = this._model.data,\n par = this.get_node(obj.parent),\n i,\n j,\n c,\n tmp,\n s = this.settings.checkbox.cascade,\n t = this.settings.checkbox.tie_selection,\n sel = {},\n cur = this._data[t ? 'core' : 'checkbox'].selected;\n\n for (i = 0, j = cur.length; i < j; i++) {\n sel[cur[i]] = true;\n } // apply down\n\n\n if (s.indexOf('down') !== -1) {\n //this._data[ t ? 'core' : 'checkbox' ].selected = $.vakata.array_unique(this._data[ t ? 'core' : 'checkbox' ].selected.concat(obj.children_d));\n var selectedIds = this._cascade_new_checked_state(obj.id, true);\n\n var temp = obj.children_d.concat(obj.id);\n\n for (i = 0, j = temp.length; i < j; i++) {\n if (selectedIds.indexOf(temp[i]) > -1) {\n sel[temp[i]] = true;\n } else {\n delete sel[temp[i]];\n }\n }\n } // apply up\n\n\n if (s.indexOf('up') !== -1) {\n while (par && par.id !== $.jstree.root) {\n c = 0;\n\n for (i = 0, j = par.children.length; i < j; i++) {\n c += m[par.children[i]].state[t ? 'selected' : 'checked'];\n }\n\n if (c === j) {\n par.state[t ? 'selected' : 'checked'] = true;\n sel[par.id] = true; //this._data[ t ? 'core' : 'checkbox' ].selected.push(par.id);\n\n tmp = this.get_node(par, true);\n\n if (tmp && tmp.length) {\n tmp.attr('aria-selected', true).children('.jstree-anchor').addClass(t ? 'jstree-clicked' : 'jstree-checked');\n }\n } else {\n break;\n }\n\n par = this.get_node(par.parent);\n }\n }\n\n cur = [];\n\n for (i in sel) {\n if (sel.hasOwnProperty(i)) {\n cur.push(i);\n }\n }\n\n this._data[t ? 'core' : 'checkbox'].selected = cur;\n }.bind(this)).on(this.settings.checkbox.tie_selection ? 'deselect_all.jstree' : 'uncheck_all.jstree', function (e, data) {\n var obj = this.get_node($.jstree.root),\n m = this._model.data,\n i,\n j,\n tmp;\n\n for (i = 0, j = obj.children_d.length; i < j; i++) {\n tmp = m[obj.children_d[i]];\n\n if (tmp && tmp.original && tmp.original.state && tmp.original.state.undetermined) {\n tmp.original.state.undetermined = false;\n }\n }\n }.bind(this)).on(this.settings.checkbox.tie_selection ? 'deselect_node.jstree' : 'uncheck_node.jstree', function (e, data) {\n var self = this,\n obj = data.node,\n dom = this.get_node(obj, true),\n i,\n j,\n tmp,\n s = this.settings.checkbox.cascade,\n t = this.settings.checkbox.tie_selection,\n cur = this._data[t ? 'core' : 'checkbox'].selected,\n sel = {},\n stillSelectedIds = [],\n allIds = obj.children_d.concat(obj.id); // apply down\n\n if (s.indexOf('down') !== -1) {\n var selectedIds = this._cascade_new_checked_state(obj.id, false);\n\n cur = $.vakata.array_filter(cur, function (id) {\n return allIds.indexOf(id) === -1 || selectedIds.indexOf(id) > -1;\n });\n } // only apply up if cascade up is enabled and if this node is not selected\n // (if all child nodes are disabled and cascade_to_disabled === false then this node will till be selected).\n\n\n if (s.indexOf('up') !== -1 && cur.indexOf(obj.id) === -1) {\n for (i = 0, j = obj.parents.length; i < j; i++) {\n tmp = this._model.data[obj.parents[i]];\n tmp.state[t ? 'selected' : 'checked'] = false;\n\n if (tmp && tmp.original && tmp.original.state && tmp.original.state.undetermined) {\n tmp.original.state.undetermined = false;\n }\n\n tmp = this.get_node(obj.parents[i], true);\n\n if (tmp && tmp.length) {\n tmp.attr('aria-selected', false).children('.jstree-anchor').removeClass(t ? 'jstree-clicked' : 'jstree-checked');\n }\n }\n\n cur = $.vakata.array_filter(cur, function (id) {\n return obj.parents.indexOf(id) === -1;\n });\n }\n\n this._data[t ? 'core' : 'checkbox'].selected = cur;\n }.bind(this));\n }\n\n if (this.settings.checkbox.cascade.indexOf('up') !== -1) {\n this.element.on('delete_node.jstree', function (e, data) {\n // apply up (whole handler)\n var p = this.get_node(data.parent),\n m = this._model.data,\n i,\n j,\n c,\n tmp,\n t = this.settings.checkbox.tie_selection;\n\n while (p && p.id !== $.jstree.root && !p.state[t ? 'selected' : 'checked']) {\n c = 0;\n\n for (i = 0, j = p.children.length; i < j; i++) {\n c += m[p.children[i]].state[t ? 'selected' : 'checked'];\n }\n\n if (j > 0 && c === j) {\n p.state[t ? 'selected' : 'checked'] = true;\n\n this._data[t ? 'core' : 'checkbox'].selected.push(p.id);\n\n tmp = this.get_node(p, true);\n\n if (tmp && tmp.length) {\n tmp.attr('aria-selected', true).children('.jstree-anchor').addClass(t ? 'jstree-clicked' : 'jstree-checked');\n }\n } else {\n break;\n }\n\n p = this.get_node(p.parent);\n }\n }.bind(this)).on('move_node.jstree', function (e, data) {\n // apply up (whole handler)\n var is_multi = data.is_multi,\n old_par = data.old_parent,\n new_par = this.get_node(data.parent),\n m = this._model.data,\n p,\n c,\n i,\n j,\n tmp,\n t = this.settings.checkbox.tie_selection;\n\n if (!is_multi) {\n p = this.get_node(old_par);\n\n while (p && p.id !== $.jstree.root && !p.state[t ? 'selected' : 'checked']) {\n c = 0;\n\n for (i = 0, j = p.children.length; i < j; i++) {\n c += m[p.children[i]].state[t ? 'selected' : 'checked'];\n }\n\n if (j > 0 && c === j) {\n p.state[t ? 'selected' : 'checked'] = true;\n\n this._data[t ? 'core' : 'checkbox'].selected.push(p.id);\n\n tmp = this.get_node(p, true);\n\n if (tmp && tmp.length) {\n tmp.attr('aria-selected', true).children('.jstree-anchor').addClass(t ? 'jstree-clicked' : 'jstree-checked');\n }\n } else {\n break;\n }\n\n p = this.get_node(p.parent);\n }\n }\n\n p = new_par;\n\n while (p && p.id !== $.jstree.root) {\n c = 0;\n\n for (i = 0, j = p.children.length; i < j; i++) {\n c += m[p.children[i]].state[t ? 'selected' : 'checked'];\n }\n\n if (c === j) {\n if (!p.state[t ? 'selected' : 'checked']) {\n p.state[t ? 'selected' : 'checked'] = true;\n\n this._data[t ? 'core' : 'checkbox'].selected.push(p.id);\n\n tmp = this.get_node(p, true);\n\n if (tmp && tmp.length) {\n tmp.attr('aria-selected', true).children('.jstree-anchor').addClass(t ? 'jstree-clicked' : 'jstree-checked');\n }\n }\n } else {\n if (p.state[t ? 'selected' : 'checked']) {\n p.state[t ? 'selected' : 'checked'] = false;\n this._data[t ? 'core' : 'checkbox'].selected = $.vakata.array_remove_item(this._data[t ? 'core' : 'checkbox'].selected, p.id);\n tmp = this.get_node(p, true);\n\n if (tmp && tmp.length) {\n tmp.attr('aria-selected', false).children('.jstree-anchor').removeClass(t ? 'jstree-clicked' : 'jstree-checked');\n }\n } else {\n break;\n }\n }\n\n p = this.get_node(p.parent);\n }\n }.bind(this));\n }\n };\n /**\n * get an array of all nodes whose state is \"undetermined\"\n * @name get_undetermined([full])\n * @param {boolean} full: if set to `true` the returned array will consist of the full node objects, otherwise - only IDs will be returned\n * @return {Array}\n * @plugin checkbox\n */\n\n\n this.get_undetermined = function (full) {\n if (this.settings.checkbox.cascade.indexOf('undetermined') === -1) {\n return [];\n }\n\n var i,\n j,\n k,\n l,\n o = {},\n m = this._model.data,\n t = this.settings.checkbox.tie_selection,\n s = this._data[t ? 'core' : 'checkbox'].selected,\n p = [],\n tt = this,\n r = [];\n\n for (i = 0, j = s.length; i < j; i++) {\n if (m[s[i]] && m[s[i]].parents) {\n for (k = 0, l = m[s[i]].parents.length; k < l; k++) {\n if (o[m[s[i]].parents[k]] !== undefined) {\n break;\n }\n\n if (m[s[i]].parents[k] !== $.jstree.root) {\n o[m[s[i]].parents[k]] = true;\n p.push(m[s[i]].parents[k]);\n }\n }\n }\n } // attempt for server side undetermined state\n\n\n this.element.find('.jstree-closed').not(':has(.jstree-children)').each(function () {\n var tmp = tt.get_node(this),\n tmp2;\n\n if (!tmp) {\n return;\n }\n\n if (!tmp.state.loaded) {\n if (tmp.original && tmp.original.state && tmp.original.state.undetermined && tmp.original.state.undetermined === true) {\n if (o[tmp.id] === undefined && tmp.id !== $.jstree.root) {\n o[tmp.id] = true;\n p.push(tmp.id);\n }\n\n for (k = 0, l = tmp.parents.length; k < l; k++) {\n if (o[tmp.parents[k]] === undefined && tmp.parents[k] !== $.jstree.root) {\n o[tmp.parents[k]] = true;\n p.push(tmp.parents[k]);\n }\n }\n }\n } else {\n for (i = 0, j = tmp.children_d.length; i < j; i++) {\n tmp2 = m[tmp.children_d[i]];\n\n if (!tmp2.state.loaded && tmp2.original && tmp2.original.state && tmp2.original.state.undetermined && tmp2.original.state.undetermined === true) {\n if (o[tmp2.id] === undefined && tmp2.id !== $.jstree.root) {\n o[tmp2.id] = true;\n p.push(tmp2.id);\n }\n\n for (k = 0, l = tmp2.parents.length; k < l; k++) {\n if (o[tmp2.parents[k]] === undefined && tmp2.parents[k] !== $.jstree.root) {\n o[tmp2.parents[k]] = true;\n p.push(tmp2.parents[k]);\n }\n }\n }\n }\n }\n });\n\n for (i = 0, j = p.length; i < j; i++) {\n if (!m[p[i]].state[t ? 'selected' : 'checked']) {\n r.push(full ? m[p[i]] : p[i]);\n }\n }\n\n return r;\n };\n /**\n * set the undetermined state where and if necessary. Used internally.\n * @private\n * @name _undetermined()\n * @plugin checkbox\n */\n\n\n this._undetermined = function () {\n if (this.element === null) {\n return;\n }\n\n var p = this.get_undetermined(false),\n i,\n j,\n s;\n this.element.find('.jstree-undetermined').removeClass('jstree-undetermined');\n\n for (i = 0, j = p.length; i < j; i++) {\n s = this.get_node(p[i], true);\n\n if (s && s.length) {\n s.children('.jstree-anchor').children('.jstree-checkbox').addClass('jstree-undetermined');\n }\n }\n };\n\n this.redraw_node = function (obj, deep, is_callback, force_render) {\n obj = parent.redraw_node.apply(this, arguments);\n\n if (obj) {\n var i,\n j,\n tmp = null,\n icon = null;\n\n for (i = 0, j = obj.childNodes.length; i < j; i++) {\n if (obj.childNodes[i] && obj.childNodes[i].className && obj.childNodes[i].className.indexOf(\"jstree-anchor\") !== -1) {\n tmp = obj.childNodes[i];\n break;\n }\n }\n\n if (tmp) {\n if (!this.settings.checkbox.tie_selection && this._model.data[obj.id].state.checked) {\n tmp.className += ' jstree-checked';\n }\n\n icon = _i.cloneNode(false);\n\n if (this._model.data[obj.id].state.checkbox_disabled) {\n icon.className += ' jstree-checkbox-disabled';\n }\n\n tmp.insertBefore(icon, tmp.childNodes[0]);\n }\n }\n\n if (!is_callback && this.settings.checkbox.cascade.indexOf('undetermined') !== -1) {\n if (this._data.checkbox.uto) {\n clearTimeout(this._data.checkbox.uto);\n }\n\n this._data.checkbox.uto = setTimeout(this._undetermined.bind(this), 50);\n }\n\n return obj;\n };\n /**\n * show the node checkbox icons\n * @name show_checkboxes()\n * @plugin checkbox\n */\n\n\n this.show_checkboxes = function () {\n this._data.core.themes.checkboxes = true;\n this.get_container_ul().removeClass(\"jstree-no-checkboxes\");\n };\n /**\n * hide the node checkbox icons\n * @name hide_checkboxes()\n * @plugin checkbox\n */\n\n\n this.hide_checkboxes = function () {\n this._data.core.themes.checkboxes = false;\n this.get_container_ul().addClass(\"jstree-no-checkboxes\");\n };\n /**\n * toggle the node icons\n * @name toggle_checkboxes()\n * @plugin checkbox\n */\n\n\n this.toggle_checkboxes = function () {\n if (this._data.core.themes.checkboxes) {\n this.hide_checkboxes();\n } else {\n this.show_checkboxes();\n }\n };\n /**\n * checks if a node is in an undetermined state\n * @name is_undetermined(obj)\n * @param {mixed} obj\n * @return {Boolean}\n */\n\n\n this.is_undetermined = function (obj) {\n obj = this.get_node(obj);\n var s = this.settings.checkbox.cascade,\n i,\n j,\n t = this.settings.checkbox.tie_selection,\n d = this._data[t ? 'core' : 'checkbox'].selected,\n m = this._model.data;\n\n if (!obj || obj.state[t ? 'selected' : 'checked'] === true || s.indexOf('undetermined') === -1 || s.indexOf('down') === -1 && s.indexOf('up') === -1) {\n return false;\n }\n\n if (!obj.state.loaded && obj.original.state.undetermined === true) {\n return true;\n }\n\n for (i = 0, j = obj.children_d.length; i < j; i++) {\n if ($.inArray(obj.children_d[i], d) !== -1 || !m[obj.children_d[i]].state.loaded && m[obj.children_d[i]].original.state.undetermined) {\n return true;\n }\n }\n\n return false;\n };\n /**\n * disable a node's checkbox\n * @name disable_checkbox(obj)\n * @param {mixed} obj an array can be used too\n * @trigger disable_checkbox.jstree\n * @plugin checkbox\n */\n\n\n this.disable_checkbox = function (obj) {\n var t1, t2, dom;\n\n if ($.vakata.is_array(obj)) {\n obj = obj.slice();\n\n for (t1 = 0, t2 = obj.length; t1 < t2; t1++) {\n this.disable_checkbox(obj[t1]);\n }\n\n return true;\n }\n\n obj = this.get_node(obj);\n\n if (!obj || obj.id === $.jstree.root) {\n return false;\n }\n\n dom = this.get_node(obj, true);\n\n if (!obj.state.checkbox_disabled) {\n obj.state.checkbox_disabled = true;\n\n if (dom && dom.length) {\n dom.children('.jstree-anchor').children('.jstree-checkbox').addClass('jstree-checkbox-disabled');\n }\n /**\n * triggered when an node's checkbox is disabled\n * @event\n * @name disable_checkbox.jstree\n * @param {Object} node\n * @plugin checkbox\n */\n\n\n this.trigger('disable_checkbox', {\n 'node': obj\n });\n }\n };\n /**\n * enable a node's checkbox\n * @name enable_checkbox(obj)\n * @param {mixed} obj an array can be used too\n * @trigger enable_checkbox.jstree\n * @plugin checkbox\n */\n\n\n this.enable_checkbox = function (obj) {\n var t1, t2, dom;\n\n if ($.vakata.is_array(obj)) {\n obj = obj.slice();\n\n for (t1 = 0, t2 = obj.length; t1 < t2; t1++) {\n this.enable_checkbox(obj[t1]);\n }\n\n return true;\n }\n\n obj = this.get_node(obj);\n\n if (!obj || obj.id === $.jstree.root) {\n return false;\n }\n\n dom = this.get_node(obj, true);\n\n if (obj.state.checkbox_disabled) {\n obj.state.checkbox_disabled = false;\n\n if (dom && dom.length) {\n dom.children('.jstree-anchor').children('.jstree-checkbox').removeClass('jstree-checkbox-disabled');\n }\n /**\n * triggered when an node's checkbox is enabled\n * @event\n * @name enable_checkbox.jstree\n * @param {Object} node\n * @plugin checkbox\n */\n\n\n this.trigger('enable_checkbox', {\n 'node': obj\n });\n }\n };\n\n this.activate_node = function (obj, e) {\n if ($(e.target).hasClass('jstree-checkbox-disabled')) {\n return false;\n }\n\n if (this.settings.checkbox.tie_selection && (this.settings.checkbox.whole_node || $(e.target).hasClass('jstree-checkbox'))) {\n e.ctrlKey = true;\n }\n\n if (this.settings.checkbox.tie_selection || !this.settings.checkbox.whole_node && !$(e.target).hasClass('jstree-checkbox')) {\n return parent.activate_node.call(this, obj, e);\n }\n\n if (this.is_disabled(obj)) {\n return false;\n }\n\n if (this.is_checked(obj)) {\n this.uncheck_node(obj, e);\n } else {\n this.check_node(obj, e);\n }\n\n this.trigger('activate_node', {\n 'node': this.get_node(obj)\n });\n };\n /**\n * Cascades checked state to a node and all its descendants. This function does NOT affect hidden and disabled nodes (or their descendants).\n * However if these unaffected nodes are already selected their ids will be included in the returned array.\n * @private\n * @name _cascade_new_checked_state(id, checkedState)\n * @param {string} id the node ID\n * @param {bool} checkedState should the nodes be checked or not\n * @returns {Array} Array of all node id's (in this tree branch) that are checked.\n */\n\n\n this._cascade_new_checked_state = function (id, checkedState) {\n var self = this;\n var t = this.settings.checkbox.tie_selection;\n var node = this._model.data[id];\n var selectedNodeIds = [];\n var selectedChildrenIds = [],\n i,\n j,\n selectedChildIds;\n\n if ((this.settings.checkbox.cascade_to_disabled || !node.state.disabled) && (this.settings.checkbox.cascade_to_hidden || !node.state.hidden)) {\n //First try and check/uncheck the children\n if (node.children) {\n for (i = 0, j = node.children.length; i < j; i++) {\n var childId = node.children[i];\n selectedChildIds = self._cascade_new_checked_state(childId, checkedState);\n selectedNodeIds = selectedNodeIds.concat(selectedChildIds);\n\n if (selectedChildIds.indexOf(childId) > -1) {\n selectedChildrenIds.push(childId);\n }\n }\n }\n\n var dom = self.get_node(node, true); //A node's state is undetermined if some but not all of it's children are checked/selected .\n\n var undetermined = selectedChildrenIds.length > 0 && selectedChildrenIds.length < node.children.length;\n\n if (node.original && node.original.state && node.original.state.undetermined) {\n node.original.state.undetermined = undetermined;\n } //If a node is undetermined then remove selected class\n\n\n if (undetermined) {\n node.state[t ? 'selected' : 'checked'] = false;\n dom.attr('aria-selected', false).children('.jstree-anchor').removeClass(t ? 'jstree-clicked' : 'jstree-checked');\n } //Otherwise, if the checkedState === true (i.e. the node is being checked now) and all of the node's children are checked (if it has any children),\n //check the node and style it correctly.\n else if (checkedState && selectedChildrenIds.length === node.children.length) {\n node.state[t ? 'selected' : 'checked'] = checkedState;\n selectedNodeIds.push(node.id);\n dom.attr('aria-selected', true).children('.jstree-anchor').addClass(t ? 'jstree-clicked' : 'jstree-checked');\n } else {\n node.state[t ? 'selected' : 'checked'] = false;\n dom.attr('aria-selected', false).children('.jstree-anchor').removeClass(t ? 'jstree-clicked' : 'jstree-checked');\n }\n } else {\n selectedChildIds = this.get_checked_descendants(id);\n\n if (node.state[t ? 'selected' : 'checked']) {\n selectedChildIds.push(node.id);\n }\n\n selectedNodeIds = selectedNodeIds.concat(selectedChildIds);\n }\n\n return selectedNodeIds;\n };\n /**\n * Gets ids of nodes selected in branch (of tree) specified by id (does not include the node specified by id)\n * @name get_checked_descendants(obj)\n * @param {string} id the node ID\n * @return {Array} array of IDs\n * @plugin checkbox\n */\n\n\n this.get_checked_descendants = function (id) {\n var self = this;\n var t = self.settings.checkbox.tie_selection;\n var node = self._model.data[id];\n return $.vakata.array_filter(node.children_d, function (_id) {\n return self._model.data[_id].state[t ? 'selected' : 'checked'];\n });\n };\n /**\n * check a node (only if tie_selection in checkbox settings is false, otherwise select_node will be called internally)\n * @name check_node(obj)\n * @param {mixed} obj an array can be used to check multiple nodes\n * @trigger check_node.jstree\n * @plugin checkbox\n */\n\n\n this.check_node = function (obj, e) {\n if (this.settings.checkbox.tie_selection) {\n return this.select_node(obj, false, true, e);\n }\n\n var dom, t1, t2, th;\n\n if ($.vakata.is_array(obj)) {\n obj = obj.slice();\n\n for (t1 = 0, t2 = obj.length; t1 < t2; t1++) {\n this.check_node(obj[t1], e);\n }\n\n return true;\n }\n\n obj = this.get_node(obj);\n\n if (!obj || obj.id === $.jstree.root) {\n return false;\n }\n\n dom = this.get_node(obj, true);\n\n if (!obj.state.checked) {\n obj.state.checked = true;\n\n this._data.checkbox.selected.push(obj.id);\n\n if (dom && dom.length) {\n dom.children('.jstree-anchor').addClass('jstree-checked');\n }\n /**\n * triggered when an node is checked (only if tie_selection in checkbox settings is false)\n * @event\n * @name check_node.jstree\n * @param {Object} node\n * @param {Array} selected the current selection\n * @param {Object} event the event (if any) that triggered this check_node\n * @plugin checkbox\n */\n\n\n this.trigger('check_node', {\n 'node': obj,\n 'selected': this._data.checkbox.selected,\n 'event': e\n });\n }\n };\n /**\n * uncheck a node (only if tie_selection in checkbox settings is false, otherwise deselect_node will be called internally)\n * @name uncheck_node(obj)\n * @param {mixed} obj an array can be used to uncheck multiple nodes\n * @trigger uncheck_node.jstree\n * @plugin checkbox\n */\n\n\n this.uncheck_node = function (obj, e) {\n if (this.settings.checkbox.tie_selection) {\n return this.deselect_node(obj, false, e);\n }\n\n var t1, t2, dom;\n\n if ($.vakata.is_array(obj)) {\n obj = obj.slice();\n\n for (t1 = 0, t2 = obj.length; t1 < t2; t1++) {\n this.uncheck_node(obj[t1], e);\n }\n\n return true;\n }\n\n obj = this.get_node(obj);\n\n if (!obj || obj.id === $.jstree.root) {\n return false;\n }\n\n dom = this.get_node(obj, true);\n\n if (obj.state.checked) {\n obj.state.checked = false;\n this._data.checkbox.selected = $.vakata.array_remove_item(this._data.checkbox.selected, obj.id);\n\n if (dom.length) {\n dom.children('.jstree-anchor').removeClass('jstree-checked');\n }\n /**\n * triggered when an node is unchecked (only if tie_selection in checkbox settings is false)\n * @event\n * @name uncheck_node.jstree\n * @param {Object} node\n * @param {Array} selected the current selection\n * @param {Object} event the event (if any) that triggered this uncheck_node\n * @plugin checkbox\n */\n\n\n this.trigger('uncheck_node', {\n 'node': obj,\n 'selected': this._data.checkbox.selected,\n 'event': e\n });\n }\n };\n /**\n * checks all nodes in the tree (only if tie_selection in checkbox settings is false, otherwise select_all will be called internally)\n * @name check_all()\n * @trigger check_all.jstree, changed.jstree\n * @plugin checkbox\n */\n\n\n this.check_all = function () {\n if (this.settings.checkbox.tie_selection) {\n return this.select_all();\n }\n\n var tmp = this._data.checkbox.selected.concat([]),\n i,\n j;\n\n this._data.checkbox.selected = this._model.data[$.jstree.root].children_d.concat();\n\n for (i = 0, j = this._data.checkbox.selected.length; i < j; i++) {\n if (this._model.data[this._data.checkbox.selected[i]]) {\n this._model.data[this._data.checkbox.selected[i]].state.checked = true;\n }\n }\n\n this.redraw(true);\n /**\n * triggered when all nodes are checked (only if tie_selection in checkbox settings is false)\n * @event\n * @name check_all.jstree\n * @param {Array} selected the current selection\n * @plugin checkbox\n */\n\n this.trigger('check_all', {\n 'selected': this._data.checkbox.selected\n });\n };\n /**\n * uncheck all checked nodes (only if tie_selection in checkbox settings is false, otherwise deselect_all will be called internally)\n * @name uncheck_all()\n * @trigger uncheck_all.jstree\n * @plugin checkbox\n */\n\n\n this.uncheck_all = function () {\n if (this.settings.checkbox.tie_selection) {\n return this.deselect_all();\n }\n\n var tmp = this._data.checkbox.selected.concat([]),\n i,\n j;\n\n for (i = 0, j = this._data.checkbox.selected.length; i < j; i++) {\n if (this._model.data[this._data.checkbox.selected[i]]) {\n this._model.data[this._data.checkbox.selected[i]].state.checked = false;\n }\n }\n\n this._data.checkbox.selected = [];\n this.element.find('.jstree-checked').removeClass('jstree-checked');\n /**\n * triggered when all nodes are unchecked (only if tie_selection in checkbox settings is false)\n * @event\n * @name uncheck_all.jstree\n * @param {Object} node the previous selection\n * @param {Array} selected the current selection\n * @plugin checkbox\n */\n\n this.trigger('uncheck_all', {\n 'selected': this._data.checkbox.selected,\n 'node': tmp\n });\n };\n /**\n * checks if a node is checked (if tie_selection is on in the settings this function will return the same as is_selected)\n * @name is_checked(obj)\n * @param {mixed} obj\n * @return {Boolean}\n * @plugin checkbox\n */\n\n\n this.is_checked = function (obj) {\n if (this.settings.checkbox.tie_selection) {\n return this.is_selected(obj);\n }\n\n obj = this.get_node(obj);\n\n if (!obj || obj.id === $.jstree.root) {\n return false;\n }\n\n return obj.state.checked;\n };\n /**\n * get an array of all checked nodes (if tie_selection is on in the settings this function will return the same as get_selected)\n * @name get_checked([full])\n * @param {mixed} full if set to `true` the returned array will consist of the full node objects, otherwise - only IDs will be returned\n * @return {Array}\n * @plugin checkbox\n */\n\n\n this.get_checked = function (full) {\n if (this.settings.checkbox.tie_selection) {\n return this.get_selected(full);\n }\n\n return full ? $.map(this._data.checkbox.selected, function (i) {\n return this.get_node(i);\n }.bind(this)) : this._data.checkbox.selected.slice();\n };\n /**\n * get an array of all top level checked nodes (ignoring children of checked nodes) (if tie_selection is on in the settings this function will return the same as get_top_selected)\n * @name get_top_checked([full])\n * @param {mixed} full if set to `true` the returned array will consist of the full node objects, otherwise - only IDs will be returned\n * @return {Array}\n * @plugin checkbox\n */\n\n\n this.get_top_checked = function (full) {\n if (this.settings.checkbox.tie_selection) {\n return this.get_top_selected(full);\n }\n\n var tmp = this.get_checked(true),\n obj = {},\n i,\n j,\n k,\n l;\n\n for (i = 0, j = tmp.length; i < j; i++) {\n obj[tmp[i].id] = tmp[i];\n }\n\n for (i = 0, j = tmp.length; i < j; i++) {\n for (k = 0, l = tmp[i].children_d.length; k < l; k++) {\n if (obj[tmp[i].children_d[k]]) {\n delete obj[tmp[i].children_d[k]];\n }\n }\n }\n\n tmp = [];\n\n for (i in obj) {\n if (obj.hasOwnProperty(i)) {\n tmp.push(i);\n }\n }\n\n return full ? $.map(tmp, function (i) {\n return this.get_node(i);\n }.bind(this)) : tmp;\n };\n /**\n * get an array of all bottom level checked nodes (ignoring selected parents) (if tie_selection is on in the settings this function will return the same as get_bottom_selected)\n * @name get_bottom_checked([full])\n * @param {mixed} full if set to `true` the returned array will consist of the full node objects, otherwise - only IDs will be returned\n * @return {Array}\n * @plugin checkbox\n */\n\n\n this.get_bottom_checked = function (full) {\n if (this.settings.checkbox.tie_selection) {\n return this.get_bottom_selected(full);\n }\n\n var tmp = this.get_checked(true),\n obj = [],\n i,\n j;\n\n for (i = 0, j = tmp.length; i < j; i++) {\n if (!tmp[i].children.length) {\n obj.push(tmp[i].id);\n }\n }\n\n return full ? $.map(obj, function (i) {\n return this.get_node(i);\n }.bind(this)) : obj;\n };\n\n this.load_node = function (obj, callback) {\n var k, l, i, j, c, tmp;\n\n if (!$.vakata.is_array(obj) && !this.settings.checkbox.tie_selection) {\n tmp = this.get_node(obj);\n\n if (tmp && tmp.state.loaded) {\n for (k = 0, l = tmp.children_d.length; k < l; k++) {\n if (this._model.data[tmp.children_d[k]].state.checked) {\n c = true;\n this._data.checkbox.selected = $.vakata.array_remove_item(this._data.checkbox.selected, tmp.children_d[k]);\n }\n }\n }\n }\n\n return parent.load_node.apply(this, arguments);\n };\n\n this.get_state = function () {\n var state = parent.get_state.apply(this, arguments);\n\n if (this.settings.checkbox.tie_selection) {\n return state;\n }\n\n state.checkbox = this._data.checkbox.selected.slice();\n return state;\n };\n\n this.set_state = function (state, callback) {\n var res = parent.set_state.apply(this, arguments);\n\n if (res && state.checkbox) {\n if (!this.settings.checkbox.tie_selection) {\n this.uncheck_all();\n\n var _this = this;\n\n $.each(state.checkbox, function (i, v) {\n _this.check_node(v);\n });\n }\n\n delete state.checkbox;\n this.set_state(state, callback);\n return false;\n }\n\n return res;\n };\n\n this.refresh = function (skip_loading, forget_state) {\n if (this.settings.checkbox.tie_selection) {\n this._data.checkbox.selected = [];\n }\n\n return parent.refresh.apply(this, arguments);\n };\n }; // include the checkbox plugin by default\n // $.jstree.defaults.plugins.push(\"checkbox\");\n\n /**\n * ### Conditionalselect plugin\n *\n * This plugin allows defining a callback to allow or deny node selection by user input (activate node method).\n */\n\n /**\n * a callback (function) which is invoked in the instance's scope and receives two arguments - the node and the event that triggered the `activate_node` call. Returning false prevents working with the node, returning true allows invoking activate_node. Defaults to returning `true`.\n * @name $.jstree.defaults.checkbox.visible\n * @plugin checkbox\n */\n\n\n $.jstree.defaults.conditionalselect = function () {\n return true;\n };\n\n $.jstree.plugins.conditionalselect = function (options, parent) {\n // own function\n this.activate_node = function (obj, e) {\n if (this.settings.conditionalselect.call(this, this.get_node(obj), e)) {\n return parent.activate_node.call(this, obj, e);\n }\n };\n };\n /**\n * ### Contextmenu plugin\n *\n * Shows a context menu when a node is right-clicked.\n */\n\n /**\n * stores all defaults for the contextmenu plugin\n * @name $.jstree.defaults.contextmenu\n * @plugin contextmenu\n */\n\n\n $.jstree.defaults.contextmenu = {\n /**\n * a boolean indicating if the node should be selected when the context menu is invoked on it. Defaults to `true`.\n * @name $.jstree.defaults.contextmenu.select_node\n * @plugin contextmenu\n */\n select_node: true,\n\n /**\n * a boolean indicating if the menu should be shown aligned with the node. Defaults to `true`, otherwise the mouse coordinates are used.\n * @name $.jstree.defaults.contextmenu.show_at_node\n * @plugin contextmenu\n */\n show_at_node: true,\n\n /**\n * an object of actions, or a function that accepts a node and a callback function and calls the callback function with an object of actions available for that node (you can also return the items too).\n *\n * Each action consists of a key (a unique name) and a value which is an object with the following properties (only label and action are required). Once a menu item is activated the `action` function will be invoked with an object containing the following keys: item - the contextmenu item definition as seen below, reference - the DOM node that was used (the tree node), element - the contextmenu DOM element, position - an object with x/y properties indicating the position of the menu.\n *\n * * `separator_before` - a boolean indicating if there should be a separator before this item\n * * `separator_after` - a boolean indicating if there should be a separator after this item\n * * `_disabled` - a boolean indicating if this action should be disabled\n * * `label` - a string - the name of the action (could be a function returning a string)\n * * `title` - a string - an optional tooltip for the item\n * * `action` - a function to be executed if this item is chosen, the function will receive \n * * `icon` - a string, can be a path to an icon or a className, if using an image that is in the current directory use a `./` prefix, otherwise it will be detected as a class\n * * `shortcut` - keyCode which will trigger the action if the menu is open (for example `113` for rename, which equals F2)\n * * `shortcut_label` - shortcut label (like for example `F2` for rename)\n * * `submenu` - an object with the same structure as $.jstree.defaults.contextmenu.items which can be used to create a submenu - each key will be rendered as a separate option in a submenu that will appear once the current item is hovered\n *\n * @name $.jstree.defaults.contextmenu.items\n * @plugin contextmenu\n */\n items: function items(o, cb) {\n // Could be an object directly\n return {\n \"create\": {\n \"separator_before\": false,\n \"separator_after\": true,\n \"_disabled\": false,\n //(this.check(\"create_node\", data.reference, {}, \"last\")),\n \"label\": \"Create\",\n \"action\": function action(data) {\n var inst = $.jstree.reference(data.reference),\n obj = inst.get_node(data.reference);\n inst.create_node(obj, {}, \"last\", function (new_node) {\n try {\n inst.edit(new_node);\n } catch (ex) {\n setTimeout(function () {\n inst.edit(new_node);\n }, 0);\n }\n });\n }\n },\n \"rename\": {\n \"separator_before\": false,\n \"separator_after\": false,\n \"_disabled\": false,\n //(this.check(\"rename_node\", data.reference, this.get_parent(data.reference), \"\")),\n \"label\": \"Rename\",\n\n /*!\n \"shortcut\"\t\t\t: 113,\n \"shortcut_label\"\t: 'F2',\n \"icon\"\t\t\t\t: \"glyphicon glyphicon-leaf\",\n */\n \"action\": function action(data) {\n var inst = $.jstree.reference(data.reference),\n obj = inst.get_node(data.reference);\n inst.edit(obj);\n }\n },\n \"remove\": {\n \"separator_before\": false,\n \"icon\": false,\n \"separator_after\": false,\n \"_disabled\": false,\n //(this.check(\"delete_node\", data.reference, this.get_parent(data.reference), \"\")),\n \"label\": \"Delete\",\n \"action\": function action(data) {\n var inst = $.jstree.reference(data.reference),\n obj = inst.get_node(data.reference);\n\n if (inst.is_selected(obj)) {\n inst.delete_node(inst.get_selected());\n } else {\n inst.delete_node(obj);\n }\n }\n },\n \"ccp\": {\n \"separator_before\": true,\n \"icon\": false,\n \"separator_after\": false,\n \"label\": \"Edit\",\n \"action\": false,\n \"submenu\": {\n \"cut\": {\n \"separator_before\": false,\n \"separator_after\": false,\n \"label\": \"Cut\",\n \"action\": function action(data) {\n var inst = $.jstree.reference(data.reference),\n obj = inst.get_node(data.reference);\n\n if (inst.is_selected(obj)) {\n inst.cut(inst.get_top_selected());\n } else {\n inst.cut(obj);\n }\n }\n },\n \"copy\": {\n \"separator_before\": false,\n \"icon\": false,\n \"separator_after\": false,\n \"label\": \"Copy\",\n \"action\": function action(data) {\n var inst = $.jstree.reference(data.reference),\n obj = inst.get_node(data.reference);\n\n if (inst.is_selected(obj)) {\n inst.copy(inst.get_top_selected());\n } else {\n inst.copy(obj);\n }\n }\n },\n \"paste\": {\n \"separator_before\": false,\n \"icon\": false,\n \"_disabled\": function _disabled(data) {\n return !$.jstree.reference(data.reference).can_paste();\n },\n \"separator_after\": false,\n \"label\": \"Paste\",\n \"action\": function action(data) {\n var inst = $.jstree.reference(data.reference),\n obj = inst.get_node(data.reference);\n inst.paste(obj);\n }\n }\n }\n }\n };\n }\n };\n\n $.jstree.plugins.contextmenu = function (options, parent) {\n this.bind = function () {\n parent.bind.call(this);\n var last_ts = 0,\n cto = null,\n ex,\n ey;\n this.element.on(\"init.jstree loading.jstree ready.jstree\", function () {\n this.get_container_ul().addClass('jstree-contextmenu');\n }.bind(this)).on(\"contextmenu.jstree\", \".jstree-anchor\", function (e, data) {\n if (e.target.tagName.toLowerCase() === 'input') {\n return;\n }\n\n e.preventDefault();\n last_ts = e.ctrlKey ? +new Date() : 0;\n\n if (data || cto) {\n last_ts = +new Date() + 10000;\n }\n\n if (cto) {\n clearTimeout(cto);\n }\n\n if (!this.is_loading(e.currentTarget)) {\n this.show_contextmenu(e.currentTarget, e.pageX, e.pageY, e);\n }\n }.bind(this)).on(\"click.jstree\", \".jstree-anchor\", function (e) {\n if (this._data.contextmenu.visible && (!last_ts || +new Date() - last_ts > 250)) {\n // work around safari & macOS ctrl+click\n $.vakata.context.hide();\n }\n\n last_ts = 0;\n }.bind(this)).on(\"touchstart.jstree\", \".jstree-anchor\", function (e) {\n if (!e.originalEvent || !e.originalEvent.changedTouches || !e.originalEvent.changedTouches[0]) {\n return;\n }\n\n ex = e.originalEvent.changedTouches[0].clientX;\n ey = e.originalEvent.changedTouches[0].clientY;\n cto = setTimeout(function () {\n $(e.currentTarget).trigger('contextmenu', true);\n }, 750);\n }).on('touchmove.vakata.jstree', function (e) {\n if (cto && e.originalEvent && e.originalEvent.changedTouches && e.originalEvent.changedTouches[0] && (Math.abs(ex - e.originalEvent.changedTouches[0].clientX) > 10 || Math.abs(ey - e.originalEvent.changedTouches[0].clientY) > 10)) {\n clearTimeout(cto);\n $.vakata.context.hide();\n }\n }).on('touchend.vakata.jstree', function (e) {\n if (cto) {\n clearTimeout(cto);\n }\n });\n /*!\n if(!('oncontextmenu' in document.body) && ('ontouchstart' in document.body)) {\n \tvar el = null, tm = null;\n \tthis.element\n \t\t.on(\"touchstart\", \".jstree-anchor\", function (e) {\n \t\t\tel = e.currentTarget;\n \t\t\ttm = +new Date();\n \t\t\t$(document).one(\"touchend\", function (e) {\n \t\t\t\te.target = document.elementFromPoint(e.originalEvent.targetTouches[0].pageX - window.pageXOffset, e.originalEvent.targetTouches[0].pageY - window.pageYOffset);\n \t\t\t\te.currentTarget = e.target;\n \t\t\t\ttm = ((+(new Date())) - tm);\n \t\t\t\tif(e.target === el && tm > 600 && tm < 1000) {\n \t\t\t\t\te.preventDefault();\n \t\t\t\t\t$(el).trigger('contextmenu', e);\n \t\t\t\t}\n \t\t\t\tel = null;\n \t\t\t\ttm = null;\n \t\t\t});\n \t\t});\n }\n */\n\n $(document).on(\"context_hide.vakata.jstree\", function (e, data) {\n this._data.contextmenu.visible = false;\n $(data.reference).removeClass('jstree-context');\n }.bind(this));\n };\n\n this.teardown = function () {\n if (this._data.contextmenu.visible) {\n $.vakata.context.hide();\n }\n\n $(document).off(\"context_hide.vakata.jstree\");\n parent.teardown.call(this);\n };\n /**\n * prepare and show the context menu for a node\n * @name show_contextmenu(obj [, x, y])\n * @param {mixed} obj the node\n * @param {Number} x the x-coordinate relative to the document to show the menu at\n * @param {Number} y the y-coordinate relative to the document to show the menu at\n * @param {Object} e the event if available that triggered the contextmenu\n * @plugin contextmenu\n * @trigger show_contextmenu.jstree\n */\n\n\n this.show_contextmenu = function (obj, x, y, e) {\n obj = this.get_node(obj);\n\n if (!obj || obj.id === $.jstree.root) {\n return false;\n }\n\n var s = this.settings.contextmenu,\n d = this.get_node(obj, true),\n a = d.children(\".jstree-anchor\"),\n o = false,\n i = false;\n\n if (s.show_at_node || x === undefined || y === undefined) {\n o = a.offset();\n x = o.left;\n y = o.top + this._data.core.li_height;\n }\n\n if (this.settings.contextmenu.select_node && !this.is_selected(obj)) {\n this.activate_node(obj, e);\n }\n\n i = s.items;\n\n if ($.vakata.is_function(i)) {\n i = i.call(this, obj, function (i) {\n this._show_contextmenu(obj, x, y, i);\n }.bind(this));\n }\n\n if ($.isPlainObject(i)) {\n this._show_contextmenu(obj, x, y, i);\n }\n };\n /**\n * show the prepared context menu for a node\n * @name _show_contextmenu(obj, x, y, i)\n * @param {mixed} obj the node\n * @param {Number} x the x-coordinate relative to the document to show the menu at\n * @param {Number} y the y-coordinate relative to the document to show the menu at\n * @param {Number} i the object of items to show\n * @plugin contextmenu\n * @trigger show_contextmenu.jstree\n * @private\n */\n\n\n this._show_contextmenu = function (obj, x, y, i) {\n var d = this.get_node(obj, true),\n a = d.children(\".jstree-anchor\");\n $(document).one(\"context_show.vakata.jstree\", function (e, data) {\n var cls = 'jstree-contextmenu jstree-' + this.get_theme() + '-contextmenu';\n $(data.element).addClass(cls);\n a.addClass('jstree-context');\n }.bind(this));\n this._data.contextmenu.visible = true;\n $.vakata.context.show(a, {\n 'x': x,\n 'y': y\n }, i);\n /**\n * triggered when the contextmenu is shown for a node\n * @event\n * @name show_contextmenu.jstree\n * @param {Object} node the node\n * @param {Number} x the x-coordinate of the menu relative to the document\n * @param {Number} y the y-coordinate of the menu relative to the document\n * @plugin contextmenu\n */\n\n this.trigger('show_contextmenu', {\n \"node\": obj,\n \"x\": x,\n \"y\": y\n });\n };\n }; // contextmenu helper\n\n\n (function ($) {\n var right_to_left = false,\n vakata_context = {\n element: false,\n reference: false,\n position_x: 0,\n position_y: 0,\n items: [],\n html: \"\",\n is_visible: false\n };\n $.vakata.context = {\n settings: {\n hide_onmouseleave: 0,\n icons: true\n },\n _trigger: function _trigger(event_name) {\n $(document).triggerHandler(\"context_\" + event_name + \".vakata\", {\n \"reference\": vakata_context.reference,\n \"element\": vakata_context.element,\n \"position\": {\n \"x\": vakata_context.position_x,\n \"y\": vakata_context.position_y\n }\n });\n },\n _execute: function _execute(i) {\n i = vakata_context.items[i];\n return i && (!i._disabled || $.vakata.is_function(i._disabled) && !i._disabled({\n \"item\": i,\n \"reference\": vakata_context.reference,\n \"element\": vakata_context.element\n })) && i.action ? i.action.call(null, {\n \"item\": i,\n \"reference\": vakata_context.reference,\n \"element\": vakata_context.element,\n \"position\": {\n \"x\": vakata_context.position_x,\n \"y\": vakata_context.position_y\n }\n }) : false;\n },\n _parse: function _parse(o, is_callback) {\n if (!o) {\n return false;\n }\n\n if (!is_callback) {\n vakata_context.html = \"\";\n vakata_context.items = [];\n }\n\n var str = \"\",\n sep = false,\n tmp;\n\n if (is_callback) {\n str += \"<\" + \"ul>\";\n }\n\n $.each(o, function (i, val) {\n if (!val) {\n return true;\n }\n\n vakata_context.items.push(val);\n\n if (!sep && val.separator_before) {\n str += \"<\" + \"li class='vakata-context-separator'><\" + \"a href='#' \" + ($.vakata.context.settings.icons ? '' : 'class=\"vakata-context-no-icons\"') + \"> <\" + \"/a><\" + \"/li>\";\n }\n\n sep = false;\n str += \"<\" + \"li class='\" + (val._class || \"\") + (val._disabled === true || $.vakata.is_function(val._disabled) && val._disabled({\n \"item\": val,\n \"reference\": vakata_context.reference,\n \"element\": vakata_context.element\n }) ? \" vakata-contextmenu-disabled \" : \"\") + \"' \" + (val.shortcut ? \" data-shortcut='\" + val.shortcut + \"' \" : '') + \">\";\n str += \"<\" + \"a href='#' rel='\" + (vakata_context.items.length - 1) + \"' \" + (val.title ? \"title='\" + val.title + \"'\" : \"\") + \">\";\n\n if ($.vakata.context.settings.icons) {\n str += \"<\" + \"i \";\n\n if (val.icon) {\n if (val.icon.indexOf(\"/\") !== -1 || val.icon.indexOf(\".\") !== -1) {\n str += \" style='background:url(\\\"\" + val.icon + \"\\\") center center no-repeat' \";\n } else {\n str += \" class='\" + val.icon + \"' \";\n }\n }\n\n str += \"><\" + \"/i><\" + \"span class='vakata-contextmenu-sep'> <\" + \"/span>\";\n }\n\n str += ($.vakata.is_function(val.label) ? val.label({\n \"item\": i,\n \"reference\": vakata_context.reference,\n \"element\": vakata_context.element\n }) : val.label) + (val.shortcut ? ' ' + (val.shortcut_label || '') + '' : '') + \"<\" + \"/a>\";\n\n if (val.submenu) {\n tmp = $.vakata.context._parse(val.submenu, true);\n\n if (tmp) {\n str += tmp;\n }\n }\n\n str += \"<\" + \"/li>\";\n\n if (val.separator_after) {\n str += \"<\" + \"li class='vakata-context-separator'><\" + \"a href='#' \" + ($.vakata.context.settings.icons ? '' : 'class=\"vakata-context-no-icons\"') + \"> <\" + \"/a><\" + \"/li>\";\n sep = true;\n }\n });\n str = str.replace(/
  • <\\/li\\>$/, \"\");\n\n if (is_callback) {\n str += \"\";\n }\n /**\n * triggered on the document when the contextmenu is parsed (HTML is built)\n * @event\n * @plugin contextmenu\n * @name context_parse.vakata\n * @param {jQuery} reference the element that was right clicked\n * @param {jQuery} element the DOM element of the menu itself\n * @param {Object} position the x & y coordinates of the menu\n */\n\n\n if (!is_callback) {\n vakata_context.html = str;\n\n $.vakata.context._trigger(\"parse\");\n }\n\n return str.length > 10 ? str : false;\n },\n _show_submenu: function _show_submenu(o) {\n o = $(o);\n\n if (!o.length || !o.children(\"ul\").length) {\n return;\n }\n\n var e = o.children(\"ul\"),\n xl = o.offset().left,\n x = xl + o.outerWidth(),\n y = o.offset().top,\n w = e.width(),\n h = e.height(),\n dw = $(window).width() + $(window).scrollLeft(),\n dh = $(window).height() + $(window).scrollTop(); // може да се спести е една проверка - дали няма някой от класовете вече нагоре\n\n if (right_to_left) {\n o[x - (w + 10 + o.outerWidth()) < 0 ? \"addClass\" : \"removeClass\"](\"vakata-context-left\");\n } else {\n o[x + w > dw && xl > dw - x ? \"addClass\" : \"removeClass\"](\"vakata-context-right\");\n }\n\n if (y + h + 10 > dh) {\n e.css(\"bottom\", \"-1px\");\n } //if does not fit - stick it to the side\n\n\n if (o.hasClass('vakata-context-right')) {\n if (xl < w) {\n e.css(\"margin-right\", xl - w);\n }\n } else {\n if (dw - x < w) {\n e.css(\"margin-left\", dw - x - w);\n }\n }\n\n e.show();\n },\n show: function show(reference, position, data) {\n var o,\n e,\n x,\n y,\n w,\n h,\n dw,\n dh,\n cond = true;\n\n if (vakata_context.element && vakata_context.element.length) {\n vakata_context.element.width('');\n }\n\n switch (cond) {\n case !position && !reference:\n return false;\n\n case !!position && !!reference:\n vakata_context.reference = reference;\n vakata_context.position_x = position.x;\n vakata_context.position_y = position.y;\n break;\n\n case !position && !!reference:\n vakata_context.reference = reference;\n o = reference.offset();\n vakata_context.position_x = o.left + reference.outerHeight();\n vakata_context.position_y = o.top;\n break;\n\n case !!position && !reference:\n vakata_context.position_x = position.x;\n vakata_context.position_y = position.y;\n break;\n }\n\n if (!!reference && !data && $(reference).data('vakata_contextmenu')) {\n data = $(reference).data('vakata_contextmenu');\n }\n\n if ($.vakata.context._parse(data)) {\n vakata_context.element.html(vakata_context.html);\n }\n\n if (vakata_context.items.length) {\n vakata_context.element.appendTo(document.body);\n e = vakata_context.element;\n x = vakata_context.position_x;\n y = vakata_context.position_y;\n w = e.width();\n h = e.height();\n dw = $(window).width() + $(window).scrollLeft();\n dh = $(window).height() + $(window).scrollTop();\n\n if (right_to_left) {\n x -= e.outerWidth() - $(reference).outerWidth();\n\n if (x < $(window).scrollLeft() + 20) {\n x = $(window).scrollLeft() + 20;\n }\n }\n\n if (x + w + 20 > dw) {\n x = dw - (w + 20);\n }\n\n if (y + h + 20 > dh) {\n y = dh - (h + 20);\n }\n\n vakata_context.element.css({\n \"left\": x,\n \"top\": y\n }).show().find('a').first().trigger('focus').parent().addClass(\"vakata-context-hover\");\n vakata_context.is_visible = true;\n /**\n * triggered on the document when the contextmenu is shown\n * @event\n * @plugin contextmenu\n * @name context_show.vakata\n * @param {jQuery} reference the element that was right clicked\n * @param {jQuery} element the DOM element of the menu itself\n * @param {Object} position the x & y coordinates of the menu\n */\n\n $.vakata.context._trigger(\"show\");\n }\n },\n hide: function hide() {\n if (vakata_context.is_visible) {\n vakata_context.element.hide().find(\"ul\").hide().end().find(':focus').trigger('blur').end().detach();\n vakata_context.is_visible = false;\n /**\n * triggered on the document when the contextmenu is hidden\n * @event\n * @plugin contextmenu\n * @name context_hide.vakata\n * @param {jQuery} reference the element that was right clicked\n * @param {jQuery} element the DOM element of the menu itself\n * @param {Object} position the x & y coordinates of the menu\n */\n\n $.vakata.context._trigger(\"hide\");\n }\n }\n };\n $(function () {\n right_to_left = $(document.body).css(\"direction\") === \"rtl\";\n var to = false;\n vakata_context.element = $(\"\");\n vakata_context.element.on(\"mouseenter\", \"li\", function (e) {\n e.stopImmediatePropagation();\n\n if ($.contains(this, e.relatedTarget)) {\n // премахнато заради delegate mouseleave по-долу\n // $(this).find(\".vakata-context-hover\").removeClass(\"vakata-context-hover\");\n return;\n }\n\n if (to) {\n clearTimeout(to);\n }\n\n vakata_context.element.find(\".vakata-context-hover\").removeClass(\"vakata-context-hover\").end();\n $(this).siblings().find(\"ul\").hide().end().end().parentsUntil(\".vakata-context\", \"li\").addBack().addClass(\"vakata-context-hover\");\n\n $.vakata.context._show_submenu(this);\n }) // тестово - дали не натоварва?\n .on(\"mouseleave\", \"li\", function (e) {\n if ($.contains(this, e.relatedTarget)) {\n return;\n }\n\n $(this).find(\".vakata-context-hover\").addBack().removeClass(\"vakata-context-hover\");\n }).on(\"mouseleave\", function (e) {\n $(this).find(\".vakata-context-hover\").removeClass(\"vakata-context-hover\");\n\n if ($.vakata.context.settings.hide_onmouseleave) {\n to = setTimeout(function (t) {\n return function () {\n $.vakata.context.hide();\n };\n }(this), $.vakata.context.settings.hide_onmouseleave);\n }\n }).on(\"click\", \"a\", function (e) {\n e.preventDefault(); //})\n //.on(\"mouseup\", \"a\", function (e) {\n\n if (!$(this).trigger('blur').parent().hasClass(\"vakata-context-disabled\") && $.vakata.context._execute($(this).attr(\"rel\")) !== false) {\n $.vakata.context.hide();\n }\n }).on('keydown', 'a', function (e) {\n var o = null;\n\n switch (e.which) {\n case 13:\n case 32:\n e.type = \"click\";\n e.preventDefault();\n $(e.currentTarget).trigger(e);\n break;\n\n case 37:\n if (vakata_context.is_visible) {\n vakata_context.element.find(\".vakata-context-hover\").last().closest(\"li\").first().find(\"ul\").hide().find(\".vakata-context-hover\").removeClass(\"vakata-context-hover\").end().end().children('a').trigger('focus');\n e.stopImmediatePropagation();\n e.preventDefault();\n }\n\n break;\n\n case 38:\n if (vakata_context.is_visible) {\n o = vakata_context.element.find(\"ul:visible\").addBack().last().children(\".vakata-context-hover\").removeClass(\"vakata-context-hover\").prevAll(\"li:not(.vakata-context-separator)\").first();\n\n if (!o.length) {\n o = vakata_context.element.find(\"ul:visible\").addBack().last().children(\"li:not(.vakata-context-separator)\").last();\n }\n\n o.addClass(\"vakata-context-hover\").children('a').trigger('focus');\n e.stopImmediatePropagation();\n e.preventDefault();\n }\n\n break;\n\n case 39:\n if (vakata_context.is_visible) {\n vakata_context.element.find(\".vakata-context-hover\").last().children(\"ul\").show().children(\"li:not(.vakata-context-separator)\").removeClass(\"vakata-context-hover\").first().addClass(\"vakata-context-hover\").children('a').trigger('focus');\n e.stopImmediatePropagation();\n e.preventDefault();\n }\n\n break;\n\n case 40:\n if (vakata_context.is_visible) {\n o = vakata_context.element.find(\"ul:visible\").addBack().last().children(\".vakata-context-hover\").removeClass(\"vakata-context-hover\").nextAll(\"li:not(.vakata-context-separator)\").first();\n\n if (!o.length) {\n o = vakata_context.element.find(\"ul:visible\").addBack().last().children(\"li:not(.vakata-context-separator)\").first();\n }\n\n o.addClass(\"vakata-context-hover\").children('a').trigger('focus');\n e.stopImmediatePropagation();\n e.preventDefault();\n }\n\n break;\n\n case 27:\n $.vakata.context.hide();\n e.preventDefault();\n break;\n\n default:\n //console.log(e.which);\n break;\n }\n }).on('keydown', function (e) {\n e.preventDefault();\n var a = vakata_context.element.find('.vakata-contextmenu-shortcut-' + e.which).parent();\n\n if (a.parent().not('.vakata-context-disabled')) {\n a.trigger('click');\n }\n });\n $(document).on(\"mousedown.vakata.jstree\", function (e) {\n if (vakata_context.is_visible && vakata_context.element[0] !== e.target && !$.contains(vakata_context.element[0], e.target)) {\n $.vakata.context.hide();\n }\n }).on(\"context_show.vakata.jstree\", function (e, data) {\n vakata_context.element.find(\"li:has(ul)\").children(\"a\").addClass(\"vakata-context-parent\");\n\n if (right_to_left) {\n vakata_context.element.addClass(\"vakata-context-rtl\").css(\"direction\", \"rtl\");\n } // also apply a RTL class?\n\n\n vakata_context.element.find(\"ul\").hide().end();\n });\n });\n })($); // $.jstree.defaults.plugins.push(\"contextmenu\");\n\n /**\n * ### Drag'n'drop plugin\n *\n * Enables dragging and dropping of nodes in the tree, resulting in a move or copy operations.\n */\n\n /**\n * stores all defaults for the drag'n'drop plugin\n * @name $.jstree.defaults.dnd\n * @plugin dnd\n */\n\n\n $.jstree.defaults.dnd = {\n /**\n * a boolean indicating if a copy should be possible while dragging (by pressint the meta key or Ctrl). Defaults to `true`.\n * @name $.jstree.defaults.dnd.copy\n * @plugin dnd\n */\n copy: true,\n\n /**\n * a number indicating how long a node should remain hovered while dragging to be opened. Defaults to `500`.\n * @name $.jstree.defaults.dnd.open_timeout\n * @plugin dnd\n */\n open_timeout: 500,\n\n /**\n * a function invoked each time a node is about to be dragged, invoked in the tree's scope and receives the nodes about to be dragged as an argument (array) and the event that started the drag - return `false` to prevent dragging\n * @name $.jstree.defaults.dnd.is_draggable\n * @plugin dnd\n */\n is_draggable: true,\n\n /**\n * a boolean indicating if checks should constantly be made while the user is dragging the node (as opposed to checking only on drop), default is `true`\n * @name $.jstree.defaults.dnd.check_while_dragging\n * @plugin dnd\n */\n check_while_dragging: true,\n\n /**\n * a boolean indicating if nodes from this tree should only be copied with dnd (as opposed to moved), default is `false`\n * @name $.jstree.defaults.dnd.always_copy\n * @plugin dnd\n */\n always_copy: false,\n\n /**\n * when dropping a node \"inside\", this setting indicates the position the node should go to - it can be an integer or a string: \"first\" (same as 0) or \"last\", default is `0`\n * @name $.jstree.defaults.dnd.inside_pos\n * @plugin dnd\n */\n inside_pos: 0,\n\n /**\n * when starting the drag on a node that is selected this setting controls if all selected nodes are dragged or only the single node, default is `true`, which means all selected nodes are dragged when the drag is started on a selected node\n * @name $.jstree.defaults.dnd.drag_selection\n * @plugin dnd\n */\n drag_selection: true,\n\n /**\n * controls whether dnd works on touch devices. If left as boolean true dnd will work the same as in desktop browsers, which in some cases may impair scrolling. If set to boolean false dnd will not work on touch devices. There is a special third option - string \"selected\" which means only selected nodes can be dragged on touch devices.\n * @name $.jstree.defaults.dnd.touch\n * @plugin dnd\n */\n touch: true,\n\n /**\n * controls whether items can be dropped anywhere on the node, not just on the anchor, by default only the node anchor is a valid drop target. Works best with the wholerow plugin. If enabled on mobile depending on the interface it might be hard for the user to cancel the drop, since the whole tree container will be a valid drop target.\n * @name $.jstree.defaults.dnd.large_drop_target\n * @plugin dnd\n */\n large_drop_target: false,\n\n /**\n * controls whether a drag can be initiated from any part of the node and not just the text/icon part, works best with the wholerow plugin. Keep in mind it can cause problems with tree scrolling on mobile depending on the interface - in that case set the touch option to \"selected\".\n * @name $.jstree.defaults.dnd.large_drag_target\n * @plugin dnd\n */\n large_drag_target: false,\n\n /**\n * controls whether use HTML5 dnd api instead of classical. That will allow better integration of dnd events with other HTML5 controls.\n * @reference http://caniuse.com/#feat=dragndrop\n * @name $.jstree.defaults.dnd.use_html5\n * @plugin dnd\n */\n use_html5: false\n };\n var drg, elm; // TODO: now check works by checking for each node individually, how about max_children, unique, etc?\n\n $.jstree.plugins.dnd = function (options, parent) {\n this.init = function (el, options) {\n parent.init.call(this, el, options);\n this.settings.dnd.use_html5 = this.settings.dnd.use_html5 && 'draggable' in document.createElement('span');\n };\n\n this.bind = function () {\n parent.bind.call(this);\n this.element.on(this.settings.dnd.use_html5 ? 'dragstart.jstree' : 'mousedown.jstree touchstart.jstree', this.settings.dnd.large_drag_target ? '.jstree-node' : '.jstree-anchor', function (e) {\n if (this.settings.dnd.large_drag_target && $(e.target).closest('.jstree-node')[0] !== e.currentTarget) {\n return true;\n }\n\n if (e.type === \"touchstart\" && (!this.settings.dnd.touch || this.settings.dnd.touch === 'selected' && !$(e.currentTarget).closest('.jstree-node').children('.jstree-anchor').hasClass('jstree-clicked'))) {\n return true;\n }\n\n var obj = this.get_node(e.target),\n mlt = this.is_selected(obj) && this.settings.dnd.drag_selection ? this.get_top_selected().length : 1,\n txt = mlt > 1 ? mlt + ' ' + this.get_string('nodes') : this.get_text(e.currentTarget);\n\n if (this.settings.core.force_text) {\n txt = $.vakata.html.escape(txt);\n }\n\n if (obj && obj.id && obj.id !== $.jstree.root && (e.which === 1 || e.type === \"touchstart\" || e.type === \"dragstart\") && (this.settings.dnd.is_draggable === true || $.vakata.is_function(this.settings.dnd.is_draggable) && this.settings.dnd.is_draggable.call(this, mlt > 1 ? this.get_top_selected(true) : [obj], e))) {\n drg = {\n 'jstree': true,\n 'origin': this,\n 'obj': this.get_node(obj, true),\n 'nodes': mlt > 1 ? this.get_top_selected() : [obj.id]\n };\n elm = e.currentTarget;\n\n if (this.settings.dnd.use_html5) {\n $.vakata.dnd._trigger('start', e, {\n 'helper': $(),\n 'element': elm,\n 'data': drg\n });\n } else {\n this.element.trigger('mousedown.jstree');\n return $.vakata.dnd.start(e, drg, '
    ' + txt + '+
    ');\n }\n }\n }.bind(this));\n\n if (this.settings.dnd.use_html5) {\n this.element.on('dragover.jstree', function (e) {\n e.preventDefault();\n\n $.vakata.dnd._trigger('move', e, {\n 'helper': $(),\n 'element': elm,\n 'data': drg\n });\n\n return false;\n }) //.on('dragenter.jstree', this.settings.dnd.large_drop_target ? '.jstree-node' : '.jstree-anchor', $.proxy(function (e) {\n //\t\te.preventDefault();\n //\t\t$.vakata.dnd._trigger('move', e, { 'helper': $(), 'element': elm, 'data': drg });\n //\t\treturn false;\n //\t}, this))\n .on('drop.jstree', function (e) {\n e.preventDefault();\n\n $.vakata.dnd._trigger('stop', e, {\n 'helper': $(),\n 'element': elm,\n 'data': drg\n });\n\n return false;\n }.bind(this));\n }\n };\n\n this.redraw_node = function (obj, deep, callback, force_render) {\n obj = parent.redraw_node.apply(this, arguments);\n\n if (obj && this.settings.dnd.use_html5) {\n if (this.settings.dnd.large_drag_target) {\n obj.setAttribute('draggable', true);\n } else {\n var i,\n j,\n tmp = null;\n\n for (i = 0, j = obj.childNodes.length; i < j; i++) {\n if (obj.childNodes[i] && obj.childNodes[i].className && obj.childNodes[i].className.indexOf(\"jstree-anchor\") !== -1) {\n tmp = obj.childNodes[i];\n break;\n }\n }\n\n if (tmp) {\n tmp.setAttribute('draggable', true);\n }\n }\n }\n\n return obj;\n };\n };\n\n $(function () {\n // bind only once for all instances\n var lastmv = false,\n laster = false,\n lastev = false,\n opento = false,\n marker = $('
     
    ').hide(); //.appendTo('body');\n\n $(document).on('dragover.vakata.jstree', function (e) {\n if (elm) {\n $.vakata.dnd._trigger('move', e, {\n 'helper': $(),\n 'element': elm,\n 'data': drg\n });\n }\n }).on('drop.vakata.jstree', function (e) {\n if (elm) {\n $.vakata.dnd._trigger('stop', e, {\n 'helper': $(),\n 'element': elm,\n 'data': drg\n });\n\n elm = null;\n drg = null;\n }\n }).on('dnd_start.vakata.jstree', function (e, data) {\n lastmv = false;\n lastev = false;\n\n if (!data || !data.data || !data.data.jstree) {\n return;\n }\n\n marker.appendTo(document.body); //.show();\n }).on('dnd_move.vakata.jstree', function (e, data) {\n var isDifferentNode = data.event.target !== lastev.target;\n\n if (opento) {\n if (!data.event || data.event.type !== 'dragover' || isDifferentNode) {\n clearTimeout(opento);\n }\n }\n\n if (!data || !data.data || !data.data.jstree) {\n return;\n } // if we are hovering the marker image do nothing (can happen on \"inside\" drags)\n\n\n if (data.event.target.id && data.event.target.id === 'jstree-marker') {\n return;\n }\n\n lastev = data.event;\n var ins = $.jstree.reference(data.event.target),\n ref = false,\n off = false,\n rel = false,\n tmp,\n l,\n t,\n h,\n p,\n i,\n o,\n ok,\n t1,\n t2,\n op,\n ps,\n pr,\n ip,\n tm,\n is_copy,\n pn,\n c; // if we are over an instance\n\n if (ins && ins._data && ins._data.dnd) {\n marker.attr('class', 'jstree-' + ins.get_theme() + (ins.settings.core.themes.responsive ? ' jstree-dnd-responsive' : ''));\n is_copy = data.data.origin && (data.data.origin.settings.dnd.always_copy || data.data.origin.settings.dnd.copy && (data.event.metaKey || data.event.ctrlKey));\n data.helper.children().attr('class', 'jstree-' + ins.get_theme() + ' jstree-' + ins.get_theme() + '-' + ins.get_theme_variant() + ' ' + (ins.settings.core.themes.responsive ? ' jstree-dnd-responsive' : '')).find('.jstree-copy').first()[is_copy ? 'show' : 'hide'](); // if are hovering the container itself add a new root node\n //console.log(data.event);\n\n if ((data.event.target === ins.element[0] || data.event.target === ins.get_container_ul()[0]) && ins.get_container_ul().children().length === 0) {\n ok = true;\n\n for (t1 = 0, t2 = data.data.nodes.length; t1 < t2; t1++) {\n ok = ok && ins.check(data.data.origin && (data.data.origin.settings.dnd.always_copy || data.data.origin.settings.dnd.copy && (data.event.metaKey || data.event.ctrlKey)) ? \"copy_node\" : \"move_node\", data.data.origin && data.data.origin !== ins ? data.data.origin.get_node(data.data.nodes[t1]) : data.data.nodes[t1], $.jstree.root, 'last', {\n 'dnd': true,\n 'ref': ins.get_node($.jstree.root),\n 'pos': 'i',\n 'origin': data.data.origin,\n 'is_multi': data.data.origin && data.data.origin !== ins,\n 'is_foreign': !data.data.origin\n });\n\n if (!ok) {\n break;\n }\n }\n\n if (ok) {\n lastmv = {\n 'ins': ins,\n 'par': $.jstree.root,\n 'pos': 'last'\n };\n marker.hide();\n data.helper.find('.jstree-icon').first().removeClass('jstree-er').addClass('jstree-ok');\n\n if (data.event.originalEvent && data.event.originalEvent.dataTransfer) {\n data.event.originalEvent.dataTransfer.dropEffect = is_copy ? 'copy' : 'move';\n }\n\n return;\n }\n } else {\n // if we are hovering a tree node\n ref = ins.settings.dnd.large_drop_target ? $(data.event.target).closest('.jstree-node').children('.jstree-anchor') : $(data.event.target).closest('.jstree-anchor');\n\n if (ref && ref.length && ref.parent().is('.jstree-closed, .jstree-open, .jstree-leaf')) {\n off = ref.offset();\n rel = (data.event.pageY !== undefined ? data.event.pageY : data.event.originalEvent.pageY) - off.top;\n h = ref.outerHeight();\n\n if (rel < h / 3) {\n o = ['b', 'i', 'a'];\n } else if (rel > h - h / 3) {\n o = ['a', 'i', 'b'];\n } else {\n o = rel > h / 2 ? ['i', 'a', 'b'] : ['i', 'b', 'a'];\n }\n\n $.each(o, function (j, v) {\n switch (v) {\n case 'b':\n l = off.left - 6;\n t = off.top;\n p = ins.get_parent(ref);\n i = ref.parent().index();\n c = 'jstree-below';\n break;\n\n case 'i':\n ip = ins.settings.dnd.inside_pos;\n tm = ins.get_node(ref.parent());\n l = off.left - 2;\n t = off.top + h / 2 + 1;\n p = tm.id;\n i = ip === 'first' ? 0 : ip === 'last' ? tm.children.length : Math.min(ip, tm.children.length);\n c = 'jstree-inside';\n break;\n\n case 'a':\n l = off.left - 6;\n t = off.top + h;\n p = ins.get_parent(ref);\n i = ref.parent().index() + 1;\n c = 'jstree-above';\n break;\n }\n\n ok = true;\n\n for (t1 = 0, t2 = data.data.nodes.length; t1 < t2; t1++) {\n op = data.data.origin && (data.data.origin.settings.dnd.always_copy || data.data.origin.settings.dnd.copy && (data.event.metaKey || data.event.ctrlKey)) ? \"copy_node\" : \"move_node\";\n ps = i;\n\n if (op === \"move_node\" && v === 'a' && data.data.origin && data.data.origin === ins && p === ins.get_parent(data.data.nodes[t1])) {\n pr = ins.get_node(p);\n\n if (ps > $.inArray(data.data.nodes[t1], pr.children)) {\n ps -= 1;\n }\n }\n\n ok = ok && (ins && ins.settings && ins.settings.dnd && ins.settings.dnd.check_while_dragging === false || ins.check(op, data.data.origin && data.data.origin !== ins ? data.data.origin.get_node(data.data.nodes[t1]) : data.data.nodes[t1], p, ps, {\n 'dnd': true,\n 'ref': ins.get_node(ref.parent()),\n 'pos': v,\n 'origin': data.data.origin,\n 'is_multi': data.data.origin && data.data.origin !== ins,\n 'is_foreign': !data.data.origin\n }));\n\n if (!ok) {\n if (ins && ins.last_error) {\n laster = ins.last_error();\n }\n\n break;\n }\n }\n\n if (v === 'i' && ref.parent().is('.jstree-closed') && ins.settings.dnd.open_timeout) {\n if (!data.event || data.event.type !== 'dragover' || isDifferentNode) {\n if (opento) {\n clearTimeout(opento);\n }\n\n opento = setTimeout(function (x, z) {\n return function () {\n x.open_node(z);\n };\n }(ins, ref), ins.settings.dnd.open_timeout);\n }\n }\n\n if (ok) {\n pn = ins.get_node(p, true);\n\n if (!pn.hasClass('.jstree-dnd-parent')) {\n $('.jstree-dnd-parent').removeClass('jstree-dnd-parent');\n pn.addClass('jstree-dnd-parent');\n }\n\n lastmv = {\n 'ins': ins,\n 'par': p,\n 'pos': v === 'i' && ip === 'last' && i === 0 && !ins.is_loaded(tm) ? 'last' : i\n };\n marker.css({\n 'left': l + 'px',\n 'top': t + 'px'\n }).show();\n marker.removeClass('jstree-above jstree-inside jstree-below').addClass(c);\n data.helper.find('.jstree-icon').first().removeClass('jstree-er').addClass('jstree-ok');\n\n if (data.event.originalEvent && data.event.originalEvent.dataTransfer) {\n data.event.originalEvent.dataTransfer.dropEffect = is_copy ? 'copy' : 'move';\n }\n\n laster = {};\n o = true;\n return false;\n }\n });\n\n if (o === true) {\n return;\n }\n }\n }\n }\n\n $('.jstree-dnd-parent').removeClass('jstree-dnd-parent');\n lastmv = false;\n data.helper.find('.jstree-icon').removeClass('jstree-ok').addClass('jstree-er');\n\n if (data.event.originalEvent && data.event.originalEvent.dataTransfer) {//data.event.originalEvent.dataTransfer.dropEffect = 'none';\n }\n\n marker.hide();\n }).on('dnd_scroll.vakata.jstree', function (e, data) {\n if (!data || !data.data || !data.data.jstree) {\n return;\n }\n\n marker.hide();\n lastmv = false;\n lastev = false;\n data.helper.find('.jstree-icon').first().removeClass('jstree-ok').addClass('jstree-er');\n }).on('dnd_stop.vakata.jstree', function (e, data) {\n $('.jstree-dnd-parent').removeClass('jstree-dnd-parent');\n\n if (opento) {\n clearTimeout(opento);\n }\n\n if (!data || !data.data || !data.data.jstree) {\n return;\n }\n\n marker.hide().detach();\n var i,\n j,\n nodes = [];\n\n if (lastmv) {\n for (i = 0, j = data.data.nodes.length; i < j; i++) {\n nodes[i] = data.data.origin ? data.data.origin.get_node(data.data.nodes[i]) : data.data.nodes[i];\n }\n\n lastmv.ins[data.data.origin && (data.data.origin.settings.dnd.always_copy || data.data.origin.settings.dnd.copy && (data.event.metaKey || data.event.ctrlKey)) ? 'copy_node' : 'move_node'](nodes, lastmv.par, lastmv.pos, false, false, false, data.data.origin);\n } else {\n i = $(data.event.target).closest('.jstree');\n\n if (i.length && laster && laster.error && laster.error === 'check') {\n i = i.jstree(true);\n\n if (i) {\n i.settings.core.error.call(this, laster);\n }\n }\n }\n\n lastev = false;\n lastmv = false;\n }).on('keyup.jstree keydown.jstree', function (e, data) {\n data = $.vakata.dnd._get();\n\n if (data && data.data && data.data.jstree) {\n if (e.type === \"keyup\" && e.which === 27) {\n if (opento) {\n clearTimeout(opento);\n }\n\n lastmv = false;\n laster = false;\n lastev = false;\n opento = false;\n marker.hide().detach();\n\n $.vakata.dnd._clean();\n } else {\n data.helper.find('.jstree-copy').first()[data.data.origin && (data.data.origin.settings.dnd.always_copy || data.data.origin.settings.dnd.copy && (e.metaKey || e.ctrlKey)) ? 'show' : 'hide']();\n\n if (lastev) {\n lastev.metaKey = e.metaKey;\n lastev.ctrlKey = e.ctrlKey;\n\n $.vakata.dnd._trigger('move', lastev);\n }\n }\n }\n });\n }); // helpers\n\n (function ($) {\n $.vakata.html = {\n div: $('
    '),\n escape: function escape(str) {\n return $.vakata.html.div.text(str).html();\n },\n strip: function strip(str) {\n return $.vakata.html.div.empty().append($.parseHTML(str)).text();\n }\n }; // private variable\n\n var vakata_dnd = {\n element: false,\n target: false,\n is_down: false,\n is_drag: false,\n helper: false,\n helper_w: 0,\n data: false,\n init_x: 0,\n init_y: 0,\n scroll_l: 0,\n scroll_t: 0,\n scroll_e: false,\n scroll_i: false,\n is_touch: false\n };\n $.vakata.dnd = {\n settings: {\n scroll_speed: 10,\n scroll_proximity: 20,\n helper_left: 5,\n helper_top: 10,\n threshold: 5,\n threshold_touch: 10\n },\n _trigger: function _trigger(event_name, e, data) {\n if (data === undefined) {\n data = $.vakata.dnd._get();\n }\n\n data.event = e;\n $(document).triggerHandler(\"dnd_\" + event_name + \".vakata\", data);\n },\n _get: function _get() {\n return {\n \"data\": vakata_dnd.data,\n \"element\": vakata_dnd.element,\n \"helper\": vakata_dnd.helper\n };\n },\n _clean: function _clean() {\n if (vakata_dnd.helper) {\n vakata_dnd.helper.remove();\n }\n\n if (vakata_dnd.scroll_i) {\n clearInterval(vakata_dnd.scroll_i);\n vakata_dnd.scroll_i = false;\n }\n\n vakata_dnd = {\n element: false,\n target: false,\n is_down: false,\n is_drag: false,\n helper: false,\n helper_w: 0,\n data: false,\n init_x: 0,\n init_y: 0,\n scroll_l: 0,\n scroll_t: 0,\n scroll_e: false,\n scroll_i: false,\n is_touch: false\n };\n elm = null;\n $(document).off(\"mousemove.vakata.jstree touchmove.vakata.jstree\", $.vakata.dnd.drag);\n $(document).off(\"mouseup.vakata.jstree touchend.vakata.jstree\", $.vakata.dnd.stop);\n },\n _scroll: function _scroll(init_only) {\n if (!vakata_dnd.scroll_e || !vakata_dnd.scroll_l && !vakata_dnd.scroll_t) {\n if (vakata_dnd.scroll_i) {\n clearInterval(vakata_dnd.scroll_i);\n vakata_dnd.scroll_i = false;\n }\n\n return false;\n }\n\n if (!vakata_dnd.scroll_i) {\n vakata_dnd.scroll_i = setInterval($.vakata.dnd._scroll, 100);\n return false;\n }\n\n if (init_only === true) {\n return false;\n }\n\n var i = vakata_dnd.scroll_e.scrollTop(),\n j = vakata_dnd.scroll_e.scrollLeft();\n vakata_dnd.scroll_e.scrollTop(i + vakata_dnd.scroll_t * $.vakata.dnd.settings.scroll_speed);\n vakata_dnd.scroll_e.scrollLeft(j + vakata_dnd.scroll_l * $.vakata.dnd.settings.scroll_speed);\n\n if (i !== vakata_dnd.scroll_e.scrollTop() || j !== vakata_dnd.scroll_e.scrollLeft()) {\n /**\n * triggered on the document when a drag causes an element to scroll\n * @event\n * @plugin dnd\n * @name dnd_scroll.vakata\n * @param {Mixed} data any data supplied with the call to $.vakata.dnd.start\n * @param {DOM} element the DOM element being dragged\n * @param {jQuery} helper the helper shown next to the mouse\n * @param {jQuery} event the element that is scrolling\n */\n $.vakata.dnd._trigger(\"scroll\", vakata_dnd.scroll_e);\n }\n },\n start: function start(e, data, html) {\n if (e.type === \"touchstart\" && e.originalEvent && e.originalEvent.changedTouches && e.originalEvent.changedTouches[0]) {\n e.pageX = e.originalEvent.changedTouches[0].pageX;\n e.pageY = e.originalEvent.changedTouches[0].pageY;\n e.target = document.elementFromPoint(e.originalEvent.changedTouches[0].pageX - window.pageXOffset, e.originalEvent.changedTouches[0].pageY - window.pageYOffset);\n }\n\n if (vakata_dnd.is_drag) {\n $.vakata.dnd.stop({});\n }\n\n try {\n e.currentTarget.unselectable = \"on\";\n\n e.currentTarget.onselectstart = function () {\n return false;\n };\n\n if (e.currentTarget.style) {\n e.currentTarget.style.touchAction = \"none\";\n e.currentTarget.style.msTouchAction = \"none\";\n e.currentTarget.style.MozUserSelect = \"none\";\n }\n } catch (ignore) {}\n\n vakata_dnd.init_x = e.pageX;\n vakata_dnd.init_y = e.pageY;\n vakata_dnd.data = data;\n vakata_dnd.is_down = true;\n vakata_dnd.element = e.currentTarget;\n vakata_dnd.target = e.target;\n vakata_dnd.is_touch = e.type === \"touchstart\";\n\n if (html !== false) {\n vakata_dnd.helper = $(\"
    \").html(html).css({\n \"display\": \"block\",\n \"margin\": \"0\",\n \"padding\": \"0\",\n \"position\": \"absolute\",\n \"top\": \"-2000px\",\n \"lineHeight\": \"16px\",\n \"zIndex\": \"10000\"\n });\n }\n\n $(document).on(\"mousemove.vakata.jstree touchmove.vakata.jstree\", $.vakata.dnd.drag);\n $(document).on(\"mouseup.vakata.jstree touchend.vakata.jstree\", $.vakata.dnd.stop);\n return false;\n },\n drag: function drag(e) {\n if (e.type === \"touchmove\" && e.originalEvent && e.originalEvent.changedTouches && e.originalEvent.changedTouches[0]) {\n e.pageX = e.originalEvent.changedTouches[0].pageX;\n e.pageY = e.originalEvent.changedTouches[0].pageY;\n e.target = document.elementFromPoint(e.originalEvent.changedTouches[0].pageX - window.pageXOffset, e.originalEvent.changedTouches[0].pageY - window.pageYOffset);\n }\n\n if (!vakata_dnd.is_down) {\n return;\n }\n\n if (!vakata_dnd.is_drag) {\n if (Math.abs(e.pageX - vakata_dnd.init_x) > (vakata_dnd.is_touch ? $.vakata.dnd.settings.threshold_touch : $.vakata.dnd.settings.threshold) || Math.abs(e.pageY - vakata_dnd.init_y) > (vakata_dnd.is_touch ? $.vakata.dnd.settings.threshold_touch : $.vakata.dnd.settings.threshold)) {\n if (vakata_dnd.helper) {\n vakata_dnd.helper.appendTo(document.body);\n vakata_dnd.helper_w = vakata_dnd.helper.outerWidth();\n }\n\n vakata_dnd.is_drag = true;\n $(vakata_dnd.target).one('click.vakata', false);\n /**\n * triggered on the document when a drag starts\n * @event\n * @plugin dnd\n * @name dnd_start.vakata\n * @param {Mixed} data any data supplied with the call to $.vakata.dnd.start\n * @param {DOM} element the DOM element being dragged\n * @param {jQuery} helper the helper shown next to the mouse\n * @param {Object} event the event that caused the start (probably mousemove)\n */\n\n $.vakata.dnd._trigger(\"start\", e);\n } else {\n return;\n }\n }\n\n var d = false,\n w = false,\n dh = false,\n wh = false,\n dw = false,\n ww = false,\n dt = false,\n dl = false,\n ht = false,\n hl = false;\n vakata_dnd.scroll_t = 0;\n vakata_dnd.scroll_l = 0;\n vakata_dnd.scroll_e = false;\n $($(e.target).parentsUntil(\"body\").addBack().get().reverse()).filter(function () {\n return /^auto|scroll$/.test($(this).css(\"overflow\")) && (this.scrollHeight > this.offsetHeight || this.scrollWidth > this.offsetWidth);\n }).each(function () {\n var t = $(this),\n o = t.offset();\n\n if (this.scrollHeight > this.offsetHeight) {\n if (o.top + t.height() - e.pageY < $.vakata.dnd.settings.scroll_proximity) {\n vakata_dnd.scroll_t = 1;\n }\n\n if (e.pageY - o.top < $.vakata.dnd.settings.scroll_proximity) {\n vakata_dnd.scroll_t = -1;\n }\n }\n\n if (this.scrollWidth > this.offsetWidth) {\n if (o.left + t.width() - e.pageX < $.vakata.dnd.settings.scroll_proximity) {\n vakata_dnd.scroll_l = 1;\n }\n\n if (e.pageX - o.left < $.vakata.dnd.settings.scroll_proximity) {\n vakata_dnd.scroll_l = -1;\n }\n }\n\n if (vakata_dnd.scroll_t || vakata_dnd.scroll_l) {\n vakata_dnd.scroll_e = $(this);\n return false;\n }\n });\n\n if (!vakata_dnd.scroll_e) {\n d = $(document);\n w = $(window);\n dh = d.height();\n wh = w.height();\n dw = d.width();\n ww = w.width();\n dt = d.scrollTop();\n dl = d.scrollLeft();\n\n if (dh > wh && e.pageY - dt < $.vakata.dnd.settings.scroll_proximity) {\n vakata_dnd.scroll_t = -1;\n }\n\n if (dh > wh && wh - (e.pageY - dt) < $.vakata.dnd.settings.scroll_proximity) {\n vakata_dnd.scroll_t = 1;\n }\n\n if (dw > ww && e.pageX - dl < $.vakata.dnd.settings.scroll_proximity) {\n vakata_dnd.scroll_l = -1;\n }\n\n if (dw > ww && ww - (e.pageX - dl) < $.vakata.dnd.settings.scroll_proximity) {\n vakata_dnd.scroll_l = 1;\n }\n\n if (vakata_dnd.scroll_t || vakata_dnd.scroll_l) {\n vakata_dnd.scroll_e = d;\n }\n }\n\n if (vakata_dnd.scroll_e) {\n $.vakata.dnd._scroll(true);\n }\n\n if (vakata_dnd.helper) {\n ht = parseInt(e.pageY + $.vakata.dnd.settings.helper_top, 10);\n hl = parseInt(e.pageX + $.vakata.dnd.settings.helper_left, 10);\n\n if (dh && ht + 25 > dh) {\n ht = dh - 50;\n }\n\n if (dw && hl + vakata_dnd.helper_w > dw) {\n hl = dw - (vakata_dnd.helper_w + 2);\n }\n\n vakata_dnd.helper.css({\n left: hl + \"px\",\n top: ht + \"px\"\n });\n }\n /**\n * triggered on the document when a drag is in progress\n * @event\n * @plugin dnd\n * @name dnd_move.vakata\n * @param {Mixed} data any data supplied with the call to $.vakata.dnd.start\n * @param {DOM} element the DOM element being dragged\n * @param {jQuery} helper the helper shown next to the mouse\n * @param {Object} event the event that caused this to trigger (most likely mousemove)\n */\n\n\n $.vakata.dnd._trigger(\"move\", e);\n\n return false;\n },\n stop: function stop(e) {\n if (e.type === \"touchend\" && e.originalEvent && e.originalEvent.changedTouches && e.originalEvent.changedTouches[0]) {\n e.pageX = e.originalEvent.changedTouches[0].pageX;\n e.pageY = e.originalEvent.changedTouches[0].pageY;\n e.target = document.elementFromPoint(e.originalEvent.changedTouches[0].pageX - window.pageXOffset, e.originalEvent.changedTouches[0].pageY - window.pageYOffset);\n }\n\n if (vakata_dnd.is_drag) {\n /**\n * triggered on the document when a drag stops (the dragged element is dropped)\n * @event\n * @plugin dnd\n * @name dnd_stop.vakata\n * @param {Mixed} data any data supplied with the call to $.vakata.dnd.start\n * @param {DOM} element the DOM element being dragged\n * @param {jQuery} helper the helper shown next to the mouse\n * @param {Object} event the event that caused the stop\n */\n if (e.target !== vakata_dnd.target) {\n $(vakata_dnd.target).off('click.vakata');\n }\n\n $.vakata.dnd._trigger(\"stop\", e);\n } else {\n if (e.type === \"touchend\" && e.target === vakata_dnd.target) {\n var to = setTimeout(function () {\n $(e.target).trigger('click');\n }, 100);\n $(e.target).one('click', function () {\n if (to) {\n clearTimeout(to);\n }\n });\n }\n }\n\n $.vakata.dnd._clean();\n\n return false;\n }\n };\n })($); // include the dnd plugin by default\n // $.jstree.defaults.plugins.push(\"dnd\");\n\n /**\n * ### Massload plugin\n *\n * Adds massload functionality to jsTree, so that multiple nodes can be loaded in a single request (only useful with lazy loading).\n */\n\n /**\n * massload configuration\n *\n * It is possible to set this to a standard jQuery-like AJAX config.\n * In addition to the standard jQuery ajax options here you can supply functions for `data` and `url`, the functions will be run in the current instance's scope and a param will be passed indicating which node IDs need to be loaded, the return value of those functions will be used.\n *\n * You can also set this to a function, that function will receive the node IDs being loaded as argument and a second param which is a function (callback) which should be called with the result.\n *\n * Both the AJAX and the function approach rely on the same return value - an object where the keys are the node IDs, and the value is the children of that node as an array.\n *\n *\t{\n *\t\t\"id1\" : [{ \"text\" : \"Child of ID1\", \"id\" : \"c1\" }, { \"text\" : \"Another child of ID1\", \"id\" : \"c2\" }],\n *\t\t\"id2\" : [{ \"text\" : \"Child of ID2\", \"id\" : \"c3\" }]\n *\t}\n * \n * @name $.jstree.defaults.massload\n * @plugin massload\n */\n\n\n $.jstree.defaults.massload = null;\n\n $.jstree.plugins.massload = function (options, parent) {\n this.init = function (el, options) {\n this._data.massload = {};\n parent.init.call(this, el, options);\n };\n\n this._load_nodes = function (nodes, callback, is_callback, force_reload) {\n var s = this.settings.massload,\n toLoad = [],\n m = this._model.data,\n i,\n j,\n dom;\n\n if (!is_callback) {\n for (i = 0, j = nodes.length; i < j; i++) {\n if (!m[nodes[i]] || !m[nodes[i]].state.loaded && !m[nodes[i]].state.failed || force_reload) {\n toLoad.push(nodes[i]);\n dom = this.get_node(nodes[i], true);\n\n if (dom && dom.length) {\n dom.addClass(\"jstree-loading\").attr('aria-busy', true);\n }\n }\n }\n\n this._data.massload = {};\n\n if (toLoad.length) {\n if ($.vakata.is_function(s)) {\n return s.call(this, toLoad, function (data) {\n var i, j;\n\n if (data) {\n for (i in data) {\n if (data.hasOwnProperty(i)) {\n this._data.massload[i] = data[i];\n }\n }\n }\n\n for (i = 0, j = nodes.length; i < j; i++) {\n dom = this.get_node(nodes[i], true);\n\n if (dom && dom.length) {\n dom.removeClass(\"jstree-loading\").attr('aria-busy', false);\n }\n }\n\n parent._load_nodes.call(this, nodes, callback, is_callback, force_reload);\n }.bind(this));\n }\n\n if (_typeof(s) === 'object' && s && s.url) {\n s = $.extend(true, {}, s);\n\n if ($.vakata.is_function(s.url)) {\n s.url = s.url.call(this, toLoad);\n }\n\n if ($.vakata.is_function(s.data)) {\n s.data = s.data.call(this, toLoad);\n }\n\n return $.ajax(s).done(function (data, t, x) {\n var i, j;\n\n if (data) {\n for (i in data) {\n if (data.hasOwnProperty(i)) {\n this._data.massload[i] = data[i];\n }\n }\n }\n\n for (i = 0, j = nodes.length; i < j; i++) {\n dom = this.get_node(nodes[i], true);\n\n if (dom && dom.length) {\n dom.removeClass(\"jstree-loading\").attr('aria-busy', false);\n }\n }\n\n parent._load_nodes.call(this, nodes, callback, is_callback, force_reload);\n }.bind(this)).fail(function (f) {\n parent._load_nodes.call(this, nodes, callback, is_callback, force_reload);\n }.bind(this));\n }\n }\n }\n\n return parent._load_nodes.call(this, nodes, callback, is_callback, force_reload);\n };\n\n this._load_node = function (obj, callback) {\n var data = this._data.massload[obj.id],\n rslt = null,\n dom;\n\n if (data) {\n rslt = this[typeof data === 'string' ? '_append_html_data' : '_append_json_data'](obj, typeof data === 'string' ? $($.parseHTML(data)).filter(function () {\n return this.nodeType !== 3;\n }) : data, function (status) {\n callback.call(this, status);\n });\n dom = this.get_node(obj.id, true);\n\n if (dom && dom.length) {\n dom.removeClass(\"jstree-loading\").attr('aria-busy', false);\n }\n\n delete this._data.massload[obj.id];\n return rslt;\n }\n\n return parent._load_node.call(this, obj, callback);\n };\n };\n /**\n * ### Search plugin\n *\n * Adds search functionality to jsTree.\n */\n\n /**\n * stores all defaults for the search plugin\n * @name $.jstree.defaults.search\n * @plugin search\n */\n\n\n $.jstree.defaults.search = {\n /**\n * a jQuery-like AJAX config, which jstree uses if a server should be queried for results.\n *\n * A `str` (which is the search string) parameter will be added with the request, an optional `inside` parameter will be added if the search is limited to a node id. The expected result is a JSON array with nodes that need to be opened so that matching nodes will be revealed.\n * Leave this setting as `false` to not query the server. You can also set this to a function, which will be invoked in the instance's scope and receive 3 parameters - the search string, the callback to call with the array of nodes to load, and the optional node ID to limit the search to\n * @name $.jstree.defaults.search.ajax\n * @plugin search\n */\n ajax: false,\n\n /**\n * Indicates if the search should be fuzzy or not (should `chnd3` match `child node 3`). Default is `false`.\n * @name $.jstree.defaults.search.fuzzy\n * @plugin search\n */\n fuzzy: false,\n\n /**\n * Indicates if the search should be case sensitive. Default is `false`.\n * @name $.jstree.defaults.search.case_sensitive\n * @plugin search\n */\n case_sensitive: false,\n\n /**\n * Indicates if the tree should be filtered (by default) to show only matching nodes (keep in mind this can be a heavy on large trees in old browsers).\n * This setting can be changed at runtime when calling the search method. Default is `false`.\n * @name $.jstree.defaults.search.show_only_matches\n * @plugin search\n */\n show_only_matches: false,\n\n /**\n * Indicates if the children of matched element are shown (when show_only_matches is true)\n * This setting can be changed at runtime when calling the search method. Default is `false`.\n * @name $.jstree.defaults.search.show_only_matches_children\n * @plugin search\n */\n show_only_matches_children: false,\n\n /**\n * Indicates if all nodes opened to reveal the search result, should be closed when the search is cleared or a new search is performed. Default is `true`.\n * @name $.jstree.defaults.search.close_opened_onclear\n * @plugin search\n */\n close_opened_onclear: true,\n\n /**\n * Indicates if only leaf nodes should be included in search results. Default is `false`.\n * @name $.jstree.defaults.search.search_leaves_only\n * @plugin search\n */\n search_leaves_only: false,\n\n /**\n * If set to a function it wil be called in the instance's scope with two arguments - search string and node (where node will be every node in the structure, so use with caution).\n * If the function returns a truthy value the node will be considered a match (it might not be displayed if search_only_leaves is set to true and the node is not a leaf). Default is `false`.\n * @name $.jstree.defaults.search.search_callback\n * @plugin search\n */\n search_callback: false\n };\n\n $.jstree.plugins.search = function (options, parent) {\n this.bind = function () {\n parent.bind.call(this);\n this._data.search.str = \"\";\n this._data.search.dom = $();\n this._data.search.res = [];\n this._data.search.opn = [];\n this._data.search.som = false;\n this._data.search.smc = false;\n this._data.search.hdn = [];\n this.element.on(\"search.jstree\", function (e, data) {\n if (this._data.search.som && data.res.length) {\n var m = this._model.data,\n i,\n j,\n p = [],\n k,\n l;\n\n for (i = 0, j = data.res.length; i < j; i++) {\n if (m[data.res[i]] && !m[data.res[i]].state.hidden) {\n p.push(data.res[i]);\n p = p.concat(m[data.res[i]].parents);\n\n if (this._data.search.smc) {\n for (k = 0, l = m[data.res[i]].children_d.length; k < l; k++) {\n if (m[m[data.res[i]].children_d[k]] && !m[m[data.res[i]].children_d[k]].state.hidden) {\n p.push(m[data.res[i]].children_d[k]);\n }\n }\n }\n }\n }\n\n p = $.vakata.array_remove_item($.vakata.array_unique(p), $.jstree.root);\n this._data.search.hdn = this.hide_all(true);\n this.show_node(p, true);\n this.redraw(true);\n }\n }.bind(this)).on(\"clear_search.jstree\", function (e, data) {\n if (this._data.search.som && data.res.length) {\n this.show_node(this._data.search.hdn, true);\n this.redraw(true);\n }\n }.bind(this));\n };\n /**\n * used to search the tree nodes for a given string\n * @name search(str [, skip_async])\n * @param {String} str the search string\n * @param {Boolean} skip_async if set to true server will not be queried even if configured\n * @param {Boolean} show_only_matches if set to true only matching nodes will be shown (keep in mind this can be very slow on large trees or old browsers)\n * @param {mixed} inside an optional node to whose children to limit the search\n * @param {Boolean} append if set to true the results of this search are appended to the previous search\n * @plugin search\n * @trigger search.jstree\n */\n\n\n this.search = function (str, skip_async, show_only_matches, inside, append, show_only_matches_children) {\n if (str === false || $.vakata.trim(str.toString()) === \"\") {\n return this.clear_search();\n }\n\n inside = this.get_node(inside);\n inside = inside && inside.id ? inside.id : null;\n str = str.toString();\n var s = this.settings.search,\n a = s.ajax ? s.ajax : false,\n m = this._model.data,\n f = null,\n r = [],\n p = [],\n i,\n j;\n\n if (this._data.search.res.length && !append) {\n this.clear_search();\n }\n\n if (show_only_matches === undefined) {\n show_only_matches = s.show_only_matches;\n }\n\n if (show_only_matches_children === undefined) {\n show_only_matches_children = s.show_only_matches_children;\n }\n\n if (!skip_async && a !== false) {\n if ($.vakata.is_function(a)) {\n return a.call(this, str, function (d) {\n if (d && d.d) {\n d = d.d;\n }\n\n this._load_nodes(!$.vakata.is_array(d) ? [] : $.vakata.array_unique(d), function () {\n this.search(str, true, show_only_matches, inside, append, show_only_matches_children);\n });\n }.bind(this), inside);\n } else {\n a = $.extend({}, a);\n\n if (!a.data) {\n a.data = {};\n }\n\n a.data.str = str;\n\n if (inside) {\n a.data.inside = inside;\n }\n\n if (this._data.search.lastRequest) {\n this._data.search.lastRequest.abort();\n }\n\n this._data.search.lastRequest = $.ajax(a).fail(function () {\n this._data.core.last_error = {\n 'error': 'ajax',\n 'plugin': 'search',\n 'id': 'search_01',\n 'reason': 'Could not load search parents',\n 'data': JSON.stringify(a)\n };\n this.settings.core.error.call(this, this._data.core.last_error);\n }.bind(this)).done(function (d) {\n if (d && d.d) {\n d = d.d;\n }\n\n this._load_nodes(!$.vakata.is_array(d) ? [] : $.vakata.array_unique(d), function () {\n this.search(str, true, show_only_matches, inside, append, show_only_matches_children);\n });\n }.bind(this));\n return this._data.search.lastRequest;\n }\n }\n\n if (!append) {\n this._data.search.str = str;\n this._data.search.dom = $();\n this._data.search.res = [];\n this._data.search.opn = [];\n this._data.search.som = show_only_matches;\n this._data.search.smc = show_only_matches_children;\n }\n\n f = new $.vakata.search(str, true, {\n caseSensitive: s.case_sensitive,\n fuzzy: s.fuzzy\n });\n $.each(m[inside ? inside : $.jstree.root].children_d, function (ii, i) {\n var v = m[i];\n\n if (v.text && !v.state.hidden && (!s.search_leaves_only || v.state.loaded && v.children.length === 0) && (s.search_callback && s.search_callback.call(this, str, v) || !s.search_callback && f.search(v.text).isMatch)) {\n r.push(i);\n p = p.concat(v.parents);\n }\n });\n\n if (r.length) {\n p = $.vakata.array_unique(p);\n\n for (i = 0, j = p.length; i < j; i++) {\n if (p[i] !== $.jstree.root && m[p[i]] && this.open_node(p[i], null, 0) === true) {\n this._data.search.opn.push(p[i]);\n }\n }\n\n if (!append) {\n this._data.search.dom = $(this.element[0].querySelectorAll('#' + $.map(r, function (v) {\n return \"0123456789\".indexOf(v[0]) !== -1 ? '\\\\3' + v[0] + ' ' + v.substr(1).replace($.jstree.idregex, '\\\\$&') : v.replace($.jstree.idregex, '\\\\$&');\n }).join(', #')));\n this._data.search.res = r;\n } else {\n this._data.search.dom = this._data.search.dom.add($(this.element[0].querySelectorAll('#' + $.map(r, function (v) {\n return \"0123456789\".indexOf(v[0]) !== -1 ? '\\\\3' + v[0] + ' ' + v.substr(1).replace($.jstree.idregex, '\\\\$&') : v.replace($.jstree.idregex, '\\\\$&');\n }).join(', #'))));\n this._data.search.res = $.vakata.array_unique(this._data.search.res.concat(r));\n }\n\n this._data.search.dom.children(\".jstree-anchor\").addClass('jstree-search');\n }\n /**\n * triggered after search is complete\n * @event\n * @name search.jstree\n * @param {jQuery} nodes a jQuery collection of matching nodes\n * @param {String} str the search string\n * @param {Array} res a collection of objects represeing the matching nodes\n * @plugin search\n */\n\n\n this.trigger('search', {\n nodes: this._data.search.dom,\n str: str,\n res: this._data.search.res,\n show_only_matches: show_only_matches\n });\n };\n /**\n * used to clear the last search (removes classes and shows all nodes if filtering is on)\n * @name clear_search()\n * @plugin search\n * @trigger clear_search.jstree\n */\n\n\n this.clear_search = function () {\n if (this.settings.search.close_opened_onclear) {\n this.close_node(this._data.search.opn, 0);\n }\n /**\n * triggered after search is complete\n * @event\n * @name clear_search.jstree\n * @param {jQuery} nodes a jQuery collection of matching nodes (the result from the last search)\n * @param {String} str the search string (the last search string)\n * @param {Array} res a collection of objects represeing the matching nodes (the result from the last search)\n * @plugin search\n */\n\n\n this.trigger('clear_search', {\n 'nodes': this._data.search.dom,\n str: this._data.search.str,\n res: this._data.search.res\n });\n\n if (this._data.search.res.length) {\n this._data.search.dom = $(this.element[0].querySelectorAll('#' + $.map(this._data.search.res, function (v) {\n return \"0123456789\".indexOf(v[0]) !== -1 ? '\\\\3' + v[0] + ' ' + v.substr(1).replace($.jstree.idregex, '\\\\$&') : v.replace($.jstree.idregex, '\\\\$&');\n }).join(', #')));\n\n this._data.search.dom.children(\".jstree-anchor\").removeClass(\"jstree-search\");\n }\n\n this._data.search.str = \"\";\n this._data.search.res = [];\n this._data.search.opn = [];\n this._data.search.dom = $();\n };\n\n this.redraw_node = function (obj, deep, callback, force_render) {\n obj = parent.redraw_node.apply(this, arguments);\n\n if (obj) {\n if ($.inArray(obj.id, this._data.search.res) !== -1) {\n var i,\n j,\n tmp = null;\n\n for (i = 0, j = obj.childNodes.length; i < j; i++) {\n if (obj.childNodes[i] && obj.childNodes[i].className && obj.childNodes[i].className.indexOf(\"jstree-anchor\") !== -1) {\n tmp = obj.childNodes[i];\n break;\n }\n }\n\n if (tmp) {\n tmp.className += ' jstree-search';\n }\n }\n }\n\n return obj;\n };\n }; // helpers\n\n\n (function ($) {\n // from http://kiro.me/projects/fuse.html\n $.vakata.search = function (pattern, txt, options) {\n options = options || {};\n options = $.extend({}, $.vakata.search.defaults, options);\n\n if (options.fuzzy !== false) {\n options.fuzzy = true;\n }\n\n pattern = options.caseSensitive ? pattern : pattern.toLowerCase();\n var MATCH_LOCATION = options.location,\n MATCH_DISTANCE = options.distance,\n MATCH_THRESHOLD = options.threshold,\n patternLen = pattern.length,\n matchmask,\n pattern_alphabet,\n match_bitapScore,\n search;\n\n if (patternLen > 32) {\n options.fuzzy = false;\n }\n\n if (options.fuzzy) {\n matchmask = 1 << patternLen - 1;\n\n pattern_alphabet = function () {\n var mask = {},\n i = 0;\n\n for (i = 0; i < patternLen; i++) {\n mask[pattern.charAt(i)] = 0;\n }\n\n for (i = 0; i < patternLen; i++) {\n mask[pattern.charAt(i)] |= 1 << patternLen - i - 1;\n }\n\n return mask;\n }();\n\n match_bitapScore = function match_bitapScore(e, x) {\n var accuracy = e / patternLen,\n proximity = Math.abs(MATCH_LOCATION - x);\n\n if (!MATCH_DISTANCE) {\n return proximity ? 1.0 : accuracy;\n }\n\n return accuracy + proximity / MATCH_DISTANCE;\n };\n }\n\n search = function search(text) {\n text = options.caseSensitive ? text : text.toLowerCase();\n\n if (pattern === text || text.indexOf(pattern) !== -1) {\n return {\n isMatch: true,\n score: 0\n };\n }\n\n if (!options.fuzzy) {\n return {\n isMatch: false,\n score: 1\n };\n }\n\n var i,\n j,\n textLen = text.length,\n scoreThreshold = MATCH_THRESHOLD,\n bestLoc = text.indexOf(pattern, MATCH_LOCATION),\n binMin,\n binMid,\n binMax = patternLen + textLen,\n lastRd,\n start,\n finish,\n rd,\n charMatch,\n score = 1,\n locations = [];\n\n if (bestLoc !== -1) {\n scoreThreshold = Math.min(match_bitapScore(0, bestLoc), scoreThreshold);\n bestLoc = text.lastIndexOf(pattern, MATCH_LOCATION + patternLen);\n\n if (bestLoc !== -1) {\n scoreThreshold = Math.min(match_bitapScore(0, bestLoc), scoreThreshold);\n }\n }\n\n bestLoc = -1;\n\n for (i = 0; i < patternLen; i++) {\n binMin = 0;\n binMid = binMax;\n\n while (binMin < binMid) {\n if (match_bitapScore(i, MATCH_LOCATION + binMid) <= scoreThreshold) {\n binMin = binMid;\n } else {\n binMax = binMid;\n }\n\n binMid = Math.floor((binMax - binMin) / 2 + binMin);\n }\n\n binMax = binMid;\n start = Math.max(1, MATCH_LOCATION - binMid + 1);\n finish = Math.min(MATCH_LOCATION + binMid, textLen) + patternLen;\n rd = new Array(finish + 2);\n rd[finish + 1] = (1 << i) - 1;\n\n for (j = finish; j >= start; j--) {\n charMatch = pattern_alphabet[text.charAt(j - 1)];\n\n if (i === 0) {\n rd[j] = (rd[j + 1] << 1 | 1) & charMatch;\n } else {\n rd[j] = (rd[j + 1] << 1 | 1) & charMatch | ((lastRd[j + 1] | lastRd[j]) << 1 | 1) | lastRd[j + 1];\n }\n\n if (rd[j] & matchmask) {\n score = match_bitapScore(i, j - 1);\n\n if (score <= scoreThreshold) {\n scoreThreshold = score;\n bestLoc = j - 1;\n locations.push(bestLoc);\n\n if (bestLoc > MATCH_LOCATION) {\n start = Math.max(1, 2 * MATCH_LOCATION - bestLoc);\n } else {\n break;\n }\n }\n }\n }\n\n if (match_bitapScore(i + 1, MATCH_LOCATION) > scoreThreshold) {\n break;\n }\n\n lastRd = rd;\n }\n\n return {\n isMatch: bestLoc >= 0,\n score: score\n };\n };\n\n return txt === true ? {\n 'search': search\n } : search(txt);\n };\n\n $.vakata.search.defaults = {\n location: 0,\n distance: 100,\n threshold: 0.6,\n fuzzy: false,\n caseSensitive: false\n };\n })($); // include the search plugin by default\n // $.jstree.defaults.plugins.push(\"search\");\n\n /**\n * ### Sort plugin\n *\n * Automatically sorts all siblings in the tree according to a sorting function.\n */\n\n /**\n * the settings function used to sort the nodes.\n * It is executed in the tree's context, accepts two nodes as arguments and should return `1` or `-1`.\n * @name $.jstree.defaults.sort\n * @plugin sort\n */\n\n\n $.jstree.defaults.sort = function (a, b) {\n //return this.get_type(a) === this.get_type(b) ? (this.get_text(a) > this.get_text(b) ? 1 : -1) : this.get_type(a) >= this.get_type(b);\n return this.get_text(a) > this.get_text(b) ? 1 : -1;\n };\n\n $.jstree.plugins.sort = function (options, parent) {\n this.bind = function () {\n parent.bind.call(this);\n this.element.on(\"model.jstree\", function (e, data) {\n this.sort(data.parent, true);\n }.bind(this)).on(\"rename_node.jstree create_node.jstree\", function (e, data) {\n this.sort(data.parent || data.node.parent, false);\n this.redraw_node(data.parent || data.node.parent, true);\n }.bind(this)).on(\"move_node.jstree copy_node.jstree\", function (e, data) {\n this.sort(data.parent, false);\n this.redraw_node(data.parent, true);\n }.bind(this));\n };\n /**\n * used to sort a node's children\n * @private\n * @name sort(obj [, deep])\n * @param {mixed} obj the node\n * @param {Boolean} deep if set to `true` nodes are sorted recursively.\n * @plugin sort\n * @trigger search.jstree\n */\n\n\n this.sort = function (obj, deep) {\n var i, j;\n obj = this.get_node(obj);\n\n if (obj && obj.children && obj.children.length) {\n obj.children.sort(this.settings.sort.bind(this));\n\n if (deep) {\n for (i = 0, j = obj.children_d.length; i < j; i++) {\n this.sort(obj.children_d[i], false);\n }\n }\n }\n };\n }; // include the sort plugin by default\n // $.jstree.defaults.plugins.push(\"sort\");\n\n /**\n * ### State plugin\n *\n * Saves the state of the tree (selected nodes, opened nodes) on the user's computer using available options (localStorage, cookies, etc)\n */\n\n\n var to = false;\n /**\n * stores all defaults for the state plugin\n * @name $.jstree.defaults.state\n * @plugin state\n */\n\n $.jstree.defaults.state = {\n /**\n * A string for the key to use when saving the current tree (change if using multiple trees in your project). Defaults to `jstree`.\n * @name $.jstree.defaults.state.key\n * @plugin state\n */\n key: 'jstree',\n\n /**\n * A space separated list of events that trigger a state save. Defaults to `changed.jstree open_node.jstree close_node.jstree`.\n * @name $.jstree.defaults.state.events\n * @plugin state\n */\n events: 'changed.jstree open_node.jstree close_node.jstree check_node.jstree uncheck_node.jstree',\n\n /**\n * Time in milliseconds after which the state will expire. Defaults to 'false' meaning - no expire.\n * @name $.jstree.defaults.state.ttl\n * @plugin state\n */\n ttl: false,\n\n /**\n * A function that will be executed prior to restoring state with one argument - the state object. Can be used to clear unwanted parts of the state.\n * @name $.jstree.defaults.state.filter\n * @plugin state\n */\n filter: false,\n\n /**\n * Should loaded nodes be restored (setting this to true means that it is possible that the whole tree will be loaded for some users - use with caution). Defaults to `false`\n * @name $.jstree.defaults.state.preserve_loaded\n * @plugin state\n */\n preserve_loaded: false\n };\n\n $.jstree.plugins.state = function (options, parent) {\n this.bind = function () {\n parent.bind.call(this);\n\n var bind = function () {\n this.element.on(this.settings.state.events, function () {\n if (to) {\n clearTimeout(to);\n }\n\n to = setTimeout(function () {\n this.save_state();\n }.bind(this), 100);\n }.bind(this));\n /**\n * triggered when the state plugin is finished restoring the state (and immediately after ready if there is no state to restore).\n * @event\n * @name state_ready.jstree\n * @plugin state\n */\n\n this.trigger('state_ready');\n }.bind(this);\n\n this.element.on(\"ready.jstree\", function (e, data) {\n this.element.one(\"restore_state.jstree\", bind);\n\n if (!this.restore_state()) {\n bind();\n }\n }.bind(this));\n };\n /**\n * save the state\n * @name save_state()\n * @plugin state\n */\n\n\n this.save_state = function () {\n var tm = this.get_state();\n\n if (!this.settings.state.preserve_loaded) {\n delete tm.core.loaded;\n }\n\n var st = {\n 'state': tm,\n 'ttl': this.settings.state.ttl,\n 'sec': +new Date()\n };\n $.vakata.storage.set(this.settings.state.key, JSON.stringify(st));\n };\n /**\n * restore the state from the user's computer\n * @name restore_state()\n * @plugin state\n */\n\n\n this.restore_state = function () {\n var k = $.vakata.storage.get(this.settings.state.key);\n\n if (!!k) {\n try {\n k = JSON.parse(k);\n } catch (ex) {\n return false;\n }\n }\n\n if (!!k && k.ttl && k.sec && +new Date() - k.sec > k.ttl) {\n return false;\n }\n\n if (!!k && k.state) {\n k = k.state;\n }\n\n if (!!k && $.vakata.is_function(this.settings.state.filter)) {\n k = this.settings.state.filter.call(this, k);\n }\n\n if (!!k) {\n if (!this.settings.state.preserve_loaded) {\n delete k.core.loaded;\n }\n\n this.element.one(\"set_state.jstree\", function (e, data) {\n data.instance.trigger('restore_state', {\n 'state': $.extend(true, {}, k)\n });\n });\n this.set_state(k);\n return true;\n }\n\n return false;\n };\n /**\n * clear the state on the user's computer\n * @name clear_state()\n * @plugin state\n */\n\n\n this.clear_state = function () {\n return $.vakata.storage.del(this.settings.state.key);\n };\n };\n\n (function ($, undefined) {\n $.vakata.storage = {\n // simply specifying the functions in FF throws an error\n set: function set(key, val) {\n return window.localStorage.setItem(key, val);\n },\n get: function get(key) {\n return window.localStorage.getItem(key);\n },\n del: function del(key) {\n return window.localStorage.removeItem(key);\n }\n };\n })($); // include the state plugin by default\n // $.jstree.defaults.plugins.push(\"state\");\n\n /**\n * ### Types plugin\n *\n * Makes it possible to add predefined types for groups of nodes, which make it possible to easily control nesting rules and icon for each group.\n */\n\n /**\n * An object storing all types as key value pairs, where the key is the type name and the value is an object that could contain following keys (all optional).\n *\n * * `max_children` the maximum number of immediate children this node type can have. Do not specify or set to `-1` for unlimited.\n * * `max_depth` the maximum number of nesting this node type can have. A value of `1` would mean that the node can have children, but no grandchildren. Do not specify or set to `-1` for unlimited.\n * * `valid_children` an array of node type strings, that nodes of this type can have as children. Do not specify or set to `-1` for no limits.\n * * `icon` a string - can be a path to an icon or a className, if using an image that is in the current directory use a `./` prefix, otherwise it will be detected as a class. Omit to use the default icon from your theme.\n * * `li_attr` an object of values which will be used to add HTML attributes on the resulting LI DOM node (merged with the node's own data)\n * * `a_attr` an object of values which will be used to add HTML attributes on the resulting A DOM node (merged with the node's own data)\n *\n * There are two predefined types:\n *\n * * `#` represents the root of the tree, for example `max_children` would control the maximum number of root nodes.\n * * `default` represents the default node - any settings here will be applied to all nodes that do not have a type specified.\n *\n * @name $.jstree.defaults.types\n * @plugin types\n */\n\n\n $.jstree.defaults.types = {\n 'default': {}\n };\n $.jstree.defaults.types[$.jstree.root] = {};\n\n $.jstree.plugins.types = function (options, parent) {\n this.init = function (el, options) {\n var i, j;\n\n if (options && options.types && options.types['default']) {\n for (i in options.types) {\n if (i !== \"default\" && i !== $.jstree.root && options.types.hasOwnProperty(i)) {\n for (j in options.types['default']) {\n if (options.types['default'].hasOwnProperty(j) && options.types[i][j] === undefined) {\n options.types[i][j] = options.types['default'][j];\n }\n }\n }\n }\n }\n\n parent.init.call(this, el, options);\n this._model.data[$.jstree.root].type = $.jstree.root;\n };\n\n this.refresh = function (skip_loading, forget_state) {\n parent.refresh.call(this, skip_loading, forget_state);\n this._model.data[$.jstree.root].type = $.jstree.root;\n };\n\n this.bind = function () {\n this.element.on('model.jstree', function (e, data) {\n var m = this._model.data,\n dpc = data.nodes,\n t = this.settings.types,\n i,\n j,\n c = 'default',\n k;\n\n for (i = 0, j = dpc.length; i < j; i++) {\n c = 'default';\n\n if (m[dpc[i]].original && m[dpc[i]].original.type && t[m[dpc[i]].original.type]) {\n c = m[dpc[i]].original.type;\n }\n\n if (m[dpc[i]].data && m[dpc[i]].data.jstree && m[dpc[i]].data.jstree.type && t[m[dpc[i]].data.jstree.type]) {\n c = m[dpc[i]].data.jstree.type;\n }\n\n m[dpc[i]].type = c;\n\n if (m[dpc[i]].icon === true && t[c].icon !== undefined) {\n m[dpc[i]].icon = t[c].icon;\n }\n\n if (t[c].li_attr !== undefined && _typeof(t[c].li_attr) === 'object') {\n for (k in t[c].li_attr) {\n if (t[c].li_attr.hasOwnProperty(k)) {\n if (k === 'id') {\n continue;\n } else if (m[dpc[i]].li_attr[k] === undefined) {\n m[dpc[i]].li_attr[k] = t[c].li_attr[k];\n } else if (k === 'class') {\n m[dpc[i]].li_attr['class'] = t[c].li_attr['class'] + ' ' + m[dpc[i]].li_attr['class'];\n }\n }\n }\n }\n\n if (t[c].a_attr !== undefined && _typeof(t[c].a_attr) === 'object') {\n for (k in t[c].a_attr) {\n if (t[c].a_attr.hasOwnProperty(k)) {\n if (k === 'id') {\n continue;\n } else if (m[dpc[i]].a_attr[k] === undefined) {\n m[dpc[i]].a_attr[k] = t[c].a_attr[k];\n } else if (k === 'href' && m[dpc[i]].a_attr[k] === '#') {\n m[dpc[i]].a_attr['href'] = t[c].a_attr['href'];\n } else if (k === 'class') {\n m[dpc[i]].a_attr['class'] = t[c].a_attr['class'] + ' ' + m[dpc[i]].a_attr['class'];\n }\n }\n }\n }\n }\n\n m[$.jstree.root].type = $.jstree.root;\n }.bind(this));\n parent.bind.call(this);\n };\n\n this.get_json = function (obj, options, flat) {\n var i,\n j,\n m = this._model.data,\n opt = options ? $.extend(true, {}, options, {\n no_id: false\n }) : {},\n tmp = parent.get_json.call(this, obj, opt, flat);\n\n if (tmp === false) {\n return false;\n }\n\n if ($.vakata.is_array(tmp)) {\n for (i = 0, j = tmp.length; i < j; i++) {\n tmp[i].type = tmp[i].id && m[tmp[i].id] && m[tmp[i].id].type ? m[tmp[i].id].type : \"default\";\n\n if (options && options.no_id) {\n delete tmp[i].id;\n\n if (tmp[i].li_attr && tmp[i].li_attr.id) {\n delete tmp[i].li_attr.id;\n }\n\n if (tmp[i].a_attr && tmp[i].a_attr.id) {\n delete tmp[i].a_attr.id;\n }\n }\n }\n } else {\n tmp.type = tmp.id && m[tmp.id] && m[tmp.id].type ? m[tmp.id].type : \"default\";\n\n if (options && options.no_id) {\n tmp = this._delete_ids(tmp);\n }\n }\n\n return tmp;\n };\n\n this._delete_ids = function (tmp) {\n if ($.vakata.is_array(tmp)) {\n for (var i = 0, j = tmp.length; i < j; i++) {\n tmp[i] = this._delete_ids(tmp[i]);\n }\n\n return tmp;\n }\n\n delete tmp.id;\n\n if (tmp.li_attr && tmp.li_attr.id) {\n delete tmp.li_attr.id;\n }\n\n if (tmp.a_attr && tmp.a_attr.id) {\n delete tmp.a_attr.id;\n }\n\n if (tmp.children && $.vakata.is_array(tmp.children)) {\n tmp.children = this._delete_ids(tmp.children);\n }\n\n return tmp;\n };\n\n this.check = function (chk, obj, par, pos, more) {\n if (parent.check.call(this, chk, obj, par, pos, more) === false) {\n return false;\n }\n\n obj = obj && obj.id ? obj : this.get_node(obj);\n par = par && par.id ? par : this.get_node(par);\n var m = obj && obj.id ? more && more.origin ? more.origin : $.jstree.reference(obj.id) : null,\n tmp,\n d,\n i,\n j;\n m = m && m._model && m._model.data ? m._model.data : null;\n\n switch (chk) {\n case \"create_node\":\n case \"move_node\":\n case \"copy_node\":\n if (chk !== 'move_node' || $.inArray(obj.id, par.children) === -1) {\n tmp = this.get_rules(par);\n\n if (tmp.max_children !== undefined && tmp.max_children !== -1 && tmp.max_children === par.children.length) {\n this._data.core.last_error = {\n 'error': 'check',\n 'plugin': 'types',\n 'id': 'types_01',\n 'reason': 'max_children prevents function: ' + chk,\n 'data': JSON.stringify({\n 'chk': chk,\n 'pos': pos,\n 'obj': obj && obj.id ? obj.id : false,\n 'par': par && par.id ? par.id : false\n })\n };\n return false;\n }\n\n if (tmp.valid_children !== undefined && tmp.valid_children !== -1 && $.inArray(obj.type || 'default', tmp.valid_children) === -1) {\n this._data.core.last_error = {\n 'error': 'check',\n 'plugin': 'types',\n 'id': 'types_02',\n 'reason': 'valid_children prevents function: ' + chk,\n 'data': JSON.stringify({\n 'chk': chk,\n 'pos': pos,\n 'obj': obj && obj.id ? obj.id : false,\n 'par': par && par.id ? par.id : false\n })\n };\n return false;\n }\n\n if (m && obj.children_d && obj.parents) {\n d = 0;\n\n for (i = 0, j = obj.children_d.length; i < j; i++) {\n d = Math.max(d, m[obj.children_d[i]].parents.length);\n }\n\n d = d - obj.parents.length + 1;\n }\n\n if (d <= 0 || d === undefined) {\n d = 1;\n }\n\n do {\n if (tmp.max_depth !== undefined && tmp.max_depth !== -1 && tmp.max_depth < d) {\n this._data.core.last_error = {\n 'error': 'check',\n 'plugin': 'types',\n 'id': 'types_03',\n 'reason': 'max_depth prevents function: ' + chk,\n 'data': JSON.stringify({\n 'chk': chk,\n 'pos': pos,\n 'obj': obj && obj.id ? obj.id : false,\n 'par': par && par.id ? par.id : false\n })\n };\n return false;\n }\n\n par = this.get_node(par.parent);\n tmp = this.get_rules(par);\n d++;\n } while (par);\n }\n\n break;\n }\n\n return true;\n };\n /**\n * used to retrieve the type settings object for a node\n * @name get_rules(obj)\n * @param {mixed} obj the node to find the rules for\n * @return {Object}\n * @plugin types\n */\n\n\n this.get_rules = function (obj) {\n obj = this.get_node(obj);\n\n if (!obj) {\n return false;\n }\n\n var tmp = this.get_type(obj, true);\n\n if (tmp.max_depth === undefined) {\n tmp.max_depth = -1;\n }\n\n if (tmp.max_children === undefined) {\n tmp.max_children = -1;\n }\n\n if (tmp.valid_children === undefined) {\n tmp.valid_children = -1;\n }\n\n return tmp;\n };\n /**\n * used to retrieve the type string or settings object for a node\n * @name get_type(obj [, rules])\n * @param {mixed} obj the node to find the rules for\n * @param {Boolean} rules if set to `true` instead of a string the settings object will be returned\n * @return {String|Object}\n * @plugin types\n */\n\n\n this.get_type = function (obj, rules) {\n obj = this.get_node(obj);\n return !obj ? false : rules ? $.extend({\n 'type': obj.type\n }, this.settings.types[obj.type]) : obj.type;\n };\n /**\n * used to change a node's type\n * @name set_type(obj, type)\n * @param {mixed} obj the node to change\n * @param {String} type the new type\n * @plugin types\n */\n\n\n this.set_type = function (obj, type) {\n var m = this._model.data,\n t,\n t1,\n t2,\n old_type,\n old_icon,\n k,\n d,\n a;\n\n if ($.vakata.is_array(obj)) {\n obj = obj.slice();\n\n for (t1 = 0, t2 = obj.length; t1 < t2; t1++) {\n this.set_type(obj[t1], type);\n }\n\n return true;\n }\n\n t = this.settings.types;\n obj = this.get_node(obj);\n\n if (!t[type] || !obj) {\n return false;\n }\n\n d = this.get_node(obj, true);\n\n if (d && d.length) {\n a = d.children('.jstree-anchor');\n }\n\n old_type = obj.type;\n old_icon = this.get_icon(obj);\n obj.type = type;\n\n if (old_icon === true || !t[old_type] || t[old_type].icon !== undefined && old_icon === t[old_type].icon) {\n this.set_icon(obj, t[type].icon !== undefined ? t[type].icon : true);\n } // remove old type props\n\n\n if (t[old_type] && t[old_type].li_attr !== undefined && _typeof(t[old_type].li_attr) === 'object') {\n for (k in t[old_type].li_attr) {\n if (t[old_type].li_attr.hasOwnProperty(k)) {\n if (k === 'id') {\n continue;\n } else if (k === 'class') {\n m[obj.id].li_attr['class'] = (m[obj.id].li_attr['class'] || '').replace(t[old_type].li_attr[k], '');\n\n if (d) {\n d.removeClass(t[old_type].li_attr[k]);\n }\n } else if (m[obj.id].li_attr[k] === t[old_type].li_attr[k]) {\n m[obj.id].li_attr[k] = null;\n\n if (d) {\n d.removeAttr(k);\n }\n }\n }\n }\n }\n\n if (t[old_type] && t[old_type].a_attr !== undefined && _typeof(t[old_type].a_attr) === 'object') {\n for (k in t[old_type].a_attr) {\n if (t[old_type].a_attr.hasOwnProperty(k)) {\n if (k === 'id') {\n continue;\n } else if (k === 'class') {\n m[obj.id].a_attr['class'] = (m[obj.id].a_attr['class'] || '').replace(t[old_type].a_attr[k], '');\n\n if (a) {\n a.removeClass(t[old_type].a_attr[k]);\n }\n } else if (m[obj.id].a_attr[k] === t[old_type].a_attr[k]) {\n if (k === 'href') {\n m[obj.id].a_attr[k] = '#';\n\n if (a) {\n a.attr('href', '#');\n }\n } else {\n delete m[obj.id].a_attr[k];\n\n if (a) {\n a.removeAttr(k);\n }\n }\n }\n }\n }\n } // add new props\n\n\n if (t[type].li_attr !== undefined && _typeof(t[type].li_attr) === 'object') {\n for (k in t[type].li_attr) {\n if (t[type].li_attr.hasOwnProperty(k)) {\n if (k === 'id') {\n continue;\n } else if (m[obj.id].li_attr[k] === undefined) {\n m[obj.id].li_attr[k] = t[type].li_attr[k];\n\n if (d) {\n if (k === 'class') {\n d.addClass(t[type].li_attr[k]);\n } else {\n d.attr(k, t[type].li_attr[k]);\n }\n }\n } else if (k === 'class') {\n m[obj.id].li_attr['class'] = t[type].li_attr[k] + ' ' + m[obj.id].li_attr['class'];\n\n if (d) {\n d.addClass(t[type].li_attr[k]);\n }\n }\n }\n }\n }\n\n if (t[type].a_attr !== undefined && _typeof(t[type].a_attr) === 'object') {\n for (k in t[type].a_attr) {\n if (t[type].a_attr.hasOwnProperty(k)) {\n if (k === 'id') {\n continue;\n } else if (m[obj.id].a_attr[k] === undefined) {\n m[obj.id].a_attr[k] = t[type].a_attr[k];\n\n if (a) {\n if (k === 'class') {\n a.addClass(t[type].a_attr[k]);\n } else {\n a.attr(k, t[type].a_attr[k]);\n }\n }\n } else if (k === 'href' && m[obj.id].a_attr[k] === '#') {\n m[obj.id].a_attr['href'] = t[type].a_attr['href'];\n\n if (a) {\n a.attr('href', t[type].a_attr['href']);\n }\n } else if (k === 'class') {\n m[obj.id].a_attr['class'] = t[type].a_attr['class'] + ' ' + m[obj.id].a_attr['class'];\n\n if (a) {\n a.addClass(t[type].a_attr[k]);\n }\n }\n }\n }\n }\n\n return true;\n };\n }; // include the types plugin by default\n // $.jstree.defaults.plugins.push(\"types\");\n\n /**\n * ### Unique plugin\n *\n * Enforces that no nodes with the same name can coexist as siblings.\n */\n\n /**\n * stores all defaults for the unique plugin\n * @name $.jstree.defaults.unique\n * @plugin unique\n */\n\n\n $.jstree.defaults.unique = {\n /**\n * Indicates if the comparison should be case sensitive. Default is `false`.\n * @name $.jstree.defaults.unique.case_sensitive\n * @plugin unique\n */\n case_sensitive: false,\n\n /**\n * Indicates if white space should be trimmed before the comparison. Default is `false`.\n * @name $.jstree.defaults.unique.trim_whitespace\n * @plugin unique\n */\n trim_whitespace: false,\n\n /**\n * A callback executed in the instance's scope when a new node is created and the name is already taken, the two arguments are the conflicting name and the counter. The default will produce results like `New node (2)`.\n * @name $.jstree.defaults.unique.duplicate\n * @plugin unique\n */\n duplicate: function duplicate(name, counter) {\n return name + ' (' + counter + ')';\n }\n };\n\n $.jstree.plugins.unique = function (options, parent) {\n this.check = function (chk, obj, par, pos, more) {\n if (parent.check.call(this, chk, obj, par, pos, more) === false) {\n return false;\n }\n\n obj = obj && obj.id ? obj : this.get_node(obj);\n par = par && par.id ? par : this.get_node(par);\n\n if (!par || !par.children) {\n return true;\n }\n\n var n = chk === \"rename_node\" ? pos : obj.text,\n c = [],\n s = this.settings.unique.case_sensitive,\n w = this.settings.unique.trim_whitespace,\n m = this._model.data,\n i,\n j,\n t;\n\n for (i = 0, j = par.children.length; i < j; i++) {\n t = m[par.children[i]].text;\n\n if (!s) {\n t = t.toLowerCase();\n }\n\n if (w) {\n t = t.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n }\n\n c.push(t);\n }\n\n if (!s) {\n n = n.toLowerCase();\n }\n\n if (w) {\n n = n.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n }\n\n switch (chk) {\n case \"delete_node\":\n return true;\n\n case \"rename_node\":\n t = obj.text || '';\n\n if (!s) {\n t = t.toLowerCase();\n }\n\n if (w) {\n t = t.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n }\n\n i = $.inArray(n, c) === -1 || obj.text && t === n;\n\n if (!i) {\n this._data.core.last_error = {\n 'error': 'check',\n 'plugin': 'unique',\n 'id': 'unique_01',\n 'reason': 'Child with name ' + n + ' already exists. Preventing: ' + chk,\n 'data': JSON.stringify({\n 'chk': chk,\n 'pos': pos,\n 'obj': obj && obj.id ? obj.id : false,\n 'par': par && par.id ? par.id : false\n })\n };\n }\n\n return i;\n\n case \"create_node\":\n i = $.inArray(n, c) === -1;\n\n if (!i) {\n this._data.core.last_error = {\n 'error': 'check',\n 'plugin': 'unique',\n 'id': 'unique_04',\n 'reason': 'Child with name ' + n + ' already exists. Preventing: ' + chk,\n 'data': JSON.stringify({\n 'chk': chk,\n 'pos': pos,\n 'obj': obj && obj.id ? obj.id : false,\n 'par': par && par.id ? par.id : false\n })\n };\n }\n\n return i;\n\n case \"copy_node\":\n i = $.inArray(n, c) === -1;\n\n if (!i) {\n this._data.core.last_error = {\n 'error': 'check',\n 'plugin': 'unique',\n 'id': 'unique_02',\n 'reason': 'Child with name ' + n + ' already exists. Preventing: ' + chk,\n 'data': JSON.stringify({\n 'chk': chk,\n 'pos': pos,\n 'obj': obj && obj.id ? obj.id : false,\n 'par': par && par.id ? par.id : false\n })\n };\n }\n\n return i;\n\n case \"move_node\":\n i = obj.parent === par.id && (!more || !more.is_multi) || $.inArray(n, c) === -1;\n\n if (!i) {\n this._data.core.last_error = {\n 'error': 'check',\n 'plugin': 'unique',\n 'id': 'unique_03',\n 'reason': 'Child with name ' + n + ' already exists. Preventing: ' + chk,\n 'data': JSON.stringify({\n 'chk': chk,\n 'pos': pos,\n 'obj': obj && obj.id ? obj.id : false,\n 'par': par && par.id ? par.id : false\n })\n };\n }\n\n return i;\n }\n\n return true;\n };\n\n this.create_node = function (par, node, pos, callback, is_loaded) {\n if (!node || node.text === undefined) {\n if (par === null) {\n par = $.jstree.root;\n }\n\n par = this.get_node(par);\n\n if (!par) {\n return parent.create_node.call(this, par, node, pos, callback, is_loaded);\n }\n\n pos = pos === undefined ? \"last\" : pos;\n\n if (!pos.toString().match(/^(before|after)$/) && !is_loaded && !this.is_loaded(par)) {\n return parent.create_node.call(this, par, node, pos, callback, is_loaded);\n }\n\n if (!node) {\n node = {};\n }\n\n var tmp,\n n,\n dpc,\n i,\n j,\n m = this._model.data,\n s = this.settings.unique.case_sensitive,\n w = this.settings.unique.trim_whitespace,\n cb = this.settings.unique.duplicate,\n t;\n n = tmp = this.get_string('New node');\n dpc = [];\n\n for (i = 0, j = par.children.length; i < j; i++) {\n t = m[par.children[i]].text;\n\n if (!s) {\n t = t.toLowerCase();\n }\n\n if (w) {\n t = t.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n }\n\n dpc.push(t);\n }\n\n i = 1;\n t = n;\n\n if (!s) {\n t = t.toLowerCase();\n }\n\n if (w) {\n t = t.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n }\n\n while ($.inArray(t, dpc) !== -1) {\n n = cb.call(this, tmp, ++i).toString();\n t = n;\n\n if (!s) {\n t = t.toLowerCase();\n }\n\n if (w) {\n t = t.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n }\n }\n\n node.text = n;\n }\n\n return parent.create_node.call(this, par, node, pos, callback, is_loaded);\n };\n }; // include the unique plugin by default\n // $.jstree.defaults.plugins.push(\"unique\");\n\n /**\n * ### Wholerow plugin\n *\n * Makes each node appear block level. Making selection easier. May cause slow down for large trees in old browsers.\n */\n\n\n var div = document.createElement('DIV');\n div.setAttribute('unselectable', 'on');\n div.setAttribute('role', 'presentation');\n div.className = 'jstree-wholerow';\n div.innerHTML = ' ';\n\n $.jstree.plugins.wholerow = function (options, parent) {\n this.bind = function () {\n parent.bind.call(this);\n this.element.on('ready.jstree set_state.jstree', function () {\n this.hide_dots();\n }.bind(this)).on(\"init.jstree loading.jstree ready.jstree\", function () {\n //div.style.height = this._data.core.li_height + 'px';\n this.get_container_ul().addClass('jstree-wholerow-ul');\n }.bind(this)).on(\"deselect_all.jstree\", function (e, data) {\n this.element.find('.jstree-wholerow-clicked').removeClass('jstree-wholerow-clicked');\n }.bind(this)).on(\"changed.jstree\", function (e, data) {\n this.element.find('.jstree-wholerow-clicked').removeClass('jstree-wholerow-clicked');\n var tmp = false,\n i,\n j;\n\n for (i = 0, j = data.selected.length; i < j; i++) {\n tmp = this.get_node(data.selected[i], true);\n\n if (tmp && tmp.length) {\n tmp.children('.jstree-wholerow').addClass('jstree-wholerow-clicked');\n }\n }\n }.bind(this)).on(\"open_node.jstree\", function (e, data) {\n this.get_node(data.node, true).find('.jstree-clicked').parent().children('.jstree-wholerow').addClass('jstree-wholerow-clicked');\n }.bind(this)).on(\"hover_node.jstree dehover_node.jstree\", function (e, data) {\n if (e.type === \"hover_node\" && this.is_disabled(data.node)) {\n return;\n }\n\n this.get_node(data.node, true).children('.jstree-wholerow')[e.type === \"hover_node\" ? \"addClass\" : \"removeClass\"]('jstree-wholerow-hovered');\n }.bind(this)).on(\"contextmenu.jstree\", \".jstree-wholerow\", function (e) {\n if (this._data.contextmenu) {\n e.preventDefault();\n var tmp = $.Event('contextmenu', {\n metaKey: e.metaKey,\n ctrlKey: e.ctrlKey,\n altKey: e.altKey,\n shiftKey: e.shiftKey,\n pageX: e.pageX,\n pageY: e.pageY\n });\n $(e.currentTarget).closest(\".jstree-node\").children(\".jstree-anchor\").first().trigger(tmp);\n }\n }.bind(this))\n /*!\n .on(\"mousedown.jstree touchstart.jstree\", \".jstree-wholerow\", function (e) {\n \t\tif(e.target === e.currentTarget) {\n \t\t\tvar a = $(e.currentTarget).closest(\".jstree-node\").children(\".jstree-anchor\");\n \t\t\te.target = a[0];\n \t\t\ta.trigger(e);\n \t\t}\n \t})\n */\n .on(\"click.jstree\", \".jstree-wholerow\", function (e) {\n e.stopImmediatePropagation();\n var tmp = $.Event('click', {\n metaKey: e.metaKey,\n ctrlKey: e.ctrlKey,\n altKey: e.altKey,\n shiftKey: e.shiftKey\n });\n $(e.currentTarget).closest(\".jstree-node\").children(\".jstree-anchor\").first().trigger(tmp).trigger('focus');\n }).on(\"dblclick.jstree\", \".jstree-wholerow\", function (e) {\n e.stopImmediatePropagation();\n var tmp = $.Event('dblclick', {\n metaKey: e.metaKey,\n ctrlKey: e.ctrlKey,\n altKey: e.altKey,\n shiftKey: e.shiftKey\n });\n $(e.currentTarget).closest(\".jstree-node\").children(\".jstree-anchor\").first().trigger(tmp).trigger('focus');\n }).on(\"click.jstree\", \".jstree-leaf > .jstree-ocl\", function (e) {\n e.stopImmediatePropagation();\n var tmp = $.Event('click', {\n metaKey: e.metaKey,\n ctrlKey: e.ctrlKey,\n altKey: e.altKey,\n shiftKey: e.shiftKey\n });\n $(e.currentTarget).closest(\".jstree-node\").children(\".jstree-anchor\").first().trigger(tmp).trigger('focus');\n }.bind(this)).on(\"mouseover.jstree\", \".jstree-wholerow, .jstree-icon\", function (e) {\n e.stopImmediatePropagation();\n\n if (!this.is_disabled(e.currentTarget)) {\n this.hover_node(e.currentTarget);\n }\n\n return false;\n }.bind(this)).on(\"mouseleave.jstree\", \".jstree-node\", function (e) {\n this.dehover_node(e.currentTarget);\n }.bind(this));\n };\n\n this.teardown = function () {\n if (this.settings.wholerow) {\n this.element.find(\".jstree-wholerow\").remove();\n }\n\n parent.teardown.call(this);\n };\n\n this.redraw_node = function (obj, deep, callback, force_render) {\n obj = parent.redraw_node.apply(this, arguments);\n\n if (obj) {\n var tmp = div.cloneNode(true); //tmp.style.height = this._data.core.li_height + 'px';\n\n if ($.inArray(obj.id, this._data.core.selected) !== -1) {\n tmp.className += ' jstree-wholerow-clicked';\n }\n\n if (this._data.core.focused && this._data.core.focused === obj.id) {\n tmp.className += ' jstree-wholerow-hovered';\n }\n\n obj.insertBefore(tmp, obj.childNodes[0]);\n }\n\n return obj;\n };\n }; // include the wholerow plugin by default\n // $.jstree.defaults.plugins.push(\"wholerow\");\n\n\n if (window.customElements && Object && Object.create) {\n var proto = Object.create(HTMLElement.prototype);\n\n proto.createdCallback = function () {\n var c = {\n core: {},\n plugins: []\n },\n i;\n\n for (i in $.jstree.plugins) {\n if ($.jstree.plugins.hasOwnProperty(i) && this.attributes[i]) {\n c.plugins.push(i);\n\n if (this.getAttribute(i) && JSON.parse(this.getAttribute(i))) {\n c[i] = JSON.parse(this.getAttribute(i));\n }\n }\n }\n\n for (i in $.jstree.defaults.core) {\n if ($.jstree.defaults.core.hasOwnProperty(i) && this.attributes[i]) {\n c.core[i] = JSON.parse(this.getAttribute(i)) || this.getAttribute(i);\n }\n }\n\n $(this).jstree(c);\n }; // proto.attributeChangedCallback = function (name, previous, value) { };\n\n\n try {\n window.customElements.define(\"vakata-jstree\", function () {}, {\n prototype: proto\n });\n } catch (ignore) {}\n }\n});","import * as Ladda from 'ladda/js/ladda.js';\n\nexport { Ladda };\n","import * as moment from 'moment/moment.js';\n\nexport { moment };\n","var map = {\n\t\"./af\": 68,\n\t\"./af.js\": 68,\n\t\"./ar\": 69,\n\t\"./ar-dz\": 70,\n\t\"./ar-dz.js\": 70,\n\t\"./ar-kw\": 71,\n\t\"./ar-kw.js\": 71,\n\t\"./ar-ly\": 72,\n\t\"./ar-ly.js\": 72,\n\t\"./ar-ma\": 73,\n\t\"./ar-ma.js\": 73,\n\t\"./ar-sa\": 74,\n\t\"./ar-sa.js\": 74,\n\t\"./ar-tn\": 75,\n\t\"./ar-tn.js\": 75,\n\t\"./ar.js\": 69,\n\t\"./az\": 76,\n\t\"./az.js\": 76,\n\t\"./be\": 77,\n\t\"./be.js\": 77,\n\t\"./bg\": 78,\n\t\"./bg.js\": 78,\n\t\"./bm\": 79,\n\t\"./bm.js\": 79,\n\t\"./bn\": 80,\n\t\"./bn.js\": 80,\n\t\"./bo\": 81,\n\t\"./bo.js\": 81,\n\t\"./br\": 82,\n\t\"./br.js\": 82,\n\t\"./bs\": 83,\n\t\"./bs.js\": 83,\n\t\"./ca\": 84,\n\t\"./ca.js\": 84,\n\t\"./cs\": 85,\n\t\"./cs.js\": 85,\n\t\"./cv\": 86,\n\t\"./cv.js\": 86,\n\t\"./cy\": 87,\n\t\"./cy.js\": 87,\n\t\"./da\": 88,\n\t\"./da.js\": 88,\n\t\"./de\": 89,\n\t\"./de-at\": 90,\n\t\"./de-at.js\": 90,\n\t\"./de-ch\": 91,\n\t\"./de-ch.js\": 91,\n\t\"./de.js\": 89,\n\t\"./dv\": 92,\n\t\"./dv.js\": 92,\n\t\"./el\": 93,\n\t\"./el.js\": 93,\n\t\"./en-SG\": 94,\n\t\"./en-SG.js\": 94,\n\t\"./en-au\": 95,\n\t\"./en-au.js\": 95,\n\t\"./en-ca\": 96,\n\t\"./en-ca.js\": 96,\n\t\"./en-gb\": 97,\n\t\"./en-gb.js\": 97,\n\t\"./en-ie\": 98,\n\t\"./en-ie.js\": 98,\n\t\"./en-il\": 99,\n\t\"./en-il.js\": 99,\n\t\"./en-nz\": 100,\n\t\"./en-nz.js\": 100,\n\t\"./eo\": 101,\n\t\"./eo.js\": 101,\n\t\"./es\": 102,\n\t\"./es-do\": 103,\n\t\"./es-do.js\": 103,\n\t\"./es-us\": 104,\n\t\"./es-us.js\": 104,\n\t\"./es.js\": 102,\n\t\"./et\": 105,\n\t\"./et.js\": 105,\n\t\"./eu\": 106,\n\t\"./eu.js\": 106,\n\t\"./fa\": 107,\n\t\"./fa.js\": 107,\n\t\"./fi\": 108,\n\t\"./fi.js\": 108,\n\t\"./fo\": 109,\n\t\"./fo.js\": 109,\n\t\"./fr\": 110,\n\t\"./fr-ca\": 111,\n\t\"./fr-ca.js\": 111,\n\t\"./fr-ch\": 112,\n\t\"./fr-ch.js\": 112,\n\t\"./fr.js\": 110,\n\t\"./fy\": 113,\n\t\"./fy.js\": 113,\n\t\"./ga\": 114,\n\t\"./ga.js\": 114,\n\t\"./gd\": 115,\n\t\"./gd.js\": 115,\n\t\"./gl\": 116,\n\t\"./gl.js\": 116,\n\t\"./gom-latn\": 117,\n\t\"./gom-latn.js\": 117,\n\t\"./gu\": 118,\n\t\"./gu.js\": 118,\n\t\"./he\": 119,\n\t\"./he.js\": 119,\n\t\"./hi\": 120,\n\t\"./hi.js\": 120,\n\t\"./hr\": 121,\n\t\"./hr.js\": 121,\n\t\"./hu\": 122,\n\t\"./hu.js\": 122,\n\t\"./hy-am\": 123,\n\t\"./hy-am.js\": 123,\n\t\"./id\": 124,\n\t\"./id.js\": 124,\n\t\"./is\": 125,\n\t\"./is.js\": 125,\n\t\"./it\": 126,\n\t\"./it-ch\": 127,\n\t\"./it-ch.js\": 127,\n\t\"./it.js\": 126,\n\t\"./ja\": 128,\n\t\"./ja.js\": 128,\n\t\"./jv\": 129,\n\t\"./jv.js\": 129,\n\t\"./ka\": 130,\n\t\"./ka.js\": 130,\n\t\"./kk\": 131,\n\t\"./kk.js\": 131,\n\t\"./km\": 132,\n\t\"./km.js\": 132,\n\t\"./kn\": 133,\n\t\"./kn.js\": 133,\n\t\"./ko\": 134,\n\t\"./ko.js\": 134,\n\t\"./ku\": 135,\n\t\"./ku.js\": 135,\n\t\"./ky\": 136,\n\t\"./ky.js\": 136,\n\t\"./lb\": 137,\n\t\"./lb.js\": 137,\n\t\"./lo\": 138,\n\t\"./lo.js\": 138,\n\t\"./lt\": 139,\n\t\"./lt.js\": 139,\n\t\"./lv\": 140,\n\t\"./lv.js\": 140,\n\t\"./me\": 141,\n\t\"./me.js\": 141,\n\t\"./mi\": 142,\n\t\"./mi.js\": 142,\n\t\"./mk\": 143,\n\t\"./mk.js\": 143,\n\t\"./ml\": 144,\n\t\"./ml.js\": 144,\n\t\"./mn\": 145,\n\t\"./mn.js\": 145,\n\t\"./mr\": 146,\n\t\"./mr.js\": 146,\n\t\"./ms\": 147,\n\t\"./ms-my\": 148,\n\t\"./ms-my.js\": 148,\n\t\"./ms.js\": 147,\n\t\"./mt\": 149,\n\t\"./mt.js\": 149,\n\t\"./my\": 150,\n\t\"./my.js\": 150,\n\t\"./nb\": 151,\n\t\"./nb.js\": 151,\n\t\"./ne\": 152,\n\t\"./ne.js\": 152,\n\t\"./nl\": 153,\n\t\"./nl-be\": 154,\n\t\"./nl-be.js\": 154,\n\t\"./nl.js\": 153,\n\t\"./nn\": 155,\n\t\"./nn.js\": 155,\n\t\"./pa-in\": 156,\n\t\"./pa-in.js\": 156,\n\t\"./pl\": 157,\n\t\"./pl.js\": 157,\n\t\"./pt\": 158,\n\t\"./pt-br\": 159,\n\t\"./pt-br.js\": 159,\n\t\"./pt.js\": 158,\n\t\"./ro\": 160,\n\t\"./ro.js\": 160,\n\t\"./ru\": 161,\n\t\"./ru.js\": 161,\n\t\"./sd\": 162,\n\t\"./sd.js\": 162,\n\t\"./se\": 163,\n\t\"./se.js\": 163,\n\t\"./si\": 164,\n\t\"./si.js\": 164,\n\t\"./sk\": 165,\n\t\"./sk.js\": 165,\n\t\"./sl\": 166,\n\t\"./sl.js\": 166,\n\t\"./sq\": 167,\n\t\"./sq.js\": 167,\n\t\"./sr\": 168,\n\t\"./sr-cyrl\": 169,\n\t\"./sr-cyrl.js\": 169,\n\t\"./sr.js\": 168,\n\t\"./ss\": 170,\n\t\"./ss.js\": 170,\n\t\"./sv\": 171,\n\t\"./sv.js\": 171,\n\t\"./sw\": 172,\n\t\"./sw.js\": 172,\n\t\"./ta\": 173,\n\t\"./ta.js\": 173,\n\t\"./te\": 174,\n\t\"./te.js\": 174,\n\t\"./tet\": 175,\n\t\"./tet.js\": 175,\n\t\"./tg\": 176,\n\t\"./tg.js\": 176,\n\t\"./th\": 177,\n\t\"./th.js\": 177,\n\t\"./tl-ph\": 178,\n\t\"./tl-ph.js\": 178,\n\t\"./tlh\": 179,\n\t\"./tlh.js\": 179,\n\t\"./tr\": 180,\n\t\"./tr.js\": 180,\n\t\"./tzl\": 181,\n\t\"./tzl.js\": 181,\n\t\"./tzm\": 182,\n\t\"./tzm-latn\": 183,\n\t\"./tzm-latn.js\": 183,\n\t\"./tzm.js\": 182,\n\t\"./ug-cn\": 184,\n\t\"./ug-cn.js\": 184,\n\t\"./uk\": 185,\n\t\"./uk.js\": 185,\n\t\"./ur\": 186,\n\t\"./ur.js\": 186,\n\t\"./uz\": 187,\n\t\"./uz-latn\": 188,\n\t\"./uz-latn.js\": 188,\n\t\"./uz.js\": 187,\n\t\"./vi\": 189,\n\t\"./vi.js\": 189,\n\t\"./x-pseudo\": 190,\n\t\"./x-pseudo.js\": 190,\n\t\"./yo\": 191,\n\t\"./yo.js\": 191,\n\t\"./zh-cn\": 192,\n\t\"./zh-cn.js\": 192,\n\t\"./zh-hk\": 193,\n\t\"./zh-hk.js\": 193,\n\t\"./zh-tw\": 194,\n\t\"./zh-tw.js\": 194\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 261;","require('nestable/jquery.nestable.js');\n","/*!\n * Nestable jQuery Plugin - Copyright (c) 2012 David Bushell - http://dbushell.com/\n * Dual-licensed under the BSD or MIT licenses\n */\n;\n\n(function ($, window, document, undefined) {\n var hasTouch = ('ontouchstart' in document);\n /**\n * Detect CSS pointer-events property\n * events are normally disabled on the dragging element to avoid conflicts\n * https://github.com/ausi/Feature-detection-technique-for-pointer-events/blob/master/modernizr-pointerevents.js\n */\n\n var hasPointerEvents = function () {\n var el = document.createElement('div'),\n docEl = document.documentElement;\n\n if (!('pointerEvents' in el.style)) {\n return false;\n }\n\n el.style.pointerEvents = 'auto';\n el.style.pointerEvents = 'x';\n docEl.appendChild(el);\n var supports = window.getComputedStyle && window.getComputedStyle(el, '').pointerEvents === 'auto';\n docEl.removeChild(el);\n return !!supports;\n }();\n\n var defaults = {\n listNodeName: 'ol',\n itemNodeName: 'li',\n rootClass: 'dd',\n listClass: 'dd-list',\n itemClass: 'dd-item',\n dragClass: 'dd-dragel',\n handleClass: 'dd-handle',\n collapsedClass: 'dd-collapsed',\n placeClass: 'dd-placeholder',\n noDragClass: 'dd-nodrag',\n emptyClass: 'dd-empty',\n expandBtnHTML: '',\n collapseBtnHTML: '',\n group: 0,\n maxDepth: 5,\n threshold: 20\n };\n\n function Plugin(element, options) {\n this.w = $(document);\n this.el = $(element);\n this.options = $.extend({}, defaults, options);\n this.init();\n }\n\n Plugin.prototype = {\n init: function init() {\n var list = this;\n list.reset();\n list.el.data('nestable-group', this.options.group);\n list.placeEl = $('
    ');\n $.each(this.el.find(list.options.itemNodeName), function (k, el) {\n list.setParent($(el));\n });\n list.el.on('click', 'button', function (e) {\n if (list.dragEl) {\n return;\n }\n\n var target = $(e.currentTarget),\n action = target.data('action'),\n item = target.parent(list.options.itemNodeName);\n\n if (action === 'collapse') {\n list.collapseItem(item);\n }\n\n if (action === 'expand') {\n list.expandItem(item);\n }\n });\n\n var onStartEvent = function onStartEvent(e) {\n var handle = $(e.target);\n\n if (!handle.hasClass(list.options.handleClass)) {\n if (handle.closest('.' + list.options.noDragClass).length) {\n return;\n }\n\n handle = handle.closest('.' + list.options.handleClass);\n }\n\n if (!handle.length || list.dragEl) {\n return;\n }\n\n list.isTouch = /^touch/.test(e.type);\n\n if (list.isTouch && e.touches.length !== 1) {\n return;\n }\n\n e.preventDefault();\n list.dragStart(e.touches ? e.touches[0] : e);\n };\n\n var onMoveEvent = function onMoveEvent(e) {\n if (list.dragEl) {\n e.preventDefault();\n list.dragMove(e.touches ? e.touches[0] : e);\n }\n };\n\n var onEndEvent = function onEndEvent(e) {\n if (list.dragEl) {\n e.preventDefault();\n list.dragStop(e.touches ? e.touches[0] : e);\n }\n };\n\n if (hasTouch) {\n list.el[0].addEventListener('touchstart', onStartEvent, false);\n window.addEventListener('touchmove', onMoveEvent, false);\n window.addEventListener('touchend', onEndEvent, false);\n window.addEventListener('touchcancel', onEndEvent, false);\n }\n\n list.el.on('mousedown', onStartEvent);\n list.w.on('mousemove', onMoveEvent);\n list.w.on('mouseup', onEndEvent);\n },\n serialize: function serialize() {\n var data,\n depth = 0,\n list = this;\n\n step = function (_step) {\n function step(_x, _x2) {\n return _step.apply(this, arguments);\n }\n\n step.toString = function () {\n return _step.toString();\n };\n\n return step;\n }(function (level, depth) {\n var array = [],\n items = level.children(list.options.itemNodeName);\n items.each(function () {\n var li = $(this),\n item = $.extend({}, li.data()),\n sub = li.children(list.options.listNodeName);\n\n if (sub.length) {\n item.children = step(sub, depth + 1);\n }\n\n array.push(item);\n });\n return array;\n });\n\n data = step(list.el.find(list.options.listNodeName).first(), depth);\n return data;\n },\n serialise: function serialise() {\n return this.serialize();\n },\n reset: function reset() {\n this.mouse = {\n offsetX: 0,\n offsetY: 0,\n startX: 0,\n startY: 0,\n lastX: 0,\n lastY: 0,\n nowX: 0,\n nowY: 0,\n distX: 0,\n distY: 0,\n dirAx: 0,\n dirX: 0,\n dirY: 0,\n lastDirX: 0,\n lastDirY: 0,\n distAxX: 0,\n distAxY: 0\n };\n this.isTouch = false;\n this.moving = false;\n this.dragEl = null;\n this.dragRootEl = null;\n this.dragDepth = 0;\n this.hasNewRoot = false;\n this.pointEl = null;\n },\n expandItem: function expandItem(li) {\n li.removeClass(this.options.collapsedClass);\n li.children('[data-action=\"expand\"]').hide();\n li.children('[data-action=\"collapse\"]').show();\n li.children(this.options.listNodeName).show();\n },\n collapseItem: function collapseItem(li) {\n var lists = li.children(this.options.listNodeName);\n\n if (lists.length) {\n li.addClass(this.options.collapsedClass);\n li.children('[data-action=\"collapse\"]').hide();\n li.children('[data-action=\"expand\"]').show();\n li.children(this.options.listNodeName).hide();\n }\n },\n expandAll: function expandAll() {\n var list = this;\n list.el.find(list.options.itemNodeName).each(function () {\n list.expandItem($(this));\n });\n },\n collapseAll: function collapseAll() {\n var list = this;\n list.el.find(list.options.itemNodeName).each(function () {\n list.collapseItem($(this));\n });\n },\n setParent: function setParent(li) {\n if (li.children(this.options.listNodeName).length) {\n li.prepend($(this.options.expandBtnHTML));\n li.prepend($(this.options.collapseBtnHTML));\n }\n\n li.children('[data-action=\"expand\"]').hide();\n },\n unsetParent: function unsetParent(li) {\n li.removeClass(this.options.collapsedClass);\n li.children('[data-action]').remove();\n li.children(this.options.listNodeName).remove();\n },\n dragStart: function dragStart(e) {\n var mouse = this.mouse,\n target = $(e.target),\n dragItem = target.closest(this.options.itemNodeName);\n this.placeEl.css('height', dragItem.height());\n mouse.offsetX = e.offsetX !== undefined ? e.offsetX : e.pageX - target.offset().left;\n mouse.offsetY = e.offsetY !== undefined ? e.offsetY : e.pageY - target.offset().top;\n mouse.startX = mouse.lastX = e.pageX;\n mouse.startY = mouse.lastY = e.pageY;\n this.dragRootEl = this.el;\n this.dragEl = $(document.createElement(this.options.listNodeName)).addClass(this.options.listClass + ' ' + this.options.dragClass);\n this.dragEl.css('width', dragItem.width());\n dragItem.after(this.placeEl);\n dragItem[0].parentNode.removeChild(dragItem[0]);\n dragItem.appendTo(this.dragEl);\n $(document.body).append(this.dragEl);\n this.dragEl.css({\n 'left': e.pageX - mouse.offsetX,\n 'top': e.pageY - mouse.offsetY\n }); // total depth of dragging item\n\n var i,\n depth,\n items = this.dragEl.find(this.options.itemNodeName);\n\n for (i = 0; i < items.length; i++) {\n depth = $(items[i]).parents(this.options.listNodeName).length;\n\n if (depth > this.dragDepth) {\n this.dragDepth = depth;\n }\n }\n },\n dragStop: function dragStop(e) {\n var el = this.dragEl.children(this.options.itemNodeName).first();\n el[0].parentNode.removeChild(el[0]);\n this.placeEl.replaceWith(el);\n this.dragEl.remove();\n this.el.trigger('change');\n\n if (this.hasNewRoot) {\n this.dragRootEl.trigger('change');\n }\n\n this.reset();\n },\n dragMove: function dragMove(e) {\n var list,\n parent,\n prev,\n next,\n depth,\n opt = this.options,\n mouse = this.mouse;\n this.dragEl.css({\n 'left': e.pageX - mouse.offsetX,\n 'top': e.pageY - mouse.offsetY\n }); // mouse position last events\n\n mouse.lastX = mouse.nowX;\n mouse.lastY = mouse.nowY; // mouse position this events\n\n mouse.nowX = e.pageX;\n mouse.nowY = e.pageY; // distance mouse moved between events\n\n mouse.distX = mouse.nowX - mouse.lastX;\n mouse.distY = mouse.nowY - mouse.lastY; // direction mouse was moving\n\n mouse.lastDirX = mouse.dirX;\n mouse.lastDirY = mouse.dirY; // direction mouse is now moving (on both axis)\n\n mouse.dirX = mouse.distX === 0 ? 0 : mouse.distX > 0 ? 1 : -1;\n mouse.dirY = mouse.distY === 0 ? 0 : mouse.distY > 0 ? 1 : -1; // axis mouse is now moving on\n\n var newAx = Math.abs(mouse.distX) > Math.abs(mouse.distY) ? 1 : 0; // do nothing on first move\n\n if (!mouse.moving) {\n mouse.dirAx = newAx;\n mouse.moving = true;\n return;\n } // calc distance moved on this axis (and direction)\n\n\n if (mouse.dirAx !== newAx) {\n mouse.distAxX = 0;\n mouse.distAxY = 0;\n } else {\n mouse.distAxX += Math.abs(mouse.distX);\n\n if (mouse.dirX !== 0 && mouse.dirX !== mouse.lastDirX) {\n mouse.distAxX = 0;\n }\n\n mouse.distAxY += Math.abs(mouse.distY);\n\n if (mouse.dirY !== 0 && mouse.dirY !== mouse.lastDirY) {\n mouse.distAxY = 0;\n }\n }\n\n mouse.dirAx = newAx;\n /**\n * move horizontal\n */\n\n if (mouse.dirAx && mouse.distAxX >= opt.threshold) {\n // reset move distance on x-axis for new phase\n mouse.distAxX = 0;\n prev = this.placeEl.prev(opt.itemNodeName); // increase horizontal level if previous sibling exists and is not collapsed\n\n if (mouse.distX > 0 && prev.length && !prev.hasClass(opt.collapsedClass)) {\n // cannot increase level when item above is collapsed\n list = prev.find(opt.listNodeName).last(); // check if depth limit has reached\n\n depth = this.placeEl.parents(opt.listNodeName).length;\n\n if (depth + this.dragDepth <= opt.maxDepth) {\n // create new sub-level if one doesn't exist\n if (!list.length) {\n list = $('<' + opt.listNodeName + '/>').addClass(opt.listClass);\n list.append(this.placeEl);\n prev.append(list);\n this.setParent(prev);\n } else {\n // else append to next level up\n list = prev.children(opt.listNodeName).last();\n list.append(this.placeEl);\n }\n }\n } // decrease horizontal level\n\n\n if (mouse.distX < 0) {\n // we can't decrease a level if an item preceeds the current one\n next = this.placeEl.next(opt.itemNodeName);\n\n if (!next.length) {\n parent = this.placeEl.parent();\n this.placeEl.closest(opt.itemNodeName).after(this.placeEl);\n\n if (!parent.children().length) {\n this.unsetParent(parent.parent());\n }\n }\n }\n }\n\n var isEmpty = false; // find list item under cursor\n\n if (!hasPointerEvents) {\n this.dragEl[0].style.visibility = 'hidden';\n }\n\n this.pointEl = $(document.elementFromPoint(e.pageX - document.body.scrollLeft, e.pageY - (window.pageYOffset || document.documentElement.scrollTop)));\n\n if (!hasPointerEvents) {\n this.dragEl[0].style.visibility = 'visible';\n }\n\n if (this.pointEl.hasClass(opt.handleClass)) {\n this.pointEl = this.pointEl.parent(opt.itemNodeName);\n }\n\n if (this.pointEl.hasClass(opt.emptyClass)) {\n isEmpty = true;\n } else if (!this.pointEl.length || !this.pointEl.hasClass(opt.itemClass)) {\n return;\n } // find parent list of item under cursor\n\n\n var pointElRoot = this.pointEl.closest('.' + opt.rootClass),\n isNewRoot = this.dragRootEl.data('nestable-id') !== pointElRoot.data('nestable-id');\n /**\n * move vertical\n */\n\n if (!mouse.dirAx || isNewRoot || isEmpty) {\n // check if groups match if dragging over new root\n if (isNewRoot && opt.group !== pointElRoot.data('nestable-group')) {\n return;\n } // check depth limit\n\n\n depth = this.dragDepth - 1 + this.pointEl.parents(opt.listNodeName).length;\n\n if (depth > opt.maxDepth) {\n return;\n }\n\n var before = e.pageY < this.pointEl.offset().top + this.pointEl.height() / 2;\n parent = this.placeEl.parent(); // if empty create new list to replace empty placeholder\n\n if (isEmpty) {\n list = $(document.createElement(opt.listNodeName)).addClass(opt.listClass);\n list.append(this.placeEl);\n this.pointEl.replaceWith(list);\n } else if (before) {\n this.pointEl.before(this.placeEl);\n } else {\n this.pointEl.after(this.placeEl);\n }\n\n if (!parent.children().length) {\n this.unsetParent(parent.parent());\n }\n\n if (!this.dragRootEl.find(opt.itemNodeName).length) {\n this.dragRootEl.append('
    ');\n } // parent root list has changed\n\n\n if (isNewRoot) {\n this.dragRootEl = pointElRoot;\n this.hasNewRoot = this.el[0] !== this.dragRootEl[0];\n }\n }\n }\n };\n\n $.fn.nestable = function (params) {\n var lists = this,\n retval = this;\n lists.each(function () {\n var plugin = $(this).data(\"nestable\");\n\n if (!plugin) {\n $(this).data(\"nestable\", new Plugin(this, params));\n $(this).data(\"nestable-id\", new Date().getTime());\n } else {\n if (typeof params === 'string' && typeof plugin[params] === 'function') {\n retval = plugin[params]();\n }\n }\n });\n return retval || lists;\n };\n})(window.jQuery || window.Zepto, window, document);","require('select2/dist/js/select2.full.js');\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/*!\n * Select2 4.0.13\n * https://select2.github.io\n *\n * Released under the MIT license\n * https://github.com/select2/select2/blob/master/LICENSE.md\n */\n;\n\n(function (factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(['jquery'], factory);\n } else if ((typeof module === \"undefined\" ? \"undefined\" : _typeof(module)) === 'object' && module.exports) {\n // Node/CommonJS\n module.exports = function (root, jQuery) {\n if (jQuery === undefined) {\n // require('jQuery') returns a factory that requires window to\n // build a jQuery instance, we normalize how we use modules\n // that require this pattern but the window provided is a noop\n // if it's defined (how jquery works)\n if (typeof window !== 'undefined') {\n jQuery = require('jquery');\n } else {\n jQuery = require('jquery')(root);\n }\n }\n\n factory(jQuery);\n return jQuery;\n };\n } else {\n // Browser globals\n factory(jQuery);\n }\n})(function (jQuery) {\n // This is needed so we can catch the AMD loader configuration and use it\n // The inner file should be wrapped (by `banner.start.js`) in a function that\n // returns the AMD loader references.\n var S2 = function () {\n // Restore the Select2 AMD loader so it can be used\n // Needed mostly in the language files, where the loader is not inserted\n if (jQuery && jQuery.fn && jQuery.fn.select2 && jQuery.fn.select2.amd) {\n var S2 = jQuery.fn.select2.amd;\n }\n\n var S2;\n\n (function () {\n if (!S2 || !S2.requirejs) {\n if (!S2) {\n S2 = {};\n } else {\n require = S2;\n }\n /**\n * @license almond 0.3.3 Copyright jQuery Foundation and other contributors.\n * Released under MIT license, http://github.com/requirejs/almond/LICENSE\n */\n //Going sloppy to avoid 'use strict' string cost, but strict practices should\n //be followed.\n\n /*global setTimeout: false */\n\n\n var requirejs, require, define;\n\n (function (undef) {\n var main,\n _req,\n makeMap,\n handlers,\n defined = {},\n waiting = {},\n config = {},\n defining = {},\n hasOwn = Object.prototype.hasOwnProperty,\n aps = [].slice,\n jsSuffixRegExp = /\\.js$/;\n\n function hasProp(obj, prop) {\n return hasOwn.call(obj, prop);\n }\n /**\n * Given a relative module name, like ./something, normalize it to\n * a real name that can be mapped to a path.\n * @param {String} name the relative name\n * @param {String} baseName a real name that the name arg is relative\n * to.\n * @returns {String} normalized name\n */\n\n\n function normalize(name, baseName) {\n var nameParts,\n nameSegment,\n mapValue,\n foundMap,\n lastIndex,\n foundI,\n foundStarMap,\n starI,\n i,\n j,\n part,\n normalizedBaseParts,\n baseParts = baseName && baseName.split(\"/\"),\n map = config.map,\n starMap = map && map['*'] || {}; //Adjust any relative paths.\n\n if (name) {\n name = name.split('/');\n lastIndex = name.length - 1; // If wanting node ID compatibility, strip .js from end\n // of IDs. Have to do this here, and not in nameToUrl\n // because node allows either .js or non .js to map\n // to same file.\n\n if (config.nodeIdCompat && jsSuffixRegExp.test(name[lastIndex])) {\n name[lastIndex] = name[lastIndex].replace(jsSuffixRegExp, '');\n } // Starts with a '.' so need the baseName\n\n\n if (name[0].charAt(0) === '.' && baseParts) {\n //Convert baseName to array, and lop off the last part,\n //so that . matches that 'directory' and not name of the baseName's\n //module. For instance, baseName of 'one/two/three', maps to\n //'one/two/three.js', but we want the directory, 'one/two' for\n //this normalization.\n normalizedBaseParts = baseParts.slice(0, baseParts.length - 1);\n name = normalizedBaseParts.concat(name);\n } //start trimDots\n\n\n for (i = 0; i < name.length; i++) {\n part = name[i];\n\n if (part === '.') {\n name.splice(i, 1);\n i -= 1;\n } else if (part === '..') {\n // If at the start, or previous value is still ..,\n // keep them so that when converted to a path it may\n // still work when converted to a path, even though\n // as an ID it is less than ideal. In larger point\n // releases, may be better to just kick out an error.\n if (i === 0 || i === 1 && name[2] === '..' || name[i - 1] === '..') {\n continue;\n } else if (i > 0) {\n name.splice(i - 1, 2);\n i -= 2;\n }\n }\n } //end trimDots\n\n\n name = name.join('/');\n } //Apply map config if available.\n\n\n if ((baseParts || starMap) && map) {\n nameParts = name.split('/');\n\n for (i = nameParts.length; i > 0; i -= 1) {\n nameSegment = nameParts.slice(0, i).join(\"/\");\n\n if (baseParts) {\n //Find the longest baseName segment match in the config.\n //So, do joins on the biggest to smallest lengths of baseParts.\n for (j = baseParts.length; j > 0; j -= 1) {\n mapValue = map[baseParts.slice(0, j).join('/')]; //baseName segment has config, find if it has one for\n //this name.\n\n if (mapValue) {\n mapValue = mapValue[nameSegment];\n\n if (mapValue) {\n //Match, update name to the new value.\n foundMap = mapValue;\n foundI = i;\n break;\n }\n }\n }\n }\n\n if (foundMap) {\n break;\n } //Check for a star map match, but just hold on to it,\n //if there is a shorter segment match later in a matching\n //config, then favor over this star map.\n\n\n if (!foundStarMap && starMap && starMap[nameSegment]) {\n foundStarMap = starMap[nameSegment];\n starI = i;\n }\n }\n\n if (!foundMap && foundStarMap) {\n foundMap = foundStarMap;\n foundI = starI;\n }\n\n if (foundMap) {\n nameParts.splice(0, foundI, foundMap);\n name = nameParts.join('/');\n }\n }\n\n return name;\n }\n\n function makeRequire(relName, forceSync) {\n return function () {\n //A version of a require function that passes a moduleName\n //value for items that may need to\n //look up paths relative to the moduleName\n var args = aps.call(arguments, 0); //If first arg is not require('string'), and there is only\n //one arg, it is the array form without a callback. Insert\n //a null so that the following concat is correct.\n\n if (typeof args[0] !== 'string' && args.length === 1) {\n args.push(null);\n }\n\n return _req.apply(undef, args.concat([relName, forceSync]));\n };\n }\n\n function makeNormalize(relName) {\n return function (name) {\n return normalize(name, relName);\n };\n }\n\n function makeLoad(depName) {\n return function (value) {\n defined[depName] = value;\n };\n }\n\n function callDep(name) {\n if (hasProp(waiting, name)) {\n var args = waiting[name];\n delete waiting[name];\n defining[name] = true;\n main.apply(undef, args);\n }\n\n if (!hasProp(defined, name) && !hasProp(defining, name)) {\n throw new Error('No ' + name);\n }\n\n return defined[name];\n } //Turns a plugin!resource to [plugin, resource]\n //with the plugin being undefined if the name\n //did not have a plugin prefix.\n\n\n function splitPrefix(name) {\n var prefix,\n index = name ? name.indexOf('!') : -1;\n\n if (index > -1) {\n prefix = name.substring(0, index);\n name = name.substring(index + 1, name.length);\n }\n\n return [prefix, name];\n } //Creates a parts array for a relName where first part is plugin ID,\n //second part is resource ID. Assumes relName has already been normalized.\n\n\n function makeRelParts(relName) {\n return relName ? splitPrefix(relName) : [];\n }\n /**\n * Makes a name map, normalizing the name, and using a plugin\n * for normalization if necessary. Grabs a ref to plugin\n * too, as an optimization.\n */\n\n\n makeMap = function makeMap(name, relParts) {\n var plugin,\n parts = splitPrefix(name),\n prefix = parts[0],\n relResourceName = relParts[1];\n name = parts[1];\n\n if (prefix) {\n prefix = normalize(prefix, relResourceName);\n plugin = callDep(prefix);\n } //Normalize according\n\n\n if (prefix) {\n if (plugin && plugin.normalize) {\n name = plugin.normalize(name, makeNormalize(relResourceName));\n } else {\n name = normalize(name, relResourceName);\n }\n } else {\n name = normalize(name, relResourceName);\n parts = splitPrefix(name);\n prefix = parts[0];\n name = parts[1];\n\n if (prefix) {\n plugin = callDep(prefix);\n }\n } //Using ridiculous property names for space reasons\n\n\n return {\n f: prefix ? prefix + '!' + name : name,\n //fullName\n n: name,\n pr: prefix,\n p: plugin\n };\n };\n\n function makeConfig(name) {\n return function () {\n return config && config.config && config.config[name] || {};\n };\n }\n\n handlers = {\n require: function require(name) {\n return makeRequire(name);\n },\n exports: function exports(name) {\n var e = defined[name];\n\n if (typeof e !== 'undefined') {\n return e;\n } else {\n return defined[name] = {};\n }\n },\n module: function module(name) {\n return {\n id: name,\n uri: '',\n exports: defined[name],\n config: makeConfig(name)\n };\n }\n };\n\n main = function main(name, deps, callback, relName) {\n var cjsModule,\n depName,\n ret,\n map,\n i,\n relParts,\n args = [],\n callbackType = _typeof(callback),\n usingExports; //Use name if no relName\n\n\n relName = relName || name;\n relParts = makeRelParts(relName); //Call the callback to define the module, if necessary.\n\n if (callbackType === 'undefined' || callbackType === 'function') {\n //Pull out the defined dependencies and pass the ordered\n //values to the callback.\n //Default to [require, exports, module] if no deps\n deps = !deps.length && callback.length ? ['require', 'exports', 'module'] : deps;\n\n for (i = 0; i < deps.length; i += 1) {\n map = makeMap(deps[i], relParts);\n depName = map.f; //Fast path CommonJS standard dependencies.\n\n if (depName === \"require\") {\n args[i] = handlers.require(name);\n } else if (depName === \"exports\") {\n //CommonJS module spec 1.1\n args[i] = handlers.exports(name);\n usingExports = true;\n } else if (depName === \"module\") {\n //CommonJS module spec 1.1\n cjsModule = args[i] = handlers.module(name);\n } else if (hasProp(defined, depName) || hasProp(waiting, depName) || hasProp(defining, depName)) {\n args[i] = callDep(depName);\n } else if (map.p) {\n map.p.load(map.n, makeRequire(relName, true), makeLoad(depName), {});\n args[i] = defined[depName];\n } else {\n throw new Error(name + ' missing ' + depName);\n }\n }\n\n ret = callback ? callback.apply(defined[name], args) : undefined;\n\n if (name) {\n //If setting exports via \"module\" is in play,\n //favor that over return value and exports. After that,\n //favor a non-undefined return value over exports use.\n if (cjsModule && cjsModule.exports !== undef && cjsModule.exports !== defined[name]) {\n defined[name] = cjsModule.exports;\n } else if (ret !== undef || !usingExports) {\n //Use the return value from the function.\n defined[name] = ret;\n }\n }\n } else if (name) {\n //May just be an object definition for the module. Only\n //worry about defining if have a module name.\n defined[name] = callback;\n }\n };\n\n requirejs = require = _req = function req(deps, callback, relName, forceSync, alt) {\n if (typeof deps === \"string\") {\n if (handlers[deps]) {\n //callback in this case is really relName\n return handlers[deps](callback);\n } //Just return the module wanted. In this scenario, the\n //deps arg is the module name, and second arg (if passed)\n //is just the relName.\n //Normalize module name, if it contains . or ..\n\n\n return callDep(makeMap(deps, makeRelParts(callback)).f);\n } else if (!deps.splice) {\n //deps is a config object, not an array.\n config = deps;\n\n if (config.deps) {\n _req(config.deps, config.callback);\n }\n\n if (!callback) {\n return;\n }\n\n if (callback.splice) {\n //callback is an array, which means it is a dependency list.\n //Adjust args if there are dependencies\n deps = callback;\n callback = relName;\n relName = null;\n } else {\n deps = undef;\n }\n } //Support require(['a'])\n\n\n callback = callback || function () {}; //If relName is a function, it is an errback handler,\n //so remove it.\n\n\n if (typeof relName === 'function') {\n relName = forceSync;\n forceSync = alt;\n } //Simulate async callback;\n\n\n if (forceSync) {\n main(undef, deps, callback, relName);\n } else {\n //Using a non-zero value because of concern for what old browsers\n //do, and latest browsers \"upgrade\" to 4 if lower value is used:\n //http://www.whatwg.org/specs/web-apps/current-work/multipage/timers.html#dom-windowtimers-settimeout:\n //If want a value immediately, use require('id') instead -- something\n //that works in almond on the global level, but not guaranteed and\n //unlikely to work in other AMD implementations.\n setTimeout(function () {\n main(undef, deps, callback, relName);\n }, 4);\n }\n\n return _req;\n };\n /**\n * Just drops the config on the floor, but returns req in case\n * the config return value is used.\n */\n\n\n _req.config = function (cfg) {\n return _req(cfg);\n };\n /**\n * Expose module registry for debugging and tooling\n */\n\n\n requirejs._defined = defined;\n\n define = function define(name, deps, callback) {\n if (typeof name !== 'string') {\n throw new Error('See almond README: incorrect module build, no module name');\n } //This module may not have dependencies\n\n\n if (!deps.splice) {\n //deps is not an array, so probably means\n //an object literal or factory function for\n //the value. Adjust args.\n callback = deps;\n deps = [];\n }\n\n if (!hasProp(defined, name) && !hasProp(waiting, name)) {\n waiting[name] = [name, deps, callback];\n }\n };\n\n define.amd = {\n jQuery: true\n };\n })();\n\n S2.requirejs = requirejs;\n S2.require = require;\n S2.define = define;\n }\n })();\n\n S2.define(\"almond\", function () {});\n /* global jQuery:false, $:false */\n\n S2.define('jquery', [], function () {\n var _$ = jQuery || $;\n\n if (_$ == null && console && console.error) {\n 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.');\n }\n\n return _$;\n });\n S2.define('select2/utils', ['jquery'], function ($) {\n var Utils = {};\n\n Utils.Extend = function (ChildClass, SuperClass) {\n var __hasProp = {}.hasOwnProperty;\n\n function BaseConstructor() {\n this.constructor = ChildClass;\n }\n\n for (var key in SuperClass) {\n if (__hasProp.call(SuperClass, key)) {\n ChildClass[key] = SuperClass[key];\n }\n }\n\n BaseConstructor.prototype = SuperClass.prototype;\n ChildClass.prototype = new BaseConstructor();\n ChildClass.__super__ = SuperClass.prototype;\n return ChildClass;\n };\n\n function getMethods(theClass) {\n var proto = theClass.prototype;\n var methods = [];\n\n for (var methodName in proto) {\n var m = proto[methodName];\n\n if (typeof m !== 'function') {\n continue;\n }\n\n if (methodName === 'constructor') {\n continue;\n }\n\n methods.push(methodName);\n }\n\n return methods;\n }\n\n Utils.Decorate = function (SuperClass, DecoratorClass) {\n var decoratedMethods = getMethods(DecoratorClass);\n var superMethods = getMethods(SuperClass);\n\n function DecoratedClass() {\n var unshift = Array.prototype.unshift;\n var argCount = DecoratorClass.prototype.constructor.length;\n var calledConstructor = SuperClass.prototype.constructor;\n\n if (argCount > 0) {\n unshift.call(arguments, SuperClass.prototype.constructor);\n calledConstructor = DecoratorClass.prototype.constructor;\n }\n\n calledConstructor.apply(this, arguments);\n }\n\n DecoratorClass.displayName = SuperClass.displayName;\n\n function ctr() {\n this.constructor = DecoratedClass;\n }\n\n DecoratedClass.prototype = new ctr();\n\n for (var m = 0; m < superMethods.length; m++) {\n var superMethod = superMethods[m];\n DecoratedClass.prototype[superMethod] = SuperClass.prototype[superMethod];\n }\n\n var calledMethod = function calledMethod(methodName) {\n // Stub out the original method if it's not decorating an actual method\n var originalMethod = function originalMethod() {};\n\n if (methodName in DecoratedClass.prototype) {\n originalMethod = DecoratedClass.prototype[methodName];\n }\n\n var decoratedMethod = DecoratorClass.prototype[methodName];\n return function () {\n var unshift = Array.prototype.unshift;\n unshift.call(arguments, originalMethod);\n return decoratedMethod.apply(this, arguments);\n };\n };\n\n for (var d = 0; d < decoratedMethods.length; d++) {\n var decoratedMethod = decoratedMethods[d];\n DecoratedClass.prototype[decoratedMethod] = calledMethod(decoratedMethod);\n }\n\n return DecoratedClass;\n };\n\n var Observable = function Observable() {\n this.listeners = {};\n };\n\n Observable.prototype.on = function (event, callback) {\n this.listeners = this.listeners || {};\n\n if (event in this.listeners) {\n this.listeners[event].push(callback);\n } else {\n this.listeners[event] = [callback];\n }\n };\n\n Observable.prototype.trigger = function (event) {\n var slice = Array.prototype.slice;\n var params = slice.call(arguments, 1);\n this.listeners = this.listeners || {}; // Params should always come in as an array\n\n if (params == null) {\n params = [];\n } // If there are no arguments to the event, use a temporary object\n\n\n if (params.length === 0) {\n params.push({});\n } // Set the `_type` of the first object to the event\n\n\n params[0]._type = event;\n\n if (event in this.listeners) {\n this.invoke(this.listeners[event], slice.call(arguments, 1));\n }\n\n if ('*' in this.listeners) {\n this.invoke(this.listeners['*'], arguments);\n }\n };\n\n Observable.prototype.invoke = function (listeners, params) {\n for (var i = 0, len = listeners.length; i < len; i++) {\n listeners[i].apply(this, params);\n }\n };\n\n Utils.Observable = Observable;\n\n Utils.generateChars = function (length) {\n var chars = '';\n\n for (var i = 0; i < length; i++) {\n var randomChar = Math.floor(Math.random() * 36);\n chars += randomChar.toString(36);\n }\n\n return chars;\n };\n\n Utils.bind = function (func, context) {\n return function () {\n func.apply(context, arguments);\n };\n };\n\n Utils._convertData = function (data) {\n for (var originalKey in data) {\n var keys = originalKey.split('-');\n var dataLevel = data;\n\n if (keys.length === 1) {\n continue;\n }\n\n for (var k = 0; k < keys.length; k++) {\n var key = keys[k]; // Lowercase the first letter\n // By default, dash-separated becomes camelCase\n\n key = key.substring(0, 1).toLowerCase() + key.substring(1);\n\n if (!(key in dataLevel)) {\n dataLevel[key] = {};\n }\n\n if (k == keys.length - 1) {\n dataLevel[key] = data[originalKey];\n }\n\n dataLevel = dataLevel[key];\n }\n\n delete data[originalKey];\n }\n\n return data;\n };\n\n Utils.hasScroll = function (index, el) {\n // Adapted from the function created by @ShadowScripter\n // and adapted by @BillBarry on the Stack Exchange Code Review website.\n // The original code can be found at\n // http://codereview.stackexchange.com/q/13338\n // and was designed to be used with the Sizzle selector engine.\n var $el = $(el);\n var overflowX = el.style.overflowX;\n var overflowY = el.style.overflowY; //Check both x and y declarations\n\n if (overflowX === overflowY && (overflowY === 'hidden' || overflowY === 'visible')) {\n return false;\n }\n\n if (overflowX === 'scroll' || overflowY === 'scroll') {\n return true;\n }\n\n return $el.innerHeight() < el.scrollHeight || $el.innerWidth() < el.scrollWidth;\n };\n\n Utils.escapeMarkup = function (markup) {\n var replaceMap = {\n '\\\\': '\',\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n '\\'': ''',\n '/': '/'\n }; // Do not try to escape the markup if it's not a string\n\n if (typeof markup !== 'string') {\n return markup;\n }\n\n return String(markup).replace(/[&<>\"'\\/\\\\]/g, function (match) {\n return replaceMap[match];\n });\n }; // Append an array of jQuery nodes to a given element.\n\n\n Utils.appendMany = function ($element, $nodes) {\n // jQuery 1.7.x does not support $.fn.append() with an array\n // Fall back to a jQuery object collection using $.fn.add()\n if ($.fn.jquery.substr(0, 3) === '1.7') {\n var $jqNodes = $();\n $.map($nodes, function (node) {\n $jqNodes = $jqNodes.add(node);\n });\n $nodes = $jqNodes;\n }\n\n $element.append($nodes);\n }; // Cache objects in Utils.__cache instead of $.data (see #4346)\n\n\n Utils.__cache = {};\n var id = 0;\n\n Utils.GetUniqueElementId = function (element) {\n // Get a unique element Id. If element has no id,\n // creates a new unique number, stores it in the id\n // attribute and returns the new id.\n // If an id already exists, it simply returns it.\n var select2Id = element.getAttribute('data-select2-id');\n\n if (select2Id == null) {\n // If element has id, use it.\n if (element.id) {\n select2Id = element.id;\n element.setAttribute('data-select2-id', select2Id);\n } else {\n element.setAttribute('data-select2-id', ++id);\n select2Id = id.toString();\n }\n }\n\n return select2Id;\n };\n\n Utils.StoreData = function (element, name, value) {\n // Stores an item in the cache for a specified element.\n // name is the cache key.\n var id = Utils.GetUniqueElementId(element);\n\n if (!Utils.__cache[id]) {\n Utils.__cache[id] = {};\n }\n\n Utils.__cache[id][name] = value;\n };\n\n Utils.GetData = function (element, name) {\n // Retrieves a value from the cache by its key (name)\n // name is optional. If no name specified, return\n // all cache items for the specified element.\n // and for a specified element.\n var id = Utils.GetUniqueElementId(element);\n\n if (name) {\n if (Utils.__cache[id]) {\n if (Utils.__cache[id][name] != null) {\n return Utils.__cache[id][name];\n }\n\n return $(element).data(name); // Fallback to HTML5 data attribs.\n }\n\n return $(element).data(name); // Fallback to HTML5 data attribs.\n } else {\n return Utils.__cache[id];\n }\n };\n\n Utils.RemoveData = function (element) {\n // Removes all cached items for a specified element.\n var id = Utils.GetUniqueElementId(element);\n\n if (Utils.__cache[id] != null) {\n delete Utils.__cache[id];\n }\n\n element.removeAttribute('data-select2-id');\n };\n\n return Utils;\n });\n S2.define('select2/results', ['jquery', './utils'], function ($, Utils) {\n function Results($element, options, dataAdapter) {\n this.$element = $element;\n this.data = dataAdapter;\n this.options = options;\n\n Results.__super__.constructor.call(this);\n }\n\n Utils.Extend(Results, Utils.Observable);\n\n Results.prototype.render = function () {\n var $results = $('
      ');\n\n if (this.options.get('multiple')) {\n $results.attr('aria-multiselectable', 'true');\n }\n\n this.$results = $results;\n return $results;\n };\n\n Results.prototype.clear = function () {\n this.$results.empty();\n };\n\n Results.prototype.displayMessage = function (params) {\n var escapeMarkup = this.options.get('escapeMarkup');\n this.clear();\n this.hideLoading();\n var $message = $('
    • ');\n var message = this.options.get('translations').get(params.message);\n $message.append(escapeMarkup(message(params.args)));\n $message[0].className += ' select2-results__message';\n this.$results.append($message);\n };\n\n Results.prototype.hideMessages = function () {\n this.$results.find('.select2-results__message').remove();\n };\n\n Results.prototype.append = function (data) {\n this.hideLoading();\n var $options = [];\n\n if (data.results == null || data.results.length === 0) {\n if (this.$results.children().length === 0) {\n this.trigger('results:message', {\n message: 'noResults'\n });\n }\n\n return;\n }\n\n data.results = this.sort(data.results);\n\n for (var d = 0; d < data.results.length; d++) {\n var item = data.results[d];\n var $option = this.option(item);\n $options.push($option);\n }\n\n this.$results.append($options);\n };\n\n Results.prototype.position = function ($results, $dropdown) {\n var $resultsContainer = $dropdown.find('.select2-results');\n $resultsContainer.append($results);\n };\n\n Results.prototype.sort = function (data) {\n var sorter = this.options.get('sorter');\n return sorter(data);\n };\n\n Results.prototype.highlightFirstItem = function () {\n var $options = this.$results.find('.select2-results__option[aria-selected]');\n var $selected = $options.filter('[aria-selected=true]'); // Check if there are any selected options\n\n if ($selected.length > 0) {\n // If there are selected options, highlight the first\n $selected.first().trigger('mouseenter');\n } else {\n // If there are no selected options, highlight the first option\n // in the dropdown\n $options.first().trigger('mouseenter');\n }\n\n this.ensureHighlightVisible();\n };\n\n Results.prototype.setClasses = function () {\n var self = this;\n this.data.current(function (selected) {\n var selectedIds = $.map(selected, function (s) {\n return s.id.toString();\n });\n var $options = self.$results.find('.select2-results__option[aria-selected]');\n $options.each(function () {\n var $option = $(this);\n var item = Utils.GetData(this, 'data'); // id needs to be converted to a string when comparing\n\n var id = '' + item.id;\n\n if (item.element != null && item.element.selected || item.element == null && $.inArray(id, selectedIds) > -1) {\n $option.attr('aria-selected', 'true');\n } else {\n $option.attr('aria-selected', 'false');\n }\n });\n });\n };\n\n Results.prototype.showLoading = function (params) {\n this.hideLoading();\n var loadingMore = this.options.get('translations').get('searching');\n var loading = {\n disabled: true,\n loading: true,\n text: loadingMore(params)\n };\n var $loading = this.option(loading);\n $loading.className += ' loading-results';\n this.$results.prepend($loading);\n };\n\n Results.prototype.hideLoading = function () {\n this.$results.find('.loading-results').remove();\n };\n\n Results.prototype.option = function (data) {\n var option = document.createElement('li');\n option.className = 'select2-results__option';\n var attrs = {\n 'role': 'option',\n 'aria-selected': 'false'\n };\n var matches = window.Element.prototype.matches || window.Element.prototype.msMatchesSelector || window.Element.prototype.webkitMatchesSelector;\n\n if (data.element != null && matches.call(data.element, ':disabled') || data.element == null && data.disabled) {\n delete attrs['aria-selected'];\n attrs['aria-disabled'] = 'true';\n }\n\n if (data.id == null) {\n delete attrs['aria-selected'];\n }\n\n if (data._resultId != null) {\n option.id = data._resultId;\n }\n\n if (data.title) {\n option.title = data.title;\n }\n\n if (data.children) {\n attrs.role = 'group';\n attrs['aria-label'] = data.text;\n delete attrs['aria-selected'];\n }\n\n for (var attr in attrs) {\n var val = attrs[attr];\n option.setAttribute(attr, val);\n }\n\n if (data.children) {\n var $option = $(option);\n var label = document.createElement('strong');\n label.className = 'select2-results__group';\n var $label = $(label);\n this.template(data, label);\n var $children = [];\n\n for (var c = 0; c < data.children.length; c++) {\n var child = data.children[c];\n var $child = this.option(child);\n $children.push($child);\n }\n\n var $childrenContainer = $('', {\n 'class': 'select2-results__options select2-results__options--nested'\n });\n $childrenContainer.append($children);\n $option.append(label);\n $option.append($childrenContainer);\n } else {\n this.template(data, option);\n }\n\n Utils.StoreData(option, 'data', data);\n return option;\n };\n\n Results.prototype.bind = function (container, $container) {\n var self = this;\n var id = container.id + '-results';\n this.$results.attr('id', id);\n container.on('results:all', function (params) {\n self.clear();\n self.append(params.data);\n\n if (container.isOpen()) {\n self.setClasses();\n self.highlightFirstItem();\n }\n });\n container.on('results:append', function (params) {\n self.append(params.data);\n\n if (container.isOpen()) {\n self.setClasses();\n }\n });\n container.on('query', function (params) {\n self.hideMessages();\n self.showLoading(params);\n });\n container.on('select', function () {\n if (!container.isOpen()) {\n return;\n }\n\n self.setClasses();\n\n if (self.options.get('scrollAfterSelect')) {\n self.highlightFirstItem();\n }\n });\n container.on('unselect', function () {\n if (!container.isOpen()) {\n return;\n }\n\n self.setClasses();\n\n if (self.options.get('scrollAfterSelect')) {\n self.highlightFirstItem();\n }\n });\n container.on('open', function () {\n // When the dropdown is open, aria-expended=\"true\"\n self.$results.attr('aria-expanded', 'true');\n self.$results.attr('aria-hidden', 'false');\n self.setClasses();\n self.ensureHighlightVisible();\n });\n container.on('close', function () {\n // When the dropdown is closed, aria-expended=\"false\"\n self.$results.attr('aria-expanded', 'false');\n self.$results.attr('aria-hidden', 'true');\n self.$results.removeAttr('aria-activedescendant');\n });\n container.on('results:toggle', function () {\n var $highlighted = self.getHighlightedResults();\n\n if ($highlighted.length === 0) {\n return;\n }\n\n $highlighted.trigger('mouseup');\n });\n container.on('results:select', function () {\n var $highlighted = self.getHighlightedResults();\n\n if ($highlighted.length === 0) {\n return;\n }\n\n var data = Utils.GetData($highlighted[0], 'data');\n\n if ($highlighted.attr('aria-selected') == 'true') {\n self.trigger('close', {});\n } else {\n self.trigger('select', {\n data: data\n });\n }\n });\n container.on('results:previous', function () {\n var $highlighted = self.getHighlightedResults();\n var $options = self.$results.find('[aria-selected]');\n var currentIndex = $options.index($highlighted); // If we are already at the top, don't move further\n // If no options, currentIndex will be -1\n\n if (currentIndex <= 0) {\n return;\n }\n\n var nextIndex = currentIndex - 1; // If none are highlighted, highlight the first\n\n if ($highlighted.length === 0) {\n nextIndex = 0;\n }\n\n var $next = $options.eq(nextIndex);\n $next.trigger('mouseenter');\n var currentOffset = self.$results.offset().top;\n var nextTop = $next.offset().top;\n var nextOffset = self.$results.scrollTop() + (nextTop - currentOffset);\n\n if (nextIndex === 0) {\n self.$results.scrollTop(0);\n } else if (nextTop - currentOffset < 0) {\n self.$results.scrollTop(nextOffset);\n }\n });\n container.on('results:next', function () {\n var $highlighted = self.getHighlightedResults();\n var $options = self.$results.find('[aria-selected]');\n var currentIndex = $options.index($highlighted);\n var nextIndex = currentIndex + 1; // If we are at the last option, stay there\n\n if (nextIndex >= $options.length) {\n return;\n }\n\n var $next = $options.eq(nextIndex);\n $next.trigger('mouseenter');\n var currentOffset = self.$results.offset().top + self.$results.outerHeight(false);\n var nextBottom = $next.offset().top + $next.outerHeight(false);\n var nextOffset = self.$results.scrollTop() + nextBottom - currentOffset;\n\n if (nextIndex === 0) {\n self.$results.scrollTop(0);\n } else if (nextBottom > currentOffset) {\n self.$results.scrollTop(nextOffset);\n }\n });\n container.on('results:focus', function (params) {\n params.element.addClass('select2-results__option--highlighted');\n });\n container.on('results:message', function (params) {\n self.displayMessage(params);\n });\n\n if ($.fn.mousewheel) {\n this.$results.on('mousewheel', function (e) {\n var top = self.$results.scrollTop();\n var bottom = self.$results.get(0).scrollHeight - top + e.deltaY;\n var isAtTop = e.deltaY > 0 && top - e.deltaY <= 0;\n var isAtBottom = e.deltaY < 0 && bottom <= self.$results.height();\n\n if (isAtTop) {\n self.$results.scrollTop(0);\n e.preventDefault();\n e.stopPropagation();\n } else if (isAtBottom) {\n self.$results.scrollTop(self.$results.get(0).scrollHeight - self.$results.height());\n e.preventDefault();\n e.stopPropagation();\n }\n });\n }\n\n this.$results.on('mouseup', '.select2-results__option[aria-selected]', function (evt) {\n var $this = $(this);\n var data = Utils.GetData(this, 'data');\n\n if ($this.attr('aria-selected') === 'true') {\n if (self.options.get('multiple')) {\n self.trigger('unselect', {\n originalEvent: evt,\n data: data\n });\n } else {\n self.trigger('close', {});\n }\n\n return;\n }\n\n self.trigger('select', {\n originalEvent: evt,\n data: data\n });\n });\n this.$results.on('mouseenter', '.select2-results__option[aria-selected]', function (evt) {\n var data = Utils.GetData(this, 'data');\n self.getHighlightedResults().removeClass('select2-results__option--highlighted');\n self.trigger('results:focus', {\n data: data,\n element: $(this)\n });\n });\n };\n\n Results.prototype.getHighlightedResults = function () {\n var $highlighted = this.$results.find('.select2-results__option--highlighted');\n return $highlighted;\n };\n\n Results.prototype.destroy = function () {\n this.$results.remove();\n };\n\n Results.prototype.ensureHighlightVisible = function () {\n var $highlighted = this.getHighlightedResults();\n\n if ($highlighted.length === 0) {\n return;\n }\n\n var $options = this.$results.find('[aria-selected]');\n var currentIndex = $options.index($highlighted);\n var currentOffset = this.$results.offset().top;\n var nextTop = $highlighted.offset().top;\n var nextOffset = this.$results.scrollTop() + (nextTop - currentOffset);\n var offsetDelta = nextTop - currentOffset;\n nextOffset -= $highlighted.outerHeight(false) * 2;\n\n if (currentIndex <= 2) {\n this.$results.scrollTop(0);\n } else if (offsetDelta > this.$results.outerHeight() || offsetDelta < 0) {\n this.$results.scrollTop(nextOffset);\n }\n };\n\n Results.prototype.template = function (result, container) {\n var template = this.options.get('templateResult');\n var escapeMarkup = this.options.get('escapeMarkup');\n var content = template(result, container);\n\n if (content == null) {\n container.style.display = 'none';\n } else if (typeof content === 'string') {\n container.innerHTML = escapeMarkup(content);\n } else {\n $(container).append(content);\n }\n };\n\n return Results;\n });\n S2.define('select2/keys', [], function () {\n var KEYS = {\n BACKSPACE: 8,\n TAB: 9,\n ENTER: 13,\n SHIFT: 16,\n CTRL: 17,\n ALT: 18,\n ESC: 27,\n SPACE: 32,\n PAGE_UP: 33,\n PAGE_DOWN: 34,\n END: 35,\n HOME: 36,\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40,\n DELETE: 46\n };\n return KEYS;\n });\n S2.define('select2/selection/base', ['jquery', '../utils', '../keys'], function ($, Utils, KEYS) {\n function BaseSelection($element, options) {\n this.$element = $element;\n this.options = options;\n\n BaseSelection.__super__.constructor.call(this);\n }\n\n Utils.Extend(BaseSelection, Utils.Observable);\n\n BaseSelection.prototype.render = function () {\n var $selection = $('' + '');\n this._tabindex = 0;\n\n if (Utils.GetData(this.$element[0], 'old-tabindex') != null) {\n this._tabindex = Utils.GetData(this.$element[0], 'old-tabindex');\n } else if (this.$element.attr('tabindex') != null) {\n this._tabindex = this.$element.attr('tabindex');\n }\n\n $selection.attr('title', this.$element.attr('title'));\n $selection.attr('tabindex', this._tabindex);\n $selection.attr('aria-disabled', 'false');\n this.$selection = $selection;\n return $selection;\n };\n\n BaseSelection.prototype.bind = function (container, $container) {\n var self = this;\n var resultsId = container.id + '-results';\n this.container = container;\n this.$selection.on('focus', function (evt) {\n self.trigger('focus', evt);\n });\n this.$selection.on('blur', function (evt) {\n self._handleBlur(evt);\n });\n this.$selection.on('keydown', function (evt) {\n self.trigger('keypress', evt);\n\n if (evt.which === KEYS.SPACE) {\n evt.preventDefault();\n }\n });\n container.on('results:focus', function (params) {\n self.$selection.attr('aria-activedescendant', params.data._resultId);\n });\n container.on('selection:update', function (params) {\n self.update(params.data);\n });\n container.on('open', function () {\n // When the dropdown is open, aria-expanded=\"true\"\n self.$selection.attr('aria-expanded', 'true');\n self.$selection.attr('aria-owns', resultsId);\n\n self._attachCloseHandler(container);\n });\n container.on('close', function () {\n // When the dropdown is closed, aria-expanded=\"false\"\n self.$selection.attr('aria-expanded', 'false');\n self.$selection.removeAttr('aria-activedescendant');\n self.$selection.removeAttr('aria-owns');\n self.$selection.trigger('focus');\n\n self._detachCloseHandler(container);\n });\n container.on('enable', function () {\n self.$selection.attr('tabindex', self._tabindex);\n self.$selection.attr('aria-disabled', 'false');\n });\n container.on('disable', function () {\n self.$selection.attr('tabindex', '-1');\n self.$selection.attr('aria-disabled', 'true');\n });\n };\n\n BaseSelection.prototype._handleBlur = function (evt) {\n var self = this; // This needs to be delayed as the active element is the body when the tab\n // key is pressed, possibly along with others.\n\n window.setTimeout(function () {\n // Don't trigger `blur` if the focus is still in the selection\n if (document.activeElement == self.$selection[0] || $.contains(self.$selection[0], document.activeElement)) {\n return;\n }\n\n self.trigger('blur', evt);\n }, 1);\n };\n\n BaseSelection.prototype._attachCloseHandler = function (container) {\n $(document.body).on('mousedown.select2.' + container.id, function (e) {\n var $target = $(e.target);\n var $select = $target.closest('.select2');\n var $all = $('.select2.select2-container--open');\n $all.each(function () {\n if (this == $select[0]) {\n return;\n }\n\n var $element = Utils.GetData(this, 'element');\n $element.select2('close');\n });\n });\n };\n\n BaseSelection.prototype._detachCloseHandler = function (container) {\n $(document.body).off('mousedown.select2.' + container.id);\n };\n\n BaseSelection.prototype.position = function ($selection, $container) {\n var $selectionContainer = $container.find('.selection');\n $selectionContainer.append($selection);\n };\n\n BaseSelection.prototype.destroy = function () {\n this._detachCloseHandler(this.container);\n };\n\n BaseSelection.prototype.update = function (data) {\n throw new Error('The `update` method must be defined in child classes.');\n };\n /**\n * Helper method to abstract the \"enabled\" (not \"disabled\") state of this\n * object.\n *\n * @return {true} if the instance is not disabled.\n * @return {false} if the instance is disabled.\n */\n\n\n BaseSelection.prototype.isEnabled = function () {\n return !this.isDisabled();\n };\n /**\n * Helper method to abstract the \"disabled\" state of this object.\n *\n * @return {true} if the disabled option is true.\n * @return {false} if the disabled option is false.\n */\n\n\n BaseSelection.prototype.isDisabled = function () {\n return this.options.get('disabled');\n };\n\n return BaseSelection;\n });\n S2.define('select2/selection/single', ['jquery', './base', '../utils', '../keys'], function ($, BaseSelection, Utils, KEYS) {\n function SingleSelection() {\n SingleSelection.__super__.constructor.apply(this, arguments);\n }\n\n Utils.Extend(SingleSelection, BaseSelection);\n\n SingleSelection.prototype.render = function () {\n var $selection = SingleSelection.__super__.render.call(this);\n\n $selection.addClass('select2-selection--single');\n $selection.html('' + '' + '' + '');\n return $selection;\n };\n\n SingleSelection.prototype.bind = function (container, $container) {\n var self = this;\n\n SingleSelection.__super__.bind.apply(this, arguments);\n\n var id = container.id + '-container';\n this.$selection.find('.select2-selection__rendered').attr('id', id).attr('role', 'textbox').attr('aria-readonly', 'true');\n this.$selection.attr('aria-labelledby', id);\n this.$selection.on('mousedown', function (evt) {\n // Only respond to left clicks\n if (evt.which !== 1) {\n return;\n }\n\n self.trigger('toggle', {\n originalEvent: evt\n });\n });\n this.$selection.on('focus', function (evt) {// User focuses on the container\n });\n this.$selection.on('blur', function (evt) {// User exits the container\n });\n container.on('focus', function (evt) {\n if (!container.isOpen()) {\n self.$selection.trigger('focus');\n }\n });\n };\n\n SingleSelection.prototype.clear = function () {\n var $rendered = this.$selection.find('.select2-selection__rendered');\n $rendered.empty();\n $rendered.removeAttr('title'); // clear tooltip on empty\n };\n\n SingleSelection.prototype.display = function (data, container) {\n var template = this.options.get('templateSelection');\n var escapeMarkup = this.options.get('escapeMarkup');\n return escapeMarkup(template(data, container));\n };\n\n SingleSelection.prototype.selectionContainer = function () {\n return $('');\n };\n\n SingleSelection.prototype.update = function (data) {\n if (data.length === 0) {\n this.clear();\n return;\n }\n\n var selection = data[0];\n var $rendered = this.$selection.find('.select2-selection__rendered');\n var formatted = this.display(selection, $rendered);\n $rendered.empty().append(formatted);\n var title = selection.title || selection.text;\n\n if (title) {\n $rendered.attr('title', title);\n } else {\n $rendered.removeAttr('title');\n }\n };\n\n return SingleSelection;\n });\n S2.define('select2/selection/multiple', ['jquery', './base', '../utils'], function ($, BaseSelection, Utils) {\n function MultipleSelection($element, options) {\n MultipleSelection.__super__.constructor.apply(this, arguments);\n }\n\n Utils.Extend(MultipleSelection, BaseSelection);\n\n MultipleSelection.prototype.render = function () {\n var $selection = MultipleSelection.__super__.render.call(this);\n\n $selection.addClass('select2-selection--multiple');\n $selection.html('');\n return $selection;\n };\n\n MultipleSelection.prototype.bind = function (container, $container) {\n var self = this;\n\n MultipleSelection.__super__.bind.apply(this, arguments);\n\n this.$selection.on('click', function (evt) {\n self.trigger('toggle', {\n originalEvent: evt\n });\n });\n this.$selection.on('click', '.select2-selection__choice__remove', function (evt) {\n // Ignore the event if it is disabled\n if (self.isDisabled()) {\n return;\n }\n\n var $remove = $(this);\n var $selection = $remove.parent();\n var data = Utils.GetData($selection[0], 'data');\n self.trigger('unselect', {\n originalEvent: evt,\n data: data\n });\n });\n };\n\n MultipleSelection.prototype.clear = function () {\n var $rendered = this.$selection.find('.select2-selection__rendered');\n $rendered.empty();\n $rendered.removeAttr('title');\n };\n\n MultipleSelection.prototype.display = function (data, container) {\n var template = this.options.get('templateSelection');\n var escapeMarkup = this.options.get('escapeMarkup');\n return escapeMarkup(template(data, container));\n };\n\n MultipleSelection.prototype.selectionContainer = function () {\n var $container = $('
    • ' + '' + '×' + '' + '
    • ');\n return $container;\n };\n\n MultipleSelection.prototype.update = function (data) {\n this.clear();\n\n if (data.length === 0) {\n return;\n }\n\n var $selections = [];\n\n for (var d = 0; d < data.length; d++) {\n var selection = data[d];\n var $selection = this.selectionContainer();\n var formatted = this.display(selection, $selection);\n $selection.append(formatted);\n var title = selection.title || selection.text;\n\n if (title) {\n $selection.attr('title', title);\n }\n\n Utils.StoreData($selection[0], 'data', selection);\n $selections.push($selection);\n }\n\n var $rendered = this.$selection.find('.select2-selection__rendered');\n Utils.appendMany($rendered, $selections);\n };\n\n return MultipleSelection;\n });\n S2.define('select2/selection/placeholder', ['../utils'], function (Utils) {\n function Placeholder(decorated, $element, options) {\n this.placeholder = this.normalizePlaceholder(options.get('placeholder'));\n decorated.call(this, $element, options);\n }\n\n Placeholder.prototype.normalizePlaceholder = function (_, placeholder) {\n if (typeof placeholder === 'string') {\n placeholder = {\n id: '',\n text: placeholder\n };\n }\n\n return placeholder;\n };\n\n Placeholder.prototype.createPlaceholder = function (decorated, placeholder) {\n var $placeholder = this.selectionContainer();\n $placeholder.html(this.display(placeholder));\n $placeholder.addClass('select2-selection__placeholder').removeClass('select2-selection__choice');\n return $placeholder;\n };\n\n Placeholder.prototype.update = function (decorated, data) {\n var singlePlaceholder = data.length == 1 && data[0].id != this.placeholder.id;\n var multipleSelections = data.length > 1;\n\n if (multipleSelections || singlePlaceholder) {\n return decorated.call(this, data);\n }\n\n this.clear();\n var $placeholder = this.createPlaceholder(this.placeholder);\n this.$selection.find('.select2-selection__rendered').append($placeholder);\n };\n\n return Placeholder;\n });\n S2.define('select2/selection/allowClear', ['jquery', '../keys', '../utils'], function ($, KEYS, Utils) {\n function AllowClear() {}\n\n AllowClear.prototype.bind = function (decorated, container, $container) {\n var self = this;\n decorated.call(this, container, $container);\n\n if (this.placeholder == null) {\n if (this.options.get('debug') && window.console && console.error) {\n console.error('Select2: The `allowClear` option should be used in combination ' + 'with the `placeholder` option.');\n }\n }\n\n this.$selection.on('mousedown', '.select2-selection__clear', function (evt) {\n self._handleClear(evt);\n });\n container.on('keypress', function (evt) {\n self._handleKeyboardClear(evt, container);\n });\n };\n\n AllowClear.prototype._handleClear = function (_, evt) {\n // Ignore the event if it is disabled\n if (this.isDisabled()) {\n return;\n }\n\n var $clear = this.$selection.find('.select2-selection__clear'); // Ignore the event if nothing has been selected\n\n if ($clear.length === 0) {\n return;\n }\n\n evt.stopPropagation();\n var data = Utils.GetData($clear[0], 'data');\n var previousVal = this.$element.val();\n this.$element.val(this.placeholder.id);\n var unselectData = {\n data: data\n };\n this.trigger('clear', unselectData);\n\n if (unselectData.prevented) {\n this.$element.val(previousVal);\n return;\n }\n\n for (var d = 0; d < data.length; d++) {\n unselectData = {\n data: data[d]\n }; // Trigger the `unselect` event, so people can prevent it from being\n // cleared.\n\n this.trigger('unselect', unselectData); // If the event was prevented, don't clear it out.\n\n if (unselectData.prevented) {\n this.$element.val(previousVal);\n return;\n }\n }\n\n this.$element.trigger('input').trigger('change');\n this.trigger('toggle', {});\n };\n\n AllowClear.prototype._handleKeyboardClear = function (_, evt, container) {\n if (container.isOpen()) {\n return;\n }\n\n if (evt.which == KEYS.DELETE || evt.which == KEYS.BACKSPACE) {\n this._handleClear(evt);\n }\n };\n\n AllowClear.prototype.update = function (decorated, data) {\n decorated.call(this, data);\n\n if (this.$selection.find('.select2-selection__placeholder').length > 0 || data.length === 0) {\n return;\n }\n\n var removeAll = this.options.get('translations').get('removeAllItems');\n var $remove = $('' + '×' + '');\n Utils.StoreData($remove[0], 'data', data);\n this.$selection.find('.select2-selection__rendered').prepend($remove);\n };\n\n return AllowClear;\n });\n S2.define('select2/selection/search', ['jquery', '../utils', '../keys'], function ($, Utils, KEYS) {\n function Search(decorated, $element, options) {\n decorated.call(this, $element, options);\n }\n\n Search.prototype.render = function (decorated) {\n var $search = $('');\n this.$searchContainer = $search;\n this.$search = $search.find('input');\n var $rendered = decorated.call(this);\n\n this._transferTabIndex();\n\n return $rendered;\n };\n\n Search.prototype.bind = function (decorated, container, $container) {\n var self = this;\n var resultsId = container.id + '-results';\n decorated.call(this, container, $container);\n container.on('open', function () {\n self.$search.attr('aria-controls', resultsId);\n self.$search.trigger('focus');\n });\n container.on('close', function () {\n self.$search.val('');\n self.$search.removeAttr('aria-controls');\n self.$search.removeAttr('aria-activedescendant');\n self.$search.trigger('focus');\n });\n container.on('enable', function () {\n self.$search.prop('disabled', false);\n\n self._transferTabIndex();\n });\n container.on('disable', function () {\n self.$search.prop('disabled', true);\n });\n container.on('focus', function (evt) {\n self.$search.trigger('focus');\n });\n container.on('results:focus', function (params) {\n if (params.data._resultId) {\n self.$search.attr('aria-activedescendant', params.data._resultId);\n } else {\n self.$search.removeAttr('aria-activedescendant');\n }\n });\n this.$selection.on('focusin', '.select2-search--inline', function (evt) {\n self.trigger('focus', evt);\n });\n this.$selection.on('focusout', '.select2-search--inline', function (evt) {\n self._handleBlur(evt);\n });\n this.$selection.on('keydown', '.select2-search--inline', function (evt) {\n evt.stopPropagation();\n self.trigger('keypress', evt);\n self._keyUpPrevented = evt.isDefaultPrevented();\n var key = evt.which;\n\n if (key === KEYS.BACKSPACE && self.$search.val() === '') {\n var $previousChoice = self.$searchContainer.prev('.select2-selection__choice');\n\n if ($previousChoice.length > 0) {\n var item = Utils.GetData($previousChoice[0], 'data');\n self.searchRemoveChoice(item);\n evt.preventDefault();\n }\n }\n });\n this.$selection.on('click', '.select2-search--inline', function (evt) {\n if (self.$search.val()) {\n evt.stopPropagation();\n }\n }); // Try to detect the IE version should the `documentMode` property that\n // is stored on the document. This is only implemented in IE and is\n // slightly cleaner than doing a user agent check.\n // This property is not available in Edge, but Edge also doesn't have\n // this bug.\n\n var msie = document.documentMode;\n var disableInputEvents = msie && msie <= 11; // Workaround for browsers which do not support the `input` event\n // This will prevent double-triggering of events for browsers which support\n // both the `keyup` and `input` events.\n\n this.$selection.on('input.searchcheck', '.select2-search--inline', function (evt) {\n // IE will trigger the `input` event when a placeholder is used on a\n // search box. To get around this issue, we are forced to ignore all\n // `input` events in IE and keep using `keyup`.\n if (disableInputEvents) {\n self.$selection.off('input.search input.searchcheck');\n return;\n } // Unbind the duplicated `keyup` event\n\n\n self.$selection.off('keyup.search');\n });\n this.$selection.on('keyup.search input.search', '.select2-search--inline', function (evt) {\n // IE will trigger the `input` event when a placeholder is used on a\n // search box. To get around this issue, we are forced to ignore all\n // `input` events in IE and keep using `keyup`.\n if (disableInputEvents && evt.type === 'input') {\n self.$selection.off('input.search input.searchcheck');\n return;\n }\n\n var key = evt.which; // We can freely ignore events from modifier keys\n\n if (key == KEYS.SHIFT || key == KEYS.CTRL || key == KEYS.ALT) {\n return;\n } // Tabbing will be handled during the `keydown` phase\n\n\n if (key == KEYS.TAB) {\n return;\n }\n\n self.handleSearch(evt);\n });\n };\n /**\n * This method will transfer the tabindex attribute from the rendered\n * selection to the search box. This allows for the search box to be used as\n * the primary focus instead of the selection container.\n *\n * @private\n */\n\n\n Search.prototype._transferTabIndex = function (decorated) {\n this.$search.attr('tabindex', this.$selection.attr('tabindex'));\n this.$selection.attr('tabindex', '-1');\n };\n\n Search.prototype.createPlaceholder = function (decorated, placeholder) {\n this.$search.attr('placeholder', placeholder.text);\n };\n\n Search.prototype.update = function (decorated, data) {\n var searchHadFocus = this.$search[0] == document.activeElement;\n this.$search.attr('placeholder', '');\n decorated.call(this, data);\n this.$selection.find('.select2-selection__rendered').append(this.$searchContainer);\n this.resizeSearch();\n\n if (searchHadFocus) {\n this.$search.trigger('focus');\n }\n };\n\n Search.prototype.handleSearch = function () {\n this.resizeSearch();\n\n if (!this._keyUpPrevented) {\n var input = this.$search.val();\n this.trigger('query', {\n term: input\n });\n }\n\n this._keyUpPrevented = false;\n };\n\n Search.prototype.searchRemoveChoice = function (decorated, item) {\n this.trigger('unselect', {\n data: item\n });\n this.$search.val(item.text);\n this.handleSearch();\n };\n\n Search.prototype.resizeSearch = function () {\n this.$search.css('width', '25px');\n var width = '';\n\n if (this.$search.attr('placeholder') !== '') {\n width = this.$selection.find('.select2-selection__rendered').width();\n } else {\n var minimumWidth = this.$search.val().length + 1;\n width = minimumWidth * 0.75 + 'em';\n }\n\n this.$search.css('width', width);\n };\n\n return Search;\n });\n S2.define('select2/selection/eventRelay', ['jquery'], function ($) {\n function EventRelay() {}\n\n EventRelay.prototype.bind = function (decorated, container, $container) {\n var self = this;\n var relayEvents = ['open', 'opening', 'close', 'closing', 'select', 'selecting', 'unselect', 'unselecting', 'clear', 'clearing'];\n var preventableEvents = ['opening', 'closing', 'selecting', 'unselecting', 'clearing'];\n decorated.call(this, container, $container);\n container.on('*', function (name, params) {\n // Ignore events that should not be relayed\n if ($.inArray(name, relayEvents) === -1) {\n return;\n } // The parameters should always be an object\n\n\n params = params || {}; // Generate the jQuery event for the Select2 event\n\n var evt = $.Event('select2:' + name, {\n params: params\n });\n self.$element.trigger(evt); // Only handle preventable events if it was one\n\n if ($.inArray(name, preventableEvents) === -1) {\n return;\n }\n\n params.prevented = evt.isDefaultPrevented();\n });\n };\n\n return EventRelay;\n });\n S2.define('select2/translation', ['jquery', 'require'], function ($, require) {\n function Translation(dict) {\n this.dict = dict || {};\n }\n\n Translation.prototype.all = function () {\n return this.dict;\n };\n\n Translation.prototype.get = function (key) {\n return this.dict[key];\n };\n\n Translation.prototype.extend = function (translation) {\n this.dict = $.extend({}, translation.all(), this.dict);\n }; // Static functions\n\n\n Translation._cache = {};\n\n Translation.loadPath = function (path) {\n if (!(path in Translation._cache)) {\n var translations = require(path);\n\n Translation._cache[path] = translations;\n }\n\n return new Translation(Translation._cache[path]);\n };\n\n return Translation;\n });\n S2.define('select2/diacritics', [], function () {\n var diacritics = {\n \"\\u24B6\": 'A',\n \"\\uFF21\": 'A',\n \"\\xC0\": 'A',\n \"\\xC1\": 'A',\n \"\\xC2\": 'A',\n \"\\u1EA6\": 'A',\n \"\\u1EA4\": 'A',\n \"\\u1EAA\": 'A',\n \"\\u1EA8\": 'A',\n \"\\xC3\": 'A',\n \"\\u0100\": 'A',\n \"\\u0102\": 'A',\n \"\\u1EB0\": 'A',\n \"\\u1EAE\": 'A',\n \"\\u1EB4\": 'A',\n \"\\u1EB2\": 'A',\n \"\\u0226\": 'A',\n \"\\u01E0\": 'A',\n \"\\xC4\": 'A',\n \"\\u01DE\": 'A',\n \"\\u1EA2\": 'A',\n \"\\xC5\": 'A',\n \"\\u01FA\": 'A',\n \"\\u01CD\": 'A',\n \"\\u0200\": 'A',\n \"\\u0202\": 'A',\n \"\\u1EA0\": 'A',\n \"\\u1EAC\": 'A',\n \"\\u1EB6\": 'A',\n \"\\u1E00\": 'A',\n \"\\u0104\": 'A',\n \"\\u023A\": 'A',\n \"\\u2C6F\": 'A',\n \"\\uA732\": 'AA',\n \"\\xC6\": 'AE',\n \"\\u01FC\": 'AE',\n \"\\u01E2\": 'AE',\n \"\\uA734\": 'AO',\n \"\\uA736\": 'AU',\n \"\\uA738\": 'AV',\n \"\\uA73A\": 'AV',\n \"\\uA73C\": 'AY',\n \"\\u24B7\": 'B',\n \"\\uFF22\": 'B',\n \"\\u1E02\": 'B',\n \"\\u1E04\": 'B',\n \"\\u1E06\": 'B',\n \"\\u0243\": 'B',\n \"\\u0182\": 'B',\n \"\\u0181\": 'B',\n \"\\u24B8\": 'C',\n \"\\uFF23\": 'C',\n \"\\u0106\": 'C',\n \"\\u0108\": 'C',\n \"\\u010A\": 'C',\n \"\\u010C\": 'C',\n \"\\xC7\": 'C',\n \"\\u1E08\": 'C',\n \"\\u0187\": 'C',\n \"\\u023B\": 'C',\n \"\\uA73E\": 'C',\n \"\\u24B9\": 'D',\n \"\\uFF24\": 'D',\n \"\\u1E0A\": 'D',\n \"\\u010E\": 'D',\n \"\\u1E0C\": 'D',\n \"\\u1E10\": 'D',\n \"\\u1E12\": 'D',\n \"\\u1E0E\": 'D',\n \"\\u0110\": 'D',\n \"\\u018B\": 'D',\n \"\\u018A\": 'D',\n \"\\u0189\": 'D',\n \"\\uA779\": 'D',\n \"\\u01F1\": 'DZ',\n \"\\u01C4\": 'DZ',\n \"\\u01F2\": 'Dz',\n \"\\u01C5\": 'Dz',\n \"\\u24BA\": 'E',\n \"\\uFF25\": 'E',\n \"\\xC8\": 'E',\n \"\\xC9\": 'E',\n \"\\xCA\": 'E',\n \"\\u1EC0\": 'E',\n \"\\u1EBE\": 'E',\n \"\\u1EC4\": 'E',\n \"\\u1EC2\": 'E',\n \"\\u1EBC\": 'E',\n \"\\u0112\": 'E',\n \"\\u1E14\": 'E',\n \"\\u1E16\": 'E',\n \"\\u0114\": 'E',\n \"\\u0116\": 'E',\n \"\\xCB\": 'E',\n \"\\u1EBA\": 'E',\n \"\\u011A\": 'E',\n \"\\u0204\": 'E',\n \"\\u0206\": 'E',\n \"\\u1EB8\": 'E',\n \"\\u1EC6\": 'E',\n \"\\u0228\": 'E',\n \"\\u1E1C\": 'E',\n \"\\u0118\": 'E',\n \"\\u1E18\": 'E',\n \"\\u1E1A\": 'E',\n \"\\u0190\": 'E',\n \"\\u018E\": 'E',\n \"\\u24BB\": 'F',\n \"\\uFF26\": 'F',\n \"\\u1E1E\": 'F',\n \"\\u0191\": 'F',\n \"\\uA77B\": 'F',\n \"\\u24BC\": 'G',\n \"\\uFF27\": 'G',\n \"\\u01F4\": 'G',\n \"\\u011C\": 'G',\n \"\\u1E20\": 'G',\n \"\\u011E\": 'G',\n \"\\u0120\": 'G',\n \"\\u01E6\": 'G',\n \"\\u0122\": 'G',\n \"\\u01E4\": 'G',\n \"\\u0193\": 'G',\n \"\\uA7A0\": 'G',\n \"\\uA77D\": 'G',\n \"\\uA77E\": 'G',\n \"\\u24BD\": 'H',\n \"\\uFF28\": 'H',\n \"\\u0124\": 'H',\n \"\\u1E22\": 'H',\n \"\\u1E26\": 'H',\n \"\\u021E\": 'H',\n \"\\u1E24\": 'H',\n \"\\u1E28\": 'H',\n \"\\u1E2A\": 'H',\n \"\\u0126\": 'H',\n \"\\u2C67\": 'H',\n \"\\u2C75\": 'H',\n \"\\uA78D\": 'H',\n \"\\u24BE\": 'I',\n \"\\uFF29\": 'I',\n \"\\xCC\": 'I',\n \"\\xCD\": 'I',\n \"\\xCE\": 'I',\n \"\\u0128\": 'I',\n \"\\u012A\": 'I',\n \"\\u012C\": 'I',\n \"\\u0130\": 'I',\n \"\\xCF\": 'I',\n \"\\u1E2E\": 'I',\n \"\\u1EC8\": 'I',\n \"\\u01CF\": 'I',\n \"\\u0208\": 'I',\n \"\\u020A\": 'I',\n \"\\u1ECA\": 'I',\n \"\\u012E\": 'I',\n \"\\u1E2C\": 'I',\n \"\\u0197\": 'I',\n \"\\u24BF\": 'J',\n \"\\uFF2A\": 'J',\n \"\\u0134\": 'J',\n \"\\u0248\": 'J',\n \"\\u24C0\": 'K',\n \"\\uFF2B\": 'K',\n \"\\u1E30\": 'K',\n \"\\u01E8\": 'K',\n \"\\u1E32\": 'K',\n \"\\u0136\": 'K',\n \"\\u1E34\": 'K',\n \"\\u0198\": 'K',\n \"\\u2C69\": 'K',\n \"\\uA740\": 'K',\n \"\\uA742\": 'K',\n \"\\uA744\": 'K',\n \"\\uA7A2\": 'K',\n \"\\u24C1\": 'L',\n \"\\uFF2C\": 'L',\n \"\\u013F\": 'L',\n \"\\u0139\": 'L',\n \"\\u013D\": 'L',\n \"\\u1E36\": 'L',\n \"\\u1E38\": 'L',\n \"\\u013B\": 'L',\n \"\\u1E3C\": 'L',\n \"\\u1E3A\": 'L',\n \"\\u0141\": 'L',\n \"\\u023D\": 'L',\n \"\\u2C62\": 'L',\n \"\\u2C60\": 'L',\n \"\\uA748\": 'L',\n \"\\uA746\": 'L',\n \"\\uA780\": 'L',\n \"\\u01C7\": 'LJ',\n \"\\u01C8\": 'Lj',\n \"\\u24C2\": 'M',\n \"\\uFF2D\": 'M',\n \"\\u1E3E\": 'M',\n \"\\u1E40\": 'M',\n \"\\u1E42\": 'M',\n \"\\u2C6E\": 'M',\n \"\\u019C\": 'M',\n \"\\u24C3\": 'N',\n \"\\uFF2E\": 'N',\n \"\\u01F8\": 'N',\n \"\\u0143\": 'N',\n \"\\xD1\": 'N',\n \"\\u1E44\": 'N',\n \"\\u0147\": 'N',\n \"\\u1E46\": 'N',\n \"\\u0145\": 'N',\n \"\\u1E4A\": 'N',\n \"\\u1E48\": 'N',\n \"\\u0220\": 'N',\n \"\\u019D\": 'N',\n \"\\uA790\": 'N',\n \"\\uA7A4\": 'N',\n \"\\u01CA\": 'NJ',\n \"\\u01CB\": 'Nj',\n \"\\u24C4\": 'O',\n \"\\uFF2F\": 'O',\n \"\\xD2\": 'O',\n \"\\xD3\": 'O',\n \"\\xD4\": 'O',\n \"\\u1ED2\": 'O',\n \"\\u1ED0\": 'O',\n \"\\u1ED6\": 'O',\n \"\\u1ED4\": 'O',\n \"\\xD5\": 'O',\n \"\\u1E4C\": 'O',\n \"\\u022C\": 'O',\n \"\\u1E4E\": 'O',\n \"\\u014C\": 'O',\n \"\\u1E50\": 'O',\n \"\\u1E52\": 'O',\n \"\\u014E\": 'O',\n \"\\u022E\": 'O',\n \"\\u0230\": 'O',\n \"\\xD6\": 'O',\n \"\\u022A\": 'O',\n \"\\u1ECE\": 'O',\n \"\\u0150\": 'O',\n \"\\u01D1\": 'O',\n \"\\u020C\": 'O',\n \"\\u020E\": 'O',\n \"\\u01A0\": 'O',\n \"\\u1EDC\": 'O',\n \"\\u1EDA\": 'O',\n \"\\u1EE0\": 'O',\n \"\\u1EDE\": 'O',\n \"\\u1EE2\": 'O',\n \"\\u1ECC\": 'O',\n \"\\u1ED8\": 'O',\n \"\\u01EA\": 'O',\n \"\\u01EC\": 'O',\n \"\\xD8\": 'O',\n \"\\u01FE\": 'O',\n \"\\u0186\": 'O',\n \"\\u019F\": 'O',\n \"\\uA74A\": 'O',\n \"\\uA74C\": 'O',\n \"\\u0152\": 'OE',\n \"\\u01A2\": 'OI',\n \"\\uA74E\": 'OO',\n \"\\u0222\": 'OU',\n \"\\u24C5\": 'P',\n \"\\uFF30\": 'P',\n \"\\u1E54\": 'P',\n \"\\u1E56\": 'P',\n \"\\u01A4\": 'P',\n \"\\u2C63\": 'P',\n \"\\uA750\": 'P',\n \"\\uA752\": 'P',\n \"\\uA754\": 'P',\n \"\\u24C6\": 'Q',\n \"\\uFF31\": 'Q',\n \"\\uA756\": 'Q',\n \"\\uA758\": 'Q',\n \"\\u024A\": 'Q',\n \"\\u24C7\": 'R',\n \"\\uFF32\": 'R',\n \"\\u0154\": 'R',\n \"\\u1E58\": 'R',\n \"\\u0158\": 'R',\n \"\\u0210\": 'R',\n \"\\u0212\": 'R',\n \"\\u1E5A\": 'R',\n \"\\u1E5C\": 'R',\n \"\\u0156\": 'R',\n \"\\u1E5E\": 'R',\n \"\\u024C\": 'R',\n \"\\u2C64\": 'R',\n \"\\uA75A\": 'R',\n \"\\uA7A6\": 'R',\n \"\\uA782\": 'R',\n \"\\u24C8\": 'S',\n \"\\uFF33\": 'S',\n \"\\u1E9E\": 'S',\n \"\\u015A\": 'S',\n \"\\u1E64\": 'S',\n \"\\u015C\": 'S',\n \"\\u1E60\": 'S',\n \"\\u0160\": 'S',\n \"\\u1E66\": 'S',\n \"\\u1E62\": 'S',\n \"\\u1E68\": 'S',\n \"\\u0218\": 'S',\n \"\\u015E\": 'S',\n \"\\u2C7E\": 'S',\n \"\\uA7A8\": 'S',\n \"\\uA784\": 'S',\n \"\\u24C9\": 'T',\n \"\\uFF34\": 'T',\n \"\\u1E6A\": 'T',\n \"\\u0164\": 'T',\n \"\\u1E6C\": 'T',\n \"\\u021A\": 'T',\n \"\\u0162\": 'T',\n \"\\u1E70\": 'T',\n \"\\u1E6E\": 'T',\n \"\\u0166\": 'T',\n \"\\u01AC\": 'T',\n \"\\u01AE\": 'T',\n \"\\u023E\": 'T',\n \"\\uA786\": 'T',\n \"\\uA728\": 'TZ',\n \"\\u24CA\": 'U',\n \"\\uFF35\": 'U',\n \"\\xD9\": 'U',\n \"\\xDA\": 'U',\n \"\\xDB\": 'U',\n \"\\u0168\": 'U',\n \"\\u1E78\": 'U',\n \"\\u016A\": 'U',\n \"\\u1E7A\": 'U',\n \"\\u016C\": 'U',\n \"\\xDC\": 'U',\n \"\\u01DB\": 'U',\n \"\\u01D7\": 'U',\n \"\\u01D5\": 'U',\n \"\\u01D9\": 'U',\n \"\\u1EE6\": 'U',\n \"\\u016E\": 'U',\n \"\\u0170\": 'U',\n \"\\u01D3\": 'U',\n \"\\u0214\": 'U',\n \"\\u0216\": 'U',\n \"\\u01AF\": 'U',\n \"\\u1EEA\": 'U',\n \"\\u1EE8\": 'U',\n \"\\u1EEE\": 'U',\n \"\\u1EEC\": 'U',\n \"\\u1EF0\": 'U',\n \"\\u1EE4\": 'U',\n \"\\u1E72\": 'U',\n \"\\u0172\": 'U',\n \"\\u1E76\": 'U',\n \"\\u1E74\": 'U',\n \"\\u0244\": 'U',\n \"\\u24CB\": 'V',\n \"\\uFF36\": 'V',\n \"\\u1E7C\": 'V',\n \"\\u1E7E\": 'V',\n \"\\u01B2\": 'V',\n \"\\uA75E\": 'V',\n \"\\u0245\": 'V',\n \"\\uA760\": 'VY',\n \"\\u24CC\": 'W',\n \"\\uFF37\": 'W',\n \"\\u1E80\": 'W',\n \"\\u1E82\": 'W',\n \"\\u0174\": 'W',\n \"\\u1E86\": 'W',\n \"\\u1E84\": 'W',\n \"\\u1E88\": 'W',\n \"\\u2C72\": 'W',\n \"\\u24CD\": 'X',\n \"\\uFF38\": 'X',\n \"\\u1E8A\": 'X',\n \"\\u1E8C\": 'X',\n \"\\u24CE\": 'Y',\n \"\\uFF39\": 'Y',\n \"\\u1EF2\": 'Y',\n \"\\xDD\": 'Y',\n \"\\u0176\": 'Y',\n \"\\u1EF8\": 'Y',\n \"\\u0232\": 'Y',\n \"\\u1E8E\": 'Y',\n \"\\u0178\": 'Y',\n \"\\u1EF6\": 'Y',\n \"\\u1EF4\": 'Y',\n \"\\u01B3\": 'Y',\n \"\\u024E\": 'Y',\n \"\\u1EFE\": 'Y',\n \"\\u24CF\": 'Z',\n \"\\uFF3A\": 'Z',\n \"\\u0179\": 'Z',\n \"\\u1E90\": 'Z',\n \"\\u017B\": 'Z',\n \"\\u017D\": 'Z',\n \"\\u1E92\": 'Z',\n \"\\u1E94\": 'Z',\n \"\\u01B5\": 'Z',\n \"\\u0224\": 'Z',\n \"\\u2C7F\": 'Z',\n \"\\u2C6B\": 'Z',\n \"\\uA762\": 'Z',\n \"\\u24D0\": 'a',\n \"\\uFF41\": 'a',\n \"\\u1E9A\": 'a',\n \"\\xE0\": 'a',\n \"\\xE1\": 'a',\n \"\\xE2\": 'a',\n \"\\u1EA7\": 'a',\n \"\\u1EA5\": 'a',\n \"\\u1EAB\": 'a',\n \"\\u1EA9\": 'a',\n \"\\xE3\": 'a',\n \"\\u0101\": 'a',\n \"\\u0103\": 'a',\n \"\\u1EB1\": 'a',\n \"\\u1EAF\": 'a',\n \"\\u1EB5\": 'a',\n \"\\u1EB3\": 'a',\n \"\\u0227\": 'a',\n \"\\u01E1\": 'a',\n \"\\xE4\": 'a',\n \"\\u01DF\": 'a',\n \"\\u1EA3\": 'a',\n \"\\xE5\": 'a',\n \"\\u01FB\": 'a',\n \"\\u01CE\": 'a',\n \"\\u0201\": 'a',\n \"\\u0203\": 'a',\n \"\\u1EA1\": 'a',\n \"\\u1EAD\": 'a',\n \"\\u1EB7\": 'a',\n \"\\u1E01\": 'a',\n \"\\u0105\": 'a',\n \"\\u2C65\": 'a',\n \"\\u0250\": 'a',\n \"\\uA733\": 'aa',\n \"\\xE6\": 'ae',\n \"\\u01FD\": 'ae',\n \"\\u01E3\": 'ae',\n \"\\uA735\": 'ao',\n \"\\uA737\": 'au',\n \"\\uA739\": 'av',\n \"\\uA73B\": 'av',\n \"\\uA73D\": 'ay',\n \"\\u24D1\": 'b',\n \"\\uFF42\": 'b',\n \"\\u1E03\": 'b',\n \"\\u1E05\": 'b',\n \"\\u1E07\": 'b',\n \"\\u0180\": 'b',\n \"\\u0183\": 'b',\n \"\\u0253\": 'b',\n \"\\u24D2\": 'c',\n \"\\uFF43\": 'c',\n \"\\u0107\": 'c',\n \"\\u0109\": 'c',\n \"\\u010B\": 'c',\n \"\\u010D\": 'c',\n \"\\xE7\": 'c',\n \"\\u1E09\": 'c',\n \"\\u0188\": 'c',\n \"\\u023C\": 'c',\n \"\\uA73F\": 'c',\n \"\\u2184\": 'c',\n \"\\u24D3\": 'd',\n \"\\uFF44\": 'd',\n \"\\u1E0B\": 'd',\n \"\\u010F\": 'd',\n \"\\u1E0D\": 'd',\n \"\\u1E11\": 'd',\n \"\\u1E13\": 'd',\n \"\\u1E0F\": 'd',\n \"\\u0111\": 'd',\n \"\\u018C\": 'd',\n \"\\u0256\": 'd',\n \"\\u0257\": 'd',\n \"\\uA77A\": 'd',\n \"\\u01F3\": 'dz',\n \"\\u01C6\": 'dz',\n \"\\u24D4\": 'e',\n \"\\uFF45\": 'e',\n \"\\xE8\": 'e',\n \"\\xE9\": 'e',\n \"\\xEA\": 'e',\n \"\\u1EC1\": 'e',\n \"\\u1EBF\": 'e',\n \"\\u1EC5\": 'e',\n \"\\u1EC3\": 'e',\n \"\\u1EBD\": 'e',\n \"\\u0113\": 'e',\n \"\\u1E15\": 'e',\n \"\\u1E17\": 'e',\n \"\\u0115\": 'e',\n \"\\u0117\": 'e',\n \"\\xEB\": 'e',\n \"\\u1EBB\": 'e',\n \"\\u011B\": 'e',\n \"\\u0205\": 'e',\n \"\\u0207\": 'e',\n \"\\u1EB9\": 'e',\n \"\\u1EC7\": 'e',\n \"\\u0229\": 'e',\n \"\\u1E1D\": 'e',\n \"\\u0119\": 'e',\n \"\\u1E19\": 'e',\n \"\\u1E1B\": 'e',\n \"\\u0247\": 'e',\n \"\\u025B\": 'e',\n \"\\u01DD\": 'e',\n \"\\u24D5\": 'f',\n \"\\uFF46\": 'f',\n \"\\u1E1F\": 'f',\n \"\\u0192\": 'f',\n \"\\uA77C\": 'f',\n \"\\u24D6\": 'g',\n \"\\uFF47\": 'g',\n \"\\u01F5\": 'g',\n \"\\u011D\": 'g',\n \"\\u1E21\": 'g',\n \"\\u011F\": 'g',\n \"\\u0121\": 'g',\n \"\\u01E7\": 'g',\n \"\\u0123\": 'g',\n \"\\u01E5\": 'g',\n \"\\u0260\": 'g',\n \"\\uA7A1\": 'g',\n \"\\u1D79\": 'g',\n \"\\uA77F\": 'g',\n \"\\u24D7\": 'h',\n \"\\uFF48\": 'h',\n \"\\u0125\": 'h',\n \"\\u1E23\": 'h',\n \"\\u1E27\": 'h',\n \"\\u021F\": 'h',\n \"\\u1E25\": 'h',\n \"\\u1E29\": 'h',\n \"\\u1E2B\": 'h',\n \"\\u1E96\": 'h',\n \"\\u0127\": 'h',\n \"\\u2C68\": 'h',\n \"\\u2C76\": 'h',\n \"\\u0265\": 'h',\n \"\\u0195\": 'hv',\n \"\\u24D8\": 'i',\n \"\\uFF49\": 'i',\n \"\\xEC\": 'i',\n \"\\xED\": 'i',\n \"\\xEE\": 'i',\n \"\\u0129\": 'i',\n \"\\u012B\": 'i',\n \"\\u012D\": 'i',\n \"\\xEF\": 'i',\n \"\\u1E2F\": 'i',\n \"\\u1EC9\": 'i',\n \"\\u01D0\": 'i',\n \"\\u0209\": 'i',\n \"\\u020B\": 'i',\n \"\\u1ECB\": 'i',\n \"\\u012F\": 'i',\n \"\\u1E2D\": 'i',\n \"\\u0268\": 'i',\n \"\\u0131\": 'i',\n \"\\u24D9\": 'j',\n \"\\uFF4A\": 'j',\n \"\\u0135\": 'j',\n \"\\u01F0\": 'j',\n \"\\u0249\": 'j',\n \"\\u24DA\": 'k',\n \"\\uFF4B\": 'k',\n \"\\u1E31\": 'k',\n \"\\u01E9\": 'k',\n \"\\u1E33\": 'k',\n \"\\u0137\": 'k',\n \"\\u1E35\": 'k',\n \"\\u0199\": 'k',\n \"\\u2C6A\": 'k',\n \"\\uA741\": 'k',\n \"\\uA743\": 'k',\n \"\\uA745\": 'k',\n \"\\uA7A3\": 'k',\n \"\\u24DB\": 'l',\n \"\\uFF4C\": 'l',\n \"\\u0140\": 'l',\n \"\\u013A\": 'l',\n \"\\u013E\": 'l',\n \"\\u1E37\": 'l',\n \"\\u1E39\": 'l',\n \"\\u013C\": 'l',\n \"\\u1E3D\": 'l',\n \"\\u1E3B\": 'l',\n \"\\u017F\": 'l',\n \"\\u0142\": 'l',\n \"\\u019A\": 'l',\n \"\\u026B\": 'l',\n \"\\u2C61\": 'l',\n \"\\uA749\": 'l',\n \"\\uA781\": 'l',\n \"\\uA747\": 'l',\n \"\\u01C9\": 'lj',\n \"\\u24DC\": 'm',\n \"\\uFF4D\": 'm',\n \"\\u1E3F\": 'm',\n \"\\u1E41\": 'm',\n \"\\u1E43\": 'm',\n \"\\u0271\": 'm',\n \"\\u026F\": 'm',\n \"\\u24DD\": 'n',\n \"\\uFF4E\": 'n',\n \"\\u01F9\": 'n',\n \"\\u0144\": 'n',\n \"\\xF1\": 'n',\n \"\\u1E45\": 'n',\n \"\\u0148\": 'n',\n \"\\u1E47\": 'n',\n \"\\u0146\": 'n',\n \"\\u1E4B\": 'n',\n \"\\u1E49\": 'n',\n \"\\u019E\": 'n',\n \"\\u0272\": 'n',\n \"\\u0149\": 'n',\n \"\\uA791\": 'n',\n \"\\uA7A5\": 'n',\n \"\\u01CC\": 'nj',\n \"\\u24DE\": 'o',\n \"\\uFF4F\": 'o',\n \"\\xF2\": 'o',\n \"\\xF3\": 'o',\n \"\\xF4\": 'o',\n \"\\u1ED3\": 'o',\n \"\\u1ED1\": 'o',\n \"\\u1ED7\": 'o',\n \"\\u1ED5\": 'o',\n \"\\xF5\": 'o',\n \"\\u1E4D\": 'o',\n \"\\u022D\": 'o',\n \"\\u1E4F\": 'o',\n \"\\u014D\": 'o',\n \"\\u1E51\": 'o',\n \"\\u1E53\": 'o',\n \"\\u014F\": 'o',\n \"\\u022F\": 'o',\n \"\\u0231\": 'o',\n \"\\xF6\": 'o',\n \"\\u022B\": 'o',\n \"\\u1ECF\": 'o',\n \"\\u0151\": 'o',\n \"\\u01D2\": 'o',\n \"\\u020D\": 'o',\n \"\\u020F\": 'o',\n \"\\u01A1\": 'o',\n \"\\u1EDD\": 'o',\n \"\\u1EDB\": 'o',\n \"\\u1EE1\": 'o',\n \"\\u1EDF\": 'o',\n \"\\u1EE3\": 'o',\n \"\\u1ECD\": 'o',\n \"\\u1ED9\": 'o',\n \"\\u01EB\": 'o',\n \"\\u01ED\": 'o',\n \"\\xF8\": 'o',\n \"\\u01FF\": 'o',\n \"\\u0254\": 'o',\n \"\\uA74B\": 'o',\n \"\\uA74D\": 'o',\n \"\\u0275\": 'o',\n \"\\u0153\": 'oe',\n \"\\u01A3\": 'oi',\n \"\\u0223\": 'ou',\n \"\\uA74F\": 'oo',\n \"\\u24DF\": 'p',\n \"\\uFF50\": 'p',\n \"\\u1E55\": 'p',\n \"\\u1E57\": 'p',\n \"\\u01A5\": 'p',\n \"\\u1D7D\": 'p',\n \"\\uA751\": 'p',\n \"\\uA753\": 'p',\n \"\\uA755\": 'p',\n \"\\u24E0\": 'q',\n \"\\uFF51\": 'q',\n \"\\u024B\": 'q',\n \"\\uA757\": 'q',\n \"\\uA759\": 'q',\n \"\\u24E1\": 'r',\n \"\\uFF52\": 'r',\n \"\\u0155\": 'r',\n \"\\u1E59\": 'r',\n \"\\u0159\": 'r',\n \"\\u0211\": 'r',\n \"\\u0213\": 'r',\n \"\\u1E5B\": 'r',\n \"\\u1E5D\": 'r',\n \"\\u0157\": 'r',\n \"\\u1E5F\": 'r',\n \"\\u024D\": 'r',\n \"\\u027D\": 'r',\n \"\\uA75B\": 'r',\n \"\\uA7A7\": 'r',\n \"\\uA783\": 'r',\n \"\\u24E2\": 's',\n \"\\uFF53\": 's',\n \"\\xDF\": 's',\n \"\\u015B\": 's',\n \"\\u1E65\": 's',\n \"\\u015D\": 's',\n \"\\u1E61\": 's',\n \"\\u0161\": 's',\n \"\\u1E67\": 's',\n \"\\u1E63\": 's',\n \"\\u1E69\": 's',\n \"\\u0219\": 's',\n \"\\u015F\": 's',\n \"\\u023F\": 's',\n \"\\uA7A9\": 's',\n \"\\uA785\": 's',\n \"\\u1E9B\": 's',\n \"\\u24E3\": 't',\n \"\\uFF54\": 't',\n \"\\u1E6B\": 't',\n \"\\u1E97\": 't',\n \"\\u0165\": 't',\n \"\\u1E6D\": 't',\n \"\\u021B\": 't',\n \"\\u0163\": 't',\n \"\\u1E71\": 't',\n \"\\u1E6F\": 't',\n \"\\u0167\": 't',\n \"\\u01AD\": 't',\n \"\\u0288\": 't',\n \"\\u2C66\": 't',\n \"\\uA787\": 't',\n \"\\uA729\": 'tz',\n \"\\u24E4\": 'u',\n \"\\uFF55\": 'u',\n \"\\xF9\": 'u',\n \"\\xFA\": 'u',\n \"\\xFB\": 'u',\n \"\\u0169\": 'u',\n \"\\u1E79\": 'u',\n \"\\u016B\": 'u',\n \"\\u1E7B\": 'u',\n \"\\u016D\": 'u',\n \"\\xFC\": 'u',\n \"\\u01DC\": 'u',\n \"\\u01D8\": 'u',\n \"\\u01D6\": 'u',\n \"\\u01DA\": 'u',\n \"\\u1EE7\": 'u',\n \"\\u016F\": 'u',\n \"\\u0171\": 'u',\n \"\\u01D4\": 'u',\n \"\\u0215\": 'u',\n \"\\u0217\": 'u',\n \"\\u01B0\": 'u',\n \"\\u1EEB\": 'u',\n \"\\u1EE9\": 'u',\n \"\\u1EEF\": 'u',\n \"\\u1EED\": 'u',\n \"\\u1EF1\": 'u',\n \"\\u1EE5\": 'u',\n \"\\u1E73\": 'u',\n \"\\u0173\": 'u',\n \"\\u1E77\": 'u',\n \"\\u1E75\": 'u',\n \"\\u0289\": 'u',\n \"\\u24E5\": 'v',\n \"\\uFF56\": 'v',\n \"\\u1E7D\": 'v',\n \"\\u1E7F\": 'v',\n \"\\u028B\": 'v',\n \"\\uA75F\": 'v',\n \"\\u028C\": 'v',\n \"\\uA761\": 'vy',\n \"\\u24E6\": 'w',\n \"\\uFF57\": 'w',\n \"\\u1E81\": 'w',\n \"\\u1E83\": 'w',\n \"\\u0175\": 'w',\n \"\\u1E87\": 'w',\n \"\\u1E85\": 'w',\n \"\\u1E98\": 'w',\n \"\\u1E89\": 'w',\n \"\\u2C73\": 'w',\n \"\\u24E7\": 'x',\n \"\\uFF58\": 'x',\n \"\\u1E8B\": 'x',\n \"\\u1E8D\": 'x',\n \"\\u24E8\": 'y',\n \"\\uFF59\": 'y',\n \"\\u1EF3\": 'y',\n \"\\xFD\": 'y',\n \"\\u0177\": 'y',\n \"\\u1EF9\": 'y',\n \"\\u0233\": 'y',\n \"\\u1E8F\": 'y',\n \"\\xFF\": 'y',\n \"\\u1EF7\": 'y',\n \"\\u1E99\": 'y',\n \"\\u1EF5\": 'y',\n \"\\u01B4\": 'y',\n \"\\u024F\": 'y',\n \"\\u1EFF\": 'y',\n \"\\u24E9\": 'z',\n \"\\uFF5A\": 'z',\n \"\\u017A\": 'z',\n \"\\u1E91\": 'z',\n \"\\u017C\": 'z',\n \"\\u017E\": 'z',\n \"\\u1E93\": 'z',\n \"\\u1E95\": 'z',\n \"\\u01B6\": 'z',\n \"\\u0225\": 'z',\n \"\\u0240\": 'z',\n \"\\u2C6C\": 'z',\n \"\\uA763\": 'z',\n \"\\u0386\": \"\\u0391\",\n \"\\u0388\": \"\\u0395\",\n \"\\u0389\": \"\\u0397\",\n \"\\u038A\": \"\\u0399\",\n \"\\u03AA\": \"\\u0399\",\n \"\\u038C\": \"\\u039F\",\n \"\\u038E\": \"\\u03A5\",\n \"\\u03AB\": \"\\u03A5\",\n \"\\u038F\": \"\\u03A9\",\n \"\\u03AC\": \"\\u03B1\",\n \"\\u03AD\": \"\\u03B5\",\n \"\\u03AE\": \"\\u03B7\",\n \"\\u03AF\": \"\\u03B9\",\n \"\\u03CA\": \"\\u03B9\",\n \"\\u0390\": \"\\u03B9\",\n \"\\u03CC\": \"\\u03BF\",\n \"\\u03CD\": \"\\u03C5\",\n \"\\u03CB\": \"\\u03C5\",\n \"\\u03B0\": \"\\u03C5\",\n \"\\u03CE\": \"\\u03C9\",\n \"\\u03C2\": \"\\u03C3\",\n \"\\u2019\": '\\''\n };\n return diacritics;\n });\n S2.define('select2/data/base', ['../utils'], function (Utils) {\n function BaseAdapter($element, options) {\n BaseAdapter.__super__.constructor.call(this);\n }\n\n Utils.Extend(BaseAdapter, Utils.Observable);\n\n BaseAdapter.prototype.current = function (callback) {\n throw new Error('The `current` method must be defined in child classes.');\n };\n\n BaseAdapter.prototype.query = function (params, callback) {\n throw new Error('The `query` method must be defined in child classes.');\n };\n\n BaseAdapter.prototype.bind = function (container, $container) {// Can be implemented in subclasses\n };\n\n BaseAdapter.prototype.destroy = function () {// Can be implemented in subclasses\n };\n\n BaseAdapter.prototype.generateResultId = function (container, data) {\n var id = container.id + '-result-';\n id += Utils.generateChars(4);\n\n if (data.id != null) {\n id += '-' + data.id.toString();\n } else {\n id += '-' + Utils.generateChars(4);\n }\n\n return id;\n };\n\n return BaseAdapter;\n });\n S2.define('select2/data/select', ['./base', '../utils', 'jquery'], function (BaseAdapter, Utils, $) {\n function SelectAdapter($element, options) {\n this.$element = $element;\n this.options = options;\n\n SelectAdapter.__super__.constructor.call(this);\n }\n\n Utils.Extend(SelectAdapter, BaseAdapter);\n\n SelectAdapter.prototype.current = function (callback) {\n var data = [];\n var self = this;\n this.$element.find(':selected').each(function () {\n var $option = $(this);\n var option = self.item($option);\n data.push(option);\n });\n callback(data);\n };\n\n SelectAdapter.prototype.select = function (data) {\n var self = this;\n data.selected = true; // If data.element is a DOM node, use it instead\n\n if ($(data.element).is('option')) {\n data.element.selected = true;\n this.$element.trigger('input').trigger('change');\n return;\n }\n\n if (this.$element.prop('multiple')) {\n this.current(function (currentData) {\n var val = [];\n data = [data];\n data.push.apply(data, currentData);\n\n for (var d = 0; d < data.length; d++) {\n var id = data[d].id;\n\n if ($.inArray(id, val) === -1) {\n val.push(id);\n }\n }\n\n self.$element.val(val);\n self.$element.trigger('input').trigger('change');\n });\n } else {\n var val = data.id;\n this.$element.val(val);\n this.$element.trigger('input').trigger('change');\n }\n };\n\n SelectAdapter.prototype.unselect = function (data) {\n var self = this;\n\n if (!this.$element.prop('multiple')) {\n return;\n }\n\n data.selected = false;\n\n if ($(data.element).is('option')) {\n data.element.selected = false;\n this.$element.trigger('input').trigger('change');\n return;\n }\n\n this.current(function (currentData) {\n var val = [];\n\n for (var d = 0; d < currentData.length; d++) {\n var id = currentData[d].id;\n\n if (id !== data.id && $.inArray(id, val) === -1) {\n val.push(id);\n }\n }\n\n self.$element.val(val);\n self.$element.trigger('input').trigger('change');\n });\n };\n\n SelectAdapter.prototype.bind = function (container, $container) {\n var self = this;\n this.container = container;\n container.on('select', function (params) {\n self.select(params.data);\n });\n container.on('unselect', function (params) {\n self.unselect(params.data);\n });\n };\n\n SelectAdapter.prototype.destroy = function () {\n // Remove anything added to child elements\n this.$element.find('*').each(function () {\n // Remove any custom data set by Select2\n Utils.RemoveData(this);\n });\n };\n\n SelectAdapter.prototype.query = function (params, callback) {\n var data = [];\n var self = this;\n var $options = this.$element.children();\n $options.each(function () {\n var $option = $(this);\n\n if (!$option.is('option') && !$option.is('optgroup')) {\n return;\n }\n\n var option = self.item($option);\n var matches = self.matches(params, option);\n\n if (matches !== null) {\n data.push(matches);\n }\n });\n callback({\n results: data\n });\n };\n\n SelectAdapter.prototype.addOptions = function ($options) {\n Utils.appendMany(this.$element, $options);\n };\n\n SelectAdapter.prototype.option = function (data) {\n var option;\n\n if (data.children) {\n option = document.createElement('optgroup');\n option.label = data.text;\n } else {\n option = document.createElement('option');\n\n if (option.textContent !== undefined) {\n option.textContent = data.text;\n } else {\n option.innerText = data.text;\n }\n }\n\n if (data.id !== undefined) {\n option.value = data.id;\n }\n\n if (data.disabled) {\n option.disabled = true;\n }\n\n if (data.selected) {\n option.selected = true;\n }\n\n if (data.title) {\n option.title = data.title;\n }\n\n var $option = $(option);\n\n var normalizedData = this._normalizeItem(data);\n\n normalizedData.element = option; // Override the option's data with the combined data\n\n Utils.StoreData(option, 'data', normalizedData);\n return $option;\n };\n\n SelectAdapter.prototype.item = function ($option) {\n var data = {};\n data = Utils.GetData($option[0], 'data');\n\n if (data != null) {\n return data;\n }\n\n if ($option.is('option')) {\n data = {\n id: $option.val(),\n text: $option.text(),\n disabled: $option.prop('disabled'),\n selected: $option.prop('selected'),\n title: $option.prop('title')\n };\n } else if ($option.is('optgroup')) {\n data = {\n text: $option.prop('label'),\n children: [],\n title: $option.prop('title')\n };\n var $children = $option.children('option');\n var children = [];\n\n for (var c = 0; c < $children.length; c++) {\n var $child = $($children[c]);\n var child = this.item($child);\n children.push(child);\n }\n\n data.children = children;\n }\n\n data = this._normalizeItem(data);\n data.element = $option[0];\n Utils.StoreData($option[0], 'data', data);\n return data;\n };\n\n SelectAdapter.prototype._normalizeItem = function (item) {\n if (item !== Object(item)) {\n item = {\n id: item,\n text: item\n };\n }\n\n item = $.extend({}, {\n text: ''\n }, item);\n var defaults = {\n selected: false,\n disabled: false\n };\n\n if (item.id != null) {\n item.id = item.id.toString();\n }\n\n if (item.text != null) {\n item.text = item.text.toString();\n }\n\n if (item._resultId == null && item.id && this.container != null) {\n item._resultId = this.generateResultId(this.container, item);\n }\n\n return $.extend({}, defaults, item);\n };\n\n SelectAdapter.prototype.matches = function (params, data) {\n var matcher = this.options.get('matcher');\n return matcher(params, data);\n };\n\n return SelectAdapter;\n });\n S2.define('select2/data/array', ['./select', '../utils', 'jquery'], function (SelectAdapter, Utils, $) {\n function ArrayAdapter($element, options) {\n this._dataToConvert = options.get('data') || [];\n\n ArrayAdapter.__super__.constructor.call(this, $element, options);\n }\n\n Utils.Extend(ArrayAdapter, SelectAdapter);\n\n ArrayAdapter.prototype.bind = function (container, $container) {\n ArrayAdapter.__super__.bind.call(this, container, $container);\n\n this.addOptions(this.convertToOptions(this._dataToConvert));\n };\n\n ArrayAdapter.prototype.select = function (data) {\n var $option = this.$element.find('option').filter(function (i, elm) {\n return elm.value == data.id.toString();\n });\n\n if ($option.length === 0) {\n $option = this.option(data);\n this.addOptions($option);\n }\n\n ArrayAdapter.__super__.select.call(this, data);\n };\n\n ArrayAdapter.prototype.convertToOptions = function (data) {\n var self = this;\n var $existing = this.$element.find('option');\n var existingIds = $existing.map(function () {\n return self.item($(this)).id;\n }).get();\n var $options = []; // Filter out all items except for the one passed in the argument\n\n function onlyItem(item) {\n return function () {\n return $(this).val() == item.id;\n };\n }\n\n for (var d = 0; d < data.length; d++) {\n var item = this._normalizeItem(data[d]); // Skip items which were pre-loaded, only merge the data\n\n\n if ($.inArray(item.id, existingIds) >= 0) {\n var $existingOption = $existing.filter(onlyItem(item));\n var existingData = this.item($existingOption);\n var newData = $.extend(true, {}, item, existingData);\n var $newOption = this.option(newData);\n $existingOption.replaceWith($newOption);\n continue;\n }\n\n var $option = this.option(item);\n\n if (item.children) {\n var $children = this.convertToOptions(item.children);\n Utils.appendMany($option, $children);\n }\n\n $options.push($option);\n }\n\n return $options;\n };\n\n return ArrayAdapter;\n });\n S2.define('select2/data/ajax', ['./array', '../utils', 'jquery'], function (ArrayAdapter, Utils, $) {\n function AjaxAdapter($element, options) {\n this.ajaxOptions = this._applyDefaults(options.get('ajax'));\n\n if (this.ajaxOptions.processResults != null) {\n this.processResults = this.ajaxOptions.processResults;\n }\n\n AjaxAdapter.__super__.constructor.call(this, $element, options);\n }\n\n Utils.Extend(AjaxAdapter, ArrayAdapter);\n\n AjaxAdapter.prototype._applyDefaults = function (options) {\n var defaults = {\n data: function data(params) {\n return $.extend({}, params, {\n q: params.term\n });\n },\n transport: function transport(params, success, failure) {\n var $request = $.ajax(params);\n $request.then(success);\n $request.fail(failure);\n return $request;\n }\n };\n return $.extend({}, defaults, options, true);\n };\n\n AjaxAdapter.prototype.processResults = function (results) {\n return results;\n };\n\n AjaxAdapter.prototype.query = function (params, callback) {\n var matches = [];\n var self = this;\n\n if (this._request != null) {\n // JSONP requests cannot always be aborted\n if ($.isFunction(this._request.abort)) {\n this._request.abort();\n }\n\n this._request = null;\n }\n\n var options = $.extend({\n type: 'GET'\n }, this.ajaxOptions);\n\n if (typeof options.url === 'function') {\n options.url = options.url.call(this.$element, params);\n }\n\n if (typeof options.data === 'function') {\n options.data = options.data.call(this.$element, params);\n }\n\n function request() {\n var $request = options.transport(options, function (data) {\n var results = self.processResults(data, params);\n\n if (self.options.get('debug') && window.console && console.error) {\n // Check to make sure that the response included a `results` key.\n if (!results || !results.results || !$.isArray(results.results)) {\n console.error('Select2: The AJAX results did not return an array in the ' + '`results` key of the response.');\n }\n }\n\n callback(results);\n }, function () {\n // Attempt to detect if a request was aborted\n // Only works if the transport exposes a status property\n if ('status' in $request && ($request.status === 0 || $request.status === '0')) {\n return;\n }\n\n self.trigger('results:message', {\n message: 'errorLoading'\n });\n });\n self._request = $request;\n }\n\n if (this.ajaxOptions.delay && params.term != null) {\n if (this._queryTimeout) {\n window.clearTimeout(this._queryTimeout);\n }\n\n this._queryTimeout = window.setTimeout(request, this.ajaxOptions.delay);\n } else {\n request();\n }\n };\n\n return AjaxAdapter;\n });\n S2.define('select2/data/tags', ['jquery'], function ($) {\n function Tags(decorated, $element, options) {\n var tags = options.get('tags');\n var createTag = options.get('createTag');\n\n if (createTag !== undefined) {\n this.createTag = createTag;\n }\n\n var insertTag = options.get('insertTag');\n\n if (insertTag !== undefined) {\n this.insertTag = insertTag;\n }\n\n decorated.call(this, $element, options);\n\n if ($.isArray(tags)) {\n for (var t = 0; t < tags.length; t++) {\n var tag = tags[t];\n\n var item = this._normalizeItem(tag);\n\n var $option = this.option(item);\n this.$element.append($option);\n }\n }\n }\n\n Tags.prototype.query = function (decorated, params, callback) {\n var self = this;\n\n this._removeOldTags();\n\n if (params.term == null || params.page != null) {\n decorated.call(this, params, callback);\n return;\n }\n\n function wrapper(obj, child) {\n var data = obj.results;\n\n for (var i = 0; i < data.length; i++) {\n var option = data[i];\n var checkChildren = option.children != null && !wrapper({\n results: option.children\n }, true);\n var optionText = (option.text || '').toUpperCase();\n var paramsTerm = (params.term || '').toUpperCase();\n var checkText = optionText === paramsTerm;\n\n if (checkText || checkChildren) {\n if (child) {\n return false;\n }\n\n obj.data = data;\n callback(obj);\n return;\n }\n }\n\n if (child) {\n return true;\n }\n\n var tag = self.createTag(params);\n\n if (tag != null) {\n var $option = self.option(tag);\n $option.attr('data-select2-tag', true);\n self.addOptions([$option]);\n self.insertTag(data, tag);\n }\n\n obj.results = data;\n callback(obj);\n }\n\n decorated.call(this, params, wrapper);\n };\n\n Tags.prototype.createTag = function (decorated, params) {\n var term = $.trim(params.term);\n\n if (term === '') {\n return null;\n }\n\n return {\n id: term,\n text: term\n };\n };\n\n Tags.prototype.insertTag = function (_, data, tag) {\n data.unshift(tag);\n };\n\n Tags.prototype._removeOldTags = function (_) {\n var $options = this.$element.find('option[data-select2-tag]');\n $options.each(function () {\n if (this.selected) {\n return;\n }\n\n $(this).remove();\n });\n };\n\n return Tags;\n });\n S2.define('select2/data/tokenizer', ['jquery'], function ($) {\n function Tokenizer(decorated, $element, options) {\n var tokenizer = options.get('tokenizer');\n\n if (tokenizer !== undefined) {\n this.tokenizer = tokenizer;\n }\n\n decorated.call(this, $element, options);\n }\n\n Tokenizer.prototype.bind = function (decorated, container, $container) {\n decorated.call(this, container, $container);\n this.$search = container.dropdown.$search || container.selection.$search || $container.find('.select2-search__field');\n };\n\n Tokenizer.prototype.query = function (decorated, params, callback) {\n var self = this;\n\n function createAndSelect(data) {\n // Normalize the data object so we can use it for checks\n var item = self._normalizeItem(data); // Check if the data object already exists as a tag\n // Select it if it doesn't\n\n\n var $existingOptions = self.$element.find('option').filter(function () {\n return $(this).val() === item.id;\n }); // If an existing option wasn't found for it, create the option\n\n if (!$existingOptions.length) {\n var $option = self.option(item);\n $option.attr('data-select2-tag', true);\n\n self._removeOldTags();\n\n self.addOptions([$option]);\n } // Select the item, now that we know there is an option for it\n\n\n select(item);\n }\n\n function select(data) {\n self.trigger('select', {\n data: data\n });\n }\n\n params.term = params.term || '';\n var tokenData = this.tokenizer(params, this.options, createAndSelect);\n\n if (tokenData.term !== params.term) {\n // Replace the search term if we have the search box\n if (this.$search.length) {\n this.$search.val(tokenData.term);\n this.$search.trigger('focus');\n }\n\n params.term = tokenData.term;\n }\n\n decorated.call(this, params, callback);\n };\n\n Tokenizer.prototype.tokenizer = function (_, params, options, callback) {\n var separators = options.get('tokenSeparators') || [];\n var term = params.term;\n var i = 0;\n\n var createTag = this.createTag || function (params) {\n return {\n id: params.term,\n text: params.term\n };\n };\n\n while (i < term.length) {\n var termChar = term[i];\n\n if ($.inArray(termChar, separators) === -1) {\n i++;\n continue;\n }\n\n var part = term.substr(0, i);\n var partParams = $.extend({}, params, {\n term: part\n });\n var data = createTag(partParams);\n\n if (data == null) {\n i++;\n continue;\n }\n\n callback(data); // Reset the term to not include the tokenized portion\n\n term = term.substr(i + 1) || '';\n i = 0;\n }\n\n return {\n term: term\n };\n };\n\n return Tokenizer;\n });\n S2.define('select2/data/minimumInputLength', [], function () {\n function MinimumInputLength(decorated, $e, options) {\n this.minimumInputLength = options.get('minimumInputLength');\n decorated.call(this, $e, options);\n }\n\n MinimumInputLength.prototype.query = function (decorated, params, callback) {\n params.term = params.term || '';\n\n if (params.term.length < this.minimumInputLength) {\n this.trigger('results:message', {\n message: 'inputTooShort',\n args: {\n minimum: this.minimumInputLength,\n input: params.term,\n params: params\n }\n });\n return;\n }\n\n decorated.call(this, params, callback);\n };\n\n return MinimumInputLength;\n });\n S2.define('select2/data/maximumInputLength', [], function () {\n function MaximumInputLength(decorated, $e, options) {\n this.maximumInputLength = options.get('maximumInputLength');\n decorated.call(this, $e, options);\n }\n\n MaximumInputLength.prototype.query = function (decorated, params, callback) {\n params.term = params.term || '';\n\n if (this.maximumInputLength > 0 && params.term.length > this.maximumInputLength) {\n this.trigger('results:message', {\n message: 'inputTooLong',\n args: {\n maximum: this.maximumInputLength,\n input: params.term,\n params: params\n }\n });\n return;\n }\n\n decorated.call(this, params, callback);\n };\n\n return MaximumInputLength;\n });\n S2.define('select2/data/maximumSelectionLength', [], function () {\n function MaximumSelectionLength(decorated, $e, options) {\n this.maximumSelectionLength = options.get('maximumSelectionLength');\n decorated.call(this, $e, options);\n }\n\n MaximumSelectionLength.prototype.bind = function (decorated, container, $container) {\n var self = this;\n decorated.call(this, container, $container);\n container.on('select', function () {\n self._checkIfMaximumSelected();\n });\n };\n\n MaximumSelectionLength.prototype.query = function (decorated, params, callback) {\n var self = this;\n\n this._checkIfMaximumSelected(function () {\n decorated.call(self, params, callback);\n });\n };\n\n MaximumSelectionLength.prototype._checkIfMaximumSelected = function (_, successCallback) {\n var self = this;\n this.current(function (currentData) {\n var count = currentData != null ? currentData.length : 0;\n\n if (self.maximumSelectionLength > 0 && count >= self.maximumSelectionLength) {\n self.trigger('results:message', {\n message: 'maximumSelected',\n args: {\n maximum: self.maximumSelectionLength\n }\n });\n return;\n }\n\n if (successCallback) {\n successCallback();\n }\n });\n };\n\n return MaximumSelectionLength;\n });\n S2.define('select2/dropdown', ['jquery', './utils'], function ($, Utils) {\n function Dropdown($element, options) {\n this.$element = $element;\n this.options = options;\n\n Dropdown.__super__.constructor.call(this);\n }\n\n Utils.Extend(Dropdown, Utils.Observable);\n\n Dropdown.prototype.render = function () {\n var $dropdown = $('' + '' + '');\n $dropdown.attr('dir', this.options.get('dir'));\n this.$dropdown = $dropdown;\n return $dropdown;\n };\n\n Dropdown.prototype.bind = function () {// Should be implemented in subclasses\n };\n\n Dropdown.prototype.position = function ($dropdown, $container) {// Should be implemented in subclasses\n };\n\n Dropdown.prototype.destroy = function () {\n // Remove the dropdown from the DOM\n this.$dropdown.remove();\n };\n\n return Dropdown;\n });\n S2.define('select2/dropdown/search', ['jquery', '../utils'], function ($, Utils) {\n function Search() {}\n\n Search.prototype.render = function (decorated) {\n var $rendered = decorated.call(this);\n var $search = $('' + '' + '');\n this.$searchContainer = $search;\n this.$search = $search.find('input');\n $rendered.prepend($search);\n return $rendered;\n };\n\n Search.prototype.bind = function (decorated, container, $container) {\n var self = this;\n var resultsId = container.id + '-results';\n decorated.call(this, container, $container);\n this.$search.on('keydown', function (evt) {\n self.trigger('keypress', evt);\n self._keyUpPrevented = evt.isDefaultPrevented();\n }); // Workaround for browsers which do not support the `input` event\n // This will prevent double-triggering of events for browsers which support\n // both the `keyup` and `input` events.\n\n this.$search.on('input', function (evt) {\n // Unbind the duplicated `keyup` event\n $(this).off('keyup');\n });\n this.$search.on('keyup input', function (evt) {\n self.handleSearch(evt);\n });\n container.on('open', function () {\n self.$search.attr('tabindex', 0);\n self.$search.attr('aria-controls', resultsId);\n self.$search.trigger('focus');\n window.setTimeout(function () {\n self.$search.trigger('focus');\n }, 0);\n });\n container.on('close', function () {\n self.$search.attr('tabindex', -1);\n self.$search.removeAttr('aria-controls');\n self.$search.removeAttr('aria-activedescendant');\n self.$search.val('');\n self.$search.trigger('blur');\n });\n container.on('focus', function () {\n if (!container.isOpen()) {\n self.$search.trigger('focus');\n }\n });\n container.on('results:all', function (params) {\n if (params.query.term == null || params.query.term === '') {\n var showSearch = self.showSearch(params);\n\n if (showSearch) {\n self.$searchContainer.removeClass('select2-search--hide');\n } else {\n self.$searchContainer.addClass('select2-search--hide');\n }\n }\n });\n container.on('results:focus', function (params) {\n if (params.data._resultId) {\n self.$search.attr('aria-activedescendant', params.data._resultId);\n } else {\n self.$search.removeAttr('aria-activedescendant');\n }\n });\n };\n\n Search.prototype.handleSearch = function (evt) {\n if (!this._keyUpPrevented) {\n var input = this.$search.val();\n this.trigger('query', {\n term: input\n });\n }\n\n this._keyUpPrevented = false;\n };\n\n Search.prototype.showSearch = function (_, params) {\n return true;\n };\n\n return Search;\n });\n S2.define('select2/dropdown/hidePlaceholder', [], function () {\n function HidePlaceholder(decorated, $element, options, dataAdapter) {\n this.placeholder = this.normalizePlaceholder(options.get('placeholder'));\n decorated.call(this, $element, options, dataAdapter);\n }\n\n HidePlaceholder.prototype.append = function (decorated, data) {\n data.results = this.removePlaceholder(data.results);\n decorated.call(this, data);\n };\n\n HidePlaceholder.prototype.normalizePlaceholder = function (_, placeholder) {\n if (typeof placeholder === 'string') {\n placeholder = {\n id: '',\n text: placeholder\n };\n }\n\n return placeholder;\n };\n\n HidePlaceholder.prototype.removePlaceholder = function (_, data) {\n var modifiedData = data.slice(0);\n\n for (var d = data.length - 1; d >= 0; d--) {\n var item = data[d];\n\n if (this.placeholder.id === item.id) {\n modifiedData.splice(d, 1);\n }\n }\n\n return modifiedData;\n };\n\n return HidePlaceholder;\n });\n S2.define('select2/dropdown/infiniteScroll', ['jquery'], function ($) {\n function InfiniteScroll(decorated, $element, options, dataAdapter) {\n this.lastParams = {};\n decorated.call(this, $element, options, dataAdapter);\n this.$loadingMore = this.createLoadingMore();\n this.loading = false;\n }\n\n InfiniteScroll.prototype.append = function (decorated, data) {\n this.$loadingMore.remove();\n this.loading = false;\n decorated.call(this, data);\n\n if (this.showLoadingMore(data)) {\n this.$results.append(this.$loadingMore);\n this.loadMoreIfNeeded();\n }\n };\n\n InfiniteScroll.prototype.bind = function (decorated, container, $container) {\n var self = this;\n decorated.call(this, container, $container);\n container.on('query', function (params) {\n self.lastParams = params;\n self.loading = true;\n });\n container.on('query:append', function (params) {\n self.lastParams = params;\n self.loading = true;\n });\n this.$results.on('scroll', this.loadMoreIfNeeded.bind(this));\n };\n\n InfiniteScroll.prototype.loadMoreIfNeeded = function () {\n var isLoadMoreVisible = $.contains(document.documentElement, this.$loadingMore[0]);\n\n if (this.loading || !isLoadMoreVisible) {\n return;\n }\n\n var currentOffset = this.$results.offset().top + this.$results.outerHeight(false);\n var loadingMoreOffset = this.$loadingMore.offset().top + this.$loadingMore.outerHeight(false);\n\n if (currentOffset + 50 >= loadingMoreOffset) {\n this.loadMore();\n }\n };\n\n InfiniteScroll.prototype.loadMore = function () {\n this.loading = true;\n var params = $.extend({}, {\n page: 1\n }, this.lastParams);\n params.page++;\n this.trigger('query:append', params);\n };\n\n InfiniteScroll.prototype.showLoadingMore = function (_, data) {\n return data.pagination && data.pagination.more;\n };\n\n InfiniteScroll.prototype.createLoadingMore = function () {\n var $option = $('
    • ');\n var message = this.options.get('translations').get('loadingMore');\n $option.html(message(this.lastParams));\n return $option;\n };\n\n return InfiniteScroll;\n });\n S2.define('select2/dropdown/attachBody', ['jquery', '../utils'], function ($, Utils) {\n function AttachBody(decorated, $element, options) {\n this.$dropdownParent = $(options.get('dropdownParent') || document.body);\n decorated.call(this, $element, options);\n }\n\n AttachBody.prototype.bind = function (decorated, container, $container) {\n var self = this;\n decorated.call(this, container, $container);\n container.on('open', function () {\n self._showDropdown();\n\n self._attachPositioningHandler(container); // Must bind after the results handlers to ensure correct sizing\n\n\n self._bindContainerResultHandlers(container);\n });\n container.on('close', function () {\n self._hideDropdown();\n\n self._detachPositioningHandler(container);\n });\n this.$dropdownContainer.on('mousedown', function (evt) {\n evt.stopPropagation();\n });\n };\n\n AttachBody.prototype.destroy = function (decorated) {\n decorated.call(this);\n this.$dropdownContainer.remove();\n };\n\n AttachBody.prototype.position = function (decorated, $dropdown, $container) {\n // Clone all of the container classes\n $dropdown.attr('class', $container.attr('class'));\n $dropdown.removeClass('select2');\n $dropdown.addClass('select2-container--open');\n $dropdown.css({\n position: 'absolute',\n top: -999999\n });\n this.$container = $container;\n };\n\n AttachBody.prototype.render = function (decorated) {\n var $container = $('');\n var $dropdown = decorated.call(this);\n $container.append($dropdown);\n this.$dropdownContainer = $container;\n return $container;\n };\n\n AttachBody.prototype._hideDropdown = function (decorated) {\n this.$dropdownContainer.detach();\n };\n\n AttachBody.prototype._bindContainerResultHandlers = function (decorated, container) {\n // These should only be bound once\n if (this._containerResultsHandlersBound) {\n return;\n }\n\n var self = this;\n container.on('results:all', function () {\n self._positionDropdown();\n\n self._resizeDropdown();\n });\n container.on('results:append', function () {\n self._positionDropdown();\n\n self._resizeDropdown();\n });\n container.on('results:message', function () {\n self._positionDropdown();\n\n self._resizeDropdown();\n });\n container.on('select', function () {\n self._positionDropdown();\n\n self._resizeDropdown();\n });\n container.on('unselect', function () {\n self._positionDropdown();\n\n self._resizeDropdown();\n });\n this._containerResultsHandlersBound = true;\n };\n\n AttachBody.prototype._attachPositioningHandler = function (decorated, container) {\n var self = this;\n var scrollEvent = 'scroll.select2.' + container.id;\n var resizeEvent = 'resize.select2.' + container.id;\n var orientationEvent = 'orientationchange.select2.' + container.id;\n var $watchers = this.$container.parents().filter(Utils.hasScroll);\n $watchers.each(function () {\n Utils.StoreData(this, 'select2-scroll-position', {\n x: $(this).scrollLeft(),\n y: $(this).scrollTop()\n });\n });\n $watchers.on(scrollEvent, function (ev) {\n var position = Utils.GetData(this, 'select2-scroll-position');\n $(this).scrollTop(position.y);\n });\n $(window).on(scrollEvent + ' ' + resizeEvent + ' ' + orientationEvent, function (e) {\n self._positionDropdown();\n\n self._resizeDropdown();\n });\n };\n\n AttachBody.prototype._detachPositioningHandler = function (decorated, container) {\n var scrollEvent = 'scroll.select2.' + container.id;\n var resizeEvent = 'resize.select2.' + container.id;\n var orientationEvent = 'orientationchange.select2.' + container.id;\n var $watchers = this.$container.parents().filter(Utils.hasScroll);\n $watchers.off(scrollEvent);\n $(window).off(scrollEvent + ' ' + resizeEvent + ' ' + orientationEvent);\n };\n\n AttachBody.prototype._positionDropdown = function () {\n var $window = $(window);\n var isCurrentlyAbove = this.$dropdown.hasClass('select2-dropdown--above');\n var isCurrentlyBelow = this.$dropdown.hasClass('select2-dropdown--below');\n var newDirection = null;\n var offset = this.$container.offset();\n offset.bottom = offset.top + this.$container.outerHeight(false);\n var container = {\n height: this.$container.outerHeight(false)\n };\n container.top = offset.top;\n container.bottom = offset.top + container.height;\n var dropdown = {\n height: this.$dropdown.outerHeight(false)\n };\n var viewport = {\n top: $window.scrollTop(),\n bottom: $window.scrollTop() + $window.height()\n };\n var enoughRoomAbove = viewport.top < offset.top - dropdown.height;\n var enoughRoomBelow = viewport.bottom > offset.bottom + dropdown.height;\n var css = {\n left: offset.left,\n top: container.bottom\n }; // Determine what the parent element is to use for calculating the offset\n\n var $offsetParent = this.$dropdownParent; // For statically positioned elements, we need to get the element\n // that is determining the offset\n\n if ($offsetParent.css('position') === 'static') {\n $offsetParent = $offsetParent.offsetParent();\n }\n\n var parentOffset = {\n top: 0,\n left: 0\n };\n\n if ($.contains(document.body, $offsetParent[0]) || $offsetParent[0].isConnected) {\n parentOffset = $offsetParent.offset();\n }\n\n css.top -= parentOffset.top;\n css.left -= parentOffset.left;\n\n if (!isCurrentlyAbove && !isCurrentlyBelow) {\n newDirection = 'below';\n }\n\n if (!enoughRoomBelow && enoughRoomAbove && !isCurrentlyAbove) {\n newDirection = 'above';\n } else if (!enoughRoomAbove && enoughRoomBelow && isCurrentlyAbove) {\n newDirection = 'below';\n }\n\n if (newDirection == 'above' || isCurrentlyAbove && newDirection !== 'below') {\n css.top = container.top - parentOffset.top - dropdown.height;\n }\n\n if (newDirection != null) {\n this.$dropdown.removeClass('select2-dropdown--below select2-dropdown--above').addClass('select2-dropdown--' + newDirection);\n this.$container.removeClass('select2-container--below select2-container--above').addClass('select2-container--' + newDirection);\n }\n\n this.$dropdownContainer.css(css);\n };\n\n AttachBody.prototype._resizeDropdown = function () {\n var css = {\n width: this.$container.outerWidth(false) + 'px'\n };\n\n if (this.options.get('dropdownAutoWidth')) {\n css.minWidth = css.width;\n css.position = 'relative';\n css.width = 'auto';\n }\n\n this.$dropdown.css(css);\n };\n\n AttachBody.prototype._showDropdown = function (decorated) {\n this.$dropdownContainer.appendTo(this.$dropdownParent);\n\n this._positionDropdown();\n\n this._resizeDropdown();\n };\n\n return AttachBody;\n });\n S2.define('select2/dropdown/minimumResultsForSearch', [], function () {\n function countResults(data) {\n var count = 0;\n\n for (var d = 0; d < data.length; d++) {\n var item = data[d];\n\n if (item.children) {\n count += countResults(item.children);\n } else {\n count++;\n }\n }\n\n return count;\n }\n\n function MinimumResultsForSearch(decorated, $element, options, dataAdapter) {\n this.minimumResultsForSearch = options.get('minimumResultsForSearch');\n\n if (this.minimumResultsForSearch < 0) {\n this.minimumResultsForSearch = Infinity;\n }\n\n decorated.call(this, $element, options, dataAdapter);\n }\n\n MinimumResultsForSearch.prototype.showSearch = function (decorated, params) {\n if (countResults(params.data.results) < this.minimumResultsForSearch) {\n return false;\n }\n\n return decorated.call(this, params);\n };\n\n return MinimumResultsForSearch;\n });\n S2.define('select2/dropdown/selectOnClose', ['../utils'], function (Utils) {\n function SelectOnClose() {}\n\n SelectOnClose.prototype.bind = function (decorated, container, $container) {\n var self = this;\n decorated.call(this, container, $container);\n container.on('close', function (params) {\n self._handleSelectOnClose(params);\n });\n };\n\n SelectOnClose.prototype._handleSelectOnClose = function (_, params) {\n if (params && params.originalSelect2Event != null) {\n var event = params.originalSelect2Event; // Don't select an item if the close event was triggered from a select or\n // unselect event\n\n if (event._type === 'select' || event._type === 'unselect') {\n return;\n }\n }\n\n var $highlightedResults = this.getHighlightedResults(); // Only select highlighted results\n\n if ($highlightedResults.length < 1) {\n return;\n }\n\n var data = Utils.GetData($highlightedResults[0], 'data'); // Don't re-select already selected resulte\n\n if (data.element != null && data.element.selected || data.element == null && data.selected) {\n return;\n }\n\n this.trigger('select', {\n data: data\n });\n };\n\n return SelectOnClose;\n });\n S2.define('select2/dropdown/closeOnSelect', [], function () {\n function CloseOnSelect() {}\n\n CloseOnSelect.prototype.bind = function (decorated, container, $container) {\n var self = this;\n decorated.call(this, container, $container);\n container.on('select', function (evt) {\n self._selectTriggered(evt);\n });\n container.on('unselect', function (evt) {\n self._selectTriggered(evt);\n });\n };\n\n CloseOnSelect.prototype._selectTriggered = function (_, evt) {\n var originalEvent = evt.originalEvent; // Don't close if the control key is being held\n\n if (originalEvent && (originalEvent.ctrlKey || originalEvent.metaKey)) {\n return;\n }\n\n this.trigger('close', {\n originalEvent: originalEvent,\n originalSelect2Event: evt\n });\n };\n\n return CloseOnSelect;\n });\n S2.define('select2/i18n/en', [], function () {\n // English\n return {\n errorLoading: function errorLoading() {\n return 'The results could not be loaded.';\n },\n inputTooLong: function inputTooLong(args) {\n var overChars = args.input.length - args.maximum;\n var message = 'Please delete ' + overChars + ' character';\n\n if (overChars != 1) {\n message += 's';\n }\n\n return message;\n },\n inputTooShort: function inputTooShort(args) {\n var remainingChars = args.minimum - args.input.length;\n var message = 'Please enter ' + remainingChars + ' or more characters';\n return message;\n },\n loadingMore: function loadingMore() {\n return 'Loading more results…';\n },\n maximumSelected: function maximumSelected(args) {\n var message = 'You can only select ' + args.maximum + ' item';\n\n if (args.maximum != 1) {\n message += 's';\n }\n\n return message;\n },\n noResults: function noResults() {\n return 'No results found';\n },\n searching: function searching() {\n return 'Searching…';\n },\n removeAllItems: function removeAllItems() {\n return 'Remove all items';\n }\n };\n });\n S2.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 ($, require, ResultsList, SingleSelection, MultipleSelection, Placeholder, AllowClear, SelectionSearch, EventRelay, Utils, Translation, DIACRITICS, SelectData, ArrayData, AjaxData, Tags, Tokenizer, MinimumInputLength, MaximumInputLength, MaximumSelectionLength, Dropdown, DropdownSearch, HidePlaceholder, InfiniteScroll, AttachBody, MinimumResultsForSearch, SelectOnClose, CloseOnSelect, EnglishTranslation) {\n function Defaults() {\n this.reset();\n }\n\n Defaults.prototype.apply = function (options) {\n options = $.extend(true, {}, this.defaults, options);\n\n if (options.dataAdapter == null) {\n if (options.ajax != null) {\n options.dataAdapter = AjaxData;\n } else if (options.data != null) {\n options.dataAdapter = ArrayData;\n } else {\n options.dataAdapter = SelectData;\n }\n\n if (options.minimumInputLength > 0) {\n options.dataAdapter = Utils.Decorate(options.dataAdapter, MinimumInputLength);\n }\n\n if (options.maximumInputLength > 0) {\n options.dataAdapter = Utils.Decorate(options.dataAdapter, MaximumInputLength);\n }\n\n if (options.maximumSelectionLength > 0) {\n options.dataAdapter = Utils.Decorate(options.dataAdapter, MaximumSelectionLength);\n }\n\n if (options.tags) {\n options.dataAdapter = Utils.Decorate(options.dataAdapter, Tags);\n }\n\n if (options.tokenSeparators != null || options.tokenizer != null) {\n options.dataAdapter = Utils.Decorate(options.dataAdapter, Tokenizer);\n }\n\n if (options.query != null) {\n var Query = require(options.amdBase + 'compat/query');\n\n options.dataAdapter = Utils.Decorate(options.dataAdapter, Query);\n }\n\n if (options.initSelection != null) {\n var InitSelection = require(options.amdBase + 'compat/initSelection');\n\n options.dataAdapter = Utils.Decorate(options.dataAdapter, InitSelection);\n }\n }\n\n if (options.resultsAdapter == null) {\n options.resultsAdapter = ResultsList;\n\n if (options.ajax != null) {\n options.resultsAdapter = Utils.Decorate(options.resultsAdapter, InfiniteScroll);\n }\n\n if (options.placeholder != null) {\n options.resultsAdapter = Utils.Decorate(options.resultsAdapter, HidePlaceholder);\n }\n\n if (options.selectOnClose) {\n options.resultsAdapter = Utils.Decorate(options.resultsAdapter, SelectOnClose);\n }\n }\n\n if (options.dropdownAdapter == null) {\n if (options.multiple) {\n options.dropdownAdapter = Dropdown;\n } else {\n var SearchableDropdown = Utils.Decorate(Dropdown, DropdownSearch);\n options.dropdownAdapter = SearchableDropdown;\n }\n\n if (options.minimumResultsForSearch !== 0) {\n options.dropdownAdapter = Utils.Decorate(options.dropdownAdapter, MinimumResultsForSearch);\n }\n\n if (options.closeOnSelect) {\n options.dropdownAdapter = Utils.Decorate(options.dropdownAdapter, CloseOnSelect);\n }\n\n if (options.dropdownCssClass != null || options.dropdownCss != null || options.adaptDropdownCssClass != null) {\n var DropdownCSS = require(options.amdBase + 'compat/dropdownCss');\n\n options.dropdownAdapter = Utils.Decorate(options.dropdownAdapter, DropdownCSS);\n }\n\n options.dropdownAdapter = Utils.Decorate(options.dropdownAdapter, AttachBody);\n }\n\n if (options.selectionAdapter == null) {\n if (options.multiple) {\n options.selectionAdapter = MultipleSelection;\n } else {\n options.selectionAdapter = SingleSelection;\n } // Add the placeholder mixin if a placeholder was specified\n\n\n if (options.placeholder != null) {\n options.selectionAdapter = Utils.Decorate(options.selectionAdapter, Placeholder);\n }\n\n if (options.allowClear) {\n options.selectionAdapter = Utils.Decorate(options.selectionAdapter, AllowClear);\n }\n\n if (options.multiple) {\n options.selectionAdapter = Utils.Decorate(options.selectionAdapter, SelectionSearch);\n }\n\n if (options.containerCssClass != null || options.containerCss != null || options.adaptContainerCssClass != null) {\n var ContainerCSS = require(options.amdBase + 'compat/containerCss');\n\n options.selectionAdapter = Utils.Decorate(options.selectionAdapter, ContainerCSS);\n }\n\n options.selectionAdapter = Utils.Decorate(options.selectionAdapter, EventRelay);\n } // If the defaults were not previously applied from an element, it is\n // possible for the language option to have not been resolved\n\n\n options.language = this._resolveLanguage(options.language); // Always fall back to English since it will always be complete\n\n options.language.push('en');\n var uniqueLanguages = [];\n\n for (var l = 0; l < options.language.length; l++) {\n var language = options.language[l];\n\n if (uniqueLanguages.indexOf(language) === -1) {\n uniqueLanguages.push(language);\n }\n }\n\n options.language = uniqueLanguages;\n options.translations = this._processTranslations(options.language, options.debug);\n return options;\n };\n\n Defaults.prototype.reset = function () {\n function stripDiacritics(text) {\n // Used 'uni range + named function' from http://jsperf.com/diacritics/18\n function match(a) {\n return DIACRITICS[a] || a;\n }\n\n return text.replace(/[^\\u0000-\\u007E]/g, match);\n }\n\n function matcher(params, data) {\n // Always return the object if there is nothing to compare\n if ($.trim(params.term) === '') {\n return data;\n } // Do a recursive check for options with children\n\n\n if (data.children && data.children.length > 0) {\n // Clone the data object if there are children\n // This is required as we modify the object to remove any non-matches\n var match = $.extend(true, {}, data); // Check each child of the option\n\n for (var c = data.children.length - 1; c >= 0; c--) {\n var child = data.children[c];\n var matches = matcher(params, child); // If there wasn't a match, remove the object in the array\n\n if (matches == null) {\n match.children.splice(c, 1);\n }\n } // If any children matched, return the new object\n\n\n if (match.children.length > 0) {\n return match;\n } // If there were no matching children, check just the plain object\n\n\n return matcher(params, match);\n }\n\n var original = stripDiacritics(data.text).toUpperCase();\n var term = stripDiacritics(params.term).toUpperCase(); // Check if the text contains the term\n\n if (original.indexOf(term) > -1) {\n return data;\n } // If it doesn't contain the term, don't return anything\n\n\n return null;\n }\n\n this.defaults = {\n amdBase: './',\n amdLanguageBase: './i18n/',\n closeOnSelect: true,\n debug: false,\n dropdownAutoWidth: false,\n escapeMarkup: Utils.escapeMarkup,\n language: {},\n matcher: matcher,\n minimumInputLength: 0,\n maximumInputLength: 0,\n maximumSelectionLength: 0,\n minimumResultsForSearch: 0,\n selectOnClose: false,\n scrollAfterSelect: false,\n sorter: function sorter(data) {\n return data;\n },\n templateResult: function templateResult(result) {\n return result.text;\n },\n templateSelection: function templateSelection(selection) {\n return selection.text;\n },\n theme: 'default',\n width: 'resolve'\n };\n };\n\n Defaults.prototype.applyFromElement = function (options, $element) {\n var optionLanguage = options.language;\n var defaultLanguage = this.defaults.language;\n var elementLanguage = $element.prop('lang');\n var parentLanguage = $element.closest('[lang]').prop('lang');\n var languages = Array.prototype.concat.call(this._resolveLanguage(elementLanguage), this._resolveLanguage(optionLanguage), this._resolveLanguage(defaultLanguage), this._resolveLanguage(parentLanguage));\n options.language = languages;\n return options;\n };\n\n Defaults.prototype._resolveLanguage = function (language) {\n if (!language) {\n return [];\n }\n\n if ($.isEmptyObject(language)) {\n return [];\n }\n\n if ($.isPlainObject(language)) {\n return [language];\n }\n\n var languages;\n\n if (!$.isArray(language)) {\n languages = [language];\n } else {\n languages = language;\n }\n\n var resolvedLanguages = [];\n\n for (var l = 0; l < languages.length; l++) {\n resolvedLanguages.push(languages[l]);\n\n if (typeof languages[l] === 'string' && languages[l].indexOf('-') > 0) {\n // Extract the region information if it is included\n var languageParts = languages[l].split('-');\n var baseLanguage = languageParts[0];\n resolvedLanguages.push(baseLanguage);\n }\n }\n\n return resolvedLanguages;\n };\n\n Defaults.prototype._processTranslations = function (languages, debug) {\n var translations = new Translation();\n\n for (var l = 0; l < languages.length; l++) {\n var languageData = new Translation();\n var language = languages[l];\n\n if (typeof language === 'string') {\n try {\n // Try to load it with the original name\n languageData = Translation.loadPath(language);\n } catch (e) {\n try {\n // If we couldn't load it, check if it wasn't the full path\n language = this.defaults.amdLanguageBase + language;\n languageData = Translation.loadPath(language);\n } catch (ex) {\n // The translation could not be loaded at all. Sometimes this is\n // because of a configuration problem, other times this can be\n // because of how Select2 helps load all possible translation files\n if (debug && window.console && console.warn) {\n console.warn('Select2: The language file for \"' + language + '\" could ' + 'not be automatically loaded. A fallback will be used instead.');\n }\n }\n }\n } else if ($.isPlainObject(language)) {\n languageData = new Translation(language);\n } else {\n languageData = language;\n }\n\n translations.extend(languageData);\n }\n\n return translations;\n };\n\n Defaults.prototype.set = function (key, value) {\n var camelKey = $.camelCase(key);\n var data = {};\n data[camelKey] = value;\n\n var convertedData = Utils._convertData(data);\n\n $.extend(true, this.defaults, convertedData);\n };\n\n var defaults = new Defaults();\n return defaults;\n });\n S2.define('select2/options', ['require', 'jquery', './defaults', './utils'], function (require, $, Defaults, Utils) {\n function Options(options, $element) {\n this.options = options;\n\n if ($element != null) {\n this.fromElement($element);\n }\n\n if ($element != null) {\n this.options = Defaults.applyFromElement(this.options, $element);\n }\n\n this.options = Defaults.apply(this.options);\n\n if ($element && $element.is('input')) {\n var InputCompat = require(this.get('amdBase') + 'compat/inputData');\n\n this.options.dataAdapter = Utils.Decorate(this.options.dataAdapter, InputCompat);\n }\n }\n\n Options.prototype.fromElement = function ($e) {\n var excludedData = ['select2'];\n\n if (this.options.multiple == null) {\n this.options.multiple = $e.prop('multiple');\n }\n\n if (this.options.disabled == null) {\n this.options.disabled = $e.prop('disabled');\n }\n\n if (this.options.dir == null) {\n if ($e.prop('dir')) {\n this.options.dir = $e.prop('dir');\n } else if ($e.closest('[dir]').prop('dir')) {\n this.options.dir = $e.closest('[dir]').prop('dir');\n } else {\n this.options.dir = 'ltr';\n }\n }\n\n $e.prop('disabled', this.options.disabled);\n $e.prop('multiple', this.options.multiple);\n\n if (Utils.GetData($e[0], 'select2Tags')) {\n if (this.options.debug && window.console && console.warn) {\n 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.');\n }\n\n Utils.StoreData($e[0], 'data', Utils.GetData($e[0], 'select2Tags'));\n Utils.StoreData($e[0], 'tags', true);\n }\n\n if (Utils.GetData($e[0], 'ajaxUrl')) {\n if (this.options.debug && window.console && console.warn) {\n 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.');\n }\n\n $e.attr('ajax--url', Utils.GetData($e[0], 'ajaxUrl'));\n Utils.StoreData($e[0], 'ajax-Url', Utils.GetData($e[0], 'ajaxUrl'));\n }\n\n var dataset = {};\n\n function upperCaseLetter(_, letter) {\n return letter.toUpperCase();\n } // Pre-load all of the attributes which are prefixed with `data-`\n\n\n for (var attr = 0; attr < $e[0].attributes.length; attr++) {\n var attributeName = $e[0].attributes[attr].name;\n var prefix = 'data-';\n\n if (attributeName.substr(0, prefix.length) == prefix) {\n // Get the contents of the attribute after `data-`\n var dataName = attributeName.substring(prefix.length); // Get the data contents from the consistent source\n // This is more than likely the jQuery data helper\n\n var dataValue = Utils.GetData($e[0], dataName); // camelCase the attribute name to match the spec\n\n var camelDataName = dataName.replace(/-([a-z])/g, upperCaseLetter); // Store the data attribute contents into the dataset since\n\n dataset[camelDataName] = dataValue;\n }\n } // Prefer the element's `dataset` attribute if it exists\n // jQuery 1.x does not correctly handle data attributes with multiple dashes\n\n\n if ($.fn.jquery && $.fn.jquery.substr(0, 2) == '1.' && $e[0].dataset) {\n dataset = $.extend(true, {}, $e[0].dataset, dataset);\n } // Prefer our internal data cache if it exists\n\n\n var data = $.extend(true, {}, Utils.GetData($e[0]), dataset);\n data = Utils._convertData(data);\n\n for (var key in data) {\n if ($.inArray(key, excludedData) > -1) {\n continue;\n }\n\n if ($.isPlainObject(this.options[key])) {\n $.extend(this.options[key], data[key]);\n } else {\n this.options[key] = data[key];\n }\n }\n\n return this;\n };\n\n Options.prototype.get = function (key) {\n return this.options[key];\n };\n\n Options.prototype.set = function (key, val) {\n this.options[key] = val;\n };\n\n return Options;\n });\n S2.define('select2/core', ['jquery', './options', './utils', './keys'], function ($, Options, Utils, KEYS) {\n var Select2 = function Select2($element, options) {\n if (Utils.GetData($element[0], 'select2') != null) {\n Utils.GetData($element[0], 'select2').destroy();\n }\n\n this.$element = $element;\n this.id = this._generateId($element);\n options = options || {};\n this.options = new Options(options, $element);\n\n Select2.__super__.constructor.call(this); // Set up the tabindex\n\n\n var tabindex = $element.attr('tabindex') || 0;\n Utils.StoreData($element[0], 'old-tabindex', tabindex);\n $element.attr('tabindex', '-1'); // Set up containers and adapters\n\n var DataAdapter = this.options.get('dataAdapter');\n this.dataAdapter = new DataAdapter($element, this.options);\n var $container = this.render();\n\n this._placeContainer($container);\n\n var SelectionAdapter = this.options.get('selectionAdapter');\n this.selection = new SelectionAdapter($element, this.options);\n this.$selection = this.selection.render();\n this.selection.position(this.$selection, $container);\n var DropdownAdapter = this.options.get('dropdownAdapter');\n this.dropdown = new DropdownAdapter($element, this.options);\n this.$dropdown = this.dropdown.render();\n this.dropdown.position(this.$dropdown, $container);\n var ResultsAdapter = this.options.get('resultsAdapter');\n this.results = new ResultsAdapter($element, this.options, this.dataAdapter);\n this.$results = this.results.render();\n this.results.position(this.$results, this.$dropdown); // Bind events\n\n var self = this; // Bind the container to all of the adapters\n\n this._bindAdapters(); // Register any DOM event handlers\n\n\n this._registerDomEvents(); // Register any internal event handlers\n\n\n this._registerDataEvents();\n\n this._registerSelectionEvents();\n\n this._registerDropdownEvents();\n\n this._registerResultsEvents();\n\n this._registerEvents(); // Set the initial state\n\n\n this.dataAdapter.current(function (initialData) {\n self.trigger('selection:update', {\n data: initialData\n });\n }); // Hide the original select\n\n $element.addClass('select2-hidden-accessible');\n $element.attr('aria-hidden', 'true'); // Synchronize any monitored attributes\n\n this._syncAttributes();\n\n Utils.StoreData($element[0], 'select2', this); // Ensure backwards compatibility with $element.data('select2').\n\n $element.data('select2', this);\n };\n\n Utils.Extend(Select2, Utils.Observable);\n\n Select2.prototype._generateId = function ($element) {\n var id = '';\n\n if ($element.attr('id') != null) {\n id = $element.attr('id');\n } else if ($element.attr('name') != null) {\n id = $element.attr('name') + '-' + Utils.generateChars(2);\n } else {\n id = Utils.generateChars(4);\n }\n\n id = id.replace(/(:|\\.|\\[|\\]|,)/g, '');\n id = 'select2-' + id;\n return id;\n };\n\n Select2.prototype._placeContainer = function ($container) {\n $container.insertAfter(this.$element);\n\n var width = this._resolveWidth(this.$element, this.options.get('width'));\n\n if (width != null) {\n $container.css('width', width);\n }\n };\n\n Select2.prototype._resolveWidth = function ($element, method) {\n var WIDTH = /^width:(([-+]?([0-9]*\\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i;\n\n if (method == 'resolve') {\n var styleWidth = this._resolveWidth($element, 'style');\n\n if (styleWidth != null) {\n return styleWidth;\n }\n\n return this._resolveWidth($element, 'element');\n }\n\n if (method == 'element') {\n var elementWidth = $element.outerWidth(false);\n\n if (elementWidth <= 0) {\n return 'auto';\n }\n\n return elementWidth + 'px';\n }\n\n if (method == 'style') {\n var style = $element.attr('style');\n\n if (typeof style !== 'string') {\n return null;\n }\n\n var attrs = style.split(';');\n\n for (var i = 0, l = attrs.length; i < l; i = i + 1) {\n var attr = attrs[i].replace(/\\s/g, '');\n var matches = attr.match(WIDTH);\n\n if (matches !== null && matches.length >= 1) {\n return matches[1];\n }\n }\n\n return null;\n }\n\n if (method == 'computedstyle') {\n var computedStyle = window.getComputedStyle($element[0]);\n return computedStyle.width;\n }\n\n return method;\n };\n\n Select2.prototype._bindAdapters = function () {\n this.dataAdapter.bind(this, this.$container);\n this.selection.bind(this, this.$container);\n this.dropdown.bind(this, this.$container);\n this.results.bind(this, this.$container);\n };\n\n Select2.prototype._registerDomEvents = function () {\n var self = this;\n this.$element.on('change.select2', function () {\n self.dataAdapter.current(function (data) {\n self.trigger('selection:update', {\n data: data\n });\n });\n });\n this.$element.on('focus.select2', function (evt) {\n self.trigger('focus', evt);\n });\n this._syncA = Utils.bind(this._syncAttributes, this);\n this._syncS = Utils.bind(this._syncSubtree, this);\n\n if (this.$element[0].attachEvent) {\n this.$element[0].attachEvent('onpropertychange', this._syncA);\n }\n\n var observer = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver;\n\n if (observer != null) {\n this._observer = new observer(function (mutations) {\n self._syncA();\n\n self._syncS(null, mutations);\n });\n\n this._observer.observe(this.$element[0], {\n attributes: true,\n childList: true,\n subtree: false\n });\n } else if (this.$element[0].addEventListener) {\n this.$element[0].addEventListener('DOMAttrModified', self._syncA, false);\n this.$element[0].addEventListener('DOMNodeInserted', self._syncS, false);\n this.$element[0].addEventListener('DOMNodeRemoved', self._syncS, false);\n }\n };\n\n Select2.prototype._registerDataEvents = function () {\n var self = this;\n this.dataAdapter.on('*', function (name, params) {\n self.trigger(name, params);\n });\n };\n\n Select2.prototype._registerSelectionEvents = function () {\n var self = this;\n var nonRelayEvents = ['toggle', 'focus'];\n this.selection.on('toggle', function () {\n self.toggleDropdown();\n });\n this.selection.on('focus', function (params) {\n self.focus(params);\n });\n this.selection.on('*', function (name, params) {\n if ($.inArray(name, nonRelayEvents) !== -1) {\n return;\n }\n\n self.trigger(name, params);\n });\n };\n\n Select2.prototype._registerDropdownEvents = function () {\n var self = this;\n this.dropdown.on('*', function (name, params) {\n self.trigger(name, params);\n });\n };\n\n Select2.prototype._registerResultsEvents = function () {\n var self = this;\n this.results.on('*', function (name, params) {\n self.trigger(name, params);\n });\n };\n\n Select2.prototype._registerEvents = function () {\n var self = this;\n this.on('open', function () {\n self.$container.addClass('select2-container--open');\n });\n this.on('close', function () {\n self.$container.removeClass('select2-container--open');\n });\n this.on('enable', function () {\n self.$container.removeClass('select2-container--disabled');\n });\n this.on('disable', function () {\n self.$container.addClass('select2-container--disabled');\n });\n this.on('blur', function () {\n self.$container.removeClass('select2-container--focus');\n });\n this.on('query', function (params) {\n if (!self.isOpen()) {\n self.trigger('open', {});\n }\n\n this.dataAdapter.query(params, function (data) {\n self.trigger('results:all', {\n data: data,\n query: params\n });\n });\n });\n this.on('query:append', function (params) {\n this.dataAdapter.query(params, function (data) {\n self.trigger('results:append', {\n data: data,\n query: params\n });\n });\n });\n this.on('keypress', function (evt) {\n var key = evt.which;\n\n if (self.isOpen()) {\n if (key === KEYS.ESC || key === KEYS.TAB || key === KEYS.UP && evt.altKey) {\n self.close(evt);\n evt.preventDefault();\n } else if (key === KEYS.ENTER) {\n self.trigger('results:select', {});\n evt.preventDefault();\n } else if (key === KEYS.SPACE && evt.ctrlKey) {\n self.trigger('results:toggle', {});\n evt.preventDefault();\n } else if (key === KEYS.UP) {\n self.trigger('results:previous', {});\n evt.preventDefault();\n } else if (key === KEYS.DOWN) {\n self.trigger('results:next', {});\n evt.preventDefault();\n }\n } else {\n if (key === KEYS.ENTER || key === KEYS.SPACE || key === KEYS.DOWN && evt.altKey) {\n self.open();\n evt.preventDefault();\n }\n }\n });\n };\n\n Select2.prototype._syncAttributes = function () {\n this.options.set('disabled', this.$element.prop('disabled'));\n\n if (this.isDisabled()) {\n if (this.isOpen()) {\n this.close();\n }\n\n this.trigger('disable', {});\n } else {\n this.trigger('enable', {});\n }\n };\n\n Select2.prototype._isChangeMutation = function (evt, mutations) {\n var changed = false;\n var self = this; // Ignore any mutation events raised for elements that aren't options or\n // optgroups. This handles the case when the select element is destroyed\n\n if (evt && evt.target && evt.target.nodeName !== 'OPTION' && evt.target.nodeName !== 'OPTGROUP') {\n return;\n }\n\n if (!mutations) {\n // If mutation events aren't supported, then we can only assume that the\n // change affected the selections\n changed = true;\n } else if (mutations.addedNodes && mutations.addedNodes.length > 0) {\n for (var n = 0; n < mutations.addedNodes.length; n++) {\n var node = mutations.addedNodes[n];\n\n if (node.selected) {\n changed = true;\n }\n }\n } else if (mutations.removedNodes && mutations.removedNodes.length > 0) {\n changed = true;\n } else if ($.isArray(mutations)) {\n $.each(mutations, function (evt, mutation) {\n if (self._isChangeMutation(evt, mutation)) {\n // We've found a change mutation.\n // Let's escape from the loop and continue\n changed = true;\n return false;\n }\n });\n }\n\n return changed;\n };\n\n Select2.prototype._syncSubtree = function (evt, mutations) {\n var changed = this._isChangeMutation(evt, mutations);\n\n var self = this; // Only re-pull the data if we think there is a change\n\n if (changed) {\n this.dataAdapter.current(function (currentData) {\n self.trigger('selection:update', {\n data: currentData\n });\n });\n }\n };\n /**\n * Override the trigger method to automatically trigger pre-events when\n * there are events that can be prevented.\n */\n\n\n Select2.prototype.trigger = function (name, args) {\n var actualTrigger = Select2.__super__.trigger;\n var preTriggerMap = {\n 'open': 'opening',\n 'close': 'closing',\n 'select': 'selecting',\n 'unselect': 'unselecting',\n 'clear': 'clearing'\n };\n\n if (args === undefined) {\n args = {};\n }\n\n if (name in preTriggerMap) {\n var preTriggerName = preTriggerMap[name];\n var preTriggerArgs = {\n prevented: false,\n name: name,\n args: args\n };\n actualTrigger.call(this, preTriggerName, preTriggerArgs);\n\n if (preTriggerArgs.prevented) {\n args.prevented = true;\n return;\n }\n }\n\n actualTrigger.call(this, name, args);\n };\n\n Select2.prototype.toggleDropdown = function () {\n if (this.isDisabled()) {\n return;\n }\n\n if (this.isOpen()) {\n this.close();\n } else {\n this.open();\n }\n };\n\n Select2.prototype.open = function () {\n if (this.isOpen()) {\n return;\n }\n\n if (this.isDisabled()) {\n return;\n }\n\n this.trigger('query', {});\n };\n\n Select2.prototype.close = function (evt) {\n if (!this.isOpen()) {\n return;\n }\n\n this.trigger('close', {\n originalEvent: evt\n });\n };\n /**\n * Helper method to abstract the \"enabled\" (not \"disabled\") state of this\n * object.\n *\n * @return {true} if the instance is not disabled.\n * @return {false} if the instance is disabled.\n */\n\n\n Select2.prototype.isEnabled = function () {\n return !this.isDisabled();\n };\n /**\n * Helper method to abstract the \"disabled\" state of this object.\n *\n * @return {true} if the disabled option is true.\n * @return {false} if the disabled option is false.\n */\n\n\n Select2.prototype.isDisabled = function () {\n return this.options.get('disabled');\n };\n\n Select2.prototype.isOpen = function () {\n return this.$container.hasClass('select2-container--open');\n };\n\n Select2.prototype.hasFocus = function () {\n return this.$container.hasClass('select2-container--focus');\n };\n\n Select2.prototype.focus = function (data) {\n // No need to re-trigger focus events if we are already focused\n if (this.hasFocus()) {\n return;\n }\n\n this.$container.addClass('select2-container--focus');\n this.trigger('focus', {});\n };\n\n Select2.prototype.enable = function (args) {\n if (this.options.get('debug') && window.console && console.warn) {\n console.warn('Select2: The `select2(\"enable\")` method has been deprecated and will' + ' be removed in later Select2 versions. Use $element.prop(\"disabled\")' + ' instead.');\n }\n\n if (args == null || args.length === 0) {\n args = [true];\n }\n\n var disabled = !args[0];\n this.$element.prop('disabled', disabled);\n };\n\n Select2.prototype.data = function () {\n if (this.options.get('debug') && arguments.length > 0 && window.console && console.warn) {\n console.warn('Select2: Data can no longer be set using `select2(\"data\")`. You ' + 'should consider setting the value instead using `$element.val()`.');\n }\n\n var data = [];\n this.dataAdapter.current(function (currentData) {\n data = currentData;\n });\n return data;\n };\n\n Select2.prototype.val = function (args) {\n if (this.options.get('debug') && window.console && console.warn) {\n console.warn('Select2: The `select2(\"val\")` method has been deprecated and will be' + ' removed in later Select2 versions. Use $element.val() instead.');\n }\n\n if (args == null || args.length === 0) {\n return this.$element.val();\n }\n\n var newVal = args[0];\n\n if ($.isArray(newVal)) {\n newVal = $.map(newVal, function (obj) {\n return obj.toString();\n });\n }\n\n this.$element.val(newVal).trigger('input').trigger('change');\n };\n\n Select2.prototype.destroy = function () {\n this.$container.remove();\n\n if (this.$element[0].detachEvent) {\n this.$element[0].detachEvent('onpropertychange', this._syncA);\n }\n\n if (this._observer != null) {\n this._observer.disconnect();\n\n this._observer = null;\n } else if (this.$element[0].removeEventListener) {\n this.$element[0].removeEventListener('DOMAttrModified', this._syncA, false);\n this.$element[0].removeEventListener('DOMNodeInserted', this._syncS, false);\n this.$element[0].removeEventListener('DOMNodeRemoved', this._syncS, false);\n }\n\n this._syncA = null;\n this._syncS = null;\n this.$element.off('.select2');\n this.$element.attr('tabindex', Utils.GetData(this.$element[0], 'old-tabindex'));\n this.$element.removeClass('select2-hidden-accessible');\n this.$element.attr('aria-hidden', 'false');\n Utils.RemoveData(this.$element[0]);\n this.$element.removeData('select2');\n this.dataAdapter.destroy();\n this.selection.destroy();\n this.dropdown.destroy();\n this.results.destroy();\n this.dataAdapter = null;\n this.selection = null;\n this.dropdown = null;\n this.results = null;\n };\n\n Select2.prototype.render = function () {\n var $container = $('' + '' + '' + '');\n $container.attr('dir', this.options.get('dir'));\n this.$container = $container;\n this.$container.addClass('select2-container--' + this.options.get('theme'));\n Utils.StoreData($container[0], 'element', this.$element);\n return $container;\n };\n\n return Select2;\n });\n S2.define('select2/compat/utils', ['jquery'], function ($) {\n function syncCssClasses($dest, $src, adapter) {\n var classes,\n replacements = [],\n adapted;\n classes = $.trim($dest.attr('class'));\n\n if (classes) {\n classes = '' + classes; // for IE which returns object\n\n $(classes.split(/\\s+/)).each(function () {\n // Save all Select2 classes\n if (this.indexOf('select2-') === 0) {\n replacements.push(this);\n }\n });\n }\n\n classes = $.trim($src.attr('class'));\n\n if (classes) {\n classes = '' + classes; // for IE which returns object\n\n $(classes.split(/\\s+/)).each(function () {\n // Only adapt non-Select2 classes\n if (this.indexOf('select2-') !== 0) {\n adapted = adapter(this);\n\n if (adapted != null) {\n replacements.push(adapted);\n }\n }\n });\n }\n\n $dest.attr('class', replacements.join(' '));\n }\n\n return {\n syncCssClasses: syncCssClasses\n };\n });\n S2.define('select2/compat/containerCss', ['jquery', './utils'], function ($, CompatUtils) {\n // No-op CSS adapter that discards all classes by default\n function _containerAdapter(clazz) {\n return null;\n }\n\n function ContainerCSS() {}\n\n ContainerCSS.prototype.render = function (decorated) {\n var $container = decorated.call(this);\n var containerCssClass = this.options.get('containerCssClass') || '';\n\n if ($.isFunction(containerCssClass)) {\n containerCssClass = containerCssClass(this.$element);\n }\n\n var containerCssAdapter = this.options.get('adaptContainerCssClass');\n containerCssAdapter = containerCssAdapter || _containerAdapter;\n\n if (containerCssClass.indexOf(':all:') !== -1) {\n containerCssClass = containerCssClass.replace(':all:', '');\n var _cssAdapter = containerCssAdapter;\n\n containerCssAdapter = function containerCssAdapter(clazz) {\n var adapted = _cssAdapter(clazz);\n\n if (adapted != null) {\n // Append the old one along with the adapted one\n return adapted + ' ' + clazz;\n }\n\n return clazz;\n };\n }\n\n var containerCss = this.options.get('containerCss') || {};\n\n if ($.isFunction(containerCss)) {\n containerCss = containerCss(this.$element);\n }\n\n CompatUtils.syncCssClasses($container, this.$element, containerCssAdapter);\n $container.css(containerCss);\n $container.addClass(containerCssClass);\n return $container;\n };\n\n return ContainerCSS;\n });\n S2.define('select2/compat/dropdownCss', ['jquery', './utils'], function ($, CompatUtils) {\n // No-op CSS adapter that discards all classes by default\n function _dropdownAdapter(clazz) {\n return null;\n }\n\n function DropdownCSS() {}\n\n DropdownCSS.prototype.render = function (decorated) {\n var $dropdown = decorated.call(this);\n var dropdownCssClass = this.options.get('dropdownCssClass') || '';\n\n if ($.isFunction(dropdownCssClass)) {\n dropdownCssClass = dropdownCssClass(this.$element);\n }\n\n var dropdownCssAdapter = this.options.get('adaptDropdownCssClass');\n dropdownCssAdapter = dropdownCssAdapter || _dropdownAdapter;\n\n if (dropdownCssClass.indexOf(':all:') !== -1) {\n dropdownCssClass = dropdownCssClass.replace(':all:', '');\n var _cssAdapter = dropdownCssAdapter;\n\n dropdownCssAdapter = function dropdownCssAdapter(clazz) {\n var adapted = _cssAdapter(clazz);\n\n if (adapted != null) {\n // Append the old one along with the adapted one\n return adapted + ' ' + clazz;\n }\n\n return clazz;\n };\n }\n\n var dropdownCss = this.options.get('dropdownCss') || {};\n\n if ($.isFunction(dropdownCss)) {\n dropdownCss = dropdownCss(this.$element);\n }\n\n CompatUtils.syncCssClasses($dropdown, this.$element, dropdownCssAdapter);\n $dropdown.css(dropdownCss);\n $dropdown.addClass(dropdownCssClass);\n return $dropdown;\n };\n\n return DropdownCSS;\n });\n S2.define('select2/compat/initSelection', ['jquery'], function ($) {\n function InitSelection(decorated, $element, options) {\n if (options.get('debug') && window.console && console.warn) {\n 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');\n }\n\n this.initSelection = options.get('initSelection');\n this._isInitialized = false;\n decorated.call(this, $element, options);\n }\n\n InitSelection.prototype.current = function (decorated, callback) {\n var self = this;\n\n if (this._isInitialized) {\n decorated.call(this, callback);\n return;\n }\n\n this.initSelection.call(null, this.$element, function (data) {\n self._isInitialized = true;\n\n if (!$.isArray(data)) {\n data = [data];\n }\n\n callback(data);\n });\n };\n\n return InitSelection;\n });\n S2.define('select2/compat/inputData', ['jquery', '../utils'], function ($, Utils) {\n function InputData(decorated, $element, options) {\n this._currentData = [];\n this._valueSeparator = options.get('valueSeparator') || ',';\n\n if ($element.prop('type') === 'hidden') {\n if (options.get('debug') && console && console.warn) {\n 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 `\", {\n class: \"ui-timepicker-select\"\n });\n\n if (self.attr('name')) {\n list.attr('name', 'ui-timepicker-' + self.attr('name'));\n }\n\n var wrapped_list = list;\n } else {\n list = $(\"