1/******/ (() => { // webpackBootstrap 2/******/ var __webpack_modules__ = ({ 3
4/***/ "./js/file-multi.js": 5/*!**************************!*\ 6 !*** ./js/file-multi.js ***! 7 \**************************/ 8/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 9 10"use strict"; 11__webpack_require__.r(__webpack_exports__); 12/* harmony export */ __webpack_require__.d(__webpack_exports__, { 13/* harmony export */ initFileUpload: () => (/* binding */ initFileUpload) 14/* harmony export */ }); 15/* provided dependency */ var $ = __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js"); 16var MultiFileUploader = function (element, options) { 17 this.options = options; 18 this.$container = $(element); 19 this.$el = $('.content', element); 20 this.$clickable = $('.clickable', element); 21 this.$template = $('.template', element); 22 this.$fileHolder = $('div.img', this.$el); 23 var acceptedFiles = this.options.fileTypes; 24 if (acceptedFiles == '*') acceptedFiles = null; 25 var maxFiles = this.options.maxFiles == '1' ? 1 : null; 26 this.dropzone = new Dropzone(this.$container.get(0), { 27 url: window.location, 28 uploadHanlder: 'renderForm::onUploadFile', 29 clickable: this.$clickable.get(0), 30 previewsContainer: this.$el.get(0), 31 previewTemplate: this.$template.html(), 32 acceptedFiles: acceptedFiles, 33 maxFilesize: this.options.maxSize, 34 paramName: 'file_data', 35 maxFiles: maxFiles, 36 dictFileTooBig: this.options.dictFileTooBig, 37 dictDefaultMessage: this.options.dictDefaultMessage, 38 dictFallbackMessage: this.options.dictFallbackMessage, 39 dictFallbackText: this.options.dictFallbackText, 40 dictInvalidFileType: this.options.dictInvalidFileType, 41 dictResponseError: this.options.dictResponseError, 42 dictCancelUpload: this.options.dictCancelUpload, 43 dictCancelUploadConfirmation: this.options.dictCancelUploadConfirmation, 44 dictRemoveFile: this.options.dictRemoveFile, 45 dictRemoveFileConfirmation: null, 46 dictMaxFilesExceeded: this.options.dictMaxFilesExceeded 47 }); 48 var self = this; 49 this.dropzone.on('error', function (file, error) { 50 alert(error); 51 }); 52 this.dropzone.on('sending', function (file, xhr, formData) { 53 formData.append('fieldId', self.options.fieldId); 54 self.addExtraFormData(formData); 55 }); 56 this.dropzone.on('success', function (file, response) { 57 self.updateFile(file, response); 58 }); 59 this.dropzone.on('removedfile', function (file) { 60 console.log('MultiFileUploader.removedfile'); 61 self.removeFile(file); 62 }); 63}; 64MultiFileUploader.prototype.addExtraFormData = function (formData) { 65 if (this.options.extraData) { 66 $.each(this.options.extraData, function (name, value) { 67 formData.append(name, value); 68 }); 69 } 70 var $form = this.$el.closest('form'); 71 if ($form.length > 0) { 72 $.each($form.serializeArray(), function (index, field) { 73 formData.append(field.name, field.value); 74 }); 75 } 76}; 77MultiFileUploader.prototype.updateFile = function (file, response) { 78 var $preview = $(file.previewElement); 79 if (response.id) { 80 $preview.data('fileId', response.id); 81 82 // No thumbs is returned. 83 //$img = $('.thumbnail', $preview) 84 //$img.attr('src', response.thumb) 85 } 86}; 87MultiFileUploader.prototype.removeFile = function ($file) { 88 var $preview = $($file.previewElement); 89 var fileId = $preview.data('fileId'); 90 if (fileId) { 91 var request = this.$container.closest('form').request(this.options.handler, { 92 data: { 93 fileId: fileId, 94 mode: 'delete' 95 }, 96 redirect: false 97 }); 98 } 99}; 100MultiFileUploader.DEFAULTS = { 101 handler: 'onUpdateFile', 102 maxSize: null, 103 fileTypes: null 104}; 105var old = $.fn.multiFileUploader; 106$.fn.multiFileUploader = function (option) { 107 return this.each(function () { 108 var $this = $(this); 109 var data = $this.data('oc.multiFileUploader'); 110 var options = $.extend({}, MultiFileUploader.DEFAULTS, $this.data(), typeof option == 'object' && option); 111 if (!data) $this.data('oc.multiFileUploader', data = new MultiFileUploader(this, options)); 112 if (typeof option == 'string') data[option].call($this); 113 }); 114}; 115$.fn.multiFileUploader.Constructor = MultiFileUploader; 116$.fn.multiFileUploader.noConflict = function () { 117 $.fn.multiFileUploader = old; 118 return this; 119}; 120function initFileUpload(classeContainerFormBuilder) {
121 $(classeContainerFormBuilder + ' [data-control=multi-file-uploader]').multiFileUploader(); 122} 123 124/***/ }), 125
126/***/ "./js/formbuilder.js": 127/*!***************************!*\ 128 !*** ./js/formbuilder.js ***! 129 \***************************/ 130/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 131 132"use strict"; 133__webpack_require__.r(__webpack_exports__); 134/* harmony export */ __webpack_require__.d(__webpack_exports__, { 135/* harmony export */ OBSERVER: () => (/* binding */ OBSERVER), 136/* harmony export */ initFormBuilder: () => (/* binding */ initFormBuilder) 137/* harmony export */ }); 138/* harmony import */ var _vendor_observer_min__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./vendor/observer.min */ "./js/vendor/observer.min.js"); 139/* harmony import */ var _vendor_observer_min__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_vendor_observer_min__WEBPACK_IMPORTED_MODULE_0__); 140/* harmony import */ var _functions_form__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./functions/form */ "./js/functions/form.js"); 141/* harmony import */ var _functions_masks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./functions/masks */ "./js/functions/masks.js"); 142/* harmony import */ var _functions_conditions__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./functions/conditions */ "./js/functions/conditions.js"); 143/* harmony import */ var _functions_limitedCheckboxLists__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./functions/limitedCheckboxLists */ "./js/functions/limitedCheckboxLists.js"); 144/* harmony import */ var _functions_repeaters__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./functions/repeaters */ "./js/functions/repeaters.js"); 145/* harmony import */ var _file_multi__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./file-multi */ "./js/file-multi.js"); 146 147 148 149 150 151 152 153const OBSERVER = _vendor_observer_min__WEBPACK_IMPORTED_MODULE_0___default().getInstance(); 154addEventListener('DOMContentLoaded', () => { 155 initFormBuilder(); 156}); 157const initFormBuilder = (classeContainerFormBuilder = '.dynamicForm') => { 158 (0,_functions_form__WEBPACK_IMPORTED_MODULE_1__.formsPackage)(classeContainerFormBuilder); 159 (0,_functions_masks__WEBPACK_IMPORTED_MODULE_2__["default"])(); 160 (0,_file_multi__WEBPACK_IMPORTED_MODULE_6__.initFileUpload)(classeContainerFormBuilder); 161 (0,_functions_conditions__WEBPACK_IMPORTED_MODULE_3__["default"])(); 162 (0,_functions_limitedCheckboxLists__WEBPACK_IMPORTED_MODULE_4__["default"])(); 163 (0,_functions_repeaters__WEBPACK_IMPORTED_MODULE_5__["default"])(); 164}; 165window.initFormBuilder = initFormBuilder; 166 167/***/ }), 168
169/***/ "./js/functions/addressGoogle.js": 170/*!***************************************!*\ 171 !*** ./js/functions/addressGoogle.js ***! 172 \***************************************/ 173/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 174 175"use strict"; 176__webpack_require__.r(__webpack_exports__); 177/* harmony export */ __webpack_require__.d(__webpack_exports__, { 178/* harmony export */ "default": () => (/* binding */ AddressGoogle) 179/* harmony export */ }); 180/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js"); 181/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__); 182 183class AddressGoogle { 184 constructor(autocompleteField) { 185 this.autocompleteField = autocompleteField; 186 this.latitudeField = null; 187 this.longitudeField = null; 188 this.googleAutocomplete = null; 189 this.init(); 190 } 191 init() { 192 if (!this.autocompleteField) { 193 return; 194 } 195 this.latitudeField = this.autocompleteField.getElementsByClassName('localisation_lat'); 196 this.longitudeField = this.autocompleteField.getElementsByClassName('localisation_long'); 197 this.googleAutocomplete = this.initGoogle(); 198 if (this.latitudeField && this.longitudeField) { 199 // mise à jour des champs latitude et longitude si lâutilisateur clique 200 this.googleAutocomplete.addListener('place_changed', this.clicked.bind(this)); 201 202 // si lâutilisateur tape une adresse, à la main, suite au click ou pas, on vide les champs latitude et longitude 203 // câest que lâadresse nâest pas juste pour lui 204 this.autocompleteField.addEventListener('keyup', this.clearPositionField.bind(this)); 205 } 206 } 207 208 // initialisation Google 209 initGoogle() { 210 return new google.maps.places.Autocomplete(this.autocompleteField, { 211 types: ['geocode'], 212 componentRestrictions: { 213 country: 'ca' 214 } 215 }); 216 } 217 geolocate() { 218 if (navigator.geolocation) { 219 navigator.geolocation.getCurrentPosition(function (position) { 220 const geolocation = { 221 lat: position.coords.latitude, 222 lng: position.coords.longitude 223 }; 224 this.restrictArea(geolocation, position.coords.accuracy); 225 }); 226 } 227 } 228 229 // restriction à un cercle centré sur lâutilisateur 230 restrictArea(center, radius) { 231 const circle = new google.maps.Circle({ 232 center, 233 radius 234 }); 235 this.googleAutocomplete.setBounds(circle.getBounds()); 236 } 237 238 // autocompletion au click 239 clicked() { 240 const place = this.googleAutocomplete.getPlace(); 241 242 // recuperation latitude et longitude et ajout dans les champs 243 this.latitudeField.value = place.geometry.location.lat(); 244 this.longitudeField.value = place.geometry.location.lng(); 245 this.autocompleteField.value = place.formatted_address; 246 } 247 248 // vide les champs latitude et longitude 249 clearPositionField() { 250 this.latitudeField.value = null; 251 this.longitudeField.value = null; 252 } 253} 254 255/***/ }), 256
257/***/ "./js/functions/conditions.js": 258/*!************************************!*\ 259 !*** ./js/functions/conditions.js ***! 260 \************************************/ 261/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 262 263"use strict"; 264__webpack_require__.r(__webpack_exports__); 265/* harmony export */ __webpack_require__.d(__webpack_exports__, { 266/* harmony export */ "default": () => (/* binding */ setConditions) 267/* harmony export */ }); 268/* harmony import */ var _formbuilder__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../formbuilder */ "./js/formbuilder.js"); 269/* provided dependency */ var $ = __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js"); 270 271/* global $ */ 272 273/* 274 Détermine si une condition est comblé pour le type de champs checkboxlist 275 */ 276function matchCheckboxlistCondition(values, operator, conditionValues) { 277 let hide = true; 278 const conditionArray = JSON.parse(conditionValues); 279 let matchCount = 0; 280 values.forEach(value => { 281 if (conditionArray.includes(value)) { 282 matchCount += 1; 283 } 284 }); 285 switch (operator) { 286 case 'only_one': 287 if (matchCount === 1 && values.length === 1) { 288 hide = false;
289 } 290 break; 291 case 'at_least_one': 292 if (matchCount >= 1) { 293 hide = false; 294 } 295 break; 296 case 'at_least_all': 297 if (matchCount === conditionArray.length) { 298 hide = false; 299 } 300 break; 301 case 'none': 302 if (matchCount === 0) { 303 hide = false; 304 } 305 break; 306 default: 307 // exact 308 if (JSON.stringify(values) === conditionValues) { 309 hide = false; 310 } 311 } 312 return hide; 313} 314 315/* 316 Détermine si une condition est comblé 317 */ 318function matchCondition(conditionId, target, operator, conditionValue) { 319 let hide = true; 320 321 // On va chercher le type de champs 322 const type = target.getAttribute(`data-condition-field-type_${conditionId}`); 323 switch (type) { 324 case 'dropdown': 325 const select = $(target).find('select')[0]; // eslint-disable-line no-case-declarations 326 if (operator === 'equal' && select.value === conditionValue || operator === 'not_equal' && select.value !== conditionValue) { 327 hide = false; 328 } 329 break; 330 case 'radiolist': 331 const radioInputs = $(target).find('input'); // eslint-disable-line no-case-declarations 332 let currentValue = null; // eslint-disable-line no-case-declarations 333 for (let i = 0; i < radioInputs.length; i += 1) { 334 if (radioInputs[i].checked) { 335 currentValue = radioInputs[i].value; 336 } 337 } 338 if (operator === 'equal' && currentValue === conditionValue || operator === 'not_equal' && currentValue !== conditionValue) { 339 hide = false;
340 } 341 break; 342 case 'checkboxlist': 343 const checkboxInputs = $(target).find('input'); // eslint-disable-line no-case-declarations 344 let currentValues = []; // eslint-disable-line no-case-declarations, prefer-const 345 for (let i = 0; i < checkboxInputs.length; i += 1) { 346 if (checkboxInputs[i].checked) { 347 currentValues.push(checkboxInputs[i].value); 348 } 349 } 350 hide = matchCheckboxlistCondition(currentValues, operator, conditionValue); 351 break; 352 default: 353 // Checkbox 354 const checkbox = $(target).find('input')[0]; // eslint-disable-line no-case-declarations 355 if (operator === 'equal' && checkbox.checked || operator === 'not_equal' && checkbox.checked === false) { 356 hide = false; 357 } 358 } 359 return hide; 360} 361 362/* 363 Cache les champs conditionnels qui ne devrait pas être affichés selon les valeurs de départ des champs sources 364 */ 365function initHiddenFields() { 366 // On prend tous les champs qui sont la source d'une condition 367 const sourceFields = document.querySelectorAll('[data-condition-ids]'); 368 for (let i = 0; i < sourceFields.length; i += 1) { 369 const sourceConditionIds = sourceFields[i].dataset.conditionIds; 370 const sourceConditionArray = sourceConditionIds.split(','); 371 for (let k = 0; k < sourceConditionArray.length; k += 1) { 372 const value = sourceFields[i].getAttribute(`data-condition-value_${sourceConditionArray[k]}`); 373 const operator = sourceFields[i].getAttribute(`data-condition-operator_${sourceConditionArray[k]}`); 374 375 // On ne veux pas que les conditions des champs invisibles s'appliquent 376 let hide = true; 377 if (sourceFields[i].style.display === '' || sourceFields[i].style.display === 'block') { 378 hide = matchCondition(sourceConditionArray[k], sourceFields[i], operator, value); 379 } 380 if (hide) { 381 const fieldsToHide = document.querySelectorAll(`[data-parent-condition-id="${sourceConditionArray[k]}"]`); 382 for (let j = 0; j < fieldsToHide.length; j += 1) { 383 fieldsToHide[j].style.display = 'none'; 384 } 385 } 386 } 387 } 388} 389 390/* 391 Permet aux champs sources de type 'Select' de trigger un changement 392 */ 393function changeSelect(select) { 394 const DROPDOWN = select; 395 function triggerChange() { 396 const e = new Event('change', { 397 bubbles: true 398 }); 399 DROPDOWN.dispatchEvent(e); 400 } 401 if (DROPDOWN) { 402 const OPTIONS = DROPDOWN.nextElementSibling.querySelectorAll('.dropdown-option'); 403 _formbuilder__WEBPACK_IMPORTED_MODULE_0__.OBSERVER.add({ 404 name: 'triggerChange', 405 event: 'click', 406 target: OPTIONS, 407 function: triggerChange 408 }); 409 _formbuilder__WEBPACK_IMPORTED_MODULE_0__.OBSERVER.on('triggerChange'); 410 } 411} 412function initSelects() { 413 const triggers = document.querySelectorAll('[data-condition-ids]'); 414 triggers.forEach(trigger => { 415 const select = $(trigger).find('select'); 416 if (select.length) { 417 changeSelect(select[0]); 418 } 419 }); 420} 421 422/* 423 Comportement d'ajustement de la visibilité des champs 424 hideAll : Paramètre qui force la disparition des champs (dans le contexte qu'un champs source de condition est caché) 425 */ 426function adjustFields(e, hideAll = false) { 427 // On va chercher le champs (dépend si c'est l'observer ou le récursif qui fait le call) 428 const field = e.currentTarget ? e.currentTarget : e; 429 const fieldConditionIds = field.dataset.conditionIds; 430 const fieldConditionArray = fieldConditionIds.split(','); 431 for (let k = 0; k < fieldConditionArray.length; k += 1) { 432 const value = field.getAttribute(`data-condition-value_${fieldConditionArray[k]}`); 433 const operator = field.getAttribute(`data-condition-operator_${fieldConditionArray[k]}`); 434 const hide = hideAll ? true : matchCondition(fieldConditionArray[k], field, operator, value); 435 const fieldsToAdjust = document.querySelectorAll(`[data-parent-condition-id="${fieldConditionArray[k]}"]`); 436 for (let i = 0; i < fieldsToAdjust.length; i += 1) { 437 if (hide) { 438 $(fieldsToAdjust[i]).hide(); 439 } else { 440 $(fieldsToAdjust[i]).show(); 441 } 442 443 // Si le champs affecté est la source d'une condition 444 if (fieldsToAdjust[i].dataset.conditionIds) { 445 adjustFields(fieldsToAdjust[i], hide); 446 } 447 } 448 } 449} 450 451/* 452 Pour mettre des observers sur les champs sources 453 */ 454function setObservers() { 455 _formbuilder__WEBPACK_IMPORTED_MODULE_0__.OBSERVER.add({ 456 name: 'conditions', 457 event: 'change', 458 target: '[data-condition-ids]', 459 function: adjustFields 460 }); 461 _formbuilder__WEBPACK_IMPORTED_MODULE_0__.OBSERVER.on('conditions'); 462} 463function setConditions() { 464 initHiddenFields(); 465 initSelects(); 466 setObservers(); 467} 468 469/***/ }), 470
471/***/ "./js/functions/form.js": 472/*!******************************!*\ 473 !*** ./js/functions/form.js ***! 474 \******************************/ 475/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 476 477"use strict"; 478__webpack_require__.r(__webpack_exports__); 479/* harmony export */ __webpack_require__.d(__webpack_exports__, { 480/* harmony export */ calendarInput: () => (/* binding */ calendarInput), 481/* harmony export */ formsPackage: () => (/* binding */ formsPackage), 482/* harmony export */ inputsAndTextareaLabel: () => (/* binding */ inputsAndTextareaLabel), 483/* harmony export */ tailSelect: () => (/* binding */ tailSelect), 484/* harmony export */ textareaHeight: () => (/* binding */ textareaHeight), 485/* harmony export */ timepicker: () => (/* binding */ timepicker) 486/* harmony export */ }); 487/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js"); 488/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__); 489/* harmony import */ var vanillajs_datepicker__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vanillajs-datepicker */ "./node_modules/vanillajs-datepicker/js/main.js"); 490/* harmony import */ var eonasdan_bootstrap_datetimepicker__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! eonasdan-bootstrap-datetimepicker */ "./node_modules/eonasdan-bootstrap-datetimepicker/src/js/bootstrap-datetimepicker.js"); 491/* harmony import */ var eonasdan_bootstrap_datetimepicker__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(eonasdan_bootstrap_datetimepicker__WEBPACK_IMPORTED_MODULE_2__); 492/* harmony import */ var _formbuilder__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../formbuilder */ "./js/formbuilder.js"); 493/* harmony import */ var _addressGoogle__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./addressGoogle */ "./js/functions/addressGoogle.js"); 494/* harmony import */ var _helper__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./helper */ "./js/functions/helper.js"); 495 496 497 498 499 500 501 502// Ajoute un attribut ayant la valeur du champ 503function inputsAndTextareaLabel(classeContainerFormBuilder) { 504 // eslint-disable-next-line max-len 505 const elementsString = `${classeContainerFormBuilder} input[type="text"],${classeContainerFormBuilder} input[type="tel"],${classeContainerFormBuilder} input[type="email"],${classeContainerFormBuilder} textarea`; 506 const formElements = document.querySelectorAll(elementsString); 507 const formElementsLength = formElements.length; 508 let i; 509 for (i = 0; i < formElementsLength; i += 1) { 510 formElements[i].parentNode.parentNode.dataset[`${formElements[i].tagName.toLowerCase()}value`] = formElements[i].value; 511 } 512 const setValue = e => { 513 e.target.parentNode.parentNode.dataset[`${e.target.tagName.toLowerCase()}value`] = e.target.value; 514 }; 515 _formbuilder__WEBPACK_IMPORTED_MODULE_3__.OBSERVER.add({ 516 name: 'inputsAndTextareaLabel', 517 event: 'input', 518 target: elementsString, 519 function: setValue 520 }); 521 _formbuilder__WEBPACK_IMPORTED_MODULE_3__.OBSERVER.on('inputsAndTextareaLabel'); 522} 523 524// Modification de la hauteur d'un textarea selon son contenu 525function textareaHeight(classeContainerFormBuilder) { 526 const onInput = e => { 527 e.currentTarget.style.height = '5px'; 528 e.currentTarget.style.height = `${e.currentTarget.scrollHeight <= 43 ? 43 : e.currentTarget.scrollHeight}px`; 529 }; 530 _formbuilder__WEBPACK_IMPORTED_MODULE_3__.OBSERVER.add({ 531 name: 'textareaHeight', 532 event: 'input', 533 target: `${classeContainerFormBuilder} textarea`, 534 function: onInput 535 }); 536 _formbuilder__WEBPACK_IMPORTED_MODULE_3__.OBSERVER.on('textareaHeight'); 537} 538 539// Création du custom select (doc: https://github.com/pytesNET/tail.select) 540function tailSelect(classeContainerFormBuilder) { 541 const pathImagesIcons = '/plugins/blanko/forms/assets/images/icons/'; 542 if (!(0,_helper__WEBPACK_IMPORTED_MODULE_5__["default"])()) { 543 // eslint-disable-next-line no-undef 544 tail.select(`${classeContainerFormBuilder} select`, { 545 animate: false 546 }); 547 } 548 549 // Ajouter les images dans les options du Tail Select 550 let i; 551 let j; 552 const selectBoxes = document.querySelectorAll(`${classeContainerFormBuilder} .tail-select`); 553 const selectBoxesLength = selectBoxes.length; 554 555 // Looper dans chaques boites de sélections Tail Select 556 for (i = 0; i < selectBoxesLength; i += 1) { 557 const tailSelectItems = selectBoxes[i].querySelectorAll('.dropdown-option'); 558 const nativeSelect = selectBoxes[i].previousElementSibling; 559 const nativeSelectItems = nativeSelect.querySelectorAll('option:not(:first-child)'); 560 561 // Ajouter l'icone en symbole 562 const svgElem = document.createElementNS('http://www.w3.org/2000/svg', 'svg'); 563 const useElem = document.createElementNS('http://www.w3.org/2000/svg', 'use'); 564 useElem.setAttributeNS('http://www.w3.org/1999/xlink', 'xlink:href', `${pathImagesIcons}symbols.svg#ico-pointer`); 565 svgElem.appendChild(useElem); 566 selectBoxes[i].appendChild(svgElem); 567 568 // Looper dans chaques item du Tail Select 569 for (j = 0; j < nativeSelectItems.length; j += 1) { 570 const imgPath = nativeSelectItems[j].dataset.image; 571 if (typeof imgPath !== 'undefined' && imgPath !== '') { 572 const newImage = document.createElement('img'); 573 newImage.src = imgPath; 574 tailSelectItems[j].classList.add('has-image'); 575 tailSelectItems[j].appendChild(newImage); 576 } 577 } 578 } 579} 580 581// Initialisation du champ de timepicker 582function timepicker(classeContainerFormBuilder) { 583 if (!(0,_helper__WEBPACK_IMPORTED_MODULE_5__["default"])()) { 584 jquery__WEBPACK_IMPORTED_MODULE_0___default()(`${classeContainerFormBuilder} .form-control.timepicker`).datetimepicker({ 585 format: 'HH:mm', 586 icons: { 587 up: 'fa fa-chevron-up', 588 down: 'fa fa-chevron-down' 589 } 590 }); 591 } 592} 593 594// Initialisation du champ de calendrier 595function calendarInput(classeContainerFormBuilder) { 596 // Si on est pas en mobile, mettre le calendrier en JS 597 if (!(0,_helper__WEBPACK_IMPORTED_MODULE_5__["default"])()) { 598 const datepickersWrapper = document.querySelectorAll(`${classeContainerFormBuilder} .js-datepickerWrapper`); 599 const datepickers = []; 600 vanillajs_datepicker__WEBPACK_IMPORTED_MODULE_1__.Datepicker.locales.fr = { 601 days: ['Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi'], 602 daysShort: ['Dim', 'Lun', 'Mar', 'Mer', 'Jeu', 'Ven', 'Sam'], 603 daysMin: ['D', 'L', 'M', 'M', 'J', 'V', 'S'], 604 months: ['Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre'], 605 monthsShort: ['Jan', 'Fév', 'Mar', 'Avr', 'Mai', 'Juin', 'Jui', 'Août', 'Sep', 'Oct', 'Nov', 'Déc'], 606 today: 'Aujourd\'hui', 607 monthsTitle: 'Mois', 608 clear: 'Effacer', 609 weekStart: 0, 610 format: 'dd/mm/yyyy' 611 }; 612 for (let i = 0; i < datepickersWrapper.length; i += 1) { 613 datepickers.push(new vanillajs_datepicker__WEBPACK_IMPORTED_MODULE_1__.Datepicker(datepickersWrapper[i], { 614 language: 'fr', 615 prevArrow: '<svg><use xlink:href="/plugins/blanko/forms/assets/images/icons/symbols.svg#ico-pointer"></use></svg>', 616 nextArrow: '<svg><use xlink:href="/plugins/blanko/forms/assets/images/icons/symbols.svg#ico-pointer"></use></svg>', 617 format: 'dd MM yyyy', 618 todayHighlight: true 619 })); 620 } 621 const onFocus = e => { 622 const datepicker = e.target.parentElement.parentElement.querySelector(`${classeContainerFormBuilder} .js-datepickerWrapper`); 623 datepicker.classList.add('show'); 624 }; 625 const onChangeDate = e => { 626 for (let i = 0; i < datepickersWrapper.length; i += 1) { 627 if (e.currentTarget === datepickers[i].element) { 628 e.currentTarget.parentElement.querySelector('input').value = datepickers[i].getDate('dd MM yyyy'); 629 e.currentTarget.classList.remove('show'); 630 } 631 } 632 }; 633 const closeCalendar = () => { 634 for (let i = 0; i < datepickersWrapper.length; i += 1) { 635 datepickersWrapper[i].classList.remove('show'); 636 } 637 }; 638 const preventClose = e => { 639 e.stopPropagation(); 640 }; 641 _formbuilder__WEBPACK_IMPORTED_MODULE_3__.OBSERVER.add({ 642 name: 'input-calendar', 643 event: 'focus', 644 target: `${classeContainerFormBuilder} .js-input-calendar input`, 645 function: onFocus 646 }); 647 _formbuilder__WEBPACK_IMPORTED_MODULE_3__.OBSERVER.add({ 648 name: 'input-calendar', 649 event: 'click', 650 target: `${classeContainerFormBuilder} .js-input-calendar input`, 651 function: onFocus 652 }); 653 _formbuilder__WEBPACK_IMPORTED_MODULE_3__.OBSERVER.add({ 654 name: 'input-calendar', 655 event: 'changeDate', 656 target: `${classeContainerFormBuilder} .js-datepickerWrapper`, 657 function: onChangeDate 658 }); 659 _formbuilder__WEBPACK_IMPORTED_MODULE_3__.OBSERVER.add({ 660 name: 'input-calendar', 661 event: 'click', 662 function: closeCalendar 663 }); 664 _formbuilder__WEBPACK_IMPORTED_MODULE_3__.OBSERVER.add({ 665 name: 'input-calendar', 666 event: 'click', 667 target: `${classeContainerFormBuilder} .js-input-calendar`, 668 function: preventClose 669 }); 670 _formbuilder__WEBPACK_IMPORTED_MODULE_3__.OBSERVER.on('input-calendar'); 671 672 // Si on est en mobile, utiliser les calendriers en HTML5 673 } else { 674 document.querySelectorAll(`${classeContainerFormBuilder} .js-input-calendar input`).forEach(element => element.setAttribute('type', 'date')); 675 } 676} 677 678// Google Autocomplete pour le champ Adresse 679function addressAutocomplete(classeContainerFormBuilder) { 680 const adressFields = jquery__WEBPACK_IMPORTED_MODULE_0___default()(`${classeContainerFormBuilder} .localisation_field`).get(); 681 adressFields.forEach(adressField => { 682 // eslint-disable-next-line no-new 683 new _addressGoogle__WEBPACK_IMPORTED_MODULE_4__["default"](adressField); 684 }); 685} 686 687// Le package à appliquer pour les formulaires 688function formsPackage(classeContainerFormBuilder) { 689 inputsAndTextareaLabel(classeContainerFormBuilder); 690 textareaHeight(classeContainerFormBuilder); 691 // tailSelect(classeContainerFormBuilder); // Déjà appelé dans le theme 692 timepicker(classeContainerFormBuilder); 693 // calendarInput(classeContainerFormBuilder); // Déjà appelé dans le theme 694 addressAutocomplete(classeContainerFormBuilder); 695} 696 697/***/ }), 698
699/***/ "./js/functions/helper.js": 700/*!********************************!*\ 701 !*** ./js/functions/helper.js ***! 702 \********************************/ 703/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 704 705"use strict"; 706__webpack_require__.r(__webpack_exports__); 707/* harmony export */ __webpack_require__.d(__webpack_exports__, { 708/* harmony export */ "default": () => (/* binding */ isMobile) 709/* harmony export */ }); 710// Retourne si le site est ouvert dans un appareil mobile 711function isMobile() { 712 let condition = false; 713 if (/Android|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)) { 714 condition = true; 715 } 716 return condition; 717} 718 719/***/ }), 720
721/***/ "./js/functions/limitedCheckboxLists.js": 722/*!**********************************************!*\ 723 !*** ./js/functions/limitedCheckboxLists.js ***! 724 \**********************************************/ 725/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 726 727"use strict"; 728__webpack_require__.r(__webpack_exports__); 729/* harmony export */ __webpack_require__.d(__webpack_exports__, { 730/* harmony export */ "default": () => (/* binding */ limitedCheckboxLists) 731/* harmony export */ }); 732/* harmony import */ var _formbuilder__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../formbuilder */ "./js/formbuilder.js"); 733 734function limitedCheckboxLists() { 735 const onChange = e => { 736 // Read Choice limit 737 const limitedCheckbox = e.currentTarget; 738 const limitedCheckboxContainer = limitedCheckbox.closest('.js-limited-chexboxlist'); 739 let limit = 0; 740 if (limitedCheckboxContainer.hasAttribute('data-choice-limit')) { 741 limit = limitedCheckboxContainer.dataset.choiceLimit; 742 } 743 744 // No Limit Provided. 745 if (!limit) return; 746 const checkedCheckbox = limitedCheckboxContainer.querySelectorAll('input[type="checkbox"]:checked'); 747 const notCheckedCheckbox = limitedCheckboxContainer.querySelectorAll('input[type="checkbox"]:not(:checked)'); 748 const disabledCheckboxLabel = limitedCheckboxContainer.querySelectorAll('.c-checkbox-field__label--disabled'); 749 if (checkedCheckbox.length >= limit) { 750 // Disable all not check 751 for (let i = 0; i < notCheckedCheckbox.length; i += 1) { 752 notCheckedCheckbox[i].closest('label').classList.add('c-checkbox-field__label--disabled'); 753 } 754 } else { 755 // Enable all disabled 756 for (let i = 0; i < disabledCheckboxLabel.length; i += 1) { 757 disabledCheckboxLabel[i].classList.remove('c-checkbox-field__label--disabled'); 758 } 759 } 760 }; 761 _formbuilder__WEBPACK_IMPORTED_MODULE_0__.OBSERVER.add({ 762 name: 'limitedCheckboxLists', 763 event: 'change', 764 target: '.js-limited-chexboxlist input[type="checkbox"]', 765 function: onChange 766 }); 767 _formbuilder__WEBPACK_IMPORTED_MODULE_0__.OBSERVER.on('limitedCheckboxLists'); 768} 769 770/***/ }), 771
772/***/ "./js/functions/masks.js": 773/*!*******************************!*\ 774 !*** ./js/functions/masks.js ***! 775 \*******************************/ 776/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 777 778"use strict"; 779__webpack_require__.r(__webpack_exports__); 780/* harmony export */ __webpack_require__.d(__webpack_exports__, { 781/* harmony export */ "default": () => (/* binding */ masksPackage) 782/* harmony export */ }); 783/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js"); 784/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__); 785/* harmony import */ var jquery_mask_plugin__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! jquery-mask-plugin */ "./node_modules/jquery-mask-plugin/dist/jquery.mask.js"); 786/* harmony import */ var jquery_mask_plugin__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(jquery_mask_plugin__WEBPACK_IMPORTED_MODULE_1__); 787 788 789 790// Le formatage du numéro de téléphone 791function formatPhone() { 792 jquery__WEBPACK_IMPORTED_MODULE_0___default()('.js-mask-phone').mask('000 000-0000'); 793} 794 795// Le formatage du code postal 796function formatPostalCode() { 797 jquery__WEBPACK_IMPORTED_MODULE_0___default()('.js-mask-postal-code').mask('Z0Z 0Z0', { 798 translation: { 799 Z: { 800 pattern: /[A-Z, a-z]/ 801 } 802 } 803 }); 804 // Forcer les majuscules 805 jquery__WEBPACK_IMPORTED_MODULE_0___default()('.js-mask-postal-code').keyup(function keyup() { 806 jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).val(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).val().toUpperCase()); 807 }); 808} 809 810// Le package à appliquer pour les masques 811function masksPackage() { 812 formatPhone(); 813 formatPostalCode(); 814} 815 816/***/ }), 817
818/***/ "./js/functions/repeaters.js": 819/*!***********************************!*\ 820 !*** ./js/functions/repeaters.js ***! 821 \***********************************/ 822/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 823 824"use strict"; 825__webpack_require__.r(__webpack_exports__); 826/* harmony export */ __webpack_require__.d(__webpack_exports__, { 827/* harmony export */ "default": () => (/* binding */ repeaterButtons) 828/* harmony export */ }); 829/* harmony import */ var _formbuilder__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../formbuilder */ "./js/formbuilder.js"); 830/* provided dependency */ var $ = __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js"); 831/* eslint-disable */ 832 833function incrementClone(clone, number) { 834 clone.dataset.sectionNumber = number; 835 clone.querySelector('#js-repeater-number').innerHTML = number; 836 837 // Incrémentation des 'name' et 'id' des inputs (+ vidage des valeurs) 838 const repeated_inputs = clone.querySelectorAll('input'); 839 repeated_inputs.forEach(input => { 840 if (input.name.slice(-2) == '[]') { 841 input.name = input.name.replace(input.name.slice(-4, -2), `_${number}`); 842 } else { 843 input.name = input.name.replace(input.name.slice(-2), `_${number}`); 844 } 845 input.id = input.id.replace(input.id.slice(-2), `_${number}`); 846 847 // Vidage des valeurs clonées 848 if (input.type == 'checkbox' || input.type == 'radio') { 849 // Cases 850 input.checked = false; 851 } else { 852 // Texte 853 input.value = ''; 854 } 855 }); 856 857 // Incrémentation des 'name' et 'id' des textareas (+ vidage des valeurs) 858 const repeated_textareas = clone.querySelectorAll('textarea'); 859 repeated_textareas.forEach(textarea => { 860 textarea.id = textarea.id.replace(textarea.id.slice(-2), `_${number}`); 861 textarea.name = textarea.name.replace(textarea.name.slice(-2), `_${number}`); 862 textarea.value = ''; 863 textarea.style.height = null; 864 }); 865 866 // Incrémentation des 'for' des labels 867 const repeated_labels = clone.querySelectorAll('label'); 868 repeated_labels.forEach(label => { 869 const forAttribute = label.getAttribute('for'); 870 if (forAttribute) { 871 label.setAttribute('for', forAttribute.replace(forAttribute.slice(-2), `_${number}`)); 872 } 873 }); 874 875 // Incrémentation des 'data-validate-for' des zones d'erreur 876 const repeated_validate = clone.querySelectorAll('.c-form-error'); 877 repeated_validate.forEach(validate => { 878 validate.dataset.validateFor = validate.dataset.validateFor.replace(validate.dataset.validateFor.slice(-2), `_${number}`); 879 }); 880 881 // Si on a des selects, suppression des tail selects pour les réinitialiser comme il faut par la suite (+ vidage des valeurs) 882 const tomSelects = clone.querySelectorAll('.ts-wrapper'); 883 const selects = clone.querySelectorAll('select'); 884 if (tomSelects.length && selects.length) { 885 tomSelects.forEach(tomSelect => { 886 tomSelect.remove(); 887 }); 888 selects.forEach(select => { 889 select.id = select.id.replace(select.id.slice(-2), `_${number}`); 890 select.name = select.name.replace(select.name.slice(-2), `_${number}`); 891 select.classList.remove("tomselected"); 892 select.classList.remove("ts-hidden-accessible"); 893 894 // TomSelect change l'ordre des options du select de base, donc on doit règler l'ordre grâce aux data-order 895 var tmpAry = new Array(); 896 for (var i = 0; i < select.options.length; i++) { 897 tmpAry[i] = new Array(); 898 tmpAry[i][0] = select.options[i].text; 899 tmpAry[i][1] = select.options[i].value; 900 tmpAry[i][2] = select.options[i].dataset.order; 901 } 902 tmpAry.sort(function (a, b) { 903 return a[2] - b[2]; 904 }); 905 while (select.options.length > 0) { 906 select.options[0] = null; 907 } 908 for (var i = 0; i < tmpAry.length; i++) { 909 var op = new Option(tmpAry[i][0], tmpAry[i][1]); 910 op.dataset.order = tmpAry[i][2]; 911 select.options[i] = op; 912 } 913 }); 914 } 915 916 // Si on a un/des champs calendrier, suppression des datepicker wrappers pour les réinitialiser comme il faut par la suite 917 const calendars = clone.querySelectorAll('.js-datepickerWrapper'); 918 if (calendars.length) {
919 calendars.forEach(calendar => { 920 calendar.remove(); 921 }); 922 } 923 return clone; 924} 925function addButton(e) { 926 const section = e.target.closest('.js-repeater-section'); // Section d'origine 927 let clone = section.cloneNode(true); // Clone de la section 928 $('.js-repeater-buttons', section).css("display", "none"); // Retrait du bouton d'ajout sur la section d'origine 929 930 let number = section.dataset.sectionNumber; // Position de la section d'origine 931 number++; // Incrémentation 932 933 clone = incrementClone(clone, number); // Mettre le nouvel incrément dans la structure du clone 934 935 $('.js-repeater-remove', clone).css("display", "block"); // Ajout du bouton de suppression sur le clone 936 937 if (clone.dataset.maxSections && number >= clone.dataset.maxSections) { 938 // Maximum de section atteint 939 $('.js-repeater-add', clone).css("display", "none"); // Retrait du bouton d'ajout 940 } 941 section.after(clone); // Ajout du clone en dessous de la section d'origine 942 943 removeButtons(); 944 refreshScripts(`[data-section-number="${number}"]`); 945} 946function removeButton(e) { 947 const section = e.target.closest('.js-repeater-section'); // Section à supprimer 948 const prevSection = section.previousSibling; // Section précédente 949 950 section.remove(); // Suppression de la section 951 $('.js-repeater-buttons', prevSection).css("display", "block"); 952 removeButtons(); 953} 954function refreshScripts(newSection) { 955 tomSelect(newSection); 956 initFormBuilder(newSection); 957} 958function removeButtons() { 959 _formbuilder__WEBPACK_IMPORTED_MODULE_0__.OBSERVER.remove('add-button'); 960 _formbuilder__WEBPACK_IMPORTED_MODULE_0__.OBSERVER.remove('remove-button'); 961} 962function repeaterButtons() { 963 _formbuilder__WEBPACK_IMPORTED_MODULE_0__.OBSERVER.add({ 964 name: 'add-button', 965 event: 'click', 966 target: '.js-repeater-add-button', 967 function: addButton 968 }); 969 _formbuilder__WEBPACK_IMPORTED_MODULE_0__.OBSERVER.on('add-button'); 970 _formbuilder__WEBPACK_IMPORTED_MODULE_0__.OBSERVER.add({ 971 name: 'remove-button', 972 event: 'click', 973 target: '.js-repeater-remove-button', 974 function: removeButton 975 }); 976 _formbuilder__WEBPACK_IMPORTED_MODULE_0__.OBSERVER.on('remove-button'); 977} 978 979/***/ }), 980
981/***/ "./js/vendor/observer.min.js": 982/*!***********************************!*\ 983 !*** ./js/vendor/observer.min.js ***! 984 \***********************************/ 985/***/ ((module) => { 986 987!function (t, e) { 988 true ? module.exports = e() : 0; 989}(window, function () { 990 return function (t) { 991 var e = {}; 992 function n(i) { 993 if (e[i]) return e[i].exports; 994 var s = e[i] = { 995 i: i, 996 l: !1, 997 exports: {} 998 }; 999 return t[i].call(s.exports, s, s.exports, n), s.l = !0, s.exports; 1000 } 1001 return n.m = t, n.c = e, n.d = function (t, e, i) { 1002 n.o(t, e) || Object.defineProperty(t, e, { 1003 enumerable: !0, 1004 get: i 1005 }); 1006 }, n.r = function (t) { 1007 "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(t, Symbol.toStringTag, { 1008 value: "Module" 1009 }), Object.defineProperty(t, "__esModule", { 1010 value: !0 1011 }); 1012 }, n.t = function (t, e) { 1013 if (1 & e && (t = n(t)), 8 & e) return t; 1014 if (4 & e && "object" == typeof t && t && t.__esModule) return t; 1015 var i = Object.create(null); 1016 if (n.r(i), Object.defineProperty(i, "default", { 1017 enumerable: !0, 1018 value: t 1019 }), 2 & e && "string" != typeof t) for (var s in t) n.d(i, s, function (e) { 1020 return t[e]; 1021 }.bind(null, s)); 1022 return i; 1023 }, n.n = function (t) { 1024 var e = t && t.__esModule ? function () { 1025 return t.default; 1026 } : function () { 1027 return t; 1028 }; 1029 return n.d(e, "a", e), e; 1030 }, n.o = function (t, e) { 1031 return Object.prototype.hasOwnProperty.call(t, e); 1032 }, n.p = "", n(n.s = 0); 1033 }([function (t, e, n) { 1034 "use strict"; 1035 1036 t.exports = n(1).default; 1037 }, function (t, e, n) { 1038 "use strict"; 1039 1040 n.r(e), n.d(e, "default", function () { 1041 return s; 1042 }); 1043 const i = t => { 1044 let e, 1045 n = 0; 1046 for (e in t) t.hasOwnProperty(e) && n++; 1047 return n; 1048 }; 1049 class s { 1050 constructor() { 1051 this.eventList = {}; 1052 } 1053 static getInstance() { 1054 return s.instance || (this.instance = new s()), this.instance; 1055 } 1056 on(t) { 1057 this.toggle(e => { 1058 this.eventList[e].name === t && this.condition("addEventListener", !0, e); 1059 }); 1060 } 1061 off(t) { 1062 this.toggle(e => { 1063 this.eventList[e].name === t && this.condition("removeEventListener", !1, e); 1064 }); 1065 } 1066 allOn() { 1067 this.toggle(t => this.condition("addEventListener", !0, t)); 1068 } 1069 allOff() { 1070 this.toggle(t => this.condition("removeEventListener", !1, t)); 1071 } 1072 refresh(t) { 1073 this.off(t), this.on(t); 1074 } 1075 refreshAll() { 1076 this.allOff(), this.allOn(); 1077 } 1078 add(t) { 1079 const e = "event" + i(this.eventList); 1080 this.eventList[e] = {}, this.eventList[e].name = t.name, this.eventList[e].active = !1, this.eventList[e].event = t.event, this.eventList[e].function = t.function, this.eventList[e].target = void 0 !== t.target ? t.target : "", this.eventList[e].root = void 0 !== t.root ? t.root : document, this.eventList[e].numberOfIteration = 0; 1081 } 1082 remove(t) { 1083 this.toggle(e => { 1084 this.eventList[e].name === t && (this.eventList[e].active ? this.throwMessage(`You must turn off the event with the name '${t}' before removing it`) : delete this.eventList[e]); 1085 }); 1086 } 1087 removeAll() { 1088 let t = !0; 1089 this.toggle(e => { 1090 this.eventList[e].active && (t = !1); 1091 }), t ? this.eventList = {} : this.throwMessage("You must turn off all events before clearing clearing the list"); 1092 } 1093 throwMessage(t) { 1094 console.warn("Observer => " + t); 1095 } 1096 toggle(t) { 1097 let e, n; 1098 const s = i(this.eventList); 1099 for (e = 0; e < s; e++) n = "event" + e, t(n); 1100 } 1101 condition(t, e, n) { 1102 let i = this.eventList[n].target; 1103 const s = "addEventListener" === t ? "+" : "-", 1104 o = { 1105 "+": t => t + 1, 1106 "-": t => t - 1 1107 }; 1108 let r; 1109 if ("addEventListener" === t ? !this.eventList[n].active : this.eventList[n].active) if (this.eventList[n].active = e, "string" == typeof i) { 1110 if ("document" === i) document[t](this.eventList[n].event, this.eventList[n].function), this.eventList[n].numberOfIteration = o[s](this.eventList[n].numberOfIteration);else if ("window" === i) window.window[t](this.eventList[n].event, this.eventList[n].function), this.eventList[n].numberOfIteration = o[s](this.eventList[n].numberOfIteration);else if ("string" == typeof i && "" === i) window[t](this.eventList[n].event, this.eventList[n].function), this.eventList[n].numberOfIteration = o[s](this.eventList[n].numberOfIteration);else if ("string" == typeof i) { 1111 let e = this.eventList[n].root.querySelectorAll(i), 1112 f = e.length; 1113 for (r = 0; r < f; r++) e[r][t](this.eventList[n].event, this.eventList[n].function), this.eventList[n].numberOfIteration = o[s](this.eventList[n].numberOfIteration); 1114 } 1115 } else if (i instanceof NodeList) { 1116 let e = [...i], 1117 f = e.length; 1118 for (r = 0; r < f; r++) e[r][t](this.eventList[n].event, this.eventList[n].function), this.eventList[n].numberOfIteration = o[s](this.eventList[n].numberOfIteration); 1119 } else i instanceof HTMLElement && (i[t](this.eventList[n].event, this.eventList[n].function), this.eventList[n].numberOfIteration = o[s](this.eventList[n].numberOfIteration)); 1120 } 1121 get list() { 1122 return this.eventList; 1123 } 1124 } 1125 }]); 1126}); 1127 1128/***/ }), 1129
vendor: 105,921 bytes, lines 1130-3743
1130/***/ "./node_modules/eonasdan-bootstrap-datetimepicker/src/js/bootstrap-datetimepicker.js": 1131/*!*******************************************************************************************!*\ 1132 !*** ./node_modules/eonasdan-bootstrap-datetimepicker/src/js/bootstrap-datetimepicker.js ***! 1133 \*******************************************************************************************/ 1134/***/ ((module, exports, __webpack_require__) => { 1135 1136var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*! 1137 * Bootstrap Datetime Picker v4.17.49 1138 * Copyright 2015-2020 Jonathan Peterson 1139 * Licensed under MIT (https://github.com/Eonasdan/bootstrap-datetimepicker/blob/master/LICENSE) 1140 */ 1141/*global define:false */ 1142/*global exports:false */ 1143/*global require:false */ 1144/*global jQuery:false */ 1145/*global moment:false */ 1146(function (factory) { 1147 'use strict'; 1148 if (true) { 1149 // AMD is used - Register as an anonymous module. 1150 !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js"), __webpack_require__(/*! moment */ "./node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 1151 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 1152 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 1153 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); 1154 } else // removed by dead control flow 1155{} 1156}(function ($, moment) { 1157 'use strict'; 1158 if (!moment) { 1159 throw new Error('bootstrap-datetimepicker requires Moment.js to be loaded first'); 1160 } 1161 1162 var dateTimePicker = function (element, options) { 1163 var picker = {}, 1164 date, 1165 viewDate, 1166 unset = true, 1167 input, 1168 component = false, 1169 widget = false, 1170 use24Hours, 1171 minViewModeNumber = 0, 1172 actualFormat, 1173 parseFormats, 1174 currentViewMode, 1175 datePickerModes = [ 1176 { 1177 clsName: 'days', 1178 navFnc: 'M', 1179 navStep: 1 1180 }, 1181 { 1182 clsName: 'months', 1183 navFnc: 'y', 1184 navStep: 1 1185 }, 1186 { 1187 clsName: 'years', 1188 navFnc: 'y', 1189 navStep: 10 1190 }, 1191 { 1192 clsName: 'decades', 1193 navFnc: 'y', 1194 navStep: 100 1195 } 1196 ], 1197 viewModes = ['days', 'months', 'years', 'decades'], 1198 verticalModes = ['top', 'bottom', 'auto'], 1199 horizontalModes = ['left', 'right', 'auto'], 1200 toolbarPlacements = ['default', 'top', 'bottom'], 1201 keyMap = { 1202 'up': 38, 1203 38: 'up', 1204 'down': 40, 1205 40: 'down', 1206 'left': 37, 1207 37: 'left', 1208 'right': 39, 1209 39: 'right', 1210 'tab': 9, 1211 9: 'tab', 1212 'escape': 27, 1213 27: 'escape', 1214 'enter': 13, 1215 13: 'enter', 1216 'pageUp': 33, 1217 33: 'pageUp', 1218 'pageDown': 34, 1219 34: 'pageDown', 1220 'shift': 16, 1221 16: 'shift', 1222 'control': 17, 1223 17: 'control', 1224 'space': 32, 1225 32: 'space', 1226 't': 84, 1227 84: 't', 1228 'delete': 46, 1229 46: 'delete' 1230 }, 1231 keyState = {}, 1232 1233 /******************************************************************************** 1234 * 1235 * Private functions 1236 * 1237 ********************************************************************************/ 1238 1239 hasTimeZone = function () { 1240 return moment.tz !== undefined && options.timeZone !== undefined && options.timeZone !== null && options.timeZone !== ''; 1241 }, 1242 1243 getMoment = function (d) { 1244 var returnMoment; 1245 1246 if (d === undefined || d === null) { 1247 returnMoment = moment(); //TODO should this use format? and locale? 1248 } else if (moment.isDate(d) || moment.isMoment(d)) { 1249 // If the date that is passed in is already a Date() or moment() object, 1250 // pass it directly to moment. 1251 returnMoment = moment(d); 1252 } else if (hasTimeZone()) { // There is a string to parse and a default time zone 1253 // parse with the tz function which takes a default time zone if it is not in the format string 1254 returnMoment = moment.tz(d, parseFormats, options.useStrict, options.timeZone); 1255 } else { 1256 returnMoment = moment(d, parseFormats, options.useStrict); 1257 } 1258 1259 if (hasTimeZone()) { 1260 returnMoment.tz(options.timeZone); 1261 } 1262 1263 return returnMoment; 1264 }, 1265 1266 isEnabled = function (granularity) { 1267 if (typeof granularity !== 'string' || granularity.length > 1) { 1268 throw new TypeError('isEnabled expects a single character string parameter'); 1269 } 1270 switch (granularity) { 1271 case 'y': 1272 return actualFormat.indexOf('Y') !== -1; 1273 case 'M': 1274 return actualFormat.indexOf('M') !== -1; 1275 case 'd': 1276 return actualFormat.toLowerCase().indexOf('d') !== -1; 1277 case 'h': 1278 case 'H': 1279 return actualFormat.toLowerCase().indexOf('h') !== -1; 1280 case 'm': 1281 return actualFormat.indexOf('m') !== -1; 1282 case 's': 1283 return actualFormat.indexOf('s') !== -1; 1284 default: 1285 return false; 1286 } 1287 }, 1288 1289 hasTime = function () { 1290 return (isEnabled('h') || isEnabled('m') || isEnabled('s')); 1291 }, 1292 1293 hasDate = function () { 1294 return (isEnabled('y') || isEnabled('M') || isEnabled('d')); 1295 }, 1296 1297 getDatePickerTemplate = function () { 1298 var headTemplate = $('<thead>') 1299 .append($('<tr>') 1300 .append($('<th>').addClass('prev').attr('data-action', 'previous') 1301 .append($('<span>').addClass(options.icons.previous)) 1302 ) 1303 .append($('<th>').addClass('picker-switch').attr('data-action', 'pickerSwitch').attr('colspan', (options.calendarWeeks ? '6' : '5'))) 1304 .append($('<th>').addClass('next').attr('data-action', 'next') 1305 .append($('<span>').addClass(options.icons.next)) 1306 ) 1307 ), 1308 contTemplate = $('<tbody>') 1309 .append($('<tr>') 1310 .append($('<td>').attr('colspan', (options.calendarWeeks ? '8' : '7'))) 1311 ); 1312 1313 return [ 1314 $('<div>').addClass('datepicker-days') 1315 .append($('<table>').addClass('table-condensed') 1316 .append(headTemplate) 1317 .append($('<tbody>')) 1318 ), 1319 $('<div>').addClass('datepicker-months') 1320 .append($('<table>').addClass('table-condensed') 1321 .append(headTemplate.clone()) 1322 .append(contTemplate.clone()) 1323 ), 1324 $('<div>').addClass('datepicker-years') 1325 .append($('<table>').addClass('table-condensed') 1326 .append(headTemplate.clone()) 1327 .append(contTemplate.clone()) 1328 ), 1329 $('<div>').addClass('datepicker-decades') 1330 .append($('<table>').addClass('table-condensed') 1331 .append(headTemplate.clone()) 1332 .append(contTemplate.clone()) 1333 ) 1334 ]; 1335 }, 1336 1337 getTimePickerMainTemplate = function () { 1338 var topRow = $('<tr>'), 1339 middleRow = $('<tr>'), 1340 bottomRow = $('<tr>'); 1341 1342 if (isEnabled('h')) { 1343 topRow.append($('<td>') 1344 .append($('<a>').attr({ href: '#', tabindex: '-1', 'title': options.tooltips.incrementHour }).addClass('btn').attr('data-action', 'incrementHours').append($('<span>').addClass(options.icons.up)))); 1345 middleRow.append($('<td>') 1346 .append($('<span>').addClass('timepicker-hour').attr({ 'data-time-component': 'hours', 'title': options.tooltips.pickHour }).attr('data-action', 'showHours'))); 1347 bottomRow.append($('<td>') 1348 .append($('<a>').attr({ href: '#', tabindex: '-1', 'title': options.tooltips.decrementHour }).addClass('btn').attr('data-action', 'decrementHours').append($('<span>').addClass(options.icons.down)))); 1349 } 1350 if (isEnabled('m')) { 1351 if (isEnabled('h')) { 1352 topRow.append($('<td>').addClass('separator')); 1353 middleRow.append($('<td>').addClass('separator').html(':')); 1354 bottomRow.append($('<td>').addClass('separator')); 1355 } 1356 topRow.append($('<td>') 1357 .append($('<a>').attr({ href: '#', tabindex: '-1', 'title': options.tooltips.incrementMinute }).addClass('btn').attr('data-action', 'incrementMinutes') 1358 .append($('<span>').addClass(options.icons.up)))); 1359 middleRow.append($('<td>') 1360 .append($('<span>').addClass('timepicker-minute').attr({ 'data-time-component': 'minutes', 'title': options.tooltips.pickMinute }).attr('data-action', 'showMinutes'))); 1361 bottomRow.append($('<td>') 1362 .append($('<a>').attr({ href: '#', tabindex: '-1', 'title': options.tooltips.decrementMinute }).addClass('btn').attr('data-action', 'decrementMinutes') 1363 .append($('<span>').addClass(options.icons.down)))); 1364 } 1365 if (isEnabled('s')) { 1366 if (isEnabled('m')) { 1367 topRow.append($('<td>').addClass('separator')); 1368 middleRow.append($('<td>').addClass('separator').html(':')); 1369 bottomRow.append($('<td>').addClass('separator')); 1370 } 1371 topRow.append($('<td>') 1372 .append($('<a>').attr({ href: '#', tabindex: '-1', 'title': options.tooltips.incrementSecond }).addClass('btn').attr('data-action', 'incrementSeconds') 1373 .append($('<span>').addClass(options.icons.up)))); 1374 middleRow.append($('<td>') 1375 .append($('<span>').addClass('timepicker-second').attr({ 'data-time-component': 'seconds', 'title': options.tooltips.pickSecond }).attr('data-action', 'showSeconds'))); 1376 bottomRow.append($('<td>') 1377 .append($('<a>').attr({ href: '#', tabindex: '-1', 'title': options.tooltips.decrementSecond }).addClass('btn').attr('data-action', 'decrementSeconds') 1378 .append($('<span>').addClass(options.icons.down)))); 1379 } 1380 1381 if (!use24Hours) { 1382 topRow.append($('<td>').addClass('separator')); 1383 middleRow.append($('<td>') 1384 .append($('<button>').addClass('btn btn-primary').attr({ 'data-action': 'togglePeriod', tabindex: '-1', 'title': options.tooltips.togglePeriod }))); 1385 bottomRow.append($('<td>').addClass('separator')); 1386 } 1387 1388 return $('<div>').addClass('timepicker-picker') 1389 .append($('<table>').addClass('table-condensed') 1390 .append([topRow, middleRow, bottomRow])); 1391 }, 1392 1393 getTimePickerTemplate = function () { 1394 var hoursView = $('<div>').addClass('timepicker-hours') 1395 .append($('<table>').addClass('table-condensed')), 1396 minutesView = $('<div>').addClass('timepicker-minutes') 1397 .append($('<table>').addClass('table-condensed')), 1398 secondsView = $('<div>').addClass('timepicker-seconds') 1399 .append($('<table>').addClass('table-condensed')), 1400 ret = [getTimePickerMainTemplate()]; 1401 1402 if (isEnabled('h')) { 1403 ret.push(hoursView); 1404 } 1405 if (isEnabled('m')) { 1406 ret.push(minutesView); 1407 } 1408 if (isEnabled('s')) { 1409 ret.push(secondsView); 1410 } 1411 1412 return ret; 1413 }, 1414 1415 getToolbar = function () { 1416 var row = []; 1417 if (options.showTodayButton) { 1418 row.push($('<td>').append($('<a>').attr({ 'data-action': 'today', 'title': options.tooltips.today }).append($('<span>').addClass(options.icons.today)))); 1419 } 1420 if (!options.sideBySide && hasDate() && hasTime()) { 1421 row.push($('<td>').append($('<a>').attr({ 'data-action': 'togglePicker', 'title': options.tooltips.selectTime }).append($('<span>').addClass(options.icons.time)))); 1422 } 1423 if (options.showClear) { 1424 row.push($('<td>').append($('<a>').attr({ 'data-action': 'clear', 'title': options.tooltips.clear }).append($('<span>').addClass(options.icons.clear)))); 1425 } 1426 if (options.showClose) { 1427 row.push($('<td>').append($('<a>').attr({ 'data-action': 'close', 'title': options.tooltips.close }).append($('<span>').addClass(options.icons.close)))); 1428 } 1429 return $('<table>').addClass('table-condensed').append($('<tbody>').append($('<tr>').append(row))); 1430 }, 1431 1432 getTemplate = function () { 1433 var template = $('<div>').addClass('bootstrap-datetimepicker-widget dropdown-menu'), 1434 dateView = $('<div>').addClass('datepicker').append(getDatePickerTemplate()), 1435 timeView = $('<div>').addClass('timepicker').append(getTimePickerTemplate()), 1436 content = $('<ul>').addClass('list-unstyled'), 1437 toolbar = $('<li>').addClass('picker-switch' + (options.collapse ? ' accordion-toggle' : '')).append(getToolbar()); 1438 1439 if (options.inline) { 1440 template.removeClass('dropdown-menu'); 1441 } 1442 1443 if (use24Hours) { 1444 template.addClass('usetwentyfour'); 1445 } 1446 1447 if (isEnabled('s') && !use24Hours) { 1448 template.addClass('wider'); 1449 } 1450 1451 if (options.sideBySide && hasDate() && hasTime()) { 1452 template.addClass('timepicker-sbs'); 1453 if (options.toolbarPlacement === 'top') { 1454 template.append(toolbar); 1455 } 1456 template.append( 1457 $('<div>').addClass('row') 1458 .append(dateView.addClass('col-md-6')) 1459 .append(timeView.addClass('col-md-6')) 1460 ); 1461 if (options.toolbarPlacement === 'bottom') { 1462 template.append(toolbar); 1463 } 1464 return template; 1465 } 1466 1467 if (options.toolbarPlacement === 'top') { 1468 content.append(toolbar); 1469 } 1470 if (hasDate()) { 1471 content.append($('<li>').addClass((options.collapse && hasTime() ? 'collapse in' : '')).append(dateView)); 1472 } 1473 if (options.toolbarPlacement === 'default') { 1474 content.append(toolbar); 1475 } 1476 if (hasTime()) { 1477 content.append($('<li>').addClass((options.collapse && hasDate() ? 'collapse' : '')).append(timeView)); 1478 } 1479 if (options.toolbarPlacement === 'bottom') { 1480 content.append(toolbar); 1481 } 1482 return template.append(content); 1483 }, 1484 1485 dataToOptions = function () { 1486 var eData, 1487 dataOptions = {}; 1488 1489 if (element.is('input') || options.inline) { 1490 eData = element.data(); 1491 } else { 1492 eData = element.find('input').data(); 1493 } 1494 1495 if (eData.dateOptions && eData.dateOptions instanceof Object) { 1496 dataOptions = $.extend(true, dataOptions, eData.dateOptions); 1497 } 1498 1499 $.each(options, function (key) { 1500 var attributeName = 'date' + key.charAt(0).toUpperCase() + key.slice(1); 1501 if (eData[attributeName] !== undefined) { 1502 dataOptions[key] = eData[attributeName]; 1503 } 1504 }); 1505 return dataOptions; 1506 }, 1507 1508 place = function () { 1509 var position = (component || element).position(), 1510 offset = (component || element).offset(), 1511 vertical = options.widgetPositioning.vertical, 1512 horizontal = options.widgetPositioning.horizontal, 1513 parent; 1514 1515 if (options.widgetParent) { 1516 parent = options.widgetParent.append(widget); 1517 } else if (element.is('input')) { 1518 parent = element.after(widget).parent(); 1519 } else if (options.inline) { 1520 parent = element.append(widget); 1521 return; 1522 } else { 1523 parent = element; 1524 element.children().first().after(widget); 1525 } 1526 1527 // Top and bottom logic 1528 if (vertical === 'auto') { 1529 if (offset.top + widget.height() * 1.5 >= $(window).height() + $(window).scrollTop() && 1530 widget.height() + element.outerHeight() < offset.top) { 1531 vertical = 'top'; 1532 } else { 1533 vertical = 'bottom'; 1534 } 1535 } 1536 1537 // Left and right logic 1538 if (horizontal === 'auto') { 1539 if (parent.width() < offset.left + widget.outerWidth() / 2 && 1540 offset.left + widget.outerWidth() > $(window).width()) { 1541 horizontal = 'right'; 1542 } else { 1543 horizontal = 'left'; 1544 } 1545 } 1546 1547 if (vertical === 'top') { 1548 widget.addClass('top').removeClass('bottom'); 1549 } else { 1550 widget.addClass('bottom').removeClass('top'); 1551 } 1552 1553 if (horizontal === 'right') { 1554 widget.addClass('pull-right'); 1555 } else { 1556 widget.removeClass('pull-right'); 1557 } 1558 1559 // find the first parent element that has a non-static css positioning 1560 if (parent.css('position') === 'static') { 1561 parent = parent.parents().filter(function () { 1562 return $(this).css('position') !== 'static'; 1563 }).first(); 1564 } 1565 1566 if (parent.length === 0) { 1567 throw new Error('datetimepicker component should be placed within a non-static positioned container'); 1568 } 1569 1570 widget.css({ 1571 top: vertical === 'top' ? 'auto' : position.top + element.outerHeight(), 1572 bottom: vertical === 'top' ? parent.outerHeight() - (parent === element ? 0 : position.top) : 'auto', 1573 left: horizontal === 'left' ? (parent === element ? 0 : position.left) : 'auto', 1574 right: horizontal === 'left' ? 'auto' : parent.outerWidth() - element.outerWidth() - (parent === element ? 0 : position.left) 1575 }); 1576 }, 1577 1578 notifyEvent = function (e) { 1579 if (e.type === 'dp.change' && ((e.date && e.date.isSame(e.oldDate)) || (!e.date && !e.oldDate))) { 1580 return; 1581 } 1582 element.trigger(e); 1583 }, 1584 1585 viewUpdate = function (e) { 1586 if (e === 'y') { 1587 e = 'YYYY'; 1588 } 1589 notifyEvent({ 1590 type: 'dp.update', 1591 change: e, 1592 viewDate: viewDate.clone() 1593 }); 1594 }, 1595 1596 showMode = function (dir) { 1597 if (!widget) { 1598 return; 1599 } 1600 if (dir) { 1601 currentViewMode = Math.max(minViewModeNumber, Math.min(3, currentViewMode + dir)); 1602 } 1603 widget.find('.datepicker > div').hide().filter('.datepicker-' + datePickerModes[currentViewMode].clsName).show(); 1604 }, 1605 1606 fillDow = function () { 1607 var row = $('<tr>'), 1608 currentDate = viewDate.clone().startOf('w').startOf('d'); 1609 1610 if (options.calendarWeeks === true) { 1611 row.append($('<th>').addClass('cw').text('#')); 1612 } 1613 1614 while (currentDate.isBefore(viewDate.clone().endOf('w'))) { 1615 row.append($('<th>').addClass('dow').text(currentDate.format('dd'))); 1616 currentDate.add(1, 'd'); 1617 } 1618 widget.find('.datepicker-days thead').append(row); 1619 }, 1620 1621 isInDisabledDates = function (testDate) { 1622 return options.disabledDates[testDate.format('YYYY-MM-DD')] === true; 1623 }, 1624 1625 isInEnabledDates = function (testDate) { 1626 return options.enabledDates[testDate.format('YYYY-MM-DD')] === true; 1627 }, 1628 1629 isInDisabledHours = function (testDate) { 1630 return options.disabledHours[testDate.format('H')] === true; 1631 }, 1632 1633 isInEnabledHours = function (testDate) { 1634 return options.enabledHours[testDate.format('H')] === true; 1635 }, 1636 1637 isValid = function (targetMoment, granularity) { 1638 if (!targetMoment.isValid()) { 1639 return false; 1640 } 1641 if (options.disabledDates && granularity === 'd' && isInDisabledDates(targetMoment)) { 1642 return false; 1643 } 1644 if (options.enabledDates && granularity === 'd' && !isInEnabledDates(targetMoment)) { 1645 return false; 1646 } 1647 if (options.minDate && targetMoment.isBefore(options.minDate, granularity)) { 1648 return false; 1649 } 1650 if (options.maxDate && targetMoment.isAfter(options.maxDate, granularity)) { 1651 return false; 1652 } 1653 if (options.daysOfWeekDisabled && granularity === 'd' && options.daysOfWeekDisabled.indexOf(targetMoment.day()) !== -1) { 1654 return false; 1655 } 1656 if (options.disabledHours && (granularity === 'h' || granularity === 'm' || granularity === 's') && isInDisabledHours(targetMoment)) { 1657 return false; 1658 } 1659 if (options.enabledHours && (granularity === 'h' || granularity === 'm' || granularity === 's') && !isInEnabledHours(targetMoment)) { 1660 return false; 1661 } 1662 if (options.disabledTimeIntervals && (granularity === 'h' || granularity === 'm' || granularity === 's')) { 1663 var found = false; 1664 $.each(options.disabledTimeIntervals, function () { 1665 if (targetMoment.isBetween(this[0], this[1])) { 1666 found = true; 1667 return false; 1668 } 1669 }); 1670 if (found) { 1671 return false; 1672 } 1673 } 1674 return true; 1675 }, 1676 1677 fillMonths = function () { 1678 var spans = [], 1679 monthsShort = viewDate.clone().startOf('y').startOf('d'); 1680 while (monthsShort.isSame(viewDate, 'y')) { 1681 spans.push($('<span>').attr('data-action', 'selectMonth').addClass('month').text(monthsShort.format('MMM'))); 1682 monthsShort.add(1, 'M'); 1683 } 1684 widget.find('.datepicker-months td').empty().append(spans); 1685 }, 1686 1687 updateMonths = function () { 1688 var monthsView = widget.find('.datepicker-months'), 1689 monthsViewHeader = monthsView.find('th'), 1690 months = monthsView.find('tbody').find('span'); 1691 1692 monthsViewHeader.eq(0).find('span').attr('title', options.tooltips.prevYear); 1693 monthsViewHeader.eq(1).attr('title', options.tooltips.selectYear); 1694 monthsViewHeader.eq(2).find('span').attr('title', options.tooltips.nextYear); 1695 1696 monthsView.find('.disabled').removeClass('disabled'); 1697 1698 if (!isValid(viewDate.clone().subtract(1, 'y'), 'y')) { 1699 monthsViewHeader.eq(0).addClass('disabled'); 1700 } 1701 1702 monthsViewHeader.eq(1).text(viewDate.year()); 1703 1704 if (!isValid(viewDate.clone().add(1, 'y'), 'y')) { 1705 monthsViewHeader.eq(2).addClass('disabled'); 1706 } 1707 1708 months.removeClass('active'); 1709 if (date.isSame(viewDate, 'y') && !unset) { 1710 months.eq(date.month()).addClass('active'); 1711 } 1712 1713 months.each(function (index) { 1714 if (!isValid(viewDate.clone().month(index), 'M')) { 1715 $(this).addClass('disabled'); 1716 } 1717 }); 1718 }, 1719 1720 updateYears = function () { 1721 var yearsView = widget.find('.datepicker-years'), 1722 yearsViewHeader = yearsView.find('th'), 1723 startYear = viewDate.clone().subtract(5, 'y'), 1724 endYear = viewDate.clone().add(6, 'y'), 1725 html = ''; 1726 1727 yearsViewHeader.eq(0).find('span').attr('title', options.tooltips.prevDecade); 1728 yearsViewHeader.eq(1).attr('title', options.tooltips.selectDecade); 1729 yearsViewHeader.eq(2).find('span').attr('title', options.tooltips.nextDecade); 1730 1731 yearsView.find('.disabled').removeClass('disabled'); 1732 1733 if (options.minDate && options.minDate.isAfter(startYear, 'y')) { 1734 yearsViewHeader.eq(0).addClass('disabled'); 1735 } 1736 1737 yearsViewHeader.eq(1).text(startYear.year() + '-' + endYear.year()); 1738 1739 if (options.maxDate && options.maxDate.isBefore(endYear, 'y')) { 1740 yearsViewHeader.eq(2).addClass('disabled'); 1741 } 1742 1743 while (!startYear.isAfter(endYear, 'y')) { 1744 html += '<span data-action="selectYear" class="year' + (startYear.isSame(date, 'y') && !unset ? ' active' : '') + (!isValid(startYear, 'y') ? ' disabled' : '') + '">' + startYear.year() + '</span>'; 1745 startYear.add(1, 'y'); 1746 } 1747 1748 yearsView.find('td').html(html); 1749 }, 1750 1751 updateDecades = function () { 1752 var decadesView = widget.find('.datepicker-decades'), 1753 decadesViewHeader = decadesView.find('th'), 1754 startDecade = moment({ y: viewDate.year() - (viewDate.year() % 100) - 1 }), 1755 endDecade = startDecade.clone().add(100, 'y'), 1756 startedAt = startDecade.clone(), 1757 minDateDecade = false, 1758 maxDateDecade = false, 1759 endDecadeYear, 1760 html = ''; 1761 1762 decadesViewHeader.eq(0).find('span').attr('title', options.tooltips.prevCentury); 1763 decadesViewHeader.eq(2).find('span').attr('title', options.tooltips.nextCentury); 1764 1765 decadesView.find('.disabled').removeClass('disabled'); 1766 1767 if (startDecade.isSame(moment({ y: 1900 })) || (options.minDate && options.minDate.isAfter(startDecade, 'y'))) { 1768 decadesViewHeader.eq(0).addClass('disabled'); 1769 } 1770 1771 decadesViewHeader.eq(1).text(startDecade.year() + '-' + endDecade.year()); 1772 1773 if (startDecade.isSame(moment({ y: 2000 })) || (options.maxDate && options.maxDate.isBefore(endDecade, 'y'))) { 1774 decadesViewHeader.eq(2).addClass('disabled'); 1775 } 1776 1777 while (!startDecade.isAfter(endDecade, 'y')) { 1778 endDecadeYear = startDecade.year() + 12; 1779 minDateDecade = options.minDate && options.minDate.isAfter(startDecade, 'y') && options.minDate.year() <= endDecadeYear; 1780 maxDateDecade = options.maxDate && options.maxDate.isAfter(startDecade, 'y') && options.maxDate.year() <= endDecadeYear; 1781 html += '<span data-action="selectDecade" class="decade' + (date.isAfter(startDecade) && date.year() <= endDecadeYear ? ' active' : '') + 1782 (!isValid(startDecade, 'y') && !minDateDecade && !maxDateDecade ? ' disabled' : '') + '" data-selection="' + (startDecade.year() + 6) + '">' + (startDecade.year() + 1) + ' - ' + (startDecade.year() + 12) + '</span>'; 1783 startDecade.add(12, 'y'); 1784 } 1785 html += '<span></span><span></span><span></span>'; //push the dangling block over, at least this way it's even 1786 1787 decadesView.find('td').html(html); 1788 decadesViewHeader.eq(1).text((startedAt.year() + 1) + '-' + (startDecade.year())); 1789 }, 1790 1791 fillDate = function () { 1792 var daysView = widget.find('.datepicker-days'), 1793 daysViewHeader = daysView.find('th'), 1794 currentDate, 1795 html = [], 1796 row, 1797 clsNames = [], 1798 i; 1799 1800 if (!hasDate()) { 1801 return; 1802 } 1803 1804 daysViewHeader.eq(0).find('span').attr('title', options.tooltips.prevMonth); 1805 daysViewHeader.eq(1).attr('title', options.tooltips.selectMonth); 1806 daysViewHeader.eq(2).find('span').attr('title', options.tooltips.nextMonth); 1807 1808 daysView.find('.disabled').removeClass('disabled'); 1809 daysViewHeader.eq(1).text(viewDate.format(options.dayViewHeaderFormat)); 1810 1811 if (!isValid(viewDate.clone().subtract(1, 'M'), 'M')) { 1812 daysViewHeader.eq(0).addClass('disabled'); 1813 } 1814 if (!isValid(viewDate.clone().add(1, 'M'), 'M')) { 1815 daysViewHeader.eq(2).addClass('disabled'); 1816 } 1817 1818 currentDate = viewDate.clone().startOf('M').startOf('w').startOf('d'); 1819 1820 for (i = 0; i < 42; i++) { //always display 42 days (should show 6 weeks) 1821 if (currentDate.weekday() === 0) { 1822 row = $('<tr>'); 1823 if (options.calendarWeeks) { 1824 row.append('<td class="cw">' + currentDate.week() + '</td>'); 1825 } 1826 html.push(row); 1827 } 1828 clsNames = ['day']; 1829 if (currentDate.isBefore(viewDate, 'M')) { 1830 clsNames.push('old'); 1831 } 1832 if (currentDate.isAfter(viewDate, 'M')) { 1833 clsNames.push('new'); 1834 } 1835 if (currentDate.isSame(date, 'd') && !unset) { 1836 clsNames.push('active'); 1837 } 1838 if (!isValid(currentDate, 'd')) { 1839 clsNames.push('disabled'); 1840 } 1841 if (currentDate.isSame(getMoment(), 'd')) { 1842 clsNames.push('today'); 1843 } 1844 if (currentDate.day() === 0 || currentDate.day() === 6) { 1845 clsNames.push('weekend'); 1846 } 1847 notifyEvent({ 1848 type: 'dp.classify', 1849 date: currentDate, 1850 classNames: clsNames 1851 }); 1852 row.append('<td data-action="selectDay" data-day="' + currentDate.format('L') + '" class="' + clsNames.join(' ') + '">' + currentDate.date() + '</td>'); 1853 currentDate.add(1, 'd'); 1854 } 1855 1856 daysView.find('tbody').empty().append(html); 1857 1858 updateMonths(); 1859 1860 updateYears(); 1861 1862 updateDecades(); 1863 }, 1864 1865 fillHours = function () { 1866 var table = widget.find('.timepicker-hours table'), 1867 currentHour = viewDate.clone().startOf('d'), 1868 html = [], 1869 row = $('<tr>'); 1870 1871 if (viewDate.hour() > 11 && !use24Hours) { 1872 currentHour.hour(12); 1873 } 1874 while (currentHour.isSame(viewDate, 'd') && (use24Hours || (viewDate.hour() < 12 && currentHour.hour() < 12) || viewDate.hour() > 11)) { 1875 if (currentHour.hour() % 4 === 0) { 1876 row = $('<tr>'); 1877 html.push(row); 1878 } 1879 row.append('<td data-action="selectHour" class="hour' + (!isValid(currentHour, 'h') ? ' disabled' : '') + '">' + currentHour.format(use24Hours ? 'HH' : 'hh') + '</td>'); 1880 currentHour.add(1, 'h'); 1881 } 1882 table.empty().append(html); 1883 }, 1884 1885 fillMinutes = function () { 1886 var table = widget.find('.timepicker-minutes table'), 1887 currentMinute = viewDate.clone().startOf('h'), 1888 html = [], 1889 row = $('<tr>'), 1890 step = options.stepping === 1 ? 5 : options.stepping; 1891 1892 while (viewDate.isSame(currentMinute, 'h')) { 1893 if (currentMinute.minute() % (step * 4) === 0) { 1894 row = $('<tr>'); 1895 html.push(row); 1896 } 1897 row.append('<td data-action="selectMinute" class="minute' + (!isValid(currentMinute, 'm') ? ' disabled' : '') + '">' + currentMinute.format('mm') + '</td>'); 1898 currentMinute.add(step, 'm'); 1899 } 1900 table.empty().append(html); 1901 }, 1902 1903 fillSeconds = function () { 1904 var table = widget.find('.timepicker-seconds table'), 1905 currentSecond = viewDate.clone().startOf('m'), 1906 html = [], 1907 row = $('<tr>'); 1908 1909 while (viewDate.isSame(currentSecond, 'm')) { 1910 if (currentSecond.second() % 20 === 0) { 1911 row = $('<tr>'); 1912 html.push(row); 1913 } 1914 row.append('<td data-action="selectSecond" class="second' + (!isValid(currentSecond, 's') ? ' disabled' : '') + '">' + currentSecond.format('ss') + '</td>'); 1915 currentSecond.add(5, 's'); 1916 } 1917 1918 table.empty().append(html); 1919 }, 1920 1921 fillTime = function () { 1922 var toggle, newDate, timeComponents = widget.find('.timepicker span[data-time-component]'); 1923 1924 if (!use24Hours) { 1925 toggle = widget.find('.timepicker [data-action=togglePeriod]'); 1926 newDate = date.clone().add((date.hours() >= 12) ? -12 : 12, 'h'); 1927 1928 toggle.text(date.format('A')); 1929 1930 if (isValid(newDate, 'h')) { 1931 toggle.removeClass('disabled'); 1932 } else { 1933 toggle.addClass('disabled'); 1934 } 1935 } 1936 timeComponents.filter('[data-time-component=hours]').text(date.format(use24Hours ? 'HH' : 'hh')); 1937 timeComponents.filter('[data-time-component=minutes]').text(date.format('mm')); 1938 timeComponents.filter('[data-time-component=seconds]').text(date.format('ss')); 1939 1940 fillHours(); 1941 fillMinutes(); 1942 fillSeconds(); 1943 }, 1944 1945 update = function () { 1946 if (!widget) { 1947 return; 1948 } 1949 fillDate(); 1950 fillTime(); 1951 }, 1952 1953 setValue = function (targetMoment) { 1954 var oldDate = unset ? null : date; 1955 1956 // case of calling setValue(null or false) 1957 if (!targetMoment) { 1958 unset = true; 1959 input.val(''); 1960 element.data('date', ''); 1961 notifyEvent({ 1962 type: 'dp.change', 1963 date: false, 1964 oldDate: oldDate 1965 }); 1966 update(); 1967 return; 1968 } 1969 1970 targetMoment = targetMoment.clone().locale(options.locale); 1971 1972 if (hasTimeZone()) { 1973 targetMoment.tz(options.timeZone); 1974 } 1975 1976 if (options.stepping !== 1) { 1977 targetMoment.minutes((Math.round(targetMoment.minutes() / options.stepping) * options.stepping)).seconds(0); 1978 1979 while (options.minDate && targetMoment.isBefore(options.minDate)) { 1980 targetMoment.add(options.stepping, 'minutes'); 1981 } 1982 } 1983 1984 if (isValid(targetMoment)) { 1985 date = targetMoment; 1986 viewDate = date.clone(); 1987 input.val(date.format(actualFormat)); 1988 element.data('date', date.format(actualFormat)); 1989 unset = false; 1990 update(); 1991 notifyEvent({ 1992 type: 'dp.change', 1993 date: date.clone(), 1994 oldDate: oldDate 1995 }); 1996 } else { 1997 if (!options.keepInvalid) { 1998 input.val(unset ? '' : date.format(actualFormat)); 1999 } else { 2000 notifyEvent({ 2001 type: 'dp.change', 2002 date: targetMoment, 2003 oldDate: oldDate 2004 }); 2005 } 2006 notifyEvent({ 2007 type: 'dp.error', 2008 date: targetMoment, 2009 oldDate: oldDate 2010 }); 2011 } 2012 }, 2013 2014 /** 2015 * Hides the widget. Possibly will emit dp.hide 2016 */ 2017 hide = function () { 2018 var transitioning = false; 2019 if (!widget) { 2020 return picker; 2021 } 2022 // Ignore event if in the middle of a picker transition 2023 widget.find('.collapse').each(function () { 2024 var collapseData = $(this).data('collapse'); 2025 if (collapseData && collapseData.transitioning) { 2026 transitioning = true; 2027 return false; 2028 } 2029 return true; 2030 }); 2031 if (transitioning) { 2032 return picker; 2033 } 2034 if (component && component.hasClass('btn')) { 2035 component.toggleClass('active'); 2036 } 2037 widget.hide(); 2038 2039 $(window).off('resize', place); 2040 widget.off('click', '[data-action]'); 2041 widget.off('mousedown', false); 2042 2043 widget.remove(); 2044 widget = false; 2045 2046 notifyEvent({ 2047 type: 'dp.hide', 2048 date: date.clone() 2049 }); 2050 2051 input.blur(); 2052 2053 viewDate = date.clone(); 2054 2055 return picker; 2056 }, 2057 2058 clear = function () { 2059 setValue(null); 2060 }, 2061 2062 parseInputDate = function (inputDate) { 2063 if (options.parseInputDate === undefined) { 2064 if (!moment.isMoment(inputDate) || inputDate instanceof Date) { 2065 inputDate = getMoment(inputDate); 2066 } 2067 } else { 2068 inputDate = options.parseInputDate(inputDate); 2069 } 2070 //inputDate.locale(options.locale); 2071 return inputDate; 2072 }, 2073 2074 /******************************************************************************** 2075 * 2076 * Widget UI interaction functions 2077 * 2078 ********************************************************************************/ 2079 actions = { 2080 next: function () { 2081 var navFnc = datePickerModes[currentViewMode].navFnc; 2082 viewDate.add(datePickerModes[currentViewMode].navStep, navFnc); 2083 fillDate(); 2084 viewUpdate(navFnc); 2085 }, 2086 2087 previous: function () { 2088 var navFnc = datePickerModes[currentViewMode].navFnc; 2089 viewDate.subtract(datePickerModes[currentViewMode].navStep, navFnc); 2090 fillDate(); 2091 viewUpdate(navFnc); 2092 }, 2093 2094 pickerSwitch: function () { 2095 showMode(1); 2096 }, 2097 2098 selectMonth: function (e) { 2099 var month = $(e.target).closest('tbody').find('span').index($(e.target)); 2100 viewDate.month(month); 2101 if (currentViewMode === minViewModeNumber) { 2102 setValue(date.clone().year(viewDate.year()).month(viewDate.month())); 2103 if (!options.inline) { 2104 hide(); 2105 } 2106 } else { 2107 showMode(-1); 2108 fillDate(); 2109 } 2110 viewUpdate('M'); 2111 }, 2112 2113 selectYear: function (e) { 2114 var year = parseInt($(e.target).text(), 10) || 0; 2115 viewDate.year(year); 2116 if (currentViewMode === minViewModeNumber) { 2117 setValue(date.clone().year(viewDate.year())); 2118 if (!options.inline) { 2119 hide(); 2120 } 2121 } else { 2122 showMode(-1); 2123 fillDate(); 2124 } 2125 viewUpdate('YYYY'); 2126 }, 2127 2128 selectDecade: function (e) { 2129 var year = parseInt($(e.target).data('selection'), 10) || 0; 2130 viewDate.year(year); 2131 if (currentViewMode === minViewModeNumber) { 2132 setValue(date.clone().year(viewDate.year())); 2133 if (!options.inline) { 2134 hide(); 2135 } 2136 } else { 2137 showMode(-1); 2138 fillDate(); 2139 } 2140 viewUpdate('YYYY'); 2141 }, 2142 2143 selectDay: function (e) { 2144 var day = viewDate.clone(); 2145 if ($(e.target).is('.old')) { 2146 day.subtract(1, 'M'); 2147 } 2148 if ($(e.target).is('.new')) { 2149 day.add(1, 'M'); 2150 } 2151 setValue(day.date(parseInt($(e.target).text(), 10))); 2152 if (!hasTime() && !options.keepOpen && !options.inline) { 2153 hide(); 2154 } 2155 }, 2156 2157 incrementHours: function () { 2158 var newDate = date.clone().add(1, 'h'); 2159 if (isValid(newDate, 'h')) { 2160 setValue(newDate); 2161 } 2162 }, 2163 2164 incrementMinutes: function () { 2165 var newDate = date.clone().add(options.stepping, 'm'); 2166 if (isValid(newDate, 'm')) { 2167 setValue(newDate); 2168 } 2169 }, 2170 2171 incrementSeconds: function () { 2172 var newDate = date.clone().add(1, 's'); 2173 if (isValid(newDate, 's')) { 2174 setValue(newDate); 2175 } 2176 }, 2177 2178 decrementHours: function () { 2179 var newDate = date.clone().subtract(1, 'h'); 2180 if (isValid(newDate, 'h')) { 2181 setValue(newDate); 2182 } 2183 }, 2184 2185 decrementMinutes: function () { 2186 var newDate = date.clone().subtract(options.stepping, 'm'); 2187 if (isValid(newDate, 'm')) { 2188 setValue(newDate); 2189 } 2190 }, 2191 2192 decrementSeconds: function () { 2193 var newDate = date.clone().subtract(1, 's'); 2194 if (isValid(newDate, 's')) { 2195 setValue(newDate); 2196 } 2197 }, 2198 2199 togglePeriod: function () { 2200 setValue(date.clone().add((date.hours() >= 12) ? -12 : 12, 'h')); 2201 }, 2202 2203 togglePicker: function (e) { 2204 var $this = $(e.target), 2205 $parent = $this.closest('ul'), 2206 expanded = $parent.find('.in'), 2207 closed = $parent.find('.collapse:not(.in)'), 2208 collapseData; 2209 2210 if (expanded && expanded.length) { 2211 collapseData = expanded.data('collapse'); 2212 if (collapseData && collapseData.transitioning) { 2213 return; 2214 } 2215 if (expanded.collapse) { // if collapse plugin is available through bootstrap.js then use it 2216 expanded.collapse('hide'); 2217 closed.collapse('show'); 2218 } else { // otherwise just toggle in class on the two views 2219 expanded.removeClass('in'); 2220 closed.addClass('in'); 2221 } 2222 if ($this.is('span')) { 2223 $this.toggleClass(options.icons.time + ' ' + options.icons.date); 2224 } else { 2225 $this.find('span').toggleClass(options.icons.time + ' ' + options.icons.date); 2226 } 2227 2228 // NOTE: uncomment if toggled state will be restored in show() 2229 //if (component) { 2230 // component.find('span').toggleClass(options.icons.time + ' ' + options.icons.date); 2231 //} 2232 } 2233 }, 2234 2235 showPicker: function () { 2236 widget.find('.timepicker > div:not(.timepicker-picker)').hide(); 2237 widget.find('.timepicker .timepicker-picker').show(); 2238 }, 2239 2240 showHours: function () { 2241 widget.find('.timepicker .timepicker-picker').hide(); 2242 widget.find('.timepicker .timepicker-hours').show(); 2243 }, 2244 2245 showMinutes: function () { 2246 widget.find('.timepicker .timepicker-picker').hide(); 2247 widget.find('.timepicker .timepicker-minutes').show(); 2248 }, 2249 2250 showSeconds: function () { 2251 widget.find('.timepicker .timepicker-picker').hide(); 2252 widget.find('.timepicker .timepicker-seconds').show(); 2253 }, 2254 2255 selectHour: function (e) { 2256 var hour = parseInt($(e.target).text(), 10); 2257 2258 if (!use24Hours) { 2259 if (date.hours() >= 12) { 2260 if (hour !== 12) { 2261 hour += 12; 2262 } 2263 } else { 2264 if (hour === 12) { 2265 hour = 0; 2266 } 2267 } 2268 } 2269 setValue(date.clone().hours(hour)); 2270 actions.showPicker.call(picker); 2271 }, 2272 2273 selectMinute: function (e) { 2274 setValue(date.clone().minutes(parseInt($(e.target).text(), 10))); 2275 actions.showPicker.call(picker); 2276 }, 2277 2278 selectSecond: function (e) { 2279 setValue(date.clone().seconds(parseInt($(e.target).text(), 10))); 2280 actions.showPicker.call(picker); 2281 }, 2282 2283 clear: clear, 2284 2285 today: function () { 2286 var todaysDate = getMoment(); 2287 if (isValid(todaysDate, 'd')) { 2288 setValue(todaysDate); 2289 } 2290 }, 2291 2292 close: hide 2293 }, 2294 2295 doAction = function (e) { 2296 if ($(e.currentTarget).is('.disabled')) { 2297 return false; 2298 } 2299 actions[$(e.currentTarget).data('action')].apply(picker, arguments); 2300 return false; 2301 }, 2302 2303 /** 2304 * Shows the widget. Possibly will emit dp.show and dp.change 2305 */ 2306 show = function () { 2307 var currentMoment, 2308 useCurrentGranularity = { 2309 'year': function (m) { 2310 return m.month(0).date(1).hours(0).seconds(0).minutes(0); 2311 }, 2312 'month': function (m) { 2313 return m.date(1).hours(0).seconds(0).minutes(0); 2314 }, 2315 'day': function (m) { 2316 return m.hours(0).seconds(0).minutes(0); 2317 }, 2318 'hour': function (m) { 2319 return m.seconds(0).minutes(0); 2320 }, 2321 'minute': function (m) { 2322 return m.seconds(0); 2323 } 2324 }; 2325 2326 if (input.prop('disabled') || (!options.ignoreReadonly && input.prop('readonly')) || widget) { 2327 return picker; 2328 } 2329 if (input.val() !== undefined && input.val().trim().length !== 0) { 2330 setValue(parseInputDate(input.val().trim())); 2331 } else if (unset && options.useCurrent && (options.inline || (input.is('input') && input.val().trim().length === 0))) { 2332 currentMoment = getMoment(); 2333 if (typeof options.useCurrent === 'string') { 2334 currentMoment = useCurrentGranularity[options.useCurrent](currentMoment); 2335 } 2336 setValue(currentMoment); 2337 } 2338 widget = getTemplate(); 2339 2340 fillDow(); 2341 fillMonths(); 2342 2343 widget.find('.timepicker-hours').hide(); 2344 widget.find('.timepicker-minutes').hide(); 2345 widget.find('.timepicker-seconds').hide(); 2346 2347 update(); 2348 showMode(); 2349 2350 $(window).on('resize', place); 2351 widget.on('click', '[data-action]', doAction); // this handles clicks on the widget 2352 widget.on('mousedown', false); 2353 2354 if (component && component.hasClass('btn')) { 2355 component.toggleClass('active'); 2356 } 2357 place(); 2358 widget.show(); 2359 if (options.focusOnShow && !input.is(':focus')) { 2360 input.focus(); 2361 } 2362 2363 notifyEvent({ 2364 type: 'dp.show' 2365 }); 2366 return picker; 2367 }, 2368 2369 /** 2370 * Shows or hides the widget 2371 */ 2372 toggle = function () { 2373 return (widget ? hide() : show()); 2374 }, 2375 2376 keydown = function (e) { 2377 var handler = null, 2378 index, 2379 index2, 2380 pressedKeys = [], 2381 pressedModifiers = {}, 2382 currentKey = e.which, 2383 keyBindKeys, 2384 allModifiersPressed, 2385 pressed = 'p'; 2386 2387 keyState[currentKey] = pressed; 2388 2389 for (index in keyState) { 2390 if (keyState.hasOwnProperty(index) && keyState[index] === pressed) { 2391 pressedKeys.push(index); 2392 if (parseInt(index, 10) !== currentKey) { 2393 pressedModifiers[index] = true; 2394 } 2395 } 2396 } 2397 2398 for (index in options.keyBinds) { 2399 if (options.keyBinds.hasOwnProperty(index) && typeof (options.keyBinds[index]) === 'function') { 2400 keyBindKeys = index.split(' '); 2401 if (keyBindKeys.length === pressedKeys.length && keyMap[currentKey] === keyBindKeys[keyBindKeys.length - 1]) { 2402 allModifiersPressed = true; 2403 for (index2 = keyBindKeys.length - 2; index2 >= 0; index2--) { 2404 if (!(keyMap[keyBindKeys[index2]] in pressedModifiers)) { 2405 allModifiersPressed = false; 2406 break; 2407 } 2408 } 2409 if (allModifiersPressed) { 2410 handler = options.keyBinds[index]; 2411 break; 2412 } 2413 } 2414 } 2415 } 2416 2417 if (handler) { 2418 handler.call(picker, widget); 2419 e.stopPropagation(); 2420 e.preventDefault(); 2421 } 2422 }, 2423 2424 keyup = function (e) { 2425 keyState[e.which] = 'r'; 2426 e.stopPropagation(); 2427 e.preventDefault(); 2428 }, 2429 2430 change = function (e) { 2431 var val = $(e.target).val().trim(), 2432 parsedDate = val ? parseInputDate(val) : null; 2433 setValue(parsedDate); 2434 e.stopImmediatePropagation(); 2435 return false; 2436 }, 2437 2438 attachDatePickerElementEvents = function () { 2439 input.on({ 2440 'change': change, 2441 'blur': options.debug ? '' : hide, 2442 'keydown': keydown, 2443 'keyup': keyup, 2444 'focus': options.allowInputToggle ? show : '' 2445 }); 2446 2447 if (element.is('input')) { 2448 input.on({ 2449 'focus': show 2450 }); 2451 } else if (component) { 2452 component.on('click', toggle); 2453 component.on('mousedown', false); 2454 } 2455 }, 2456 2457 detachDatePickerElementEvents = function () { 2458 input.off({ 2459 'change': change, 2460 'blur': blur, 2461 'keydown': keydown, 2462 'keyup': keyup, 2463 'focus': options.allowInputToggle ? hide : '' 2464 }); 2465 2466 if (element.is('input')) { 2467 input.off({ 2468 'focus': show 2469 }); 2470 } else if (component) { 2471 component.off('click', toggle); 2472 component.off('mousedown', false); 2473 } 2474 }, 2475 2476 indexGivenDates = function (givenDatesArray) { 2477 // Store given enabledDates and disabledDates as keys. 2478 // This way we can check their existence in O(1) time instead of looping through whole array. 2479 // (for example: options.enabledDates['2014-02-27'] === true) 2480 var givenDatesIndexed = {}; 2481 $.each(givenDatesArray, function () { 2482 var dDate = parseInputDate(this); 2483 if (dDate.isValid()) { 2484 givenDatesIndexed[dDate.format('YYYY-MM-DD')] = true; 2485 } 2486 }); 2487 return (Object.keys(givenDatesIndexed).length) ? givenDatesIndexed : false; 2488 }, 2489 2490 indexGivenHours = function (givenHoursArray) { 2491 // Store given enabledHours and disabledHours as keys. 2492 // This way we can check their existence in O(1) time instead of looping through whole array. 2493 // (for example: options.enabledHours['2014-02-27'] === true) 2494 var givenHoursIndexed = {}; 2495 $.each(givenHoursArray, function () { 2496 givenHoursIndexed[this] = true; 2497 }); 2498 return (Object.keys(givenHoursIndexed).length) ? givenHoursIndexed : false; 2499 }, 2500 2501 initFormatting = function () { 2502 var format = options.format || 'L LT'; 2503 2504 actualFormat = format.replace(/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g, function (formatInput) { 2505 var newinput = date.localeData().longDateFormat(formatInput) || formatInput; 2506 return newinput.replace(/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g, function (formatInput2) { //temp fix for #740 2507 return date.localeData().longDateFormat(formatInput2) || formatInput2; 2508 }); 2509 }); 2510 2511 2512 parseFormats = options.extraFormats ? options.extraFormats.slice() : []; 2513 if (parseFormats.indexOf(format) < 0 && parseFormats.indexOf(actualFormat) < 0) { 2514 parseFormats.push(actualFormat); 2515 } 2516 2517 use24Hours = (actualFormat.toLowerCase().indexOf('a') < 1 && actualFormat.replace(/\[.*?\]/g, '').indexOf('h') < 1); 2518 2519 if (isEnabled('y')) { 2520 minViewModeNumber = 2; 2521 } 2522 if (isEnabled('M')) { 2523 minViewModeNumber = 1; 2524 } 2525 if (isEnabled('d')) { 2526 minViewModeNumber = 0; 2527 } 2528 2529 currentViewMode = Math.max(minViewModeNumber, currentViewMode); 2530 2531 if (!unset) { 2532 setValue(date); 2533 } 2534 }; 2535 2536 /******************************************************************************** 2537 * 2538 * Public API functions 2539 * ===================== 2540 * 2541 * Important: Do not expose direct references to private objects or the options 2542 * object to the outer world. Always return a clone when returning values or make 2543 * a clone when setting a private variable. 2544 * 2545 ********************************************************************************/ 2546 picker.destroy = function () { 2547 ///<summary>Destroys the widget and removes all attached event listeners</summary> 2548 hide(); 2549 detachDatePickerElementEvents(); 2550 element.removeData('DateTimePicker'); 2551 element.removeData('date'); 2552 }; 2553 2554 picker.toggle = toggle; 2555 2556 picker.show = show; 2557 2558 picker.hide = hide; 2559 2560 picker.disable = function () { 2561 ///<summary>Disables the input element, the component is attached to, by adding a disabled="true" attribute to it. 2562 ///If the widget was visible before that call it is hidden. Possibly emits dp.hide</summary> 2563 hide(); 2564 if (component && component.hasClass('btn')) { 2565 component.addClass('disabled'); 2566 } 2567 input.prop('disabled', true); 2568 return picker; 2569 }; 2570 2571 picker.enable = function () { 2572 ///<summary>Enables the input element, the component is attached to, by removing disabled attribute from it.</summary> 2573 if (component && component.hasClass('btn')) { 2574 component.removeClass('disabled'); 2575 } 2576 input.prop('disabled', false); 2577 return picker; 2578 }; 2579 2580 picker.ignoreReadonly = function (ignoreReadonly) { 2581 if (arguments.length === 0) { 2582 return options.ignoreReadonly; 2583 } 2584 if (typeof ignoreReadonly !== 'boolean') { 2585 throw new TypeError('ignoreReadonly () expects a boolean parameter'); 2586 } 2587 options.ignoreReadonly = ignoreReadonly; 2588 return picker; 2589 }; 2590 2591 picker.options = function (newOptions) { 2592 if (arguments.length === 0) { 2593 return $.extend(true, {}, options); 2594 } 2595 2596 if (!(newOptions instanceof Object)) { 2597 throw new TypeError('options() options parameter should be an object'); 2598 } 2599 $.extend(true, options, newOptions); 2600 $.each(options, function (key, value) { 2601 if (picker[key] !== undefined) { 2602 picker[key](value); 2603 } else { 2604 throw new TypeError('option ' + key + ' is not recognized!'); 2605 } 2606 }); 2607 return picker; 2608 }; 2609 2610 picker.date = function (newDate) { 2611 ///<signature helpKeyword="$.fn.datetimepicker.date"> 2612 ///<summary>Returns the component's model current date, a moment object or null if not set.</summary> 2613 ///<returns type="Moment">date.clone()</returns> 2614 ///</signature> 2615 ///<signature> 2616 ///<summary>Sets the components model current moment to it. Passing a null value unsets the components model current moment. Parsing of the newDate parameter is made using moment library with the options.format and options.useStrict components configuration.</summary> 2617 ///<param name="newDate" locid="$.fn.datetimepicker.date_p:newDate">Takes string, Date, moment, null parameter.</param> 2618 ///</signature> 2619 if (arguments.length === 0) { 2620 if (unset) { 2621 return null; 2622 } 2623 return date.clone(); 2624 } 2625 2626 if (newDate !== null && typeof newDate !== 'string' && !moment.isMoment(newDate) && !(newDate instanceof Date)) { 2627 throw new TypeError('date() parameter must be one of [null, string, moment or Date]'); 2628 } 2629 2630 setValue(newDate === null ? null : parseInputDate(newDate)); 2631 return picker; 2632 }; 2633 2634 picker.format = function (newFormat) { 2635 ///<summary>test su</summary> 2636 ///<param name="newFormat">info about para</param> 2637 ///<returns type="string|boolean">returns foo</returns> 2638 if (arguments.length === 0) { 2639 return options.format; 2640 } 2641 2642 if ((typeof newFormat !== 'string') && ((typeof newFormat !== 'boolean') || (newFormat !== false))) { 2643 throw new TypeError('format() expects a string or boolean:false parameter ' + newFormat); 2644 } 2645 2646 options.format = newFormat; 2647 if (actualFormat) { 2648 initFormatting(); // reinit formatting 2649 } 2650 return picker; 2651 }; 2652 2653 picker.timeZone = function (newZone) { 2654 if (arguments.length === 0) { 2655 return options.timeZone; 2656 } 2657 2658 if (typeof newZone !== 'string') { 2659 throw new TypeError('newZone() expects a string parameter'); 2660 } 2661 2662 options.timeZone = newZone; 2663 2664 return picker; 2665 }; 2666 2667 picker.dayViewHeaderFormat = function (newFormat) { 2668 if (arguments.length === 0) { 2669 return options.dayViewHeaderFormat; 2670 } 2671 2672 if (typeof newFormat !== 'string') { 2673 throw new TypeError('dayViewHeaderFormat() expects a string parameter'); 2674 } 2675 2676 options.dayViewHeaderFormat = newFormat; 2677 return picker; 2678 }; 2679 2680 picker.extraFormats = function (formats) { 2681 if (arguments.length === 0) { 2682 return options.extraFormats; 2683 } 2684 2685 if (formats !== false && !(formats instanceof Array)) { 2686 throw new TypeError('extraFormats() expects an array or false parameter'); 2687 } 2688 2689 options.extraFormats = formats; 2690 if (parseFormats) { 2691 initFormatting(); // reinit formatting 2692 } 2693 return picker; 2694 }; 2695 2696 picker.disabledDates = function (dates) { 2697 ///<signature helpKeyword="$.fn.datetimepicker.disabledDates"> 2698 ///<summary>Returns an array with the currently set disabled dates on the component.</summary> 2699 ///<returns type="array">options.disabledDates</returns> 2700 ///</signature> 2701 ///<signature> 2702 ///<summary>Setting this takes precedence over options.minDate, options.maxDate configuration. Also calling this function removes the configuration of 2703 ///options.enabledDates if such exist.</summary> 2704 ///<param name="dates" locid="$.fn.datetimepicker.disabledDates_p:dates">Takes an [ string or Date or moment ] of values and allows the user to select only from those days.</param> 2705 ///</signature> 2706 if (arguments.length === 0) { 2707 return (options.disabledDates ? $.extend({}, options.disabledDates) : options.disabledDates); 2708 } 2709 2710 if (!dates) { 2711 options.disabledDates = false; 2712 update(); 2713 return picker; 2714 } 2715 if (!(dates instanceof Array)) { 2716 throw new TypeError('disabledDates() expects an array parameter'); 2717 } 2718 options.disabledDates = indexGivenDates(dates); 2719 options.enabledDates = false; 2720 update(); 2721 return picker; 2722 }; 2723 2724 picker.enabledDates = function (dates) { 2725 ///<signature helpKeyword="$.fn.datetimepicker.enabledDates"> 2726 ///<summary>Returns an array with the currently set enabled dates on the component.</summary> 2727 ///<returns type="array">options.enabledDates</returns> 2728 ///</signature> 2729 ///<signature> 2730 ///<summary>Setting this takes precedence over options.minDate, options.maxDate configuration. Also calling this function removes the configuration of options.disabledDates if such exist.</summary> 2731 ///<param name="dates" locid="$.fn.datetimepicker.enabledDates_p:dates">Takes an [ string or Date or moment ] of values and allows the user to select only from those days.</param> 2732 ///</signature> 2733 if (arguments.length === 0) { 2734 return (options.enabledDates ? $.extend({}, options.enabledDates) : options.enabledDates); 2735 } 2736 2737 if (!dates) { 2738 options.enabledDates = false; 2739 update(); 2740 return picker; 2741 } 2742 if (!(dates instanceof Array)) { 2743 throw new TypeError('enabledDates() expects an array parameter'); 2744 } 2745 options.enabledDates = indexGivenDates(dates); 2746 options.disabledDates = false; 2747 update(); 2748 return picker; 2749 }; 2750 2751 picker.daysOfWeekDisabled = function (daysOfWeekDisabled) { 2752 if (arguments.length === 0) { 2753 return options.daysOfWeekDisabled.splice(0); 2754 } 2755 2756 if ((typeof daysOfWeekDisabled === 'boolean') && !daysOfWeekDisabled) { 2757 options.daysOfWeekDisabled = false; 2758 update(); 2759 return picker; 2760 } 2761 2762 if (!(daysOfWeekDisabled instanceof Array)) { 2763 throw new TypeError('daysOfWeekDisabled() expects an array parameter'); 2764 } 2765 options.daysOfWeekDisabled = daysOfWeekDisabled.reduce(function (previousValue, currentValue) { 2766 currentValue = parseInt(currentValue, 10); 2767 if (currentValue > 6 || currentValue < 0 || isNaN(currentValue)) { 2768 return previousValue; 2769 } 2770 if (previousValue.indexOf(currentValue) === -1) { 2771 previousValue.push(currentValue); 2772 } 2773 return previousValue; 2774 }, []).sort(); 2775 if (options.useCurrent && !options.keepInvalid) { 2776 var tries = 0; 2777 while (!isValid(date, 'd')) { 2778 date.add(1, 'd'); 2779 if (tries === 31) { 2780 throw 'Tried 31 times to find a valid date'; 2781 } 2782 tries++; 2783 } 2784 setValue(date); 2785 } 2786 update(); 2787 return picker; 2788 }; 2789 2790 picker.maxDate = function (maxDate) { 2791 if (arguments.length === 0) { 2792 return options.maxDate ? options.maxDate.clone() : options.maxDate; 2793 } 2794 2795 if ((typeof maxDate === 'boolean') && maxDate === false) { 2796 options.maxDate = false; 2797 update(); 2798 return picker; 2799 } 2800 2801 if (typeof maxDate === 'string') { 2802 if (maxDate === 'now' || maxDate === 'moment') { 2803 maxDate = getMoment(); 2804 } 2805 } 2806 2807 var parsedDate = parseInputDate(maxDate); 2808 2809 if (!parsedDate.isValid()) { 2810 throw new TypeError('maxDate() Could not parse date parameter: ' + maxDate); 2811 } 2812 if (options.minDate && parsedDate.isBefore(options.minDate)) { 2813 throw new TypeError('maxDate() date parameter is before options.minDate: ' + parsedDate.format(actualFormat)); 2814 } 2815 options.maxDate = parsedDate; 2816 if (options.useCurrent && !options.keepInvalid && date.isAfter(maxDate)) { 2817 setValue(options.maxDate); 2818 } 2819 if (viewDate.isAfter(parsedDate)) { 2820 viewDate = parsedDate.clone().subtract(options.stepping, 'm'); 2821 } 2822 update(); 2823 return picker; 2824 }; 2825 2826 picker.minDate = function (minDate) { 2827 if (arguments.length === 0) { 2828 return options.minDate ? options.minDate.clone() : options.minDate; 2829 } 2830 2831 if ((typeof minDate === 'boolean') && minDate === false) { 2832 options.minDate = false; 2833 update(); 2834 return picker; 2835 } 2836 2837 if (typeof minDate === 'string') { 2838 if (minDate === 'now' || minDate === 'moment') { 2839 minDate = getMoment(); 2840 } 2841 } 2842 2843 var parsedDate = parseInputDate(minDate); 2844 2845 if (!parsedDate.isValid()) { 2846 throw new TypeError('minDate() Could not parse date parameter: ' + minDate); 2847 } 2848 if (options.maxDate && parsedDate.isAfter(options.maxDate)) { 2849 throw new TypeError('minDate() date parameter is after options.maxDate: ' + parsedDate.format(actualFormat)); 2850 } 2851 options.minDate = parsedDate; 2852 if (options.useCurrent && !options.keepInvalid && date.isBefore(minDate)) { 2853 setValue(options.minDate); 2854 } 2855 if (viewDate.isBefore(parsedDate)) { 2856 viewDate = parsedDate.clone().add(options.stepping, 'm'); 2857 } 2858 update(); 2859 return picker; 2860 }; 2861 2862 picker.defaultDate = function (defaultDate) { 2863 ///<signature helpKeyword="$.fn.datetimepicker.defaultDate"> 2864 ///<summary>Returns a moment with the options.defaultDate option configuration or false if not set</summary> 2865 ///<returns type="Moment">date.clone()</returns> 2866 ///</signature> 2867 ///<signature> 2868 ///<summary>Will set the picker's inital date. If a boolean:false value is passed the options.defaultDate parameter is cleared.</summary> 2869 ///<param name="defaultDate" locid="$.fn.datetimepicker.defaultDate_p:defaultDate">Takes a string, Date, moment, boolean:false</param> 2870 ///</signature> 2871 if (arguments.length === 0) { 2872 return options.defaultDate ? options.defaultDate.clone() : options.defaultDate; 2873 } 2874 if (!defaultDate) { 2875 options.defaultDate = false; 2876 return picker; 2877 } 2878 2879 if (typeof defaultDate === 'string') { 2880 if (defaultDate === 'now' || defaultDate === 'moment') { 2881 defaultDate = getMoment(); 2882 } else { 2883 defaultDate = getMoment(defaultDate); 2884 } 2885 } 2886 2887 var parsedDate = parseInputDate(defaultDate); 2888 if (!parsedDate.isValid()) { 2889 throw new TypeError('defaultDate() Could not parse date parameter: ' + defaultDate); 2890 } 2891 if (!isValid(parsedDate)) { 2892 throw new TypeError('defaultDate() date passed is invalid according to component setup validations'); 2893 } 2894 2895 options.defaultDate = parsedDate; 2896 2897 if ((options.defaultDate && options.inline) || input.val().trim() === '') { 2898 setValue(options.defaultDate); 2899 } 2900 return picker; 2901 }; 2902 2903 picker.locale = function (locale) { 2904 if (arguments.length === 0) { 2905 return options.locale; 2906 } 2907 2908 if (!moment.localeData(locale)) { 2909 throw new TypeError('locale() locale ' + locale + ' is not loaded from moment locales!'); 2910 } 2911 2912 options.locale = locale; 2913 date.locale(options.locale); 2914 viewDate.locale(options.locale); 2915 2916 if (actualFormat) { 2917 initFormatting(); // reinit formatting 2918 } 2919 if (widget) { 2920 hide(); 2921 show(); 2922 } 2923 return picker; 2924 }; 2925 2926 picker.stepping = function (stepping) { 2927 if (arguments.length === 0) { 2928 return options.stepping; 2929 } 2930 2931 stepping = parseInt(stepping, 10); 2932 if (isNaN(stepping) || stepping < 1) { 2933 stepping = 1; 2934 } 2935 options.stepping = stepping; 2936 return picker; 2937 }; 2938 2939 picker.useCurrent = function (useCurrent) { 2940 var useCurrentOptions = ['year', 'month', 'day', 'hour', 'minute']; 2941 if (arguments.length === 0) { 2942 return options.useCurrent; 2943 } 2944 2945 if ((typeof useCurrent !== 'boolean') && (typeof useCurrent !== 'string')) { 2946 throw new TypeError('useCurrent() expects a boolean or string parameter'); 2947 } 2948 if (typeof useCurrent === 'string' && useCurrentOptions.indexOf(useCurrent.toLowerCase()) === -1) { 2949 throw new TypeError('useCurrent() expects a string parameter of ' + useCurrentOptions.join(', ')); 2950 } 2951 options.useCurrent = useCurrent; 2952 return picker; 2953 }; 2954 2955 picker.collapse = function (collapse) { 2956 if (arguments.length === 0) { 2957 return options.collapse; 2958 } 2959 2960 if (typeof collapse !== 'boolean') { 2961 throw new TypeError('collapse() expects a boolean parameter'); 2962 } 2963 if (options.collapse === collapse) { 2964 return picker; 2965 } 2966 options.collapse = collapse; 2967 if (widget) { 2968 hide(); 2969 show(); 2970 } 2971 return picker; 2972 }; 2973 2974 picker.icons = function (icons) { 2975 if (arguments.length === 0) { 2976 return $.extend({}, options.icons); 2977 } 2978 2979 if (!(icons instanceof Object)) { 2980 throw new TypeError('icons() expects parameter to be an Object'); 2981 } 2982 $.extend(options.icons, icons); 2983 if (widget) { 2984 hide(); 2985 show(); 2986 } 2987 return picker; 2988 }; 2989 2990 picker.tooltips = function (tooltips) { 2991 if (arguments.length === 0) { 2992 return $.extend({}, options.tooltips); 2993 } 2994 2995 if (!(tooltips instanceof Object)) { 2996 throw new TypeError('tooltips() expects parameter to be an Object'); 2997 } 2998 $.extend(options.tooltips, tooltips); 2999 if (widget) { 3000 hide(); 3001 show(); 3002 } 3003 return picker; 3004 }; 3005 3006 picker.useStrict = function (useStrict) { 3007 if (arguments.length === 0) { 3008 return options.useStrict; 3009 } 3010 3011 if (typeof useStrict !== 'boolean') { 3012 throw new TypeError('useStrict() expects a boolean parameter'); 3013 } 3014 options.useStrict = useStrict; 3015 return picker; 3016 }; 3017 3018 picker.sideBySide = function (sideBySide) { 3019 if (arguments.length === 0) { 3020 return options.sideBySide; 3021 } 3022 3023 if (typeof sideBySide !== 'boolean') { 3024 throw new TypeError('sideBySide() expects a boolean parameter'); 3025 } 3026 options.sideBySide = sideBySide; 3027 if (widget) { 3028 hide(); 3029 show(); 3030 } 3031 return picker; 3032 }; 3033 3034 picker.viewMode = function (viewMode) { 3035 if (arguments.length === 0) { 3036 return options.viewMode; 3037 } 3038 3039 if (typeof viewMode !== 'string') { 3040 throw new TypeError('viewMode() expects a string parameter'); 3041 } 3042 3043 if (viewModes.indexOf(viewMode) === -1) { 3044 throw new TypeError('viewMode() parameter must be one of (' + viewModes.join(', ') + ') value'); 3045 } 3046 3047 options.viewMode = viewMode; 3048 currentViewMode = Math.max(viewModes.indexOf(viewMode), minViewModeNumber); 3049 3050 showMode(); 3051 return picker; 3052 }; 3053 3054 picker.toolbarPlacement = function (toolbarPlacement) { 3055 if (arguments.length === 0) { 3056 return options.toolbarPlacement; 3057 } 3058 3059 if (typeof toolbarPlacement !== 'string') { 3060 throw new TypeError('toolbarPlacement() expects a string parameter'); 3061 } 3062 if (toolbarPlacements.indexOf(toolbarPlacement) === -1) { 3063 throw new TypeError('toolbarPlacement() parameter must be one of (' + toolbarPlacements.join(', ') + ') value'); 3064 } 3065 options.toolbarPlacement = toolbarPlacement; 3066 3067 if (widget) { 3068 hide(); 3069 show(); 3070 } 3071 return picker; 3072 }; 3073 3074 picker.widgetPositioning = function (widgetPositioning) { 3075 if (arguments.length === 0) { 3076 return $.extend({}, options.widgetPositioning); 3077 } 3078 3079 if (({}).toString.call(widgetPositioning) !== '[object Object]') { 3080 throw new TypeError('widgetPositioning() expects an object variable'); 3081 } 3082 if (widgetPositioning.horizontal) { 3083 if (typeof widgetPositioning.horizontal !== 'string') { 3084 throw new TypeError('widgetPositioning() horizontal variable must be a string'); 3085 } 3086 widgetPositioning.horizontal = widgetPositioning.horizontal.toLowerCase(); 3087 if (horizontalModes.indexOf(widgetPositioning.horizontal) === -1) { 3088 throw new TypeError('widgetPositioning() expects horizontal parameter to be one of (' + horizontalModes.join(', ') + ')'); 3089 } 3090 options.widgetPositioning.horizontal = widgetPositioning.horizontal; 3091 } 3092 if (widgetPositioning.vertical) { 3093 if (typeof widgetPositioning.vertical !== 'string') { 3094 throw new TypeError('widgetPositioning() vertical variable must be a string'); 3095 } 3096 widgetPositioning.vertical = widgetPositioning.vertical.toLowerCase(); 3097 if (verticalModes.indexOf(widgetPositioning.vertical) === -1) { 3098 throw new TypeError('widgetPositioning() expects vertical parameter to be one of (' + verticalModes.join(', ') + ')'); 3099 } 3100 options.widgetPositioning.vertical = widgetPositioning.vertical; 3101 } 3102 update(); 3103 return picker; 3104 }; 3105 3106 picker.calendarWeeks = function (calendarWeeks) { 3107 if (arguments.length === 0) { 3108 return options.calendarWeeks; 3109 } 3110 3111 if (typeof calendarWeeks !== 'boolean') { 3112 throw new TypeError('calendarWeeks() expects parameter to be a boolean value'); 3113 } 3114 3115 options.calendarWeeks = calendarWeeks; 3116 update(); 3117 return picker; 3118 }; 3119 3120 picker.showTodayButton = function (showTodayButton) { 3121 if (arguments.length === 0) { 3122 return options.showTodayButton; 3123 } 3124 3125 if (typeof showTodayButton !== 'boolean') { 3126 throw new TypeError('showTodayButton() expects a boolean parameter'); 3127 } 3128 3129 options.showTodayButton = showTodayButton; 3130 if (widget) { 3131 hide(); 3132 show(); 3133 } 3134 return picker; 3135 }; 3136 3137 picker.showClear = function (showClear) { 3138 if (arguments.length === 0) { 3139 return options.showClear; 3140 } 3141 3142 if (typeof showClear !== 'boolean') { 3143 throw new TypeError('showClear() expects a boolean parameter'); 3144 } 3145 3146 options.showClear = showClear; 3147 if (widget) { 3148 hide(); 3149 show(); 3150 } 3151 return picker; 3152 }; 3153 3154 picker.widgetParent = function (widgetParent) { 3155 if (arguments.length === 0) { 3156 return options.widgetParent; 3157 } 3158 3159 if (typeof widgetParent === 'string') { 3160 widgetParent = $(widgetParent); 3161 } 3162 3163 if (widgetParent !== null && (typeof widgetParent !== 'string' && !(widgetParent instanceof $))) { 3164 throw new TypeError('widgetParent() expects a string or a jQuery object parameter'); 3165 } 3166 3167 options.widgetParent = widgetParent; 3168 if (widget) { 3169 hide(); 3170 show(); 3171 } 3172 return picker; 3173 }; 3174 3175 picker.keepOpen = function (keepOpen) { 3176 if (arguments.length === 0) { 3177 return options.keepOpen; 3178 } 3179 3180 if (typeof keepOpen !== 'boolean') { 3181 throw new TypeError('keepOpen() expects a boolean parameter'); 3182 } 3183 3184 options.keepOpen = keepOpen; 3185 return picker; 3186 }; 3187 3188 picker.focusOnShow = function (focusOnShow) { 3189 if (arguments.length === 0) { 3190 return options.focusOnShow; 3191 } 3192 3193 if (typeof focusOnShow !== 'boolean') { 3194 throw new TypeError('focusOnShow() expects a boolean parameter'); 3195 } 3196 3197 options.focusOnShow = focusOnShow; 3198 return picker; 3199 }; 3200 3201 picker.inline = function (inline) { 3202 if (arguments.length === 0) { 3203 return options.inline; 3204 } 3205 3206 if (typeof inline !== 'boolean') { 3207 throw new TypeError('inline() expects a boolean parameter'); 3208 } 3209 3210 options.inline = inline; 3211 return picker; 3212 }; 3213 3214 picker.clear = function () { 3215 clear(); 3216 return picker; 3217 }; 3218 3219 picker.keyBinds = function (keyBinds) { 3220 if (arguments.length === 0) { 3221 return options.keyBinds; 3222 } 3223 3224 options.keyBinds = keyBinds; 3225 return picker; 3226 }; 3227 3228 picker.getMoment = function (d) { 3229 return getMoment(d); 3230 }; 3231 3232 picker.debug = function (debug) { 3233 if (typeof debug !== 'boolean') { 3234 throw new TypeError('debug() expects a boolean parameter'); 3235 } 3236 3237 options.debug = debug; 3238 return picker; 3239 }; 3240 3241 picker.allowInputToggle = function (allowInputToggle) { 3242 if (arguments.length === 0) { 3243 return options.allowInputToggle; 3244 } 3245 3246 if (typeof allowInputToggle !== 'boolean') { 3247 throw new TypeError('allowInputToggle() expects a boolean parameter'); 3248 } 3249 3250 options.allowInputToggle = allowInputToggle; 3251 return picker; 3252 }; 3253 3254 picker.showClose = function (showClose) { 3255 if (arguments.length === 0) { 3256 return options.showClose; 3257 } 3258 3259 if (typeof showClose !== 'boolean') { 3260 throw new TypeError('showClose() expects a boolean parameter'); 3261 } 3262 3263 options.showClose = showClose; 3264 return picker; 3265 }; 3266 3267 picker.keepInvalid = function (keepInvalid) { 3268 if (arguments.length === 0) { 3269 return options.keepInvalid; 3270 } 3271 3272 if (typeof keepInvalid !== 'boolean') { 3273 throw new TypeError('keepInvalid() expects a boolean parameter'); 3274 } 3275 options.keepInvalid = keepInvalid; 3276 return picker; 3277 }; 3278 3279 picker.datepickerInput = function (datepickerInput) { 3280 if (arguments.length === 0) { 3281 return options.datepickerInput; 3282 } 3283 3284 if (typeof datepickerInput !== 'string') { 3285 throw new TypeError('datepickerInput() expects a string parameter'); 3286 } 3287 3288 options.datepickerInput = datepickerInput; 3289 return picker; 3290 }; 3291 3292 picker.parseInputDate = function (parseInputDate) { 3293 if (arguments.length === 0) { 3294 return options.parseInputDate; 3295 } 3296 3297 if (typeof parseInputDate !== 'function') { 3298 throw new TypeError('parseInputDate() sholud be as function'); 3299 } 3300 3301 options.parseInputDate = parseInputDate; 3302 3303 return picker; 3304 }; 3305 3306 picker.disabledTimeIntervals = function (disabledTimeIntervals) { 3307 ///<signature helpKeyword="$.fn.datetimepicker.disabledTimeIntervals"> 3308 ///<summary>Returns an array with the currently set disabled dates on the component.</summary> 3309 ///<returns type="array">options.disabledTimeIntervals</returns> 3310 ///</signature> 3311 ///<signature> 3312 ///<summary>Setting this takes precedence over options.minDate, options.maxDate configuration. Also calling this function removes the configuration of 3313 ///options.enabledDates if such exist.</summary> 3314 ///<param name="dates" locid="$.fn.datetimepicker.disabledTimeIntervals_p:dates">Takes an [ string or Date or moment ] of values and allows the user to select only from those days.</param> 3315 ///</signature> 3316 if (arguments.length === 0) { 3317 return (options.disabledTimeIntervals ? $.extend({}, options.disabledTimeIntervals) : options.disabledTimeIntervals); 3318 } 3319 3320 if (!disabledTimeIntervals) { 3321 options.disabledTimeIntervals = false; 3322 update(); 3323 return picker; 3324 } 3325 if (!(disabledTimeIntervals instanceof Array)) { 3326 throw new TypeError('disabledTimeIntervals() expects an array parameter'); 3327 } 3328 options.disabledTimeIntervals = disabledTimeIntervals; 3329 update(); 3330 return picker; 3331 }; 3332 3333 picker.disabledHours = function (hours) { 3334 ///<signature helpKeyword="$.fn.datetimepicker.disabledHours"> 3335 ///<summary>Returns an array with the currently set disabled hours on the component.</summary> 3336 ///<returns type="array">options.disabledHours</returns> 3337 ///</signature> 3338 ///<signature> 3339 ///<summary>Setting this takes precedence over options.minDate, options.maxDate configuration. Also calling this function removes the configuration of 3340 ///options.enabledHours if such exist.</summary> 3341 ///<param name="hours" locid="$.fn.datetimepicker.disabledHours_p:hours">Takes an [ int ] of values and disallows the user to select only from those hours.</param> 3342 ///</signature> 3343 if (arguments.length === 0) { 3344 return (options.disabledHours ? $.extend({}, options.disabledHours) : options.disabledHours); 3345 } 3346 3347 if (!hours) { 3348 options.disabledHours = false; 3349 update(); 3350 return picker; 3351 } 3352 if (!(hours instanceof Array)) { 3353 throw new TypeError('disabledHours() expects an array parameter'); 3354 } 3355 options.disabledHours = indexGivenHours(hours); 3356 options.enabledHours = false; 3357 if (options.useCurrent && !options.keepInvalid) { 3358 var tries = 0; 3359 while (!isValid(date, 'h')) { 3360 date.add(1, 'h'); 3361 if (tries === 24) { 3362 throw 'Tried 24 times to find a valid date'; 3363 } 3364 tries++; 3365 } 3366 setValue(date); 3367 } 3368 update(); 3369 return picker; 3370 }; 3371 3372 picker.enabledHours = function (hours) { 3373 ///<signature helpKeyword="$.fn.datetimepicker.enabledHours"> 3374 ///<summary>Returns an array with the currently set enabled hours on the component.</summary> 3375 ///<returns type="array">options.enabledHours</returns> 3376 ///</signature> 3377 ///<signature> 3378 ///<summary>Setting this takes precedence over options.minDate, options.maxDate configuration. Also calling this function removes the configuration of options.disabledHours if such exist.</summary> 3379 ///<param name="hours" locid="$.fn.datetimepicker.enabledHours_p:hours">Takes an [ int ] of values and allows the user to select only from those hours.</param> 3380 ///</signature> 3381 if (arguments.length === 0) { 3382 return (options.enabledHours ? $.extend({}, options.enabledHours) : options.enabledHours); 3383 } 3384 3385 if (!hours) { 3386 options.enabledHours = false; 3387 update(); 3388 return picker; 3389 } 3390 if (!(hours instanceof Array)) { 3391 throw new TypeError('enabledHours() expects an array parameter'); 3392 } 3393 options.enabledHours = indexGivenHours(hours); 3394 options.disabledHours = false; 3395 if (options.useCurrent && !options.keepInvalid) { 3396 var tries = 0; 3397 while (!isValid(date, 'h')) { 3398 date.add(1, 'h'); 3399 if (tries === 24) { 3400 throw 'Tried 24 times to find a valid date'; 3401 } 3402 tries++; 3403 } 3404 setValue(date); 3405 } 3406 update(); 3407 return picker; 3408 }; 3409 /** 3410 * Returns the component's model current viewDate, a moment object or null if not set. Passing a null value unsets the components model current moment. Parsing of the newDate parameter is made using moment library with the options.format and options.useStrict components configuration. 3411 * @param {Takes string, viewDate, moment, null parameter.} newDate 3412 * @returns {viewDate.clone()} 3413 */ 3414 picker.viewDate = function (newDate) { 3415 if (arguments.length === 0) { 3416 return viewDate.clone(); 3417 } 3418 3419 if (!newDate) { 3420 viewDate = date.clone(); 3421 return picker; 3422 } 3423 3424 if (typeof newDate !== 'string' && !moment.isMoment(newDate) && !(newDate instanceof Date)) { 3425 throw new TypeError('viewDate() parameter must be one of [string, moment or Date]'); 3426 } 3427 3428 viewDate = parseInputDate(newDate); 3429 viewUpdate(); 3430 return picker; 3431 }; 3432 3433 // initializing element and component attributes 3434 if (element.is('input')) { 3435 input = element; 3436 } else { 3437 input = element.find(options.datepickerInput); 3438 if (input.length === 0) { 3439 input = element.find('input'); 3440 } else if (!input.is('input')) { 3441 throw new Error('CSS class "' + options.datepickerInput + '" cannot be applied to non input element'); 3442 } 3443 } 3444 3445 if (element.hasClass('input-group')) { 3446 // in case there is more then one 'input-group-addon' Issue #48 3447 if (element.find('.datepickerbutton').length === 0) { 3448 component = element.find('.input-group-addon'); 3449 } else { 3450 component = element.find('.datepickerbutton'); 3451 } 3452 } 3453 3454 if (!options.inline && !input.is('input')) { 3455 throw new Error('Could not initialize DateTimePicker without an input element'); 3456 } 3457 3458 // Set defaults for date here now instead of in var declaration 3459 date = getMoment(); 3460 viewDate = date.clone(); 3461 3462 $.extend(true, options, dataToOptions()); 3463 3464 picker.options(options); 3465 3466 initFormatting(); 3467 3468 attachDatePickerElementEvents(); 3469 3470 if (input.prop('disabled')) { 3471 picker.disable(); 3472 } 3473 if (input.is('input') && input.val().trim().length !== 0) { 3474 setValue(parseInputDate(input.val().trim())); 3475 } 3476 else if (options.defaultDate && input.attr('placeholder') === undefined) { 3477 setValue(options.defaultDate); 3478 } 3479 if (options.inline) { 3480 show(); 3481 } 3482 return picker; 3483 }; 3484 3485 /******************************************************************************** 3486 * 3487 * jQuery plugin constructor and defaults object 3488 * 3489 ********************************************************************************/ 3490 3491 /** 3492 * See (http://jquery.com/). 3493 * @name jQuery 3494 * @class 3495 * See the jQuery Library (http://jquery.com/) for full details. This just 3496 * documents the function and classes that are added to jQuery by this plug-in. 3497 */ 3498 /** 3499 * See (http://jquery.com/) 3500 * @name fn 3501 * @class 3502 * See the jQuery Library (http://jquery.com/) for full details. This just 3503 * documents the function and classes that are added to jQuery by this plug-in. 3504 * @memberOf jQuery 3505 */ 3506 /** 3507 * Show comments 3508 * @class datetimepicker 3509 * @memberOf jQuery.fn 3510 */ 3511 $.fn.datetimepicker = function (options) { 3512 options = options || {}; 3513 3514 var args = Array.prototype.slice.call(arguments, 1), 3515 isInstance = true, 3516 thisMethods = ['destroy', 'hide', 'show', 'toggle'], 3517 returnValue; 3518 3519 if (typeof options === 'object') { 3520 return this.each(function () { 3521 var $this = $(this), 3522 _options; 3523 if (!$this.data('DateTimePicker')) { 3524 // create a private copy of the defaults object 3525 _options = $.extend(true, {}, $.fn.datetimepicker.defaults, options); 3526 $this.data('DateTimePicker', dateTimePicker($this, _options)); 3527 } 3528 }); 3529 } else if (typeof options === 'string') { 3530 this.each(function () { 3531 var $this = $(this), 3532 instance = $this.data('DateTimePicker'); 3533 if (!instance) { 3534 throw new Error('bootstrap-datetimepicker("' + options + '") method was called on an element that is not using DateTimePicker'); 3535 } 3536 3537 returnValue = instance[options].apply(instance, args); 3538 isInstance = returnValue === instance; 3539 }); 3540 3541 if (isInstance || $.inArray(options, thisMethods) > -1) { 3542 return this; 3543 } 3544 3545 return returnValue; 3546 } 3547 3548 throw new TypeError('Invalid arguments for DateTimePicker: ' + options); 3549 }; 3550 3551 $.fn.datetimepicker.defaults = { 3552 timeZone: '', 3553 format: false, 3554 dayViewHeaderFormat: 'MMMM YYYY', 3555 extraFormats: false, 3556 stepping: 1, 3557 minDate: false, 3558 maxDate: false, 3559 useCurrent: true, 3560 collapse: true, 3561 locale: moment.locale(), 3562 defaultDate: false, 3563 disabledDates: false, 3564 enabledDates: false, 3565 icons: { 3566 time: 'glyphicon glyphicon-time', 3567 date: 'glyphicon glyphicon-calendar', 3568 up: 'glyphicon glyphicon-chevron-up', 3569 down: 'glyphicon glyphicon-chevron-down', 3570 previous: 'glyphicon glyphicon-chevron-left', 3571 next: 'glyphicon glyphicon-chevron-right', 3572 today: 'glyphicon glyphicon-screenshot', 3573 clear: 'glyphicon glyphicon-trash', 3574 close: 'glyphicon glyphicon-remove' 3575 }, 3576 tooltips: { 3577 today: 'Go to today', 3578 clear: 'Clear selection', 3579 close: 'Close the picker', 3580 selectMonth: 'Select Month', 3581 prevMonth: 'Previous Month', 3582 nextMonth: 'Next Month', 3583 selectYear: 'Select Year', 3584 prevYear: 'Previous Year', 3585 nextYear: 'Next Year', 3586 selectDecade: 'Select Decade', 3587 prevDecade: 'Previous Decade', 3588 nextDecade: 'Next Decade', 3589 prevCentury: 'Previous Century', 3590 nextCentury: 'Next Century', 3591 pickHour: 'Pick Hour', 3592 incrementHour: 'Increment Hour', 3593 decrementHour: 'Decrement Hour', 3594 pickMinute: 'Pick Minute', 3595 incrementMinute: 'Increment Minute', 3596 decrementMinute: 'Decrement Minute', 3597 pickSecond: 'Pick Second', 3598 incrementSecond: 'Increment Second', 3599 decrementSecond: 'Decrement Second', 3600 togglePeriod: 'Toggle Period', 3601 selectTime: 'Select Time' 3602 }, 3603 useStrict: false, 3604 sideBySide: false, 3605 daysOfWeekDisabled: false, 3606 calendarWeeks: false, 3607 viewMode: 'days', 3608 toolbarPlacement: 'default', 3609 showTodayButton: false, 3610 showClear: false, 3611 showClose: false, 3612 widgetPositioning: { 3613 horizontal: 'auto', 3614 vertical: 'auto' 3615 }, 3616 widgetParent: null, 3617 ignoreReadonly: false, 3618 keepOpen: false, 3619 focusOnShow: true, 3620 inline: false, 3621 keepInvalid: false, 3622 datepickerInput: '.datepickerinput', 3623 keyBinds: { 3624 up: function (widget) { 3625 if (!widget) { 3626 return; 3627 } 3628 var d = this.date() || this.getMoment(); 3629 if (widget.find('.datepicker').is(':visible')) { 3630 this.date(d.clone().subtract(7, 'd')); 3631 } else { 3632 this.date(d.clone().add(this.stepping(), 'm')); 3633 } 3634 }, 3635 down: function (widget) { 3636 if (!widget) { 3637 this.show(); 3638 return; 3639 } 3640 var d = this.date() || this.getMoment(); 3641 if (widget.find('.datepicker').is(':visible')) { 3642 this.date(d.clone().add(7, 'd')); 3643 } else { 3644 this.date(d.clone().subtract(this.stepping(), 'm')); 3645 } 3646 }, 3647 'control up': function (widget) { 3648 if (!widget) { 3649 return; 3650 } 3651 var d = this.date() || this.getMoment(); 3652 if (widget.find('.datepicker').is(':visible')) { 3653 this.date(d.clone().subtract(1, 'y')); 3654 } else { 3655 this.date(d.clone().add(1, 'h')); 3656 } 3657 }, 3658 'control down': function (widget) { 3659 if (!widget) { 3660 return; 3661 } 3662 var d = this.date() || this.getMoment(); 3663 if (widget.find('.datepicker').is(':visible')) { 3664 this.date(d.clone().add(1, 'y')); 3665 } else { 3666 this.date(d.clone().subtract(1, 'h')); 3667 } 3668 }, 3669 left: function (widget) { 3670 if (!widget) { 3671 return; 3672 } 3673 var d = this.date() || this.getMoment(); 3674 if (widget.find('.datepicker').is(':visible')) { 3675 this.date(d.clone().subtract(1, 'd')); 3676 } 3677 }, 3678 right: function (widget) { 3679 if (!widget) { 3680 return; 3681 } 3682 var d = this.date() || this.getMoment(); 3683 if (widget.find('.datepicker').is(':visible')) { 3684 this.date(d.clone().add(1, 'd')); 3685 } 3686 }, 3687 pageUp: function (widget) { 3688 if (!widget) { 3689 return; 3690 } 3691 var d = this.date() || this.getMoment(); 3692 if (widget.find('.datepicker').is(':visible')) { 3693 this.date(d.clone().subtract(1, 'M')); 3694 } 3695 }, 3696 pageDown: function (widget) { 3697 if (!widget) { 3698 return; 3699 } 3700 var d = this.date() || this.getMoment(); 3701 if (widget.find('.datepicker').is(':visible')) { 3702 this.date(d.clone().add(1, 'M')); 3703 } 3704 }, 3705 enter: function () { 3706 this.hide(); 3707 }, 3708 escape: function () { 3709 this.hide(); 3710 }, 3711 //tab: function (widget) { //this break the flow of the form. disabling for now 3712 // var toggle = widget.find('.picker-switch a[data-action="togglePicker"]'); 3713 // if(toggle.length > 0) toggle.click(); 3714 //}, 3715 'control space': function (widget) { 3716 if (!widget) { 3717 return; 3718 } 3719 if (widget.find('.timepicker').is(':visible')) { 3720 widget.find('.btn[data-action="togglePeriod"]').click(); 3721 } 3722 }, 3723 t: function () { 3724 this.date(this.getMoment()); 3725 }, 3726 'delete': function () { 3727 this.clear(); 3728 } 3729 }, 3730 debug: false, 3731 allowInputToggle: false, 3732 disabledTimeIntervals: false, 3733 disabledHours: false, 3734 enabledHours: false, 3735 viewDate: false 3736 }; 3737 3738 return $.fn.datetimepicker; 3739})); 3740 3741 3742/***/ }), 3743
vendor: 23,854 bytes, lines 3744-4357
3744/***/ "./node_modules/jquery-mask-plugin/dist/jquery.mask.js": 3745/*!*************************************************************!*\ 3746 !*** ./node_modules/jquery-mask-plugin/dist/jquery.mask.js ***! 3747 \*************************************************************/ 3748/***/ ((module, exports, __webpack_require__) => { 3749 3750var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/** 3751 * jquery.mask.js 3752 * @version: v1.14.16 3753 * @author: Igor Escobar 3754 * 3755 * Created by Igor Escobar on 2012-03-10. Please report any bug at github.com/igorescobar/jQuery-Mask-Plugin 3756 * 3757 * Copyright (c) 2012 Igor Escobar http://igorescobar.com 3758 * 3759 * The MIT License (http://www.opensource.org/licenses/mit-license.php) 3760 * 3761 * Permission is hereby granted, free of charge, to any person 3762 * obtaining a copy of this software and associated documentation 3763 * files (the "Software"), to deal in the Software without 3764 * restriction, including without limitation the rights to use, 3765 * copy, modify, merge, publish, distribute, sublicense, and/or sell 3766 * copies of the Software, and to permit persons to whom the 3767 * Software is furnished to do so, subject to the following 3768 * conditions: 3769 * 3770 * The above copyright notice and this permission notice shall be 3771 * included in all copies or substantial portions of the Software. 3772 * 3773 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 3774 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 3775 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 3776 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 3777 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 3778 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 3779 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 3780 * OTHER DEALINGS IN THE SOFTWARE. 3781 */ 3782 3783/* jshint laxbreak: true */ 3784/* jshint maxcomplexity:17 */ 3785/* global define */ 3786 3787// UMD (Universal Module Definition) patterns for JavaScript modules that work everywhere. 3788// https://github.com/umdjs/umd/blob/master/templates/jqueryPlugin.js 3789(function (factory, jQuery, Zepto) { 3790 3791 if (true) { 3792 !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 3793 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 3794 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 3795 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); 3796 } else // removed by dead control flow 3797{} 3798 3799}(function ($) { 3800 'use strict'; 3801 3802 var Mask = function (el, mask, options) { 3803 3804 var p = { 3805 invalid: [], 3806 getCaret: function () { 3807 try { 3808 var sel, 3809 pos = 0, 3810 ctrl = el.get(0), 3811 dSel = document.selection, 3812 cSelStart = ctrl.selectionStart; 3813 3814 // IE Support 3815 if (dSel && navigator.appVersion.indexOf('MSIE 10') === -1) { 3816 sel = dSel.createRange(); 3817 sel.moveStart('character', -p.val().length); 3818 pos = sel.text.length; 3819 } 3820 // Firefox support 3821 else if (cSelStart || cSelStart === '0') { 3822 pos = cSelStart; 3823 } 3824 3825 return pos; 3826 } catch (e) {} 3827 }, 3828 setCaret: function(pos) { 3829 try { 3830 if (el.is(':focus')) { 3831 var range, ctrl = el.get(0); 3832 3833 // Firefox, WebKit, etc.. 3834 if (ctrl.setSelectionRange) { 3835 ctrl.setSelectionRange(pos, pos); 3836 } else { // IE 3837 range = ctrl.createTextRange(); 3838 range.collapse(true); 3839 range.moveEnd('character', pos); 3840 range.moveStart('character', pos); 3841 range.select(); 3842 } 3843 } 3844 } catch (e) {} 3845 }, 3846 events: function() { 3847 el 3848 .on('keydown.mask', function(e) { 3849 el.data('mask-keycode', e.keyCode || e.which); 3850 el.data('mask-previus-value', el.val()); 3851 el.data('mask-previus-caret-pos', p.getCaret()); 3852 p.maskDigitPosMapOld = p.maskDigitPosMap; 3853 }) 3854 .on($.jMaskGlobals.useInput ? 'input.mask' : 'keyup.mask', p.behaviour) 3855 .on('paste.mask drop.mask', function() { 3856 setTimeout(function() { 3857 el.keydown().keyup(); 3858 }, 100); 3859 }) 3860 .on('change.mask', function(){ 3861 el.data('changed', true); 3862 }) 3863 .on('blur.mask', function(){ 3864 if (oldValue !== p.val() && !el.data('changed')) { 3865 el.trigger('change'); 3866 } 3867 el.data('changed', false); 3868 }) 3869 // it's very important that this callback remains in this position 3870 // otherwhise oldValue it's going to work buggy 3871 .on('blur.mask', function() { 3872 oldValue = p.val(); 3873 }) 3874 // select all text on focus 3875 .on('focus.mask', function (e) { 3876 if (options.selectOnFocus === true) { 3877 $(e.target).select(); 3878 } 3879 }) 3880 // clear the value if it not complete the mask 3881 .on('focusout.mask', function() { 3882 if (options.clearIfNotMatch && !regexMask.test(p.val())) { 3883 p.val(''); 3884 } 3885 }); 3886 }, 3887 getRegexMask: function() { 3888 var maskChunks = [], translation, pattern, optional, recursive, oRecursive, r; 3889 3890 for (var i = 0; i < mask.length; i++) { 3891 translation = jMask.translation[mask.charAt(i)]; 3892 3893 if (translation) { 3894 3895 pattern = translation.pattern.toString().replace(/.{1}$|^.{1}/g, ''); 3896 optional = translation.optional; 3897 recursive = translation.recursive; 3898 3899 if (recursive) { 3900 maskChunks.push(mask.charAt(i)); 3901 oRecursive = {digit: mask.charAt(i), pattern: pattern}; 3902 } else { 3903 maskChunks.push(!optional && !recursive ? pattern : (pattern + '?')); 3904 } 3905 3906 } else { 3907 maskChunks.push(mask.charAt(i).replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&')); 3908 } 3909 } 3910 3911 r = maskChunks.join(''); 3912 3913 if (oRecursive) { 3914 r = r.replace(new RegExp('(' + oRecursive.digit + '(.*' + oRecursive.digit + ')?)'), '($1)?') 3915 .replace(new RegExp(oRecursive.digit, 'g'), oRecursive.pattern); 3916 } 3917 3918 return new RegExp(r); 3919 }, 3920 destroyEvents: function() { 3921 el.off(['input', 'keydown', 'keyup', 'paste', 'drop', 'blur', 'focusout', ''].join('.mask ')); 3922 }, 3923 val: function(v) { 3924 var isInput = el.is('input'), 3925 method = isInput ? 'val' : 'text', 3926 r; 3927 3928 if (arguments.length > 0) { 3929 if (el[method]() !== v) { 3930 el[method](v); 3931 } 3932 r = el; 3933 } else { 3934 r = el[method](); 3935 } 3936 3937 return r; 3938 }, 3939 calculateCaretPosition: function(oldVal) { 3940 var newVal = p.getMasked(), 3941 caretPosNew = p.getCaret(); 3942 if (oldVal !== newVal) { 3943 var caretPosOld = el.data('mask-previus-caret-pos') || 0, 3944 newValL = newVal.length, 3945 oldValL = oldVal.length, 3946 maskDigitsBeforeCaret = 0, 3947 maskDigitsAfterCaret = 0, 3948 maskDigitsBeforeCaretAll = 0, 3949 maskDigitsBeforeCaretAllOld = 0, 3950 i = 0; 3951 3952 for (i = caretPosNew; i < newValL; i++) { 3953 if (!p.maskDigitPosMap[i]) { 3954 break; 3955 } 3956 maskDigitsAfterCaret++; 3957 } 3958 3959 for (i = caretPosNew - 1; i >= 0; i--) { 3960 if (!p.maskDigitPosMap[i]) { 3961 break; 3962 } 3963 maskDigitsBeforeCaret++; 3964 } 3965 3966 for (i = caretPosNew - 1; i >= 0; i--) { 3967 if (p.maskDigitPosMap[i]) { 3968 maskDigitsBeforeCaretAll++; 3969 } 3970 } 3971 3972 for (i = caretPosOld - 1; i >= 0; i--) { 3973 if (p.maskDigitPosMapOld[i]) { 3974 maskDigitsBeforeCaretAllOld++; 3975 } 3976 } 3977 3978 // if the cursor is at the end keep it there 3979 if (caretPosNew > oldValL) { 3980 caretPosNew = newValL * 10; 3981 } else if (caretPosOld >= caretPosNew && caretPosOld !== oldValL) { 3982 if (!p.maskDigitPosMapOld[caretPosNew]) { 3983 var caretPos = caretPosNew; 3984 caretPosNew -= maskDigitsBeforeCaretAllOld - maskDigitsBeforeCaretAll; 3985 caretPosNew -= maskDigitsBeforeCaret; 3986 if (p.maskDigitPosMap[caretPosNew]) { 3987 caretPosNew = caretPos; 3988 } 3989 } 3990 } 3991 else if (caretPosNew > caretPosOld) { 3992 caretPosNew += maskDigitsBeforeCaretAll - maskDigitsBeforeCaretAllOld; 3993 caretPosNew += maskDigitsAfterCaret; 3994 } 3995 } 3996 return caretPosNew; 3997 }, 3998 behaviour: function(e) { 3999 e = e || window.event; 4000 p.invalid = []; 4001 4002 var keyCode = el.data('mask-keycode'); 4003 4004 if ($.inArray(keyCode, jMask.byPassKeys) === -1) { 4005 var newVal = p.getMasked(), 4006 caretPos = p.getCaret(), 4007 oldVal = el.data('mask-previus-value') || ''; 4008 4009 // this is a compensation to devices/browsers that don't compensate 4010 // caret positioning the right way 4011 setTimeout(function() { 4012 p.setCaret(p.calculateCaretPosition(oldVal)); 4013 }, $.jMaskGlobals.keyStrokeCompensation); 4014 4015 p.val(newVal); 4016 p.setCaret(caretPos); 4017 return p.callbacks(e); 4018 } 4019 }, 4020 getMasked: function(skipMaskChars, val) { 4021 var buf = [], 4022 value = val === undefined ? p.val() : val + '', 4023 m = 0, maskLen = mask.length, 4024 v = 0, valLen = value.length, 4025 offset = 1, addMethod = 'push', 4026 resetPos = -1, 4027 maskDigitCount = 0, 4028 maskDigitPosArr = [], 4029 lastMaskChar, 4030 check; 4031 4032 if (options.reverse) { 4033 addMethod = 'unshift'; 4034 offset = -1; 4035 lastMaskChar = 0; 4036 m = maskLen - 1; 4037 v = valLen - 1; 4038 check = function () { 4039 return m > -1 && v > -1; 4040 }; 4041 } else { 4042 lastMaskChar = maskLen - 1; 4043 check = function () { 4044 return m < maskLen && v < valLen; 4045 }; 4046 } 4047 4048 var lastUntranslatedMaskChar; 4049 while (check()) { 4050 var maskDigit = mask.charAt(m), 4051 valDigit = value.charAt(v), 4052 translation = jMask.translation[maskDigit]; 4053 4054 if (translation) { 4055 if (valDigit.match(translation.pattern)) { 4056 buf[addMethod](valDigit); 4057 if (translation.recursive) { 4058 if (resetPos === -1) { 4059 resetPos = m; 4060 } else if (m === lastMaskChar && m !== resetPos) { 4061 m = resetPos - offset; 4062 } 4063 4064 if (lastMaskChar === resetPos) { 4065 m -= offset; 4066 } 4067 } 4068 m += offset; 4069 } else if (valDigit === lastUntranslatedMaskChar) { 4070 // matched the last untranslated (raw) mask character that we encountered 4071 // likely an insert offset the mask character from the last entry; fall 4072 // through and only increment v 4073 maskDigitCount--; 4074 lastUntranslatedMaskChar = undefined; 4075 } else if (translation.optional) { 4076 m += offset; 4077 v -= offset; 4078 } else if (translation.fallback) { 4079 buf[addMethod](translation.fallback); 4080 m += offset; 4081 v -= offset; 4082 } else { 4083 p.invalid.push({p: v, v: valDigit, e: translation.pattern}); 4084 } 4085 v += offset; 4086 } else { 4087 if (!skipMaskChars) { 4088 buf[addMethod](maskDigit); 4089 } 4090 4091 if (valDigit === maskDigit) { 4092 maskDigitPosArr.push(v); 4093 v += offset; 4094 } else { 4095 lastUntranslatedMaskChar = maskDigit; 4096 maskDigitPosArr.push(v + maskDigitCount); 4097 maskDigitCount++; 4098 } 4099 4100 m += offset; 4101 } 4102 } 4103 4104 var lastMaskCharDigit = mask.charAt(lastMaskChar); 4105 if (maskLen === valLen + 1 && !jMask.translation[lastMaskCharDigit]) { 4106 buf.push(lastMaskCharDigit); 4107 } 4108 4109 var newVal = buf.join(''); 4110 p.mapMaskdigitPositions(newVal, maskDigitPosArr, valLen); 4111 return newVal; 4112 }, 4113 mapMaskdigitPositions: function(newVal, maskDigitPosArr, valLen) { 4114 var maskDiff = options.reverse ? newVal.length - valLen : 0; 4115 p.maskDigitPosMap = {}; 4116 for (var i = 0; i < maskDigitPosArr.length; i++) { 4117 p.maskDigitPosMap[maskDigitPosArr[i] + maskDiff] = 1; 4118 } 4119 }, 4120 callbacks: function (e) { 4121 var val = p.val(), 4122 changed = val !== oldValue, 4123 defaultArgs = [val, e, el, options], 4124 callback = function(name, criteria, args) { 4125 if (typeof options[name] === 'function' && criteria) { 4126 options[name].apply(this, args); 4127 } 4128 }; 4129 4130 callback('onChange', changed === true, defaultArgs); 4131 callback('onKeyPress', changed === true, defaultArgs); 4132 callback('onComplete', val.length === mask.length, defaultArgs); 4133 callback('onInvalid', p.invalid.length > 0, [val, e, el, p.invalid, options]); 4134 } 4135 }; 4136 4137 el = $(el); 4138 var jMask = this, oldValue = p.val(), regexMask; 4139 4140 mask = typeof mask === 'function' ? mask(p.val(), undefined, el, options) : mask; 4141 4142 // public methods 4143 jMask.mask = mask; 4144 jMask.options = options; 4145 jMask.remove = function() { 4146 var caret = p.getCaret(); 4147 if (jMask.options.placeholder) { 4148 el.removeAttr('placeholder'); 4149 } 4150 if (el.data('mask-maxlength')) { 4151 el.removeAttr('maxlength'); 4152 } 4153 p.destroyEvents(); 4154 p.val(jMask.getCleanVal()); 4155 p.setCaret(caret); 4156 return el; 4157 }; 4158 4159 // get value without mask 4160 jMask.getCleanVal = function() { 4161 return p.getMasked(true); 4162 }; 4163 4164 // get masked value without the value being in the input or element 4165 jMask.getMaskedVal = function(val) { 4166 return p.getMasked(false, val); 4167 }; 4168 4169 jMask.init = function(onlyMask) { 4170 onlyMask = onlyMask || false; 4171 options = options || {}; 4172 4173 jMask.clearIfNotMatch = $.jMaskGlobals.clearIfNotMatch; 4174 jMask.byPassKeys = $.jMaskGlobals.byPassKeys; 4175 jMask.translation = $.extend({}, $.jMaskGlobals.translation, options.translation); 4176 4177 jMask = $.extend(true, {}, jMask, options); 4178 4179 regexMask = p.getRegexMask(); 4180 4181 if (onlyMask) { 4182 p.events(); 4183 p.val(p.getMasked()); 4184 } else { 4185 if (options.placeholder) { 4186 el.attr('placeholder' , options.placeholder); 4187 } 4188 4189 // this is necessary, otherwise if the user submit the form 4190 // and then press the "back" button, the autocomplete will erase 4191 // the data. Works fine on IE9+, FF, Opera, Safari. 4192 if (el.data('mask')) { 4193 el.attr('autocomplete', 'off'); 4194 } 4195 4196 // detect if is necessary let the user type freely. 4197 // for is a lot faster than forEach. 4198 for (var i = 0, maxlength = true; i < mask.length; i++) { 4199 var translation = jMask.translation[mask.charAt(i)]; 4200 if (translation && translation.recursive) { 4201 maxlength = false; 4202 break; 4203 } 4204 } 4205 4206 if (maxlength) { 4207 el.attr('maxlength', mask.length).data('mask-maxlength', true); 4208 } 4209 4210 p.destroyEvents(); 4211 p.events(); 4212 4213 var caret = p.getCaret(); 4214 p.val(p.getMasked()); 4215 p.setCaret(caret); 4216 } 4217 }; 4218 4219 jMask.init(!el.is('input')); 4220 }; 4221 4222 $.maskWatchers = {}; 4223 var HTMLAttributes = function () { 4224 var input = $(this), 4225 options = {}, 4226 prefix = 'data-mask-', 4227 mask = input.attr('data-mask'); 4228 4229 if (input.attr(prefix + 'reverse')) { 4230 options.reverse = true; 4231 } 4232 4233 if (input.attr(prefix + 'clearifnotmatch')) { 4234 options.clearIfNotMatch = true; 4235 } 4236 4237 if (input.attr(prefix + 'selectonfocus') === 'true') { 4238 options.selectOnFocus = true; 4239 } 4240 4241 if (notSameMaskObject(input, mask, options)) { 4242 return input.data('mask', new Mask(this, mask, options)); 4243 } 4244 }, 4245 notSameMaskObject = function(field, mask, options) { 4246 options = options || {}; 4247 var maskObject = $(field).data('mask'), 4248 stringify = JSON.stringify, 4249 value = $(field).val() || $(field).text(); 4250 try { 4251 if (typeof mask === 'function') { 4252 mask = mask(value); 4253 } 4254 return typeof maskObject !== 'object' || stringify(maskObject.options) !== stringify(options) || maskObject.mask !== mask; 4255 } catch (e) {} 4256 }, 4257 eventSupported = function(eventName) { 4258 var el = document.createElement('div'), isSupported; 4259 4260 eventName = 'on' + eventName; 4261 isSupported = (eventName in el); 4262 4263 if ( !isSupported ) { 4264 el.setAttribute(eventName, 'return;'); 4265 isSupported = typeof el[eventName] === 'function'; 4266 } 4267 el = null; 4268 4269 return isSupported; 4270 }; 4271 4272 $.fn.mask = function(mask, options) { 4273 options = options || {}; 4274 var selector = this.selector, 4275 globals = $.jMaskGlobals, 4276 interval = globals.watchInterval, 4277 watchInputs = options.watchInputs || globals.watchInputs, 4278 maskFunction = function() { 4279 if (notSameMaskObject(this, mask, options)) { 4280 return $(this).data('mask', new Mask(this, mask, options)); 4281 } 4282 }; 4283 4284 $(this).each(maskFunction); 4285 4286 if (selector && selector !== '' && watchInputs) { 4287 clearInterval($.maskWatchers[selector]); 4288 $.maskWatchers[selector] = setInterval(function(){ 4289 $(document).find(selector).each(maskFunction); 4290 }, interval); 4291 } 4292 return this; 4293 }; 4294 4295 $.fn.masked = function(val) { 4296 return this.data('mask').getMaskedVal(val); 4297 }; 4298 4299 $.fn.unmask = function() { 4300 clearInterval($.maskWatchers[this.selector]); 4301 delete $.maskWatchers[this.selector]; 4302 return this.each(function() { 4303 var dataMask = $(this).data('mask'); 4304 if (dataMask) { 4305 dataMask.remove().removeData('mask'); 4306 } 4307 }); 4308 }; 4309 4310 $.fn.cleanVal = function() { 4311 return this.data('mask').getCleanVal(); 4312 }; 4313 4314 $.applyDataMask = function(selector) { 4315 selector = selector || $.jMaskGlobals.maskElements; 4316 var $selector = (selector instanceof $) ? selector : $(selector); 4317 $selector.filter($.jMaskGlobals.dataMaskAttr).each(HTMLAttributes); 4318 }; 4319 4320 var globals = { 4321 maskElements: 'input,td,span,div', 4322 dataMaskAttr: '*[data-mask]', 4323 dataMask: true, 4324 watchInterval: 300, 4325 watchInputs: true, 4326 keyStrokeCompensation: 10, 4327 // old versions of chrome dont work great with input event 4328 useInput: !/Chrome\/[2-4][0-9]|SamsungBrowser/.test(window.navigator.userAgent) && eventSupported('input'), 4329 watchDataMask: false, 4330 byPassKeys: [9, 16, 17, 18, 36, 37, 38, 39, 40, 91], 4331 translation: { 4332 '0': {pattern: /\d/}, 4333 '9': {pattern: /\d/, optional: true}, 4334 '#': {pattern: /\d/, recursive: true}, 4335 'A': {pattern: /[a-zA-Z0-9]/}, 4336 'S': {pattern: /[a-zA-Z]/} 4337 } 4338 }; 4339 4340 $.jMaskGlobals = $.jMaskGlobals || {}; 4341 globals = $.jMaskGlobals = $.extend(true, {}, globals, $.jMaskGlobals); 4342 4343 // looking for inputs with data-mask attribute 4344 if (globals.dataMask) { 4345 $.applyDataMask(); 4346 } 4347 4348 setInterval(function() { 4349 if ($.jMaskGlobals.watchDataMask) { 4350 $.applyDataMask(); 4351 } 4352 }, globals.watchInterval); 4353}, window.jQuery, window.Zepto)); 4354 4355 4356/***/ }), 4357
vendor: 300,529 bytes, lines 4358-15389
4358/***/ "./node_modules/jquery/dist/jquery.js": 4359/*!********************************************!*\ 4360 !*** ./node_modules/jquery/dist/jquery.js ***! 4361 \********************************************/ 4362/***/ (function(module, exports) { 4363 4364var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*! 4365 * jQuery JavaScript Library v3.7.1 4366 * https://jquery.com/ 4367 * 4368 * Copyright OpenJS Foundation and other contributors 4369 * Released under the MIT license 4370 * https://jquery.org/license 4371 * 4372 * Date: 2023-08-28T13:37Z 4373 */ 4374( function( global, factory ) { 4375 4376 "use strict"; 4377 4378 if ( true && typeof module.exports === "object" ) { 4379 4380 // For CommonJS and CommonJS-like environments where a proper `window` 4381 // is present, execute the factory and get jQuery. 4382 // For environments that do not have a `window` with a `document` 4383 // (such as Node.js), expose a factory as module.exports. 4384 // This accentuates the need for the creation of a real `window`. 4385 // e.g. var jQuery = require("jquery")(window); 4386 // See ticket trac-14549 for more info. 4387 module.exports = global.document ? 4388 factory( global, true ) : 4389 function( w ) { 4390 if ( !w.document ) { 4391 throw new Error( "jQuery requires a window with a document" ); 4392 } 4393 return factory( w ); 4394 }; 4395 } else { 4396 factory( global ); 4397 } 4398 4399// Pass this if window is not defined yet 4400} )( typeof window !== "undefined" ? window : this, function( window, noGlobal ) { 4401 4402// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1 4403// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode 4404// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common 4405// enough that all such attempts are guarded in a try block. 4406"use strict"; 4407 4408var arr = []; 4409 4410var getProto = Object.getPrototypeOf; 4411 4412var slice = arr.slice; 4413 4414var flat = arr.flat ? function( array ) { 4415 return arr.flat.call( array ); 4416} : function( array ) { 4417 return arr.concat.apply( [], array ); 4418}; 4419 4420 4421var push = arr.push; 4422 4423var indexOf = arr.indexOf; 4424 4425var class2type = {}; 4426 4427var toString = class2type.toString; 4428 4429var hasOwn = class2type.hasOwnProperty; 4430 4431var fnToString = hasOwn.toString; 4432 4433var ObjectFunctionString = fnToString.call( Object ); 4434 4435var support = {}; 4436 4437var isFunction = function isFunction( obj ) { 4438 4439 // Support: Chrome <=57, Firefox <=52 4440 // In some browsers, typeof returns "function" for HTML <object> elements 4441 // (i.e., `typeof document.createElement( "object" ) === "function"`). 4442 // We don't want to classify *any* DOM node as a function. 4443 // Support: QtWeb <=3.8.5, WebKit <=534.34, wkhtmltopdf tool <=0.12.5 4444 // Plus for old WebKit, typeof returns "function" for HTML collections 4445 // (e.g., `typeof document.getElementsByTagName("div") === "function"`). (gh-4756) 4446 return typeof obj === "function" && typeof obj.nodeType !== "number" && 4447 typeof obj.item !== "function"; 4448 }; 4449 4450 4451var isWindow = function isWindow( obj ) { 4452 return obj != null && obj === obj.window; 4453 }; 4454 4455 4456var document = window.document; 4457 4458 4459 4460 var preservedScriptAttributes = { 4461 type: true, 4462 src: true, 4463 nonce: true, 4464 noModule: true 4465 }; 4466 4467 function DOMEval( code, node, doc ) { 4468 doc = doc || document; 4469 4470 var i, val, 4471 script = doc.createElement( "script" ); 4472 4473 script.text = code; 4474 if ( node ) { 4475 for ( i in preservedScriptAttributes ) { 4476 4477 // Support: Firefox 64+, Edge 18+ 4478 // Some browsers don't support the "nonce" property on scripts. 4479 // On the other hand, just using `getAttribute` is not enough as 4480 // the `nonce` attribute is reset to an empty string whenever it 4481 // becomes browsing-context connected. 4482 // See https://github.com/whatwg/html/issues/2369 4483 // See https://html.spec.whatwg.org/#nonce-attributes 4484 // The `node.getAttribute` check was added for the sake of 4485 // `jQuery.globalEval` so that it can fake a nonce-containing node 4486 // via an object. 4487 val = node[ i ] || node.getAttribute && node.getAttribute( i ); 4488 if ( val ) { 4489 script.setAttribute( i, val ); 4490 } 4491 } 4492 } 4493 doc.head.appendChild( script ).parentNode.removeChild( script ); 4494 } 4495 4496 4497function toType( obj ) { 4498 if ( obj == null ) { 4499 return obj + ""; 4500 } 4501 4502 // Support: Android <=2.3 only (functionish RegExp) 4503 return typeof obj === "object" || typeof obj === "function" ? 4504 class2type[ toString.call( obj ) ] || "object" : 4505 typeof obj; 4506} 4507/* global Symbol */ 4508// Defining this global in .eslintrc.json would create a danger of using the global 4509// unguarded in another place, it seems safer to define global only for this module 4510 4511 4512 4513var version = "3.7.1", 4514 4515 rhtmlSuffix = /HTML$/i, 4516 4517 // Define a local copy of jQuery 4518 jQuery = function( selector, context ) { 4519 4520 // The jQuery object is actually just the init constructor 'enhanced' 4521 // Need init if jQuery is called (just allow error to be thrown if not included) 4522 return new jQuery.fn.init( selector, context ); 4523 }; 4524 4525jQuery.fn = jQuery.prototype = { 4526 4527 // The current version of jQuery being used 4528 jquery: version, 4529 4530 constructor: jQuery, 4531 4532 // The default length of a jQuery object is 0 4533 length: 0, 4534 4535 toArray: function() { 4536 return slice.call( this ); 4537 }, 4538 4539 // Get the Nth element in the matched element set OR 4540 // Get the whole matched element set as a clean array 4541 get: function( num ) { 4542 4543 // Return all the elements in a clean array 4544 if ( num == null ) { 4545 return slice.call( this ); 4546 } 4547 4548 // Return just the one element from the set 4549 return num < 0 ? this[ num + this.length ] : this[ num ]; 4550 }, 4551 4552 // Take an array of elements and push it onto the stack 4553 // (returning the new matched element set) 4554 pushStack: function( elems ) { 4555 4556 // Build a new jQuery matched element set 4557 var ret = jQuery.merge( this.constructor(), elems ); 4558 4559 // Add the old object onto the stack (as a reference) 4560 ret.prevObject = this; 4561 4562 // Return the newly-formed element set 4563 return ret; 4564 }, 4565 4566 // Execute a callback for every element in the matched set. 4567 each: function( callback ) { 4568 return jQuery.each( this, callback ); 4569 }, 4570 4571 map: function( callback ) { 4572 return this.pushStack( jQuery.map( this, function( elem, i ) { 4573 return callback.call( elem, i, elem ); 4574 } ) ); 4575 }, 4576 4577 slice: function() { 4578 return this.pushStack( slice.apply( this, arguments ) ); 4579 }, 4580 4581 first: function() { 4582 return this.eq( 0 ); 4583 }, 4584 4585 last: function() { 4586 return this.eq( -1 ); 4587 }, 4588 4589 even: function() { 4590 return this.pushStack( jQuery.grep( this, function( _elem, i ) { 4591 return ( i + 1 ) % 2; 4592 } ) ); 4593 }, 4594 4595 odd: function() { 4596 return this.pushStack( jQuery.grep( this, function( _elem, i ) { 4597 return i % 2; 4598 } ) ); 4599 }, 4600 4601 eq: function( i ) { 4602 var len = this.length, 4603 j = +i + ( i < 0 ? len : 0 ); 4604 return this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] ); 4605 }, 4606 4607 end: function() { 4608 return this.prevObject || this.constructor(); 4609 }, 4610 4611 // For internal use only. 4612 // Behaves like an Array's method, not like a jQuery method. 4613 push: push, 4614 sort: arr.sort, 4615 splice: arr.splice 4616}; 4617 4618jQuery.extend = jQuery.fn.extend = function() { 4619 var options, name, src, copy, copyIsArray, clone, 4620 target = arguments[ 0 ] || {}, 4621 i = 1, 4622 length = arguments.length, 4623 deep = false; 4624 4625 // Handle a deep copy situation 4626 if ( typeof target === "boolean" ) { 4627 deep = target; 4628 4629 // Skip the boolean and the target 4630 target = arguments[ i ] || {}; 4631 i++; 4632 } 4633 4634 // Handle case when target is a string or something (possible in deep copy) 4635 if ( typeof target !== "object" && !isFunction( target ) ) { 4636 target = {}; 4637 } 4638 4639 // Extend jQuery itself if only one argument is passed 4640 if ( i === length ) { 4641 target = this; 4642 i--; 4643 } 4644 4645 for ( ; i < length; i++ ) { 4646 4647 // Only deal with non-null/undefined values 4648 if ( ( options = arguments[ i ] ) != null ) { 4649 4650 // Extend the base object 4651 for ( name in options ) { 4652 copy = options[ name ]; 4653 4654 // Prevent Object.prototype pollution 4655 // Prevent never-ending loop 4656 if ( name === "__proto__" || target === copy ) { 4657 continue; 4658 } 4659 4660 // Recurse if we're merging plain objects or arrays 4661 if ( deep && copy && ( jQuery.isPlainObject( copy ) || 4662 ( copyIsArray = Array.isArray( copy ) ) ) ) { 4663 src = target[ name ]; 4664 4665 // Ensure proper type for the source value 4666 if ( copyIsArray && !Array.isArray( src ) ) { 4667 clone = []; 4668 } else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) { 4669 clone = {}; 4670 } else { 4671 clone = src; 4672 } 4673 copyIsArray = false; 4674 4675 // Never move original objects, clone them 4676 target[ name ] = jQuery.extend( deep, clone, copy ); 4677 4678 // Don't bring in undefined values 4679 } else if ( copy !== undefined ) { 4680 target[ name ] = copy; 4681 } 4682 } 4683 } 4684 } 4685 4686 // Return the modified object 4687 return target; 4688}; 4689 4690jQuery.extend( { 4691 4692 // Unique for each copy of jQuery on the page 4693 expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ), 4694 4695 // Assume jQuery is ready without the ready module 4696 isReady: true, 4697 4698 error: function( msg ) { 4699 throw new Error( msg ); 4700 }, 4701 4702 noop: function() {}, 4703 4704 isPlainObject: function( obj ) { 4705 var proto, Ctor; 4706 4707 // Detect obvious negatives 4708 // Use toString instead of jQuery.type to catch host objects 4709 if ( !obj || toString.call( obj ) !== "[object Object]" ) { 4710 return false; 4711 } 4712 4713 proto = getProto( obj ); 4714 4715 // Objects with no prototype (e.g., `Object.create( null )`) are plain 4716 if ( !proto ) { 4717 return true; 4718 } 4719 4720 // Objects with prototype are plain iff they were constructed by a global Object function 4721 Ctor = hasOwn.call( proto, "constructor" ) && proto.constructor; 4722 return typeof Ctor === "function" && fnToString.call( Ctor ) === ObjectFunctionString; 4723 }, 4724 4725 isEmptyObject: function( obj ) { 4726 var name; 4727 4728 for ( name in obj ) { 4729 return false; 4730 } 4731 return true; 4732 }, 4733 4734 // Evaluates a script in a provided context; falls back to the global one 4735 // if not specified. 4736 globalEval: function( code, options, doc ) { 4737 DOMEval( code, { nonce: options && options.nonce }, doc ); 4738 }, 4739 4740 each: function( obj, callback ) { 4741 var length, i = 0; 4742 4743 if ( isArrayLike( obj ) ) { 4744 length = obj.length; 4745 for ( ; i < length; i++ ) { 4746 if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { 4747 break; 4748 } 4749 } 4750 } else { 4751 for ( i in obj ) { 4752 if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { 4753 break; 4754 } 4755 } 4756 } 4757 4758 return obj; 4759 }, 4760 4761 4762 // Retrieve the text value of an array of DOM nodes 4763 text: function( elem ) { 4764 var node, 4765 ret = "", 4766 i = 0, 4767 nodeType = elem.nodeType; 4768 4769 if ( !nodeType ) { 4770 4771 // If no nodeType, this is expected to be an array 4772 while ( ( node = elem[ i++ ] ) ) { 4773 4774 // Do not traverse comment nodes 4775 ret += jQuery.text( node ); 4776 } 4777 } 4778 if ( nodeType === 1 || nodeType === 11 ) { 4779 return elem.textContent; 4780 } 4781 if ( nodeType === 9 ) { 4782 return elem.documentElement.textContent; 4783 } 4784 if ( nodeType === 3 || nodeType === 4 ) { 4785 return elem.nodeValue; 4786 } 4787 4788 // Do not include comment or processing instruction nodes 4789 4790 return ret; 4791 }, 4792 4793 // results is for internal usage only 4794 makeArray: function( arr, results ) { 4795 var ret = results || []; 4796 4797 if ( arr != null ) { 4798 if ( isArrayLike( Object( arr ) ) ) { 4799 jQuery.merge( ret, 4800 typeof arr === "string" ? 4801 [ arr ] : arr 4802 ); 4803 } else { 4804 push.call( ret, arr ); 4805 } 4806 } 4807 4808 return ret; 4809 }, 4810 4811 inArray: function( elem, arr, i ) { 4812 return arr == null ? -1 : indexOf.call( arr, elem, i ); 4813 }, 4814 4815 isXMLDoc: function( elem ) { 4816 var namespace = elem && elem.namespaceURI, 4817 docElem = elem && ( elem.ownerDocument || elem ).documentElement; 4818 4819 // Assume HTML when documentElement doesn't yet exist, such as inside 4820 // document fragments. 4821 return !rhtmlSuffix.test( namespace || docElem && docElem.nodeName || "HTML" ); 4822 }, 4823 4824 // Support: Android <=4.0 only, PhantomJS 1 only 4825 // push.apply(_, arraylike) throws on ancient WebKit 4826 merge: function( first, second ) { 4827 var len = +second.length, 4828 j = 0, 4829 i = first.length; 4830 4831 for ( ; j < len; j++ ) { 4832 first[ i++ ] = second[ j ]; 4833 } 4834 4835 first.length = i; 4836 4837 return first; 4838 }, 4839 4840 grep: function( elems, callback, invert ) { 4841 var callbackInverse, 4842 matches = [], 4843 i = 0, 4844 length = elems.length, 4845 callbackExpect = !invert; 4846 4847 // Go through the array, only saving the items 4848 // that pass the validator function 4849 for ( ; i < length; i++ ) { 4850 callbackInverse = !callback( elems[ i ], i ); 4851 if ( callbackInverse !== callbackExpect ) { 4852 matches.push( elems[ i ] ); 4853 } 4854 } 4855 4856 return matches; 4857 }, 4858 4859 // arg is for internal usage only 4860 map: function( elems, callback, arg ) { 4861 var length, value, 4862 i = 0, 4863 ret = []; 4864 4865 // Go through the array, translating each of the items to their new values 4866 if ( isArrayLike( elems ) ) { 4867 length = elems.length; 4868 for ( ; i < length; i++ ) { 4869 value = callback( elems[ i ], i, arg ); 4870 4871 if ( value != null ) { 4872 ret.push( value ); 4873 } 4874 } 4875 4876 // Go through every key on the object, 4877 } else { 4878 for ( i in elems ) { 4879 value = callback( elems[ i ], i, arg ); 4880 4881 if ( value != null ) { 4882 ret.push( value ); 4883 } 4884 } 4885 } 4886 4887 // Flatten any nested arrays 4888 return flat( ret ); 4889 }, 4890 4891 // A global GUID counter for objects 4892 guid: 1, 4893 4894 // jQuery.support is not used in Core but other projects attach their 4895 // properties to it so it needs to exist. 4896 support: support 4897} ); 4898 4899if ( typeof Symbol === "function" ) { 4900 jQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ]; 4901} 4902 4903// Populate the class2type map 4904jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ), 4905 function( _i, name ) { 4906 class2type[ "[object " + name + "]" ] = name.toLowerCase(); 4907 } ); 4908 4909function isArrayLike( obj ) { 4910 4911 // Support: real iOS 8.2 only (not reproducible in simulator) 4912 // `in` check used to prevent JIT error (gh-2145) 4913 // hasOwn isn't used here due to false negatives 4914 // regarding Nodelist length in IE 4915 var length = !!obj && "length" in obj && obj.length, 4916 type = toType( obj ); 4917 4918 if ( isFunction( obj ) || isWindow( obj ) ) { 4919 return false; 4920 } 4921 4922 return type === "array" || length === 0 || 4923 typeof length === "number" && length > 0 && ( length - 1 ) in obj; 4924} 4925 4926 4927function nodeName( elem, name ) { 4928 4929 return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); 4930 4931} 4932var pop = arr.pop; 4933 4934 4935var sort = arr.sort; 4936 4937 4938var splice = arr.splice; 4939 4940 4941var whitespace = "[\\x20\\t\\r\\n\\f]"; 4942 4943 4944var rtrimCSS = new RegExp( 4945 "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", 4946 "g" 4947); 4948 4949 4950 4951 4952// Note: an element does not contain itself 4953jQuery.contains = function( a, b ) { 4954 var bup = b && b.parentNode; 4955 4956 return a === bup || !!( bup && bup.nodeType === 1 && ( 4957 4958 // Support: IE 9 - 11+ 4959 // IE doesn't have `contains` on SVG. 4960 a.contains ? 4961 a.contains( bup ) : 4962 a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16 4963 ) ); 4964}; 4965 4966 4967 4968 4969// CSS string/identifier serialization 4970// https://drafts.csswg.org/cssom/#common-serializing-idioms 4971var rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g; 4972 4973function fcssescape( ch, asCodePoint ) { 4974 if ( asCodePoint ) { 4975 4976 // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER 4977 if ( ch === "\0" ) { 4978 return "\uFFFD"; 4979 } 4980 4981 // Control characters and (dependent upon position) numbers get escaped as code points 4982 return ch.slice( 0, -1 ) + "\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " "; 4983 } 4984 4985 // Other potentially-special ASCII characters get backslash-escaped 4986 return "\\" + ch; 4987} 4988 4989jQuery.escapeSelector = function( sel ) { 4990 return ( sel + "" ).replace( rcssescape, fcssescape ); 4991}; 4992 4993 4994 4995 4996var preferredDoc = document, 4997 pushNative = push; 4998 4999( function() { 5000 5001var i, 5002 Expr, 5003 outermostContext, 5004 sortInput, 5005 hasDuplicate, 5006 push = pushNative, 5007 5008 // Local document vars 5009 document, 5010 documentElement, 5011 documentIsHTML, 5012 rbuggyQSA, 5013 matches, 5014 5015 // Instance-specific data 5016 expando = jQuery.expando, 5017 dirruns = 0, 5018 done = 0, 5019 classCache = createCache(), 5020 tokenCache = createCache(), 5021 compilerCache = createCache(), 5022 nonnativeSelectorCache = createCache(), 5023 sortOrder = function( a, b ) { 5024 if ( a === b ) { 5025 hasDuplicate = true; 5026 } 5027 return 0; 5028 }, 5029 5030 booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|" + 5031 "loop|multiple|open|readonly|required|scoped", 5032 5033 // Regular expressions 5034 5035 // https://www.w3.org/TR/css-syntax-3/#ident-token-diagram 5036 identifier = "(?:\\\\[\\da-fA-F]{1,6}" + whitespace + 5037 "?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+", 5038 5039 // Attribute selectors: https://www.w3.org/TR/selectors/#attribute-selectors 5040 attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace + 5041 5042 // Operator (capture 2) 5043 "*([*^$|!~]?=)" + whitespace + 5044 5045 // "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]" 5046 "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + 5047 whitespace + "*\\]", 5048 5049 pseudos = ":(" + identifier + ")(?:\\((" + 5050 5051 // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments: 5052 // 1. quoted (capture 3; capture 4 or capture 5) 5053 "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" + 5054 5055 // 2. simple (capture 6) 5056 "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" + 5057 5058 // 3. anything else (capture 2) 5059 ".*" + 5060 ")\\)|)", 5061 5062 // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter 5063 rwhitespace = new RegExp( whitespace + "+", "g" ), 5064 5065 rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), 5066 rleadingCombinator = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + 5067 whitespace + "*" ), 5068 rdescend = new RegExp( whitespace + "|>" ), 5069 5070 rpseudo = new RegExp( pseudos ), 5071 ridentifier = new RegExp( "^" + identifier + "$" ), 5072 5073 matchExpr = { 5074 ID: new RegExp( "^#(" + identifier + ")" ), 5075 CLASS: new RegExp( "^\\.(" + identifier + ")" ), 5076 TAG: new RegExp( "^(" + identifier + "|[*])" ), 5077 ATTR: new RegExp( "^" + attributes ), 5078 PSEUDO: new RegExp( "^" + pseudos ), 5079 CHILD: new RegExp( 5080 "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + 5081 whitespace + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + 5082 whitespace + "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), 5083 bool: new RegExp( "^(?:" + booleans + ")$", "i" ), 5084 5085 // For use in libraries implementing .is() 5086 // We use this for POS matching in `select` 5087 needsContext: new RegExp( "^" + whitespace + 5088 "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + whitespace + 5089 "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) 5090 }, 5091 5092 rinputs = /^(?:input|select|textarea|button)$/i, 5093 rheader = /^h\d$/i, 5094 5095 // Easily-parseable/retrievable ID or TAG or CLASS selectors 5096 rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, 5097 5098 rsibling = /[+~]/, 5099 5100 // CSS escapes 5101 // https://www.w3.org/TR/CSS21/syndata.html#escaped-characters 5102 runescape = new RegExp( "\\\\[\\da-fA-F]{1,6}" + whitespace + 5103 "?|\\\\([^\\r\\n\\f])", "g" ), 5104 funescape = function( escape, nonHex ) { 5105 var high = "0x" + escape.slice( 1 ) - 0x10000; 5106 5107 if ( nonHex ) { 5108 5109 // Strip the backslash prefix from a non-hex escape sequence 5110 return nonHex; 5111 } 5112 5113 // Replace a hexadecimal escape sequence with the encoded Unicode code point 5114 // Support: IE <=11+ 5115 // For values outside the Basic Multilingual Plane (BMP), manually construct a 5116 // surrogate pair 5117 return high < 0 ? 5118 String.fromCharCode( high + 0x10000 ) : 5119 String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); 5120 }, 5121 5122 // Used for iframes; see `setDocument`. 5123 // Support: IE 9 - 11+, Edge 12 - 18+ 5124 // Removing the function wrapper causes a "Permission Denied" 5125 // error in IE/Edge. 5126 unloadHandler = function() { 5127 setDocument(); 5128 }, 5129 5130 inDisabledFieldset = addCombinator( 5131 function( elem ) { 5132 return elem.disabled === true && nodeName( elem, "fieldset" ); 5133 }, 5134 { dir: "parentNode", next: "legend" } 5135 ); 5136 5137// Support: IE <=9 only 5138// Accessing document.activeElement can throw unexpectedly 5139// https://bugs.jquery.com/ticket/13393 5140function safeActiveElement() { 5141 try { 5142 return document.activeElement; 5143 } catch ( err ) { } 5144} 5145 5146// Optimize for push.apply( _, NodeList ) 5147try { 5148 push.apply( 5149 ( arr = slice.call( preferredDoc.childNodes ) ), 5150 preferredDoc.childNodes 5151 ); 5152 5153 // Support: Android <=4.0 5154 // Detect silently failing push.apply 5155 // eslint-disable-next-line no-unused-expressions 5156 arr[ preferredDoc.childNodes.length ].nodeType; 5157} catch ( e ) { 5158 push = { 5159 apply: function( target, els ) { 5160 pushNative.apply( target, slice.call( els ) ); 5161 }, 5162 call: function( target ) { 5163 pushNative.apply( target, slice.call( arguments, 1 ) ); 5164 } 5165 }; 5166} 5167 5168function find( selector, context, results, seed ) { 5169 var m, i, elem, nid, match, groups, newSelector, 5170 newContext = context && context.ownerDocument, 5171 5172 // nodeType defaults to 9, since context defaults to document 5173 nodeType = context ? context.nodeType : 9; 5174 5175 results = results || []; 5176 5177 // Return early from calls with invalid selector or context 5178 if ( typeof selector !== "string" || !selector || 5179 nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) { 5180 5181 return results; 5182 } 5183 5184 // Try to shortcut find operations (as opposed to filters) in HTML documents 5185 if ( !seed ) { 5186 setDocument( context ); 5187 context = context || document; 5188 5189 if ( documentIsHTML ) { 5190 5191 // If the selector is sufficiently simple, try using a "get*By*" DOM method 5192 // (excepting DocumentFragment context, where the methods don't exist) 5193 if ( nodeType !== 11 && ( match = rquickExpr.exec( selector ) ) ) { 5194 5195 // ID selector 5196 if ( ( m = match[ 1 ] ) ) { 5197 5198 // Document context 5199 if ( nodeType === 9 ) { 5200 if ( ( elem = context.getElementById( m ) ) ) { 5201 5202 // Support: IE 9 only 5203 // getElementById can match elements by name instead of ID 5204 if ( elem.id === m ) { 5205 push.call( results, elem ); 5206 return results; 5207 } 5208 } else { 5209 return results; 5210 } 5211 5212 // Element context 5213 } else { 5214 5215 // Support: IE 9 only 5216 // getElementById can match elements by name instead of ID 5217 if ( newContext && ( elem = newContext.getElementById( m ) ) && 5218 find.contains( context, elem ) && 5219 elem.id === m ) { 5220 5221 push.call( results, elem ); 5222 return results; 5223 } 5224 } 5225 5226 // Type selector 5227 } else if ( match[ 2 ] ) { 5228 push.apply( results, context.getElementsByTagName( selector ) ); 5229 return results; 5230 5231 // Class selector 5232 } else if ( ( m = match[ 3 ] ) && context.getElementsByClassName ) { 5233 push.apply( results, context.getElementsByClassName( m ) ); 5234 return results; 5235 } 5236 } 5237 5238 // Take advantage of querySelectorAll 5239 if ( !nonnativeSelectorCache[ selector + " " ] && 5240 ( !rbuggyQSA || !rbuggyQSA.test( selector ) ) ) { 5241 5242 newSelector = selector; 5243 newContext = context; 5244 5245 // qSA considers elements outside a scoping root when evaluating child or 5246 // descendant combinators, which is not what we want. 5247 // In such cases, we work around the behavior by prefixing every selector in the 5248 // list with an ID selector referencing the scope context. 5249 // The technique has to be used as well when a leading combinator is used 5250 // as such selectors are not recognized by querySelectorAll. 5251 // Thanks to Andrew Dupont for this technique. 5252 if ( nodeType === 1 && 5253 ( rdescend.test( selector ) || rleadingCombinator.test( selector ) ) ) { 5254 5255 // Expand context for sibling selectors 5256 newContext = rsibling.test( selector ) && testContext( context.parentNode ) || 5257 context; 5258 5259 // We can use :scope instead of the ID hack if the browser 5260 // supports it & if we're not changing the context. 5261 // Support: IE 11+, Edge 17 - 18+ 5262 // IE/Edge sometimes throw a "Permission denied" error when 5263 // strict-comparing two documents; shallow comparisons work. 5264 // eslint-disable-next-line eqeqeq 5265 if ( newContext != context || !support.scope ) { 5266 5267 // Capture the context ID, setting it first if necessary 5268 if ( ( nid = context.getAttribute( "id" ) ) ) { 5269 nid = jQuery.escapeSelector( nid ); 5270 } else { 5271 context.setAttribute( "id", ( nid = expando ) ); 5272 } 5273 } 5274 5275 // Prefix every selector in the list 5276 groups = tokenize( selector ); 5277 i = groups.length; 5278 while ( i-- ) { 5279 groups[ i ] = ( nid ? "#" + nid : ":scope" ) + " " + 5280 toSelector( groups[ i ] ); 5281 } 5282 newSelector = groups.join( "," ); 5283 } 5284 5285 try { 5286 push.apply( results, 5287 newContext.querySelectorAll( newSelector ) 5288 ); 5289 return results; 5290 } catch ( qsaError ) { 5291 nonnativeSelectorCache( selector, true ); 5292 } finally { 5293 if ( nid === expando ) { 5294 context.removeAttribute( "id" ); 5295 } 5296 } 5297 } 5298 } 5299 } 5300 5301 // All others 5302 return select( selector.replace( rtrimCSS, "$1" ), context, results, seed ); 5303} 5304 5305/** 5306 * Create key-value caches of limited size 5307 * @returns {function(string, object)} Returns the Object data after storing it on itself with 5308 * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength) 5309 * deleting the oldest entry 5310 */ 5311function createCache() { 5312 var keys = []; 5313 5314 function cache( key, value ) { 5315 5316 // Use (key + " ") to avoid collision with native prototype properties 5317 // (see https://github.com/jquery/sizzle/issues/157) 5318 if ( keys.push( key + " " ) > Expr.cacheLength ) { 5319 5320 // Only keep the most recent entries 5321 delete cache[ keys.shift() ]; 5322 } 5323 return ( cache[ key + " " ] = value ); 5324 } 5325 return cache; 5326} 5327 5328/** 5329 * Mark a function for special use by jQuery selector module 5330 * @param {Function} fn The function to mark 5331 */ 5332function markFunction( fn ) { 5333 fn[ expando ] = true; 5334 return fn; 5335} 5336 5337/** 5338 * Support testing using an element 5339 * @param {Function} fn Passed the created element and returns a boolean result 5340 */ 5341function assert( fn ) { 5342 var el = document.createElement( "fieldset" ); 5343 5344 try { 5345 return !!fn( el ); 5346 } catch ( e ) { 5347 return false; 5348 } finally { 5349 5350 // Remove from its parent by default 5351 if ( el.parentNode ) { 5352 el.parentNode.removeChild( el ); 5353 } 5354 5355 // release memory in IE 5356 el = null; 5357 } 5358} 5359 5360/** 5361 * Returns a function to use in pseudos for input types 5362 * @param {String} type 5363 */ 5364function createInputPseudo( type ) { 5365 return function( elem ) { 5366 return nodeName( elem, "input" ) && elem.type === type; 5367 }; 5368} 5369 5370/** 5371 * Returns a function to use in pseudos for buttons 5372 * @param {String} type 5373 */ 5374function createButtonPseudo( type ) { 5375 return function( elem ) { 5376 return ( nodeName( elem, "input" ) || nodeName( elem, "button" ) ) && 5377 elem.type === type; 5378 }; 5379} 5380 5381/** 5382 * Returns a function to use in pseudos for :enabled/:disabled 5383 * @param {Boolean} disabled true for :disabled; false for :enabled 5384 */ 5385function createDisabledPseudo( disabled ) { 5386 5387 // Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable 5388 return function( elem ) { 5389 5390 // Only certain elements can match :enabled or :disabled 5391 // https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled 5392 // https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled 5393 if ( "form" in elem ) { 5394 5395 // Check for inherited disabledness on relevant non-disabled elements: 5396 // * listed form-associated elements in a disabled fieldset 5397 // https://html.spec.whatwg.org/multipage/forms.html#category-listed 5398 // https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled 5399 // * option elements in a disabled optgroup 5400 // https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled 5401 // All such elements have a "form" property. 5402 if ( elem.parentNode && elem.disabled === false ) { 5403 5404 // Option elements defer to a parent optgroup if present 5405 if ( "label" in elem ) { 5406 if ( "label" in elem.parentNode ) { 5407 return elem.parentNode.disabled === disabled; 5408 } else { 5409 return elem.disabled === disabled; 5410 } 5411 } 5412 5413 // Support: IE 6 - 11+ 5414 // Use the isDisabled shortcut property to check for disabled fieldset ancestors 5415 return elem.isDisabled === disabled || 5416 5417 // Where there is no isDisabled, check manually 5418 elem.isDisabled !== !disabled && 5419 inDisabledFieldset( elem ) === disabled; 5420 } 5421 5422 return elem.disabled === disabled; 5423 5424 // Try to winnow out elements that can't be disabled before trusting the disabled property. 5425 // Some victims get caught in our net (label, legend, menu, track), but it shouldn't 5426 // even exist on them, let alone have a boolean value. 5427 } else if ( "label" in elem ) { 5428 return elem.disabled === disabled; 5429 } 5430 5431 // Remaining elements are neither :enabled nor :disabled 5432 return false; 5433 }; 5434} 5435 5436/** 5437 * Returns a function to use in pseudos for positionals 5438 * @param {Function} fn 5439 */ 5440function createPositionalPseudo( fn ) { 5441 return markFunction( function( argument ) { 5442 argument = +argument; 5443 return markFunction( function( seed, matches ) { 5444 var j, 5445 matchIndexes = fn( [], seed.length, argument ), 5446 i = matchIndexes.length; 5447 5448 // Match elements found at the specified indexes 5449 while ( i-- ) { 5450 if ( seed[ ( j = matchIndexes[ i ] ) ] ) { 5451 seed[ j ] = !( matches[ j ] = seed[ j ] ); 5452 } 5453 } 5454 } ); 5455 } ); 5456} 5457 5458/** 5459 * Checks a node for validity as a jQuery selector context 5460 * @param {Element|Object=} context 5461 * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value 5462 */ 5463function testContext( context ) { 5464 return context && typeof context.getElementsByTagName !== "undefined" && context; 5465} 5466 5467/** 5468 * Sets document-related variables once based on the current document 5469 * @param {Element|Object} [node] An element or document object to use to set the document 5470 * @returns {Object} Returns the current document 5471 */ 5472function setDocument( node ) { 5473 var subWindow, 5474 doc = node ? node.ownerDocument || node : preferredDoc; 5475 5476 // Return early if doc is invalid or already selected 5477 // Support: IE 11+, Edge 17 - 18+ 5478 // IE/Edge sometimes throw a "Permission denied" error when strict-comparing 5479 // two documents; shallow comparisons work. 5480 // eslint-disable-next-line eqeqeq 5481 if ( doc == document || doc.nodeType !== 9 || !doc.documentElement ) { 5482 return document; 5483 } 5484 5485 // Update global variables 5486 document = doc; 5487 documentElement = document.documentElement; 5488 documentIsHTML = !jQuery.isXMLDoc( document ); 5489 5490 // Support: iOS 7 only, IE 9 - 11+ 5491 // Older browsers didn't support unprefixed `matches`. 5492 matches = documentElement.matches || 5493 documentElement.webkitMatchesSelector || 5494 documentElement.msMatchesSelector; 5495 5496 // Support: IE 9 - 11+, Edge 12 - 18+ 5497 // Accessing iframe documents after unload throws "permission denied" errors 5498 // (see trac-13936). 5499 // Limit the fix to IE & Edge Legacy; despite Edge 15+ implementing `matches`, 5500 // all IE 9+ and Edge Legacy versions implement `msMatchesSelector` as well. 5501 if ( documentElement.msMatchesSelector && 5502 5503 // Support: IE 11+, Edge 17 - 18+ 5504 // IE/Edge sometimes throw a "Permission denied" error when strict-comparing 5505 // two documents; shallow comparisons work. 5506 // eslint-disable-next-line eqeqeq 5507 preferredDoc != document && 5508 ( subWindow = document.defaultView ) && subWindow.top !== subWindow ) { 5509 5510 // Support: IE 9 - 11+, Edge 12 - 18+ 5511 subWindow.addEventListener( "unload", unloadHandler ); 5512 } 5513 5514 // Support: IE <10 5515 // Check if getElementById returns elements by name 5516 // The broken getElementById methods don't pick up programmatically-set names, 5517 // so use a roundabout getElementsByName test 5518 support.getById = assert( function( el ) { 5519 documentElement.appendChild( el ).id = jQuery.expando; 5520 return !document.getElementsByName || 5521 !document.getElementsByName( jQuery.expando ).length; 5522 } ); 5523 5524 // Support: IE 9 only 5525 // Check to see if it's possible to do matchesSelector 5526 // on a disconnected node. 5527 support.disconnectedMatch = assert( function( el ) { 5528 return matches.call( el, "*" ); 5529 } ); 5530 5531 // Support: IE 9 - 11+, Edge 12 - 18+ 5532 // IE/Edge don't support the :scope pseudo-class. 5533 support.scope = assert( function() { 5534 return document.querySelectorAll( ":scope" ); 5535 } ); 5536 5537 // Support: Chrome 105 - 111 only, Safari 15.4 - 16.3 only 5538 // Make sure the `:has()` argument is parsed unforgivingly. 5539 // We include `*` in the test to detect buggy implementations that are 5540 // _selectively_ forgiving (specifically when the list includes at least 5541 // one valid selector). 5542 // Note that we treat complete lack of support for `:has()` as if it were 5543 // spec-compliant support, which is fine because use of `:has()` in such 5544 // environments will fail in the qSA path and fall back to jQuery traversal 5545 // anyway. 5546 support.cssHas = assert( function() { 5547 try { 5548 document.querySelector( ":has(*,:jqfake)" ); 5549 return false; 5550 } catch ( e ) { 5551 return true; 5552 } 5553 } ); 5554 5555 // ID filter and find 5556 if ( support.getById ) { 5557 Expr.filter.ID = function( id ) { 5558 var attrId = id.replace( runescape, funescape ); 5559 return function( elem ) { 5560 return elem.getAttribute( "id" ) === attrId; 5561 }; 5562 }; 5563 Expr.find.ID = function( id, context ) { 5564 if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { 5565 var elem = context.getElementById( id ); 5566 return elem ? [ elem ] : []; 5567 } 5568 }; 5569 } else { 5570 Expr.filter.ID = function( id ) { 5571 var attrId = id.replace( runescape, funescape ); 5572 return function( elem ) { 5573 var node = typeof elem.getAttributeNode !== "undefined" && 5574 elem.getAttributeNode( "id" ); 5575 return node && node.value === attrId; 5576 }; 5577 }; 5578 5579 // Support: IE 6 - 7 only 5580 // getElementById is not reliable as a find shortcut 5581 Expr.find.ID = function( id, context ) { 5582 if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { 5583 var node, i, elems, 5584 elem = context.getElementById( id ); 5585 5586 if ( elem ) { 5587 5588 // Verify the id attribute 5589 node = elem.getAttributeNode( "id" ); 5590 if ( node && node.value === id ) { 5591 return [ elem ]; 5592 } 5593 5594 // Fall back on getElementsByName 5595 elems = context.getElementsByName( id ); 5596 i = 0; 5597 while ( ( elem = elems[ i++ ] ) ) { 5598 node = elem.getAttributeNode( "id" ); 5599 if ( node && node.value === id ) { 5600 return [ elem ]; 5601 } 5602 } 5603 } 5604 5605 return []; 5606 } 5607 }; 5608 } 5609 5610 // Tag 5611 Expr.find.TAG = function( tag, context ) { 5612 if ( typeof context.getElementsByTagName !== "undefined" ) { 5613 return context.getElementsByTagName( tag ); 5614 5615 // DocumentFragment nodes don't have gEBTN 5616 } else { 5617 return context.querySelectorAll( tag ); 5618 } 5619 }; 5620 5621 // Class 5622 Expr.find.CLASS = function( className, context ) { 5623 if ( typeof context.getElementsByClassName !== "undefined" && documentIsHTML ) { 5624 return context.getElementsByClassName( className ); 5625 } 5626 }; 5627 5628 /* QSA/matchesSelector 5629 ---------------------------------------------------------------------- */ 5630 5631 // QSA and matchesSelector support 5632 5633 rbuggyQSA = []; 5634 5635 // Build QSA regex 5636 // Regex strategy adopted from Diego Perini 5637 assert( function( el ) { 5638 5639 var input; 5640 5641 documentElement.appendChild( el ).innerHTML = 5642 "<a id='" + expando + "' href='' disabled='disabled'></a>" + 5643 "<select id='" + expando + "-\r\\' disabled='disabled'>" + 5644 "<option selected=''></option></select>"; 5645 5646 // Support: iOS <=7 - 8 only 5647 // Boolean attributes and "value" are not treated correctly in some XML documents 5648 if ( !el.querySelectorAll( "[selected]" ).length ) { 5649 rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" ); 5650 } 5651 5652 // Support: iOS <=7 - 8 only 5653 if ( !el.querySelectorAll( "[id~=" + expando + "-]" ).length ) { 5654 rbuggyQSA.push( "~=" ); 5655 } 5656 5657 // Support: iOS 8 only 5658 // https://bugs.webkit.org/show_bug.cgi?id=136851 5659 // In-page `selector#id sibling-combinator selector` fails 5660 if ( !el.querySelectorAll( "a#" + expando + "+*" ).length ) { 5661 rbuggyQSA.push( ".#.+[+~]" ); 5662 } 5663 5664 // Support: Chrome <=105+, Firefox <=104+, Safari <=15.4+ 5665 // In some of the document kinds, these selectors wouldn't work natively. 5666 // This is probably OK but for backwards compatibility we want to maintain 5667 // handling them through jQuery traversal in jQuery 3.x. 5668 if ( !el.querySelectorAll( ":checked" ).length ) { 5669 rbuggyQSA.push( ":checked" ); 5670 } 5671 5672 // Support: Windows 8 Native Apps 5673 // The type and name attributes are restricted during .innerHTML assignment 5674 input = document.createElement( "input" ); 5675 input.setAttribute( "type", "hidden" ); 5676 el.appendChild( input ).setAttribute( "name", "D" ); 5677 5678 // Support: IE 9 - 11+ 5679 // IE's :disabled selector does not pick up the children of disabled fieldsets 5680 // Support: Chrome <=105+, Firefox <=104+, Safari <=15.4+ 5681 // In some of the document kinds, these selectors wouldn't work natively. 5682 // This is probably OK but for backwards compatibility we want to maintain 5683 // handling them through jQuery traversal in jQuery 3.x. 5684 documentElement.appendChild( el ).disabled = true; 5685 if ( el.querySelectorAll( ":disabled" ).length !== 2 ) { 5686 rbuggyQSA.push( ":enabled", ":disabled" ); 5687 } 5688 5689 // Support: IE 11+, Edge 15 - 18+ 5690 // IE 11/Edge don't find elements on a `[name='']` query in some cases. 5691 // Adding a temporary attribute to the document before the selection works 5692 // around the issue. 5693 // Interestingly, IE 10 & older don't seem to have the issue. 5694 input = document.createElement( "input" ); 5695 input.setAttribute( "name", "" ); 5696 el.appendChild( input ); 5697 if ( !el.querySelectorAll( "[name='']" ).length ) { 5698 rbuggyQSA.push( "\\[" + whitespace + "*name" + whitespace + "*=" + 5699 whitespace + "*(?:''|\"\")" ); 5700 } 5701 } ); 5702 5703 if ( !support.cssHas ) { 5704 5705 // Support: Chrome 105 - 110+, Safari 15.4 - 16.3+ 5706 // Our regular `try-catch` mechanism fails to detect natively-unsupported 5707 // pseudo-classes inside `:has()` (such as `:has(:contains("Foo"))`) 5708 // in browsers that parse the `:has()` argument as a forgiving selector list. 5709 // https://drafts.csswg.org/selectors/#relational now requires the argument 5710 // to be parsed unforgivingly, but browsers have not yet fully adjusted. 5711 rbuggyQSA.push( ":has" ); 5712 } 5713 5714 rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join( "|" ) ); 5715 5716 /* Sorting 5717 ---------------------------------------------------------------------- */ 5718 5719 // Document order sorting 5720 sortOrder = function( a, b ) { 5721 5722 // Flag for duplicate removal 5723 if ( a === b ) { 5724 hasDuplicate = true; 5725 return 0; 5726 } 5727 5728 // Sort on method existence if only one input has compareDocumentPosition 5729 var compare = !a.compareDocumentPosition - !b.compareDocumentPosition; 5730 if ( compare ) { 5731 return compare; 5732 } 5733 5734 // Calculate position if both inputs belong to the same document 5735 // Support: IE 11+, Edge 17 - 18+ 5736 // IE/Edge sometimes throw a "Permission denied" error when strict-comparing 5737 // two documents; shallow comparisons work. 5738 // eslint-disable-next-line eqeqeq 5739 compare = ( a.ownerDocument || a ) == ( b.ownerDocument || b ) ? 5740 a.compareDocumentPosition( b ) : 5741 5742 // Otherwise we know they are disconnected 5743 1; 5744 5745 // Disconnected nodes 5746 if ( compare & 1 || 5747 ( !support.sortDetached && b.compareDocumentPosition( a ) === compare ) ) { 5748 5749 // Choose the first element that is related to our preferred document 5750 // Support: IE 11+, Edge 17 - 18+ 5751 // IE/Edge sometimes throw a "Permission denied" error when strict-comparing 5752 // two documents; shallow comparisons work. 5753 // eslint-disable-next-line eqeqeq 5754 if ( a === document || a.ownerDocument == preferredDoc && 5755 find.contains( preferredDoc, a ) ) { 5756 return -1; 5757 } 5758 5759 // Support: IE 11+, Edge 17 - 18+ 5760 // IE/Edge sometimes throw a "Permission denied" error when strict-comparing 5761 // two documents; shallow comparisons work. 5762 // eslint-disable-next-line eqeqeq 5763 if ( b === document || b.ownerDocument == preferredDoc && 5764 find.contains( preferredDoc, b ) ) { 5765 return 1; 5766 } 5767 5768 // Maintain original order 5769 return sortInput ? 5770 ( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) : 5771 0; 5772 } 5773 5774 return compare & 4 ? -1 : 1; 5775 }; 5776 5777 return document; 5778} 5779 5780find.matches = function( expr, elements ) { 5781 return find( expr, null, null, elements ); 5782}; 5783 5784find.matchesSelector = function( elem, expr ) { 5785 setDocument( elem ); 5786 5787 if ( documentIsHTML && 5788 !nonnativeSelectorCache[ expr + " " ] && 5789 ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) { 5790 5791 try { 5792 var ret = matches.call( elem, expr ); 5793 5794 // IE 9's matchesSelector returns false on disconnected nodes 5795 if ( ret || support.disconnectedMatch || 5796 5797 // As well, disconnected nodes are said to be in a document 5798 // fragment in IE 9 5799 elem.document && elem.document.nodeType !== 11 ) { 5800 return ret; 5801 } 5802 } catch ( e ) { 5803 nonnativeSelectorCache( expr, true ); 5804 } 5805 } 5806 5807 return find( expr, document, null, [ elem ] ).length > 0; 5808}; 5809 5810find.contains = function( context, elem ) { 5811 5812 // Set document vars if needed 5813 // Support: IE 11+, Edge 17 - 18+ 5814 // IE/Edge sometimes throw a "Permission denied" error when strict-comparing 5815 // two documents; shallow comparisons work. 5816 // eslint-disable-next-line eqeqeq 5817 if ( ( context.ownerDocument || context ) != document ) { 5818 setDocument( context ); 5819 } 5820 return jQuery.contains( context, elem ); 5821}; 5822 5823 5824find.attr = function( elem, name ) { 5825 5826 // Set document vars if needed 5827 // Support: IE 11+, Edge 17 - 18+ 5828 // IE/Edge sometimes throw a "Permission denied" error when strict-comparing 5829 // two documents; shallow comparisons work. 5830 // eslint-disable-next-line eqeqeq 5831 if ( ( elem.ownerDocument || elem ) != document ) { 5832 setDocument( elem ); 5833 } 5834 5835 var fn = Expr.attrHandle[ name.toLowerCase() ], 5836 5837 // Don't get fooled by Object.prototype properties (see trac-13807) 5838 val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ? 5839 fn( elem, name, !documentIsHTML ) : 5840 undefined; 5841 5842 if ( val !== undefined ) { 5843 return val; 5844 } 5845 5846 return elem.getAttribute( name ); 5847}; 5848 5849find.error = function( msg ) { 5850 throw new Error( "Syntax error, unrecognized expression: " + msg ); 5851}; 5852 5853/** 5854 * Document sorting and removing duplicates 5855 * @param {ArrayLike} results 5856 */ 5857jQuery.uniqueSort = function( results ) { 5858 var elem, 5859 duplicates = [], 5860 j = 0, 5861 i = 0; 5862 5863 // Unless we *know* we can detect duplicates, assume their presence 5864 // 5865 // Support: Android <=4.0+ 5866 // Testing for detecting duplicates is unpredictable so instead assume we can't 5867 // depend on duplicate detection in all browsers without a stable sort. 5868 hasDuplicate = !support.sortStable; 5869 sortInput = !support.sortStable && slice.call( results, 0 ); 5870 sort.call( results, sortOrder ); 5871 5872 if ( hasDuplicate ) { 5873 while ( ( elem = results[ i++ ] ) ) { 5874 if ( elem === results[ i ] ) { 5875 j = duplicates.push( i ); 5876 } 5877 } 5878 while ( j-- ) { 5879 splice.call( results, duplicates[ j ], 1 ); 5880 } 5881 } 5882 5883 // Clear input after sorting to release objects 5884 // See https://github.com/jquery/sizzle/pull/225 5885 sortInput = null; 5886 5887 return results; 5888}; 5889 5890jQuery.fn.uniqueSort = function() { 5891 return this.pushStack( jQuery.uniqueSort( slice.apply( this ) ) ); 5892}; 5893 5894Expr = jQuery.expr = { 5895 5896 // Can be adjusted by the user 5897 cacheLength: 50, 5898 5899 createPseudo: markFunction, 5900 5901 match: matchExpr, 5902 5903 attrHandle: {}, 5904 5905 find: {}, 5906 5907 relative: { 5908 ">": { dir: "parentNode", first: true }, 5909 " ": { dir: "parentNode" }, 5910 "+": { dir: "previousSibling", first: true }, 5911 "~": { dir: "previousSibling" } 5912 }, 5913 5914 preFilter: { 5915 ATTR: function( match ) { 5916 match[ 1 ] = match[ 1 ].replace( runescape, funescape ); 5917 5918 // Move the given value to match[3] whether quoted or unquoted 5919 match[ 3 ] = ( match[ 3 ] || match[ 4 ] || match[ 5 ] || "" ) 5920 .replace( runescape, funescape ); 5921 5922 if ( match[ 2 ] === "~=" ) { 5923 match[ 3 ] = " " + match[ 3 ] + " "; 5924 } 5925 5926 return match.slice( 0, 4 ); 5927 }, 5928 5929 CHILD: function( match ) { 5930 5931 /* matches from matchExpr["CHILD"] 5932 1 type (only|nth|...) 5933 2 what (child|of-type) 5934 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...) 5935 4 xn-component of xn+y argument ([+-]?\d*n|) 5936 5 sign of xn-component 5937 6 x of xn-component 5938 7 sign of y-component 5939 8 y of y-component 5940 */ 5941 match[ 1 ] = match[ 1 ].toLowerCase(); 5942 5943 if ( match[ 1 ].slice( 0, 3 ) === "nth" ) { 5944 5945 // nth-* requires argument 5946 if ( !match[ 3 ] ) { 5947 find.error( match[ 0 ] ); 5948 } 5949 5950 // numeric x and y parameters for Expr.filter.CHILD 5951 // remember that false/true cast respectively to 0/1 5952 match[ 4 ] = +( match[ 4 ] ? 5953 match[ 5 ] + ( match[ 6 ] || 1 ) : 5954 2 * ( match[ 3 ] === "even" || match[ 3 ] === "odd" ) 5955 ); 5956 match[ 5 ] = +( ( match[ 7 ] + match[ 8 ] ) || match[ 3 ] === "odd" ); 5957 5958 // other types prohibit arguments 5959 } else if ( match[ 3 ] ) { 5960 find.error( match[ 0 ] ); 5961 } 5962 5963 return match; 5964 }, 5965 5966 PSEUDO: function( match ) { 5967 var excess, 5968 unquoted = !match[ 6 ] && match[ 2 ]; 5969 5970 if ( matchExpr.CHILD.test( match[ 0 ] ) ) { 5971 return null; 5972 } 5973 5974 // Accept quoted arguments as-is 5975 if ( match[ 3 ] ) { 5976 match[ 2 ] = match[ 4 ] || match[ 5 ] || ""; 5977 5978 // Strip excess characters from unquoted arguments 5979 } else if ( unquoted && rpseudo.test( unquoted ) && 5980 5981 // Get excess from tokenize (recursively) 5982 ( excess = tokenize( unquoted, true ) ) && 5983 5984 // advance to the next closing parenthesis 5985 ( excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length ) ) { 5986 5987 // excess is a negative index 5988 match[ 0 ] = match[ 0 ].slice( 0, excess ); 5989 match[ 2 ] = unquoted.slice( 0, excess ); 5990 } 5991 5992 // Return only captures needed by the pseudo filter method (type and argument) 5993 return match.slice( 0, 3 ); 5994 } 5995 }, 5996 5997 filter: { 5998 5999 TAG: function( nodeNameSelector ) { 6000 var expectedNodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase(); 6001 return nodeNameSelector === "*" ? 6002 function() { 6003 return true; 6004 } : 6005 function( elem ) { 6006 return nodeName( elem, expectedNodeName ); 6007 }; 6008 }, 6009 6010 CLASS: function( className ) { 6011 var pattern = classCache[ className + " " ]; 6012 6013 return pattern || 6014 ( pattern = new RegExp( "(^|" + whitespace + ")" + className + 6015 "(" + whitespace + "|$)" ) ) && 6016 classCache( className, function( elem ) { 6017 return pattern.test( 6018 typeof elem.className === "string" && elem.className || 6019 typeof elem.getAttribute !== "undefined" && 6020 elem.getAttribute( "class" ) || 6021 "" 6022 ); 6023 } ); 6024 }, 6025 6026 ATTR: function( name, operator, check ) { 6027 return function( elem ) { 6028 var result = find.attr( elem, name ); 6029 6030 if ( result == null ) { 6031 return operator === "!="; 6032 } 6033 if ( !operator ) { 6034 return true; 6035 } 6036 6037 result += ""; 6038 6039 if ( operator === "=" ) { 6040 return result === check; 6041 } 6042 if ( operator === "!=" ) { 6043 return result !== check; 6044 } 6045 if ( operator === "^=" ) { 6046 return check && result.indexOf( check ) === 0; 6047 } 6048 if ( operator === "*=" ) { 6049 return check && result.indexOf( check ) > -1; 6050 } 6051 if ( operator === "$=" ) { 6052 return check && result.slice( -check.length ) === check; 6053 } 6054 if ( operator === "~=" ) { 6055 return ( " " + result.replace( rwhitespace, " " ) + " " ) 6056 .indexOf( check ) > -1; 6057 } 6058 if ( operator === "|=" ) { 6059 return result === check || result.slice( 0, check.length + 1 ) === check + "-"; 6060 } 6061 6062 return false; 6063 }; 6064 }, 6065 6066 CHILD: function( type, what, _argument, first, last ) { 6067 var simple = type.slice( 0, 3 ) !== "nth", 6068 forward = type.slice( -4 ) !== "last", 6069 ofType = what === "of-type"; 6070 6071 return first === 1 && last === 0 ? 6072 6073 // Shortcut for :nth-*(n) 6074 function( elem ) { 6075 return !!elem.parentNode; 6076 } : 6077 6078 function( elem, _context, xml ) { 6079 var cache, outerCache, node, nodeIndex, start, 6080 dir = simple !== forward ? "nextSibling" : "previousSibling", 6081 parent = elem.parentNode, 6082 name = ofType && elem.nodeName.toLowerCase(), 6083 useCache = !xml && !ofType, 6084 diff = false; 6085 6086 if ( parent ) { 6087 6088 // :(first|last|only)-(child|of-type) 6089 if ( simple ) { 6090 while ( dir ) { 6091 node = elem; 6092 while ( ( node = node[ dir ] ) ) { 6093 if ( ofType ? 6094 nodeName( node, name ) : 6095 node.nodeType === 1 ) { 6096 6097 return false; 6098 } 6099 } 6100 6101 // Reverse direction for :only-* (if we haven't yet done so) 6102 start = dir = type === "only" && !start && "nextSibling"; 6103 } 6104 return true; 6105 } 6106 6107 start = [ forward ? parent.firstChild : parent.lastChild ]; 6108 6109 // non-xml :nth-child(...) stores cache data on `parent` 6110 if ( forward && useCache ) { 6111 6112 // Seek `elem` from a previously-cached index 6113 outerCache = parent[ expando ] || ( parent[ expando ] = {} ); 6114 cache = outerCache[ type ] || []; 6115 nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; 6116 diff = nodeIndex && cache[ 2 ]; 6117 node = nodeIndex && parent.childNodes[ nodeIndex ]; 6118 6119 while ( ( node = ++nodeIndex && node && node[ dir ] || 6120 6121 // Fallback to seeking `elem` from the start 6122 ( diff = nodeIndex = 0 ) || start.pop() ) ) { 6123 6124 // When found, cache indexes on `parent` and break 6125 if ( node.nodeType === 1 && ++diff && node === elem ) { 6126 outerCache[ type ] = [ dirruns, nodeIndex, diff ]; 6127 break; 6128 } 6129 } 6130 6131 } else { 6132 6133 // Use previously-cached element index if available 6134 if ( useCache ) { 6135 outerCache = elem[ expando ] || ( elem[ expando ] = {} ); 6136 cache = outerCache[ type ] || []; 6137 nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; 6138 diff = nodeIndex; 6139 } 6140 6141 // xml :nth-child(...) 6142 // or :nth-last-child(...) or :nth(-last)?-of-type(...) 6143 if ( diff === false ) { 6144 6145 // Use the same loop as above to seek `elem` from the start 6146 while ( ( node = ++nodeIndex && node && node[ dir ] || 6147 ( diff = nodeIndex = 0 ) || start.pop() ) ) { 6148 6149 if ( ( ofType ? 6150 nodeName( node, name ) : 6151 node.nodeType === 1 ) && 6152 ++diff ) { 6153 6154 // Cache the index of each encountered element 6155 if ( useCache ) { 6156 outerCache = node[ expando ] || 6157 ( node[ expando ] = {} ); 6158 outerCache[ type ] = [ dirruns, diff ]; 6159 } 6160 6161 if ( node === elem ) { 6162 break; 6163 } 6164 } 6165 } 6166 } 6167 } 6168 6169 // Incorporate the offset, then check against cycle size 6170 diff -= last; 6171 return diff === first || ( diff % first === 0 && diff / first >= 0 ); 6172 } 6173 }; 6174 }, 6175 6176 PSEUDO: function( pseudo, argument ) { 6177 6178 // pseudo-class names are case-insensitive 6179 // https://www.w3.org/TR/selectors/#pseudo-classes 6180 // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters 6181 // Remember that setFilters inherits from pseudos 6182 var args, 6183 fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] || 6184 find.error( "unsupported pseudo: " + pseudo ); 6185 6186 // The user may use createPseudo to indicate that 6187 // arguments are needed to create the filter function 6188 // just as jQuery does 6189 if ( fn[ expando ] ) { 6190 return fn( argument ); 6191 } 6192 6193 // But maintain support for old signatures 6194 if ( fn.length > 1 ) { 6195 args = [ pseudo, pseudo, "", argument ]; 6196 return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ? 6197 markFunction( function( seed, matches ) { 6198 var idx, 6199 matched = fn( seed, argument ), 6200 i = matched.length; 6201 while ( i-- ) { 6202 idx = indexOf.call( seed, matched[ i ] ); 6203 seed[ idx ] = !( matches[ idx ] = matched[ i ] ); 6204 } 6205 } ) : 6206 function( elem ) { 6207 return fn( elem, 0, args ); 6208 }; 6209 } 6210 6211 return fn; 6212 } 6213 }, 6214 6215 pseudos: { 6216 6217 // Potentially complex pseudos 6218 not: markFunction( function( selector ) { 6219 6220 // Trim the selector passed to compile 6221 // to avoid treating leading and trailing 6222 // spaces as combinators 6223 var input = [], 6224 results = [], 6225 matcher = compile( selector.replace( rtrimCSS, "$1" ) ); 6226 6227 return matcher[ expando ] ? 6228 markFunction( function( seed, matches, _context, xml ) { 6229 var elem, 6230 unmatched = matcher( seed, null, xml, [] ), 6231 i = seed.length; 6232 6233 // Match elements unmatched by `matcher` 6234 while ( i-- ) { 6235 if ( ( elem = unmatched[ i ] ) ) { 6236 seed[ i ] = !( matches[ i ] = elem ); 6237 } 6238 } 6239 } ) : 6240 function( elem, _context, xml ) { 6241 input[ 0 ] = elem; 6242 matcher( input, null, xml, results ); 6243 6244 // Don't keep the element 6245 // (see https://github.com/jquery/sizzle/issues/299) 6246 input[ 0 ] = null; 6247 return !results.pop(); 6248 }; 6249 } ), 6250 6251 has: markFunction( function( selector ) { 6252 return function( elem ) { 6253 return find( selector, elem ).length > 0; 6254 }; 6255 } ), 6256 6257 contains: markFunction( function( text ) { 6258 text = text.replace( runescape, funescape ); 6259 return function( elem ) { 6260 return ( elem.textContent || jQuery.text( elem ) ).indexOf( text ) > -1; 6261 }; 6262 } ), 6263 6264 // "Whether an element is represented by a :lang() selector 6265 // is based solely on the element's language value 6266 // being equal to the identifier C, 6267 // or beginning with the identifier C immediately followed by "-". 6268 // The matching of C against the element's language value is performed case-insensitively. 6269 // The identifier C does not have to be a valid language name." 6270 // https://www.w3.org/TR/selectors/#lang-pseudo 6271 lang: markFunction( function( lang ) { 6272 6273 // lang value must be a valid identifier 6274 if ( !ridentifier.test( lang || "" ) ) { 6275 find.error( "unsupported lang: " + lang ); 6276 } 6277 lang = lang.replace( runescape, funescape ).toLowerCase(); 6278 return function( elem ) { 6279 var elemLang; 6280 do { 6281 if ( ( elemLang = documentIsHTML ? 6282 elem.lang : 6283 elem.getAttribute( "xml:lang" ) || elem.getAttribute( "lang" ) ) ) { 6284 6285 elemLang = elemLang.toLowerCase(); 6286 return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0; 6287 } 6288 } while ( ( elem = elem.parentNode ) && elem.nodeType === 1 ); 6289 return false; 6290 }; 6291 } ), 6292 6293 // Miscellaneous 6294 target: function( elem ) { 6295 var hash = window.location && window.location.hash; 6296 return hash && hash.slice( 1 ) === elem.id; 6297 }, 6298 6299 root: function( elem ) { 6300 return elem === documentElement; 6301 }, 6302 6303 focus: function( elem ) { 6304 return elem === safeActiveElement() && 6305 document.hasFocus() && 6306 !!( elem.type || elem.href || ~elem.tabIndex ); 6307 }, 6308 6309 // Boolean properties 6310 enabled: createDisabledPseudo( false ), 6311 disabled: createDisabledPseudo( true ), 6312 6313 checked: function( elem ) { 6314 6315 // In CSS3, :checked should return both checked and selected elements 6316 // https://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked 6317 return ( nodeName( elem, "input" ) && !!elem.checked ) || 6318 ( nodeName( elem, "option" ) && !!elem.selected ); 6319 }, 6320 6321 selected: function( elem ) { 6322 6323 // Support: IE <=11+ 6324 // Accessing the selectedIndex property 6325 // forces the browser to treat the default option as 6326 // selected when in an optgroup. 6327 if ( elem.parentNode ) { 6328 // eslint-disable-next-line no-unused-expressions 6329 elem.parentNode.selectedIndex; 6330 } 6331 6332 return elem.selected === true; 6333 }, 6334 6335 // Contents 6336 empty: function( elem ) { 6337 6338 // https://www.w3.org/TR/selectors/#empty-pseudo 6339 // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5), 6340 // but not by others (comment: 8; processing instruction: 7; etc.) 6341 // nodeType < 6 works because attributes (2) do not appear as children 6342 for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { 6343 if ( elem.nodeType < 6 ) { 6344 return false; 6345 } 6346 } 6347 return true; 6348 }, 6349 6350 parent: function( elem ) { 6351 return !Expr.pseudos.empty( elem ); 6352 }, 6353 6354 // Element/input types 6355 header: function( elem ) { 6356 return rheader.test( elem.nodeName ); 6357 }, 6358 6359 input: function( elem ) { 6360 return rinputs.test( elem.nodeName ); 6361 }, 6362 6363 button: function( elem ) { 6364 return nodeName( elem, "input" ) && elem.type === "button" || 6365 nodeName( elem, "button" ); 6366 }, 6367 6368 text: function( elem ) { 6369 var attr; 6370 return nodeName( elem, "input" ) && elem.type === "text" && 6371 6372 // Support: IE <10 only 6373 // New HTML5 attribute values (e.g., "search") appear 6374 // with elem.type === "text" 6375 ( ( attr = elem.getAttribute( "type" ) ) == null || 6376 attr.toLowerCase() === "text" ); 6377 }, 6378 6379 // Position-in-collection 6380 first: createPositionalPseudo( function() { 6381 return [ 0 ]; 6382 } ), 6383 6384 last: createPositionalPseudo( function( _matchIndexes, length ) { 6385 return [ length - 1 ]; 6386 } ), 6387 6388 eq: createPositionalPseudo( function( _matchIndexes, length, argument ) { 6389 return [ argument < 0 ? argument + length : argument ]; 6390 } ), 6391 6392 even: createPositionalPseudo( function( matchIndexes, length ) { 6393 var i = 0; 6394 for ( ; i < length; i += 2 ) { 6395 matchIndexes.push( i ); 6396 } 6397 return matchIndexes; 6398 } ), 6399 6400 odd: createPositionalPseudo( function( matchIndexes, length ) { 6401 var i = 1; 6402 for ( ; i < length; i += 2 ) { 6403 matchIndexes.push( i ); 6404 } 6405 return matchIndexes; 6406 } ), 6407 6408 lt: createPositionalPseudo( function( matchIndexes, length, argument ) { 6409 var i; 6410 6411 if ( argument < 0 ) { 6412 i = argument + length; 6413 } else if ( argument > length ) { 6414 i = length; 6415 } else { 6416 i = argument; 6417 } 6418 6419 for ( ; --i >= 0; ) { 6420 matchIndexes.push( i ); 6421 } 6422 return matchIndexes; 6423 } ), 6424 6425 gt: createPositionalPseudo( function( matchIndexes, length, argument ) { 6426 var i = argument < 0 ? argument + length : argument; 6427 for ( ; ++i < length; ) { 6428 matchIndexes.push( i ); 6429 } 6430 return matchIndexes; 6431 } ) 6432 } 6433}; 6434 6435Expr.pseudos.nth = Expr.pseudos.eq; 6436 6437// Add button/input type pseudos 6438for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) { 6439 Expr.pseudos[ i ] = createInputPseudo( i ); 6440} 6441for ( i in { submit: true, reset: true } ) { 6442 Expr.pseudos[ i ] = createButtonPseudo( i ); 6443} 6444 6445// Easy API for creating new setFilters 6446function setFilters() {} 6447setFilters.prototype = Expr.filters = Expr.pseudos; 6448Expr.setFilters = new setFilters(); 6449 6450function tokenize( selector, parseOnly ) { 6451 var matched, match, tokens, type, 6452 soFar, groups, preFilters, 6453 cached = tokenCache[ selector + " " ]; 6454 6455 if ( cached ) { 6456 return parseOnly ? 0 : cached.slice( 0 ); 6457 } 6458 6459 soFar = selector; 6460 groups = []; 6461 preFilters = Expr.preFilter; 6462 6463 while ( soFar ) { 6464 6465 // Comma and first run 6466 if ( !matched || ( match = rcomma.exec( soFar ) ) ) { 6467 if ( match ) { 6468 6469 // Don't consume trailing commas as valid 6470 soFar = soFar.slice( match[ 0 ].length ) || soFar; 6471 } 6472 groups.push( ( tokens = [] ) ); 6473 } 6474 6475 matched = false; 6476 6477 // Combinators 6478 if ( ( match = rleadingCombinator.exec( soFar ) ) ) { 6479 matched = match.shift(); 6480 tokens.push( { 6481 value: matched, 6482 6483 // Cast descendant combinators to space 6484 type: match[ 0 ].replace( rtrimCSS, " " ) 6485 } ); 6486 soFar = soFar.slice( matched.length ); 6487 } 6488 6489 // Filters 6490 for ( type in Expr.filter ) { 6491 if ( ( match = matchExpr[ type ].exec( soFar ) ) && ( !preFilters[ type ] || 6492 ( match = preFilters[ type ]( match ) ) ) ) { 6493 matched = match.shift(); 6494 tokens.push( { 6495 value: matched, 6496 type: type, 6497 matches: match 6498 } ); 6499 soFar = soFar.slice( matched.length ); 6500 } 6501 } 6502 6503 if ( !matched ) { 6504 break; 6505 } 6506 } 6507 6508 // Return the length of the invalid excess 6509 // if we're just parsing 6510 // Otherwise, throw an error or return tokens 6511 if ( parseOnly ) { 6512 return soFar.length; 6513 } 6514 6515 return soFar ? 6516 find.error( selector ) : 6517 6518 // Cache the tokens 6519 tokenCache( selector, groups ).slice( 0 ); 6520} 6521 6522function toSelector( tokens ) { 6523 var i = 0, 6524 len = tokens.length, 6525 selector = ""; 6526 for ( ; i < len; i++ ) { 6527 selector += tokens[ i ].value; 6528 } 6529 return selector; 6530} 6531 6532function addCombinator( matcher, combinator, base ) { 6533 var dir = combinator.dir, 6534 skip = combinator.next, 6535 key = skip || dir, 6536 checkNonElements = base && key === "parentNode", 6537 doneName = done++; 6538 6539 return combinator.first ? 6540 6541 // Check against closest ancestor/preceding element 6542 function( elem, context, xml ) { 6543 while ( ( elem = elem[ dir ] ) ) { 6544 if ( elem.nodeType === 1 || checkNonElements ) { 6545 return matcher( elem, context, xml ); 6546 } 6547 } 6548 return false; 6549 } : 6550 6551 // Check against all ancestor/preceding elements 6552 function( elem, context, xml ) { 6553 var oldCache, outerCache, 6554 newCache = [ dirruns, doneName ]; 6555 6556 // We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching 6557 if ( xml ) { 6558 while ( ( elem = elem[ dir ] ) ) { 6559 if ( elem.nodeType === 1 || checkNonElements ) { 6560 if ( matcher( elem, context, xml ) ) { 6561 return true; 6562 } 6563 } 6564 } 6565 } else { 6566 while ( ( elem = elem[ dir ] ) ) { 6567 if ( elem.nodeType === 1 || checkNonElements ) { 6568 outerCache = elem[ expando ] || ( elem[ expando ] = {} ); 6569 6570 if ( skip && nodeName( elem, skip ) ) { 6571 elem = elem[ dir ] || elem; 6572 } else if ( ( oldCache = outerCache[ key ] ) && 6573 oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) { 6574 6575 // Assign to newCache so results back-propagate to previous elements 6576 return ( newCache[ 2 ] = oldCache[ 2 ] ); 6577 } else { 6578 6579 // Reuse newcache so results back-propagate to previous elements 6580 outerCache[ key ] = newCache; 6581 6582 // A match means we're done; a fail means we have to keep checking 6583 if ( ( newCache[ 2 ] = matcher( elem, context, xml ) ) ) { 6584 return true; 6585 } 6586 } 6587 } 6588 } 6589 } 6590 return false; 6591 }; 6592} 6593 6594function elementMatcher( matchers ) { 6595 return matchers.length > 1 ? 6596 function( elem, context, xml ) { 6597 var i = matchers.length; 6598 while ( i-- ) { 6599 if ( !matchers[ i ]( elem, context, xml ) ) { 6600 return false; 6601 } 6602 } 6603 return true; 6604 } : 6605 matchers[ 0 ]; 6606} 6607 6608function multipleContexts( selector, contexts, results ) { 6609 var i = 0, 6610 len = contexts.length; 6611 for ( ; i < len; i++ ) { 6612 find( selector, contexts[ i ], results ); 6613 } 6614 return results; 6615} 6616 6617function condense( unmatched, map, filter, context, xml ) { 6618 var elem, 6619 newUnmatched = [], 6620 i = 0, 6621 len = unmatched.length, 6622 mapped = map != null; 6623 6624 for ( ; i < len; i++ ) { 6625 if ( ( elem = unmatched[ i ] ) ) { 6626 if ( !filter || filter( elem, context, xml ) ) { 6627 newUnmatched.push( elem ); 6628 if ( mapped ) { 6629 map.push( i ); 6630 } 6631 } 6632 } 6633 } 6634 6635 return newUnmatched; 6636} 6637 6638function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) { 6639 if ( postFilter && !postFilter[ expando ] ) { 6640 postFilter = setMatcher( postFilter ); 6641 } 6642 if ( postFinder && !postFinder[ expando ] ) { 6643 postFinder = setMatcher( postFinder, postSelector ); 6644 } 6645 return markFunction( function( seed, results, context, xml ) { 6646 var temp, i, elem, matcherOut, 6647 preMap = [], 6648 postMap = [], 6649 preexisting = results.length, 6650 6651 // Get initial elements from seed or context 6652 elems = seed || 6653 multipleContexts( selector || "*", 6654 context.nodeType ? [ context ] : context, [] ), 6655 6656 // Prefilter to get matcher input, preserving a map for seed-results synchronization 6657 matcherIn = preFilter && ( seed || !selector ) ? 6658 condense( elems, preMap, preFilter, context, xml ) : 6659 elems; 6660 6661 if ( matcher ) { 6662 6663 // If we have a postFinder, or filtered seed, or non-seed postFilter 6664 // or preexisting results, 6665 matcherOut = postFinder || ( seed ? preFilter : preexisting || postFilter ) ? 6666 6667 // ...intermediate processing is necessary 6668 [] : 6669 6670 // ...otherwise use results directly 6671 results; 6672 6673 // Find primary matches 6674 matcher( matcherIn, matcherOut, context, xml ); 6675 } else { 6676 matcherOut = matcherIn; 6677 } 6678 6679 // Apply postFilter 6680 if ( postFilter ) { 6681 temp = condense( matcherOut, postMap ); 6682 postFilter( temp, [], context, xml ); 6683 6684 // Un-match failing elements by moving them back to matcherIn 6685 i = temp.length; 6686 while ( i-- ) { 6687 if ( ( elem = temp[ i ] ) ) { 6688 matcherOut[ postMap[ i ] ] = !( matcherIn[ postMap[ i ] ] = elem ); 6689 } 6690 } 6691 } 6692 6693 if ( seed ) { 6694 if ( postFinder || preFilter ) { 6695 if ( postFinder ) { 6696 6697 // Get the final matcherOut by condensing this intermediate into postFinder contexts 6698 temp = []; 6699 i = matcherOut.length; 6700 while ( i-- ) { 6701 if ( ( elem = matcherOut[ i ] ) ) { 6702 6703 // Restore matcherIn since elem is not yet a final match 6704 temp.push( ( matcherIn[ i ] = elem ) ); 6705 } 6706 } 6707 postFinder( null, ( matcherOut = [] ), temp, xml ); 6708 } 6709 6710 // Move matched elements from seed to results to keep them synchronized 6711 i = matcherOut.length; 6712 while ( i-- ) { 6713 if ( ( elem = matcherOut[ i ] ) && 6714 ( temp = postFinder ? indexOf.call( seed, elem ) : preMap[ i ] ) > -1 ) { 6715 6716 seed[ temp ] = !( results[ temp ] = elem ); 6717 } 6718 } 6719 } 6720 6721 // Add elements to results, through postFinder if defined 6722 } else { 6723 matcherOut = condense( 6724 matcherOut === results ? 6725 matcherOut.splice( preexisting, matcherOut.length ) : 6726 matcherOut 6727 ); 6728 if ( postFinder ) { 6729 postFinder( null, results, matcherOut, xml ); 6730 } else { 6731 push.apply( results, matcherOut ); 6732 } 6733 } 6734 } ); 6735} 6736 6737function matcherFromTokens( tokens ) { 6738 var checkContext, matcher, j, 6739 len = tokens.length, 6740 leadingRelative = Expr.relative[ tokens[ 0 ].type ], 6741 implicitRelative = leadingRelative || Expr.relative[ " " ], 6742 i = leadingRelative ? 1 : 0, 6743 6744 // The foundational matcher ensures that elements are reachable from top-level context(s) 6745 matchContext = addCombinator( function( elem ) { 6746 return elem === checkContext; 6747 }, implicitRelative, true ), 6748 matchAnyContext = addCombinator( function( elem ) { 6749 return indexOf.call( checkContext, elem ) > -1; 6750 }, implicitRelative, true ), 6751 matchers = [ function( elem, context, xml ) { 6752 6753 // Support: IE 11+, Edge 17 - 18+ 6754 // IE/Edge sometimes throw a "Permission denied" error when strict-comparing 6755 // two documents; shallow comparisons work. 6756 // eslint-disable-next-line eqeqeq 6757 var ret = ( !leadingRelative && ( xml || context != outermostContext ) ) || ( 6758 ( checkContext = context ).nodeType ? 6759 matchContext( elem, context, xml ) : 6760 matchAnyContext( elem, context, xml ) ); 6761 6762 // Avoid hanging onto element 6763 // (see https://github.com/jquery/sizzle/issues/299) 6764 checkContext = null; 6765 return ret; 6766 } ]; 6767 6768 for ( ; i < len; i++ ) { 6769 if ( ( matcher = Expr.relative[ tokens[ i ].type ] ) ) { 6770 matchers = [ addCombinator( elementMatcher( matchers ), matcher ) ]; 6771 } else { 6772 matcher = Expr.filter[ tokens[ i ].type ].apply( null, tokens[ i ].matches ); 6773 6774 // Return special upon seeing a positional matcher 6775 if ( matcher[ expando ] ) { 6776 6777 // Find the next relative operator (if any) for proper handling 6778 j = ++i; 6779 for ( ; j < len; j++ ) { 6780 if ( Expr.relative[ tokens[ j ].type ] ) { 6781 break; 6782 } 6783 } 6784 return setMatcher( 6785 i > 1 && elementMatcher( matchers ), 6786 i > 1 && toSelector( 6787 6788 // If the preceding token was a descendant combinator, insert an implicit any-element `*` 6789 tokens.slice( 0, i - 1 ) 6790 .concat( { value: tokens[ i - 2 ].type === " " ? "*" : "" } ) 6791 ).replace( rtrimCSS, "$1" ), 6792 matcher, 6793 i < j && matcherFromTokens( tokens.slice( i, j ) ), 6794 j < len && matcherFromTokens( ( tokens = tokens.slice( j ) ) ), 6795 j < len && toSelector( tokens ) 6796 ); 6797 } 6798 matchers.push( matcher ); 6799 } 6800 } 6801 6802 return elementMatcher( matchers ); 6803} 6804 6805function matcherFromGroupMatchers( elementMatchers, setMatchers ) { 6806 var bySet = setMatchers.length > 0, 6807 byElement = elementMatchers.length > 0, 6808 superMatcher = function( seed, context, xml, results, outermost ) { 6809 var elem, j, matcher, 6810 matchedCount = 0, 6811 i = "0", 6812 unmatched = seed && [], 6813 setMatched = [], 6814 contextBackup = outermostContext, 6815 6816 // We must always have either seed elements or outermost context 6817 elems = seed || byElement && Expr.find.TAG( "*", outermost ), 6818 6819 // Use integer dirruns iff this is the outermost matcher 6820 dirrunsUnique = ( dirruns += contextBackup == null ? 1 : Math.random() || 0.1 ), 6821 len = elems.length; 6822 6823 if ( outermost ) { 6824 6825 // Support: IE 11+, Edge 17 - 18+ 6826 // IE/Edge sometimes throw a "Permission denied" error when strict-comparing 6827 // two documents; shallow comparisons work. 6828 // eslint-disable-next-line eqeqeq 6829 outermostContext = context == document || context || outermost; 6830 } 6831 6832 // Add elements passing elementMatchers directly to results 6833 // Support: iOS <=7 - 9 only 6834 // Tolerate NodeList properties (IE: "length"; Safari: <number>) matching 6835 // elements by id. (see trac-14142) 6836 for ( ; i !== len && ( elem = elems[ i ] ) != null; i++ ) { 6837 if ( byElement && elem ) { 6838 j = 0; 6839 6840 // Support: IE 11+, Edge 17 - 18+ 6841 // IE/Edge sometimes throw a "Permission denied" error when strict-comparing 6842 // two documents; shallow comparisons work. 6843 // eslint-disable-next-line eqeqeq 6844 if ( !context && elem.ownerDocument != document ) { 6845 setDocument( elem ); 6846 xml = !documentIsHTML; 6847 } 6848 while ( ( matcher = elementMatchers[ j++ ] ) ) { 6849 if ( matcher( elem, context || document, xml ) ) { 6850 push.call( results, elem ); 6851 break; 6852 } 6853 } 6854 if ( outermost ) { 6855 dirruns = dirrunsUnique; 6856 } 6857 } 6858 6859 // Track unmatched elements for set filters 6860 if ( bySet ) { 6861 6862 // They will have gone through all possible matchers 6863 if ( ( elem = !matcher && elem ) ) { 6864 matchedCount--; 6865 } 6866 6867 // Lengthen the array for every element, matched or not 6868 if ( seed ) { 6869 unmatched.push( elem ); 6870 } 6871 } 6872 } 6873 6874 // `i` is now the count of elements visited above, and adding it to `matchedCount` 6875 // makes the latter nonnegative. 6876 matchedCount += i; 6877 6878 // Apply set filters to unmatched elements 6879 // NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount` 6880 // equals `i`), unless we didn't visit _any_ elements in the above loop because we have 6881 // no element matchers and no seed. 6882 // Incrementing an initially-string "0" `i` allows `i` to remain a string only in that 6883 // case, which will result in a "00" `matchedCount` that differs from `i` but is also 6884 // numerically zero. 6885 if ( bySet && i !== matchedCount ) { 6886 j = 0; 6887 while ( ( matcher = setMatchers[ j++ ] ) ) { 6888 matcher( unmatched, setMatched, context, xml ); 6889 } 6890 6891 if ( seed ) { 6892 6893 // Reintegrate element matches to eliminate the need for sorting 6894 if ( matchedCount > 0 ) { 6895 while ( i-- ) { 6896 if ( !( unmatched[ i ] || setMatched[ i ] ) ) { 6897 setMatched[ i ] = pop.call( results ); 6898 } 6899 } 6900 } 6901 6902 // Discard index placeholder values to get only actual matches 6903 setMatched = condense( setMatched ); 6904 } 6905 6906 // Add matches to results 6907 push.apply( results, setMatched ); 6908 6909 // Seedless set matches succeeding multiple successful matchers stipulate sorting 6910 if ( outermost && !seed && setMatched.length > 0 && 6911 ( matchedCount + setMatchers.length ) > 1 ) { 6912 6913 jQuery.uniqueSort( results ); 6914 } 6915 } 6916 6917 // Override manipulation of globals by nested matchers 6918 if ( outermost ) { 6919 dirruns = dirrunsUnique; 6920 outermostContext = contextBackup; 6921 } 6922 6923 return unmatched; 6924 }; 6925 6926 return bySet ? 6927 markFunction( superMatcher ) : 6928 superMatcher; 6929} 6930 6931function compile( selector, match /* Internal Use Only */ ) { 6932 var i, 6933 setMatchers = [], 6934 elementMatchers = [], 6935 cached = compilerCache[ selector + " " ]; 6936 6937 if ( !cached ) { 6938 6939 // Generate a function of recursive functions that can be used to check each element 6940 if ( !match ) { 6941 match = tokenize( selector ); 6942 } 6943 i = match.length; 6944 while ( i-- ) { 6945 cached = matcherFromTokens( match[ i ] ); 6946 if ( cached[ expando ] ) { 6947 setMatchers.push( cached ); 6948 } else { 6949 elementMatchers.push( cached ); 6950 } 6951 } 6952 6953 // Cache the compiled function 6954 cached = compilerCache( selector, 6955 matcherFromGroupMatchers( elementMatchers, setMatchers ) ); 6956 6957 // Save selector and tokenization 6958 cached.selector = selector; 6959 } 6960 return cached; 6961} 6962 6963/** 6964 * A low-level selection function that works with jQuery's compiled 6965 * selector functions 6966 * @param {String|Function} selector A selector or a pre-compiled 6967 * selector function built with jQuery selector compile 6968 * @param {Element} context 6969 * @param {Array} [results] 6970 * @param {Array} [seed] A set of elements to match against 6971 */ 6972function select( selector, context, results, seed ) { 6973 var i, tokens, token, type, find, 6974 compiled = typeof selector === "function" && selector, 6975 match = !seed && tokenize( ( selector = compiled.selector || selector ) ); 6976 6977 results = results || []; 6978 6979 // Try to minimize operations if there is only one selector in the list and no seed 6980 // (the latter of which guarantees us context) 6981 if ( match.length === 1 ) { 6982 6983 // Reduce context if the leading compound selector is an ID 6984 tokens = match[ 0 ] = match[ 0 ].slice( 0 ); 6985 if ( tokens.length > 2 && ( token = tokens[ 0 ] ).type === "ID" && 6986 context.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[ 1 ].type ] ) { 6987 6988 context = ( Expr.find.ID( 6989 token.matches[ 0 ].replace( runescape, funescape ), 6990 context 6991 ) || [] )[ 0 ]; 6992 if ( !context ) { 6993 return results; 6994 6995 // Precompiled matchers will still verify ancestry, so step up a level 6996 } else if ( compiled ) { 6997 context = context.parentNode; 6998 } 6999 7000 selector = selector.slice( tokens.shift().value.length ); 7001 } 7002 7003 // Fetch a seed set for right-to-left matching 7004 i = matchExpr.needsContext.test( selector ) ? 0 : tokens.length; 7005 while ( i-- ) { 7006 token = tokens[ i ]; 7007 7008 // Abort if we hit a combinator 7009 if ( Expr.relative[ ( type = token.type ) ] ) { 7010 break; 7011 } 7012 if ( ( find = Expr.find[ type ] ) ) { 7013 7014 // Search, expanding context for leading sibling combinators 7015 if ( ( seed = find( 7016 token.matches[ 0 ].replace( runescape, funescape ), 7017 rsibling.test( tokens[ 0 ].type ) && 7018 testContext( context.parentNode ) || context 7019 ) ) ) { 7020 7021 // If seed is empty or no tokens remain, we can return early 7022 tokens.splice( i, 1 ); 7023 selector = seed.length && toSelector( tokens ); 7024 if ( !selector ) { 7025 push.apply( results, seed ); 7026 return results; 7027 } 7028 7029 break; 7030 } 7031 } 7032 } 7033 } 7034 7035 // Compile and execute a filtering function if one is not provided 7036 // Provide `match` to avoid retokenization if we modified the selector above 7037 ( compiled || compile( selector, match ) )( 7038 seed, 7039 context, 7040 !documentIsHTML, 7041 results, 7042 !context || rsibling.test( selector ) && testContext( context.parentNode ) || context 7043 ); 7044 return results; 7045} 7046 7047// One-time assignments 7048 7049// Support: Android <=4.0 - 4.1+ 7050// Sort stability 7051support.sortStable = expando.split( "" ).sort( sortOrder ).join( "" ) === expando; 7052 7053// Initialize against the default document 7054setDocument(); 7055 7056// Support: Android <=4.0 - 4.1+ 7057// Detached nodes confoundingly follow *each other* 7058support.sortDetached = assert( function( el ) { 7059 7060 // Should return 1, but returns 4 (following) 7061 return el.compareDocumentPosition( document.createElement( "fieldset" ) ) & 1; 7062} ); 7063 7064jQuery.find = find; 7065 7066// Deprecated 7067jQuery.expr[ ":" ] = jQuery.expr.pseudos; 7068jQuery.unique = jQuery.uniqueSort; 7069 7070// These have always been private, but they used to be documented as part of 7071// Sizzle so let's maintain them for now for backwards compatibility purposes. 7072find.compile = compile; 7073find.select = select; 7074find.setDocument = setDocument; 7075find.tokenize = tokenize; 7076 7077find.escape = jQuery.escapeSelector; 7078find.getText = jQuery.text; 7079find.isXML = jQuery.isXMLDoc; 7080find.selectors = jQuery.expr; 7081find.support = jQuery.support; 7082find.uniqueSort = jQuery.uniqueSort; 7083 7084 /* eslint-enable */ 7085 7086} )(); 7087 7088 7089var dir = function( elem, dir, until ) { 7090 var matched = [], 7091 truncate = until !== undefined; 7092 7093 while ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) { 7094 if ( elem.nodeType === 1 ) { 7095 if ( truncate && jQuery( elem ).is( until ) ) { 7096 break; 7097 } 7098 matched.push( elem ); 7099 } 7100 } 7101 return matched; 7102}; 7103 7104 7105var siblings = function( n, elem ) { 7106 var matched = []; 7107 7108 for ( ; n; n = n.nextSibling ) { 7109 if ( n.nodeType === 1 && n !== elem ) { 7110 matched.push( n ); 7111 } 7112 } 7113 7114 return matched; 7115}; 7116 7117 7118var rneedsContext = jQuery.expr.match.needsContext; 7119 7120var rsingleTag = ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i ); 7121 7122 7123 7124// Implement the identical functionality for filter and not 7125function winnow( elements, qualifier, not ) { 7126 if ( isFunction( qualifier ) ) { 7127 return jQuery.grep( elements, function( elem, i ) { 7128 return !!qualifier.call( elem, i, elem ) !== not; 7129 } ); 7130 } 7131 7132 // Single element 7133 if ( qualifier.nodeType ) { 7134 return jQuery.grep( elements, function( elem ) { 7135 return ( elem === qualifier ) !== not; 7136 } ); 7137 } 7138 7139 // Arraylike of elements (jQuery, arguments, Array) 7140 if ( typeof qualifier !== "string" ) { 7141 return jQuery.grep( elements, function( elem ) { 7142 return ( indexOf.call( qualifier, elem ) > -1 ) !== not; 7143 } ); 7144 } 7145 7146 // Filtered directly for both simple and complex selectors 7147 return jQuery.filter( qualifier, elements, not ); 7148} 7149 7150jQuery.filter = function( expr, elems, not ) { 7151 var elem = elems[ 0 ]; 7152 7153 if ( not ) { 7154 expr = ":not(" + expr + ")"; 7155 } 7156 7157 if ( elems.length === 1 && elem.nodeType === 1 ) { 7158 return jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : []; 7159 } 7160 7161 return jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) { 7162 return elem.nodeType === 1; 7163 } ) ); 7164}; 7165 7166jQuery.fn.extend( { 7167 find: function( selector ) { 7168 var i, ret, 7169 len = this.length, 7170 self = this; 7171 7172 if ( typeof selector !== "string" ) { 7173 return this.pushStack( jQuery( selector ).filter( function() { 7174 for ( i = 0; i < len; i++ ) { 7175 if ( jQuery.contains( self[ i ], this ) ) { 7176 return true; 7177 } 7178 } 7179 } ) ); 7180 } 7181 7182 ret = this.pushStack( [] ); 7183 7184 for ( i = 0; i < len; i++ ) { 7185 jQuery.find( selector, self[ i ], ret ); 7186 } 7187 7188 return len > 1 ? jQuery.uniqueSort( ret ) : ret; 7189 }, 7190 filter: function( selector ) { 7191 return this.pushStack( winnow( this, selector || [], false ) ); 7192 }, 7193 not: function( selector ) { 7194 return this.pushStack( winnow( this, selector || [], true ) ); 7195 }, 7196 is: function( selector ) { 7197 return !!winnow( 7198 this, 7199 7200 // If this is a positional/relative selector, check membership in the returned set 7201 // so $("p:first").is("p:last") won't return true for a doc with two "p". 7202 typeof selector === "string" && rneedsContext.test( selector ) ? 7203 jQuery( selector ) : 7204 selector || [], 7205 false 7206 ).length; 7207 } 7208} ); 7209 7210 7211// Initialize a jQuery object 7212 7213 7214// A central reference to the root jQuery(document) 7215var rootjQuery, 7216 7217 // A simple way to check for HTML strings 7218 // Prioritize #id over <tag> to avoid XSS via location.hash (trac-9521) 7219 // Strict HTML recognition (trac-11290: must start with <) 7220 // Shortcut simple #id case for speed 7221 rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/, 7222 7223 init = jQuery.fn.init = function( selector, context, root ) { 7224 var match, elem; 7225 7226 // HANDLE: $(""), $(null), $(undefined), $(false) 7227 if ( !selector ) { 7228 return this; 7229 } 7230 7231 // Method init() accepts an alternate rootjQuery 7232 // so migrate can support jQuery.sub (gh-2101) 7233 root = root || rootjQuery; 7234 7235 // Handle HTML strings 7236 if ( typeof selector === "string" ) { 7237 if ( selector[ 0 ] === "<" && 7238 selector[ selector.length - 1 ] === ">" && 7239 selector.length >= 3 ) { 7240 7241 // Assume that strings that start and end with <> are HTML and skip the regex check 7242 match = [ null, selector, null ]; 7243 7244 } else { 7245 match = rquickExpr.exec( selector ); 7246 } 7247 7248 // Match html or make sure no context is specified for #id 7249 if ( match && ( match[ 1 ] || !context ) ) { 7250 7251 // HANDLE: $(html) -> $(array) 7252 if ( match[ 1 ] ) { 7253 context = context instanceof jQuery ? context[ 0 ] : context; 7254 7255 // Option to run scripts is true for back-compat 7256 // Intentionally let the error be thrown if parseHTML is not present 7257 jQuery.merge( this, jQuery.parseHTML( 7258 match[ 1 ], 7259 context && context.nodeType ? context.ownerDocument || context : document, 7260 true 7261 ) ); 7262 7263 // HANDLE: $(html, props) 7264 if ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) { 7265 for ( match in context ) { 7266 7267 // Properties of context are called as methods if possible 7268 if ( isFunction( this[ match ] ) ) { 7269 this[ match ]( context[ match ] ); 7270 7271 // ...and otherwise set as attributes 7272 } else { 7273 this.attr( match, context[ match ] ); 7274 } 7275 } 7276 } 7277 7278 return this; 7279 7280 // HANDLE: $(#id) 7281 } else { 7282 elem = document.getElementById( match[ 2 ] ); 7283 7284 if ( elem ) { 7285 7286 // Inject the element directly into the jQuery object 7287 this[ 0 ] = elem; 7288 this.length = 1; 7289 } 7290 return this; 7291 } 7292 7293 // HANDLE: $(expr, $(...)) 7294 } else if ( !context || context.jquery ) { 7295 return ( context || root ).find( selector ); 7296 7297 // HANDLE: $(expr, context) 7298 // (which is just equivalent to: $(context).find(expr) 7299 } else { 7300 return this.constructor( context ).find( selector ); 7301 } 7302 7303 // HANDLE: $(DOMElement) 7304 } else if ( selector.nodeType ) { 7305 this[ 0 ] = selector; 7306 this.length = 1; 7307 return this; 7308 7309 // HANDLE: $(function) 7310 // Shortcut for document ready 7311 } else if ( isFunction( selector ) ) { 7312 return root.ready !== undefined ? 7313 root.ready( selector ) : 7314 7315 // Execute immediately if ready is not present 7316 selector( jQuery ); 7317 } 7318 7319 return jQuery.makeArray( selector, this ); 7320 }; 7321 7322// Give the init function the jQuery prototype for later instantiation 7323init.prototype = jQuery.fn; 7324 7325// Initialize central reference 7326rootjQuery = jQuery( document ); 7327 7328 7329var rparentsprev = /^(?:parents|prev(?:Until|All))/, 7330 7331 // Methods guaranteed to produce a unique set when starting from a unique set 7332 guaranteedUnique = { 7333 children: true, 7334 contents: true, 7335 next: true, 7336 prev: true 7337 }; 7338 7339jQuery.fn.extend( { 7340 has: function( target ) { 7341 var targets = jQuery( target, this ), 7342 l = targets.length; 7343 7344 return this.filter( function() { 7345 var i = 0; 7346 for ( ; i < l; i++ ) { 7347 if ( jQuery.contains( this, targets[ i ] ) ) { 7348 return true; 7349 } 7350 } 7351 } ); 7352 }, 7353 7354 closest: function( selectors, context ) { 7355 var cur, 7356 i = 0, 7357 l = this.length, 7358 matched = [], 7359 targets = typeof selectors !== "string" && jQuery( selectors ); 7360 7361 // Positional selectors never match, since there's no _selection_ context 7362 if ( !rneedsContext.test( selectors ) ) { 7363 for ( ; i < l; i++ ) { 7364 for ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) { 7365 7366 // Always skip document fragments 7367 if ( cur.nodeType < 11 && ( targets ? 7368 targets.index( cur ) > -1 : 7369 7370 // Don't pass non-elements to jQuery#find 7371 cur.nodeType === 1 && 7372 jQuery.find.matchesSelector( cur, selectors ) ) ) { 7373 7374 matched.push( cur ); 7375 break; 7376 } 7377 } 7378 } 7379 } 7380 7381 return this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched ); 7382 }, 7383 7384 // Determine the position of an element within the set 7385 index: function( elem ) { 7386 7387 // No argument, return index in parent 7388 if ( !elem ) { 7389 return ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1; 7390 } 7391 7392 // Index in selector 7393 if ( typeof elem === "string" ) { 7394 return indexOf.call( jQuery( elem ), this[ 0 ] ); 7395 } 7396 7397 // Locate the position of the desired element 7398 return indexOf.call( this, 7399 7400 // If it receives a jQuery object, the first element is used 7401 elem.jquery ? elem[ 0 ] : elem 7402 ); 7403 }, 7404 7405 add: function( selector, context ) { 7406 return this.pushStack( 7407 jQuery.uniqueSort( 7408 jQuery.merge( this.get(), jQuery( selector, context ) ) 7409 ) 7410 ); 7411 }, 7412 7413 addBack: function( selector ) { 7414 return this.add( selector == null ? 7415 this.prevObject : this.prevObject.filter( selector ) 7416 ); 7417 } 7418} ); 7419 7420function sibling( cur, dir ) { 7421 while ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {} 7422 return cur; 7423} 7424 7425jQuery.each( { 7426 parent: function( elem ) { 7427 var parent = elem.parentNode; 7428 return parent && parent.nodeType !== 11 ? parent : null; 7429 }, 7430 parents: function( elem ) { 7431 return dir( elem, "parentNode" ); 7432 }, 7433 parentsUntil: function( elem, _i, until ) { 7434 return dir( elem, "parentNode", until ); 7435 }, 7436 next: function( elem ) { 7437 return sibling( elem, "nextSibling" ); 7438 }, 7439 prev: function( elem ) { 7440 return sibling( elem, "previousSibling" ); 7441 }, 7442 nextAll: function( elem ) { 7443 return dir( elem, "nextSibling" ); 7444 }, 7445 prevAll: function( elem ) { 7446 return dir( elem, "previousSibling" ); 7447 }, 7448 nextUntil: function( elem, _i, until ) { 7449 return dir( elem, "nextSibling", until ); 7450 }, 7451 prevUntil: function( elem, _i, until ) { 7452 return dir( elem, "previousSibling", until ); 7453 }, 7454 siblings: function( elem ) { 7455 return siblings( ( elem.parentNode || {} ).firstChild, elem ); 7456 }, 7457 children: function( elem ) { 7458 return siblings( elem.firstChild ); 7459 }, 7460 contents: function( elem ) { 7461 if ( elem.contentDocument != null && 7462 7463 // Support: IE 11+ 7464 // <object> elements with no `data` attribute has an object 7465 // `contentDocument` with a `null` prototype. 7466 getProto( elem.contentDocument ) ) { 7467 7468 return elem.contentDocument; 7469 } 7470 7471 // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only 7472 // Treat the template element as a regular one in browsers that 7473 // don't support it. 7474 if ( nodeName( elem, "template" ) ) { 7475 elem = elem.content || elem; 7476 } 7477 7478 return jQuery.merge( [], elem.childNodes ); 7479 } 7480}, function( name, fn ) { 7481 jQuery.fn[ name ] = function( until, selector ) { 7482 var matched = jQuery.map( this, fn, until ); 7483 7484 if ( name.slice( -5 ) !== "Until" ) { 7485 selector = until; 7486 } 7487 7488 if ( selector && typeof selector === "string" ) { 7489 matched = jQuery.filter( selector, matched ); 7490 } 7491 7492 if ( this.length > 1 ) { 7493 7494 // Remove duplicates 7495 if ( !guaranteedUnique[ name ] ) { 7496 jQuery.uniqueSort( matched ); 7497 } 7498 7499 // Reverse order for parents* and prev-derivatives 7500 if ( rparentsprev.test( name ) ) { 7501 matched.reverse(); 7502 } 7503 } 7504 7505 return this.pushStack( matched ); 7506 }; 7507} ); 7508var rnothtmlwhite = ( /[^\x20\t\r\n\f]+/g ); 7509 7510 7511 7512// Convert String-formatted options into Object-formatted ones 7513function createOptions( options ) { 7514 var object = {}; 7515 jQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) { 7516 object[ flag ] = true; 7517 } ); 7518 return object; 7519} 7520 7521/* 7522 * Create a callback list using the following parameters: 7523 * 7524 * options: an optional list of space-separated options that will change how 7525 * the callback list behaves or a more traditional option object 7526 * 7527 * By default a callback list will act like an event callback list and can be 7528 * "fired" multiple times. 7529 * 7530 * Possible options: 7531 * 7532 * once: will ensure the callback list can only be fired once (like a Deferred) 7533 * 7534 * memory: will keep track of previous values and will call any callback added 7535 * after the list has been fired right away with the latest "memorized" 7536 * values (like a Deferred) 7537 * 7538 * unique: will ensure a callback can only be added once (no duplicate in the list) 7539 * 7540 * stopOnFalse: interrupt callings when a callback returns false 7541 * 7542 */ 7543jQuery.Callbacks = function( options ) { 7544 7545 // Convert options from String-formatted to Object-formatted if needed 7546 // (we check in cache first) 7547 options = typeof options === "string" ? 7548 createOptions( options ) : 7549 jQuery.extend( {}, options ); 7550 7551 var // Flag to know if list is currently firing 7552 firing, 7553 7554 // Last fire value for non-forgettable lists 7555 memory, 7556 7557 // Flag to know if list was already fired 7558 fired, 7559 7560 // Flag to prevent firing 7561 locked, 7562 7563 // Actual callback list 7564 list = [], 7565 7566 // Queue of execution data for repeatable lists 7567 queue = [], 7568 7569 // Index of currently firing callback (modified by add/remove as needed) 7570 firingIndex = -1, 7571 7572 // Fire callbacks 7573 fire = function() { 7574 7575 // Enforce single-firing 7576 locked = locked || options.once; 7577 7578 // Execute callbacks for all pending executions, 7579 // respecting firingIndex overrides and runtime changes 7580 fired = firing = true; 7581 for ( ; queue.length; firingIndex = -1 ) { 7582 memory = queue.shift(); 7583 while ( ++firingIndex < list.length ) { 7584 7585 // Run callback and check for early termination 7586 if ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false && 7587 options.stopOnFalse ) { 7588 7589 // Jump to end and forget the data so .add doesn't re-fire 7590 firingIndex = list.length; 7591 memory = false; 7592 } 7593 } 7594 } 7595 7596 // Forget the data if we're done with it 7597 if ( !options.memory ) { 7598 memory = false; 7599 } 7600 7601 firing = false; 7602 7603 // Clean up if we're done firing for good 7604 if ( locked ) { 7605 7606 // Keep an empty list if we have data for future add calls 7607 if ( memory ) { 7608 list = []; 7609 7610 // Otherwise, this object is spent 7611 } else { 7612 list = ""; 7613 } 7614 } 7615 }, 7616 7617 // Actual Callbacks object 7618 self = { 7619 7620 // Add a callback or a collection of callbacks to the list 7621 add: function() { 7622 if ( list ) { 7623 7624 // If we have memory from a past run, we should fire after adding 7625 if ( memory && !firing ) { 7626 firingIndex = list.length - 1; 7627 queue.push( memory ); 7628 } 7629 7630 ( function add( args ) { 7631 jQuery.each( args, function( _, arg ) { 7632 if ( isFunction( arg ) ) { 7633 if ( !options.unique || !self.has( arg ) ) { 7634 list.push( arg ); 7635 } 7636 } else if ( arg && arg.length && toType( arg ) !== "string" ) { 7637 7638 // Inspect recursively 7639 add( arg ); 7640 } 7641 } ); 7642 } )( arguments ); 7643 7644 if ( memory && !firing ) { 7645 fire(); 7646 } 7647 } 7648 return this; 7649 }, 7650 7651 // Remove a callback from the list 7652 remove: function() { 7653 jQuery.each( arguments, function( _, arg ) { 7654 var index; 7655 while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) { 7656 list.splice( index, 1 ); 7657 7658 // Handle firing indexes 7659 if ( index <= firingIndex ) { 7660 firingIndex--; 7661 } 7662 } 7663 } ); 7664 return this; 7665 }, 7666 7667 // Check if a given callback is in the list. 7668 // If no argument is given, return whether or not list has callbacks attached. 7669 has: function( fn ) { 7670 return fn ? 7671 jQuery.inArray( fn, list ) > -1 : 7672 list.length > 0; 7673 }, 7674 7675 // Remove all callbacks from the list 7676 empty: function() { 7677 if ( list ) { 7678 list = []; 7679 } 7680 return this; 7681 }, 7682 7683 // Disable .fire and .add 7684 // Abort any current/pending executions 7685 // Clear all callbacks and values 7686 disable: function() { 7687 locked = queue = []; 7688 list = memory = ""; 7689 return this; 7690 }, 7691 disabled: function() { 7692 return !list; 7693 }, 7694 7695 // Disable .fire 7696 // Also disable .add unless we have memory (since it would have no effect) 7697 // Abort any pending executions 7698 lock: function() { 7699 locked = queue = []; 7700 if ( !memory && !firing ) { 7701 list = memory = ""; 7702 } 7703 return this; 7704 }, 7705 locked: function() { 7706 return !!locked; 7707 }, 7708 7709 // Call all callbacks with the given context and arguments 7710 fireWith: function( context, args ) { 7711 if ( !locked ) { 7712 args = args || []; 7713 args = [ context, args.slice ? args.slice() : args ]; 7714 queue.push( args ); 7715 if ( !firing ) { 7716 fire(); 7717 } 7718 } 7719 return this; 7720 }, 7721 7722 // Call all the callbacks with the given arguments 7723 fire: function() { 7724 self.fireWith( this, arguments ); 7725 return this; 7726 }, 7727 7728 // To know if the callbacks have already been called at least once 7729 fired: function() { 7730 return !!fired; 7731 } 7732 }; 7733 7734 return self; 7735}; 7736 7737 7738function Identity( v ) { 7739 return v; 7740} 7741function Thrower( ex ) { 7742 throw ex; 7743} 7744 7745function adoptValue( value, resolve, reject, noValue ) { 7746 var method; 7747 7748 try { 7749 7750 // Check for promise aspect first to privilege synchronous behavior 7751 if ( value && isFunction( ( method = value.promise ) ) ) { 7752 method.call( value ).done( resolve ).fail( reject ); 7753 7754 // Other thenables 7755 } else if ( value && isFunction( ( method = value.then ) ) ) { 7756 method.call( value, resolve, reject ); 7757 7758 // Other non-thenables 7759 } else { 7760 7761 // Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer: 7762 // * false: [ value ].slice( 0 ) => resolve( value ) 7763 // * true: [ value ].slice( 1 ) => resolve() 7764 resolve.apply( undefined, [ value ].slice( noValue ) ); 7765 } 7766 7767 // For Promises/A+, convert exceptions into rejections 7768 // Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in 7769 // Deferred#then to conditionally suppress rejection. 7770 } catch ( value ) { 7771 7772 // Support: Android 4.0 only 7773 // Strict mode functions invoked without .call/.apply get global-object context 7774 reject.apply( undefined, [ value ] ); 7775 } 7776} 7777 7778jQuery.extend( { 7779 7780 Deferred: function( func ) { 7781 var tuples = [ 7782 7783 // action, add listener, callbacks, 7784 // ... .then handlers, argument index, [final state] 7785 [ "notify", "progress", jQuery.Callbacks( "memory" ), 7786 jQuery.Callbacks( "memory" ), 2 ], 7787 [ "resolve", "done", jQuery.Callbacks( "once memory" ), 7788 jQuery.Callbacks( "once memory" ), 0, "resolved" ], 7789 [ "reject", "fail", jQuery.Callbacks( "once memory" ), 7790 jQuery.Callbacks( "once memory" ), 1, "rejected" ] 7791 ], 7792 state = "pending", 7793 promise = { 7794 state: function() { 7795 return state; 7796 }, 7797 always: function() { 7798 deferred.done( arguments ).fail( arguments ); 7799 return this; 7800 }, 7801 "catch": function( fn ) { 7802 return promise.then( null, fn ); 7803 }, 7804 7805 // Keep pipe for back-compat 7806 pipe: function( /* fnDone, fnFail, fnProgress */ ) { 7807 var fns = arguments; 7808 7809 return jQuery.Deferred( function( newDefer ) { 7810 jQuery.each( tuples, function( _i, tuple ) { 7811 7812 // Map tuples (progress, done, fail) to arguments (done, fail, progress) 7813 var fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ]; 7814 7815 // deferred.progress(function() { bind to newDefer or newDefer.notify }) 7816 // deferred.done(function() { bind to newDefer or newDefer.resolve }) 7817 // deferred.fail(function() { bind to newDefer or newDefer.reject }) 7818 deferred[ tuple[ 1 ] ]( function() { 7819 var returned = fn && fn.apply( this, arguments ); 7820 if ( returned && isFunction( returned.promise ) ) { 7821 returned.promise() 7822 .progress( newDefer.notify ) 7823 .done( newDefer.resolve ) 7824 .fail( newDefer.reject ); 7825 } else { 7826 newDefer[ tuple[ 0 ] + "With" ]( 7827 this, 7828 fn ? [ returned ] : arguments 7829 ); 7830 } 7831 } ); 7832 } ); 7833 fns = null; 7834 } ).promise(); 7835 }, 7836 then: function( onFulfilled, onRejected, onProgress ) { 7837 var maxDepth = 0; 7838 function resolve( depth, deferred, handler, special ) { 7839 return function() { 7840 var that = this, 7841 args = arguments, 7842 mightThrow = function() { 7843 var returned, then; 7844 7845 // Support: Promises/A+ section 2.3.3.3.3 7846 // https://promisesaplus.com/#point-59 7847 // Ignore double-resolution attempts 7848 if ( depth < maxDepth ) { 7849 return; 7850 } 7851 7852 returned = handler.apply( that, args ); 7853 7854 // Support: Promises/A+ section 2.3.1 7855 // https://promisesaplus.com/#point-48 7856 if ( returned === deferred.promise() ) { 7857 throw new TypeError( "Thenable self-resolution" ); 7858 } 7859 7860 // Support: Promises/A+ sections 2.3.3.1, 3.5 7861 // https://promisesaplus.com/#point-54 7862 // https://promisesaplus.com/#point-75 7863 // Retrieve `then` only once 7864 then = returned && 7865 7866 // Support: Promises/A+ section 2.3.4 7867 // https://promisesaplus.com/#point-64 7868 // Only check objects and functions for thenability 7869 ( typeof returned === "object" || 7870 typeof returned === "function" ) && 7871 returned.then; 7872 7873 // Handle a returned thenable 7874 if ( isFunction( then ) ) { 7875 7876 // Special processors (notify) just wait for resolution 7877 if ( special ) { 7878 then.call( 7879 returned, 7880 resolve( maxDepth, deferred, Identity, special ), 7881 resolve( maxDepth, deferred, Thrower, special ) 7882 ); 7883 7884 // Normal processors (resolve) also hook into progress 7885 } else { 7886 7887 // ...and disregard older resolution values 7888 maxDepth++; 7889 7890 then.call( 7891 returned, 7892 resolve( maxDepth, deferred, Identity, special ), 7893 resolve( maxDepth, deferred, Thrower, special ), 7894 resolve( maxDepth, deferred, Identity, 7895 deferred.notifyWith ) 7896 ); 7897 } 7898 7899 // Handle all other returned values 7900 } else { 7901 7902 // Only substitute handlers pass on context 7903 // and multiple values (non-spec behavior) 7904 if ( handler !== Identity ) { 7905 that = undefined; 7906 args = [ returned ]; 7907 } 7908 7909 // Process the value(s) 7910 // Default process is resolve 7911 ( special || deferred.resolveWith )( that, args ); 7912 } 7913 }, 7914 7915 // Only normal processors (resolve) catch and reject exceptions 7916 process = special ? 7917 mightThrow : 7918 function() { 7919 try { 7920 mightThrow(); 7921 } catch ( e ) { 7922 7923 if ( jQuery.Deferred.exceptionHook ) { 7924 jQuery.Deferred.exceptionHook( e, 7925 process.error ); 7926 } 7927 7928 // Support: Promises/A+ section 2.3.3.3.4.1 7929 // https://promisesaplus.com/#point-61 7930 // Ignore post-resolution exceptions 7931 if ( depth + 1 >= maxDepth ) { 7932 7933 // Only substitute handlers pass on context 7934 // and multiple values (non-spec behavior) 7935 if ( handler !== Thrower ) { 7936 that = undefined; 7937 args = [ e ]; 7938 } 7939 7940 deferred.rejectWith( that, args ); 7941 } 7942 } 7943 }; 7944 7945 // Support: Promises/A+ section 2.3.3.3.1 7946 // https://promisesaplus.com/#point-57 7947 // Re-resolve promises immediately to dodge false rejection from 7948 // subsequent errors 7949 if ( depth ) { 7950 process(); 7951 } else { 7952 7953 // Call an optional hook to record the error, in case of exception 7954 // since it's otherwise lost when execution goes async 7955 if ( jQuery.Deferred.getErrorHook ) { 7956 process.error = jQuery.Deferred.getErrorHook(); 7957 7958 // The deprecated alias of the above. While the name suggests 7959 // returning the stack, not an error instance, jQuery just passes 7960 // it directly to `console.warn` so both will work; an instance 7961 // just better cooperates with source maps. 7962 } else if ( jQuery.Deferred.getStackHook ) { 7963 process.error = jQuery.Deferred.getStackHook(); 7964 } 7965 window.setTimeout( process ); 7966 } 7967 }; 7968 } 7969 7970 return jQuery.Deferred( function( newDefer ) { 7971 7972 // progress_handlers.add( ... ) 7973 tuples[ 0 ][ 3 ].add( 7974 resolve( 7975 0, 7976 newDefer, 7977 isFunction( onProgress ) ? 7978 onProgress : 7979 Identity, 7980 newDefer.notifyWith 7981 ) 7982 ); 7983 7984 // fulfilled_handlers.add( ... ) 7985 tuples[ 1 ][ 3 ].add( 7986 resolve( 7987 0, 7988 newDefer, 7989 isFunction( onFulfilled ) ? 7990 onFulfilled : 7991 Identity 7992 ) 7993 ); 7994 7995 // rejected_handlers.add( ... ) 7996 tuples[ 2 ][ 3 ].add( 7997 resolve( 7998 0, 7999 newDefer, 8000 isFunction( onRejected ) ? 8001 onRejected : 8002 Thrower 8003 ) 8004 ); 8005 } ).promise(); 8006 }, 8007 8008 // Get a promise for this deferred 8009 // If obj is provided, the promise aspect is added to the object 8010 promise: function( obj ) { 8011 return obj != null ? jQuery.extend( obj, promise ) : promise; 8012 } 8013 }, 8014 deferred = {}; 8015 8016 // Add list-specific methods 8017 jQuery.each( tuples, function( i, tuple ) { 8018 var list = tuple[ 2 ], 8019 stateString = tuple[ 5 ]; 8020 8021 // promise.progress = list.add 8022 // promise.done = list.add 8023 // promise.fail = list.add 8024 promise[ tuple[ 1 ] ] = list.add; 8025 8026 // Handle state 8027 if ( stateString ) { 8028 list.add( 8029 function() { 8030 8031 // state = "resolved" (i.e., fulfilled) 8032 // state = "rejected" 8033 state = stateString; 8034 }, 8035 8036 // rejected_callbacks.disable 8037 // fulfilled_callbacks.disable 8038 tuples[ 3 - i ][ 2 ].disable, 8039 8040 // rejected_handlers.disable 8041 // fulfilled_handlers.disable 8042 tuples[ 3 - i ][ 3 ].disable, 8043 8044 // progress_callbacks.lock 8045 tuples[ 0 ][ 2 ].lock, 8046 8047 // progress_handlers.lock 8048 tuples[ 0 ][ 3 ].lock 8049 ); 8050 } 8051 8052 // progress_handlers.fire 8053 // fulfilled_handlers.fire 8054 // rejected_handlers.fire 8055 list.add( tuple[ 3 ].fire ); 8056 8057 // deferred.notify = function() { deferred.notifyWith(...) } 8058 // deferred.resolve = function() { deferred.resolveWith(...) } 8059 // deferred.reject = function() { deferred.rejectWith(...) } 8060 deferred[ tuple[ 0 ] ] = function() { 8061 deferred[ tuple[ 0 ] + "With" ]( this === deferred ? undefined : this, arguments ); 8062 return this; 8063 }; 8064 8065 // deferred.notifyWith = list.fireWith 8066 // deferred.resolveWith = list.fireWith 8067 // deferred.rejectWith = list.fireWith 8068 deferred[ tuple[ 0 ] + "With" ] = list.fireWith; 8069 } ); 8070 8071 // Make the deferred a promise 8072 promise.promise( deferred ); 8073 8074 // Call given func if any 8075 if ( func ) { 8076 func.call( deferred, deferred ); 8077 } 8078 8079 // All done! 8080 return deferred; 8081 }, 8082 8083 // Deferred helper 8084 when: function( singleValue ) { 8085 var 8086 8087 // count of uncompleted subordinates 8088 remaining = arguments.length, 8089 8090 // count of unprocessed arguments 8091 i = remaining, 8092 8093 // subordinate fulfillment data 8094 resolveContexts = Array( i ), 8095 resolveValues = slice.call( arguments ), 8096 8097 // the primary Deferred 8098 primary = jQuery.Deferred(), 8099 8100 // subordinate callback factory 8101 updateFunc = function( i ) { 8102 return function( value ) { 8103 resolveContexts[ i ] = this; 8104 resolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value; 8105 if ( !( --remaining ) ) { 8106 primary.resolveWith( resolveContexts, resolveValues ); 8107 } 8108 }; 8109 }; 8110 8111 // Single- and empty arguments are adopted like Promise.resolve 8112 if ( remaining <= 1 ) { 8113 adoptValue( singleValue, primary.done( updateFunc( i ) ).resolve, primary.reject, 8114 !remaining ); 8115 8116 // Use .then() to unwrap secondary thenables (cf. gh-3000) 8117 if ( primary.state() === "pending" || 8118 isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) { 8119 8120 return primary.then(); 8121 } 8122 } 8123 8124 // Multiple arguments are aggregated like Promise.all array elements 8125 while ( i-- ) { 8126 adoptValue( resolveValues[ i ], updateFunc( i ), primary.reject ); 8127 } 8128 8129 return primary.promise(); 8130 } 8131} ); 8132 8133 8134// These usually indicate a programmer mistake during development, 8135// warn about them ASAP rather than swallowing them by default. 8136var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/; 8137 8138// If `jQuery.Deferred.getErrorHook` is defined, `asyncError` is an error 8139// captured before the async barrier to get the original error cause 8140// which may otherwise be hidden. 8141jQuery.Deferred.exceptionHook = function( error, asyncError ) { 8142 8143 // Support: IE 8 - 9 only 8144 // Console exists when dev tools are open, which can happen at any time 8145 if ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) { 8146 window.console.warn( "jQuery.Deferred exception: " + error.message, 8147 error.stack, asyncError ); 8148 } 8149}; 8150 8151 8152 8153 8154jQuery.readyException = function( error ) { 8155 window.setTimeout( function() { 8156 throw error; 8157 } ); 8158}; 8159 8160 8161 8162 8163// The deferred used on DOM ready 8164var readyList = jQuery.Deferred(); 8165 8166jQuery.fn.ready = function( fn ) { 8167 8168 readyList 8169 .then( fn ) 8170 8171 // Wrap jQuery.readyException in a function so that the lookup 8172 // happens at the time of error handling instead of callback 8173 // registration. 8174 .catch( function( error ) { 8175 jQuery.readyException( error ); 8176 } ); 8177 8178 return this; 8179}; 8180 8181jQuery.extend( { 8182 8183 // Is the DOM ready to be used? Set to true once it occurs. 8184 isReady: false, 8185 8186 // A counter to track how many items to wait for before 8187 // the ready event fires. See trac-6781 8188 readyWait: 1, 8189 8190 // Handle when the DOM is ready 8191 ready: function( wait ) { 8192 8193 // Abort if there are pending holds or we're already ready 8194 if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) { 8195 return; 8196 } 8197 8198 // Remember that the DOM is ready 8199 jQuery.isReady = true; 8200 8201 // If a normal DOM Ready event fired, decrement, and wait if need be 8202 if ( wait !== true && --jQuery.readyWait > 0 ) { 8203 return; 8204 } 8205 8206 // If there are functions bound, to execute 8207 readyList.resolveWith( document, [ jQuery ] ); 8208 } 8209} ); 8210 8211jQuery.ready.then = readyList.then; 8212 8213// The ready event handler and self cleanup method 8214function completed() { 8215 document.removeEventListener( "DOMContentLoaded", completed ); 8216 window.removeEventListener( "load", completed ); 8217 jQuery.ready(); 8218} 8219 8220// Catch cases where $(document).ready() is called 8221// after the browser event has already occurred. 8222// Support: IE <=9 - 10 only 8223// Older IE sometimes signals "interactive" too soon 8224if ( document.readyState === "complete" || 8225 ( document.readyState !== "loading" && !document.documentElement.doScroll ) ) { 8226 8227 // Handle it asynchronously to allow scripts the opportunity to delay ready 8228 window.setTimeout( jQuery.ready ); 8229 8230} else { 8231 8232 // Use the handy event callback 8233 document.addEventListener( "DOMContentLoaded", completed ); 8234 8235 // A fallback to window.onload, that will always work 8236 window.addEventListener( "load", completed ); 8237} 8238 8239 8240 8241 8242// Multifunctional method to get and set values of a collection 8243// The value/s can optionally be executed if it's a function 8244var access = function( elems, fn, key, value, chainable, emptyGet, raw ) { 8245 var i = 0, 8246 len = elems.length, 8247 bulk = key == null; 8248 8249 // Sets many values 8250 if ( toType( key ) === "object" ) { 8251 chainable = true; 8252 for ( i in key ) { 8253 access( elems, fn, i, key[ i ], true, emptyGet, raw ); 8254 } 8255 8256 // Sets one value 8257 } else if ( value !== undefined ) { 8258 chainable = true; 8259 8260 if ( !isFunction( value ) ) { 8261 raw = true; 8262 } 8263 8264 if ( bulk ) { 8265 8266 // Bulk operations run against the entire set 8267 if ( raw ) { 8268 fn.call( elems, value ); 8269 fn = null; 8270 8271 // ...except when executing function values 8272 } else { 8273 bulk = fn; 8274 fn = function( elem, _key, value ) { 8275 return bulk.call( jQuery( elem ), value ); 8276 }; 8277 } 8278 } 8279 8280 if ( fn ) { 8281 for ( ; i < len; i++ ) { 8282 fn( 8283 elems[ i ], key, raw ? 8284 value : 8285 value.call( elems[ i ], i, fn( elems[ i ], key ) ) 8286 ); 8287 } 8288 } 8289 } 8290 8291 if ( chainable ) { 8292 return elems; 8293 } 8294 8295 // Gets 8296 if ( bulk ) { 8297 return fn.call( elems ); 8298 } 8299 8300 return len ? fn( elems[ 0 ], key ) : emptyGet; 8301}; 8302 8303 8304// Matches dashed string for camelizing 8305var rmsPrefix = /^-ms-/, 8306 rdashAlpha = /-([a-z])/g; 8307 8308// Used by camelCase as callback to replace() 8309function fcamelCase( _all, letter ) { 8310 return letter.toUpperCase(); 8311} 8312 8313// Convert dashed to camelCase; used by the css and data modules 8314// Support: IE <=9 - 11, Edge 12 - 15 8315// Microsoft forgot to hump their vendor prefix (trac-9572) 8316function camelCase( string ) { 8317 return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); 8318} 8319var acceptData = function( owner ) { 8320 8321 // Accepts only: 8322 // - Node 8323 // - Node.ELEMENT_NODE 8324 // - Node.DOCUMENT_NODE 8325 // - Object 8326 // - Any 8327 return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType ); 8328}; 8329 8330 8331 8332 8333function Data() { 8334 this.expando = jQuery.expando + Data.uid++; 8335} 8336 8337Data.uid = 1; 8338 8339Data.prototype = { 8340 8341 cache: function( owner ) { 8342 8343 // Check if the owner object already has a cache 8344 var value = owner[ this.expando ]; 8345 8346 // If not, create one 8347 if ( !value ) { 8348 value = {}; 8349 8350 // We can accept data for non-element nodes in modern browsers, 8351 // but we should not, see trac-8335. 8352 // Always return an empty object. 8353 if ( acceptData( owner ) ) { 8354 8355 // If it is a node unlikely to be stringify-ed or looped over 8356 // use plain assignment 8357 if ( owner.nodeType ) { 8358 owner[ this.expando ] = value; 8359 8360 // Otherwise secure it in a non-enumerable property 8361 // configurable must be true to allow the property to be 8362 // deleted when data is removed 8363 } else { 8364 Object.defineProperty( owner, this.expando, { 8365 value: value, 8366 configurable: true 8367 } ); 8368 } 8369 } 8370 } 8371 8372 return value; 8373 }, 8374 set: function( owner, data, value ) { 8375 var prop, 8376 cache = this.cache( owner ); 8377 8378 // Handle: [ owner, key, value ] args 8379 // Always use camelCase key (gh-2257) 8380 if ( typeof data === "string" ) { 8381 cache[ camelCase( data ) ] = value; 8382 8383 // Handle: [ owner, { properties } ] args 8384 } else { 8385 8386 // Copy the properties one-by-one to the cache object 8387 for ( prop in data ) { 8388 cache[ camelCase( prop ) ] = data[ prop ]; 8389 } 8390 } 8391 return cache; 8392 }, 8393 get: function( owner, key ) { 8394 return key === undefined ? 8395 this.cache( owner ) : 8396 8397 // Always use camelCase key (gh-2257) 8398 owner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ]; 8399 }, 8400 access: function( owner, key, value ) { 8401 8402 // In cases where either: 8403 // 8404 // 1. No key was specified 8405 // 2. A string key was specified, but no value provided 8406 // 8407 // Take the "read" path and allow the get method to determine 8408 // which value to return, respectively either: 8409 // 8410 // 1. The entire cache object 8411 // 2. The data stored at the key 8412 // 8413 if ( key === undefined || 8414 ( ( key && typeof key === "string" ) && value === undefined ) ) { 8415 8416 return this.get( owner, key ); 8417 } 8418 8419 // When the key is not a string, or both a key and value 8420 // are specified, set or extend (existing objects) with either: 8421 // 8422 // 1. An object of properties 8423 // 2. A key and value 8424 // 8425 this.set( owner, key, value ); 8426 8427 // Since the "set" path can have two possible entry points 8428 // return the expected data based on which path was taken[*] 8429 return value !== undefined ? value : key; 8430 }, 8431 remove: function( owner, key ) { 8432 var i, 8433 cache = owner[ this.expando ]; 8434 8435 if ( cache === undefined ) { 8436 return; 8437 } 8438 8439 if ( key !== undefined ) { 8440 8441 // Support array or space separated string of keys 8442 if ( Array.isArray( key ) ) { 8443 8444 // If key is an array of keys... 8445 // We always set camelCase keys, so remove that. 8446 key = key.map( camelCase ); 8447 } else { 8448 key = camelCase( key ); 8449 8450 // If a key with the spaces exists, use it. 8451 // Otherwise, create an array by matching non-whitespace 8452 key = key in cache ? 8453 [ key ] : 8454 ( key.match( rnothtmlwhite ) || [] ); 8455 } 8456 8457 i = key.length; 8458 8459 while ( i-- ) { 8460 delete cache[ key[ i ] ]; 8461 } 8462 } 8463 8464 // Remove the expando if there's no more data 8465 if ( key === undefined || jQuery.isEmptyObject( cache ) ) { 8466 8467 // Support: Chrome <=35 - 45 8468 // Webkit & Blink performance suffers when deleting properties 8469 // from DOM nodes, so set to undefined instead 8470 // https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted) 8471 if ( owner.nodeType ) { 8472 owner[ this.expando ] = undefined; 8473 } else { 8474 delete owner[ this.expando ]; 8475 } 8476 } 8477 }, 8478 hasData: function( owner ) { 8479 var cache = owner[ this.expando ]; 8480 return cache !== undefined && !jQuery.isEmptyObject( cache ); 8481 } 8482}; 8483var dataPriv = new Data(); 8484 8485var dataUser = new Data(); 8486 8487 8488 8489// Implementation Summary 8490// 8491// 1. Enforce API surface and semantic compatibility with 1.9.x branch 8492// 2. Improve the module's maintainability by reducing the storage 8493// paths to a single mechanism. 8494// 3. Use the same single mechanism to support "private" and "user" data. 8495// 4. _Never_ expose "private" data to user code (TODO: Drop _data, _removeData) 8496// 5. Avoid exposing implementation details on user objects (eg. expando properties) 8497// 6. Provide a clear path for implementation upgrade to WeakMap in 2014 8498 8499var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, 8500 rmultiDash = /[A-Z]/g; 8501 8502function getData( data ) { 8503 if ( data === "true" ) { 8504 return true; 8505 } 8506 8507 if ( data === "false" ) { 8508 return false; 8509 } 8510 8511 if ( data === "null" ) { 8512 return null; 8513 } 8514 8515 // Only convert to a number if it doesn't change the string 8516 if ( data === +data + "" ) { 8517 return +data; 8518 } 8519 8520 if ( rbrace.test( data ) ) { 8521 return JSON.parse( data ); 8522 } 8523 8524 return data; 8525} 8526 8527function dataAttr( elem, key, data ) { 8528 var name; 8529 8530 // If nothing was found internally, try to fetch any 8531 // data from the HTML5 data-* attribute 8532 if ( data === undefined && elem.nodeType === 1 ) { 8533 name = "data-" + key.replace( rmultiDash, "-$&" ).toLowerCase(); 8534 data = elem.getAttribute( name ); 8535 8536 if ( typeof data === "string" ) { 8537 try { 8538 data = getData( data ); 8539 } catch ( e ) {} 8540 8541 // Make sure we set the data so it isn't changed later 8542 dataUser.set( elem, key, data ); 8543 } else { 8544 data = undefined; 8545 } 8546 } 8547 return data; 8548} 8549 8550jQuery.extend( { 8551 hasData: function( elem ) { 8552 return dataUser.hasData( elem ) || dataPriv.hasData( elem ); 8553 }, 8554 8555 data: function( elem, name, data ) { 8556 return dataUser.access( elem, name, data ); 8557 }, 8558 8559 removeData: function( elem, name ) { 8560 dataUser.remove( elem, name ); 8561 }, 8562 8563 // TODO: Now that all calls to _data and _removeData have been replaced 8564 // with direct calls to dataPriv methods, these can be deprecated. 8565 _data: function( elem, name, data ) { 8566 return dataPriv.access( elem, name, data ); 8567 }, 8568 8569 _removeData: function( elem, name ) { 8570 dataPriv.remove( elem, name ); 8571 } 8572} ); 8573 8574jQuery.fn.extend( { 8575 data: function( key, value ) { 8576 var i, name, data, 8577 elem = this[ 0 ], 8578 attrs = elem && elem.attributes; 8579 8580 // Gets all values 8581 if ( key === undefined ) { 8582 if ( this.length ) { 8583 data = dataUser.get( elem ); 8584 8585 if ( elem.nodeType === 1 && !dataPriv.get( elem, "hasDataAttrs" ) ) { 8586 i = attrs.length; 8587 while ( i-- ) { 8588 8589 // Support: IE 11 only 8590 // The attrs elements can be null (trac-14894) 8591 if ( attrs[ i ] ) { 8592 name = attrs[ i ].name; 8593 if ( name.indexOf( "data-" ) === 0 ) { 8594 name = camelCase( name.slice( 5 ) ); 8595 dataAttr( elem, name, data[ name ] ); 8596 } 8597 } 8598 } 8599 dataPriv.set( elem, "hasDataAttrs", true ); 8600 } 8601 } 8602 8603 return data; 8604 } 8605 8606 // Sets multiple values 8607 if ( typeof key === "object" ) { 8608 return this.each( function() { 8609 dataUser.set( this, key ); 8610 } ); 8611 } 8612 8613 return access( this, function( value ) { 8614 var data; 8615 8616 // The calling jQuery object (element matches) is not empty 8617 // (and therefore has an element appears at this[ 0 ]) and the 8618 // `value` parameter was not undefined. An empty jQuery object 8619 // will result in `undefined` for elem = this[ 0 ] which will 8620 // throw an exception if an attempt to read a data cache is made. 8621 if ( elem && value === undefined ) { 8622 8623 // Attempt to get data from the cache 8624 // The key will always be camelCased in Data 8625 data = dataUser.get( elem, key ); 8626 if ( data !== undefined ) { 8627 return data; 8628 } 8629 8630 // Attempt to "discover" the data in 8631 // HTML5 custom data-* attrs 8632 data = dataAttr( elem, key ); 8633 if ( data !== undefined ) { 8634 return data; 8635 } 8636 8637 // We tried really hard, but the data doesn't exist. 8638 return; 8639 } 8640 8641 // Set the data... 8642 this.each( function() { 8643 8644 // We always store the camelCased key 8645 dataUser.set( this, key, value ); 8646 } ); 8647 }, null, value, arguments.length > 1, null, true ); 8648 }, 8649 8650 removeData: function( key ) { 8651 return this.each( function() { 8652 dataUser.remove( this, key ); 8653 } ); 8654 } 8655} ); 8656 8657 8658jQuery.extend( { 8659 queue: function( elem, type, data ) { 8660 var queue; 8661 8662 if ( elem ) { 8663 type = ( type || "fx" ) + "queue"; 8664 queue = dataPriv.get( elem, type ); 8665 8666 // Speed up dequeue by getting out quickly if this is just a lookup 8667 if ( data ) { 8668 if ( !queue || Array.isArray( data ) ) { 8669 queue = dataPriv.access( elem, type, jQuery.makeArray( data ) ); 8670 } else { 8671 queue.push( data ); 8672 } 8673 } 8674 return queue || []; 8675 } 8676 }, 8677 8678 dequeue: function( elem, type ) { 8679 type = type || "fx"; 8680 8681 var queue = jQuery.queue( elem, type ), 8682 startLength = queue.length, 8683 fn = queue.shift(), 8684 hooks = jQuery._queueHooks( elem, type ), 8685 next = function() { 8686 jQuery.dequeue( elem, type ); 8687 }; 8688 8689 // If the fx queue is dequeued, always remove the progress sentinel 8690 if ( fn === "inprogress" ) { 8691 fn = queue.shift(); 8692 startLength--; 8693 } 8694 8695 if ( fn ) { 8696 8697 // Add a progress sentinel to prevent the fx queue from being 8698 // automatically dequeued 8699 if ( type === "fx" ) { 8700 queue.unshift( "inprogress" ); 8701 } 8702 8703 // Clear up the last queue stop function 8704 delete hooks.stop; 8705 fn.call( elem, next, hooks ); 8706 } 8707 8708 if ( !startLength && hooks ) { 8709 hooks.empty.fire(); 8710 } 8711 }, 8712 8713 // Not public - generate a queueHooks object, or return the current one 8714 _queueHooks: function( elem, type ) { 8715 var key = type + "queueHooks"; 8716 return dataPriv.get( elem, key ) || dataPriv.access( elem, key, { 8717 empty: jQuery.Callbacks( "once memory" ).add( function() { 8718 dataPriv.remove( elem, [ type + "queue", key ] ); 8719 } ) 8720 } ); 8721 } 8722} ); 8723 8724jQuery.fn.extend( { 8725 queue: function( type, data ) { 8726 var setter = 2; 8727 8728 if ( typeof type !== "string" ) { 8729 data = type; 8730 type = "fx"; 8731 setter--; 8732 } 8733 8734 if ( arguments.length < setter ) { 8735 return jQuery.queue( this[ 0 ], type ); 8736 } 8737 8738 return data === undefined ? 8739 this : 8740 this.each( function() { 8741 var queue = jQuery.queue( this, type, data ); 8742 8743 // Ensure a hooks for this queue 8744 jQuery._queueHooks( this, type ); 8745 8746 if ( type === "fx" && queue[ 0 ] !== "inprogress" ) { 8747 jQuery.dequeue( this, type ); 8748 } 8749 } ); 8750 }, 8751 dequeue: function( type ) { 8752 return this.each( function() { 8753 jQuery.dequeue( this, type ); 8754 } ); 8755 }, 8756 clearQueue: function( type ) { 8757 return this.queue( type || "fx", [] ); 8758 }, 8759 8760 // Get a promise resolved when queues of a certain type 8761 // are emptied (fx is the type by default) 8762 promise: function( type, obj ) { 8763 var tmp, 8764 count = 1, 8765 defer = jQuery.Deferred(), 8766 elements = this, 8767 i = this.length, 8768 resolve = function() { 8769 if ( !( --count ) ) { 8770 defer.resolveWith( elements, [ elements ] ); 8771 } 8772 }; 8773 8774 if ( typeof type !== "string" ) { 8775 obj = type; 8776 type = undefined; 8777 } 8778 type = type || "fx"; 8779 8780 while ( i-- ) { 8781 tmp = dataPriv.get( elements[ i ], type + "queueHooks" ); 8782 if ( tmp && tmp.empty ) { 8783 count++; 8784 tmp.empty.add( resolve ); 8785 } 8786 } 8787 resolve(); 8788 return defer.promise( obj ); 8789 } 8790} ); 8791var pnum = ( /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/ ).source; 8792 8793var rcssNum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" ); 8794 8795 8796var cssExpand = [ "Top", "Right", "Bottom", "Left" ]; 8797 8798var documentElement = document.documentElement; 8799 8800 8801 8802 var isAttached = function( elem ) { 8803 return jQuery.contains( elem.ownerDocument, elem ); 8804 }, 8805 composed = { composed: true }; 8806 8807 // Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only 8808 // Check attachment across shadow DOM boundaries when possible (gh-3504) 8809 // Support: iOS 10.0-10.2 only 8810 // Early iOS 10 versions support `attachShadow` but not `getRootNode`, 8811 // leading to errors. We need to check for `getRootNode`. 8812 if ( documentElement.getRootNode ) { 8813 isAttached = function( elem ) { 8814 return jQuery.contains( elem.ownerDocument, elem ) || 8815 elem.getRootNode( composed ) === elem.ownerDocument; 8816 }; 8817 } 8818var isHiddenWithinTree = function( elem, el ) { 8819 8820 // isHiddenWithinTree might be called from jQuery#filter function; 8821 // in that case, element will be second argument 8822 elem = el || elem; 8823 8824 // Inline style trumps all 8825 return elem.style.display === "none" || 8826 elem.style.display === "" && 8827 8828 // Otherwise, check computed style 8829 // Support: Firefox <=43 - 45 8830 // Disconnected elements can have computed display: none, so first confirm that elem is 8831 // in the document. 8832 isAttached( elem ) && 8833 8834 jQuery.css( elem, "display" ) === "none"; 8835 }; 8836 8837 8838 8839function adjustCSS( elem, prop, valueParts, tween ) { 8840 var adjusted, scale, 8841 maxIterations = 20, 8842 currentValue = tween ? 8843 function() { 8844 return tween.cur(); 8845 } : 8846 function() { 8847 return jQuery.css( elem, prop, "" ); 8848 }, 8849 initial = currentValue(), 8850 unit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ), 8851 8852 // Starting value computation is required for potential unit mismatches 8853 initialInUnit = elem.nodeType && 8854 ( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) && 8855 rcssNum.exec( jQuery.css( elem, prop ) ); 8856 8857 if ( initialInUnit && initialInUnit[ 3 ] !== unit ) { 8858 8859 // Support: Firefox <=54 8860 // Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144) 8861 initial = initial / 2; 8862 8863 // Trust units reported by jQuery.css 8864 unit = unit || initialInUnit[ 3 ]; 8865 8866 // Iteratively approximate from a nonzero starting point 8867 initialInUnit = +initial || 1; 8868 8869 while ( maxIterations-- ) { 8870 8871 // Evaluate and update our best guess (doubling guesses that zero out). 8872 // Finish if the scale equals or crosses 1 (making the old*new product non-positive). 8873 jQuery.style( elem, prop, initialInUnit + unit ); 8874 if ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) { 8875 maxIterations = 0; 8876 } 8877 initialInUnit = initialInUnit / scale; 8878 8879 } 8880 8881 initialInUnit = initialInUnit * 2; 8882 jQuery.style( elem, prop, initialInUnit + unit ); 8883 8884 // Make sure we update the tween properties later on 8885 valueParts = valueParts || []; 8886 } 8887 8888 if ( valueParts ) { 8889 initialInUnit = +initialInUnit || +initial || 0; 8890 8891 // Apply relative offset (+=/-=) if specified 8892 adjusted = valueParts[ 1 ] ? 8893 initialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] : 8894 +valueParts[ 2 ]; 8895 if ( tween ) { 8896 tween.unit = unit; 8897 tween.start = initialInUnit; 8898 tween.end = adjusted; 8899 } 8900 } 8901 return adjusted; 8902} 8903 8904 8905var defaultDisplayMap = {}; 8906 8907function getDefaultDisplay( elem ) { 8908 var temp, 8909 doc = elem.ownerDocument, 8910 nodeName = elem.nodeName, 8911 display = defaultDisplayMap[ nodeName ]; 8912 8913 if ( display ) { 8914 return display; 8915 } 8916 8917 temp = doc.body.appendChild( doc.createElement( nodeName ) ); 8918 display = jQuery.css( temp, "display" ); 8919 8920 temp.parentNode.removeChild( temp ); 8921 8922 if ( display === "none" ) { 8923 display = "block"; 8924 } 8925 defaultDisplayMap[ nodeName ] = display; 8926 8927 return display; 8928} 8929 8930function showHide( elements, show ) { 8931 var display, elem, 8932 values = [], 8933 index = 0, 8934 length = elements.length; 8935 8936 // Determine new display value for elements that need to change 8937 for ( ; index < length; index++ ) { 8938 elem = elements[ index ]; 8939 if ( !elem.style ) { 8940 continue; 8941 } 8942 8943 display = elem.style.display; 8944 if ( show ) { 8945 8946 // Since we force visibility upon cascade-hidden elements, an immediate (and slow) 8947 // check is required in this first loop unless we have a nonempty display value (either 8948 // inline or about-to-be-restored) 8949 if ( display === "none" ) { 8950 values[ index ] = dataPriv.get( elem, "display" ) || null; 8951 if ( !values[ index ] ) { 8952 elem.style.display = ""; 8953 } 8954 } 8955 if ( elem.style.display === "" && isHiddenWithinTree( elem ) ) { 8956 values[ index ] = getDefaultDisplay( elem ); 8957 } 8958 } else { 8959 if ( display !== "none" ) { 8960 values[ index ] = "none"; 8961 8962 // Remember what we're overwriting 8963 dataPriv.set( elem, "display", display ); 8964 } 8965 } 8966 } 8967 8968 // Set the display of the elements in a second loop to avoid constant reflow 8969 for ( index = 0; index < length; index++ ) { 8970 if ( values[ index ] != null ) { 8971 elements[ index ].style.display = values[ index ]; 8972 } 8973 } 8974 8975 return elements; 8976} 8977 8978jQuery.fn.extend( { 8979 show: function() { 8980 return showHide( this, true ); 8981 }, 8982 hide: function() { 8983 return showHide( this ); 8984 }, 8985 toggle: function( state ) { 8986 if ( typeof state === "boolean" ) { 8987 return state ? this.show() : this.hide(); 8988 } 8989 8990 return this.each( function() { 8991 if ( isHiddenWithinTree( this ) ) { 8992 jQuery( this ).show(); 8993 } else { 8994 jQuery( this ).hide(); 8995 } 8996 } ); 8997 } 8998} ); 8999var rcheckableType = ( /^(?:checkbox|radio)$/i ); 9000 9001var rtagName = ( /<([a-z][^\/\0>\x20\t\r\n\f]*)/i ); 9002 9003var rscriptType = ( /^$|^module$|\/(?:java|ecma)script/i ); 9004 9005 9006 9007( function() { 9008 var fragment = document.createDocumentFragment(), 9009 div = fragment.appendChild( document.createElement( "div" ) ), 9010 input = document.createElement( "input" ); 9011 9012 // Support: Android 4.0 - 4.3 only 9013 // Check state lost if the name is set (trac-11217) 9014 // Support: Windows Web Apps (WWA) 9015 // `name` and `type` must use .setAttribute for WWA (trac-14901) 9016 input.setAttribute( "type", "radio" ); 9017 input.setAttribute( "checked", "checked" ); 9018 input.setAttribute( "name", "t" ); 9019 9020 div.appendChild( input ); 9021 9022 // Support: Android <=4.1 only 9023 // Older WebKit doesn't clone checked state correctly in fragments 9024 support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked; 9025 9026 // Support: IE <=11 only 9027 // Make sure textarea (and checkbox) defaultValue is properly cloned 9028 div.innerHTML = "<textarea>x</textarea>"; 9029 support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue; 9030 9031 // Support: IE <=9 only 9032 // IE <=9 replaces <option> tags with their contents when inserted outside of 9033 // the select element. 9034 div.innerHTML = "<option></option>"; 9035 support.option = !!div.lastChild; 9036} )(); 9037 9038 9039// We have to close these tags to support XHTML (trac-13200) 9040var wrapMap = { 9041 9042 // XHTML parsers do not magically insert elements in the 9043 // same way that tag soup parsers do. So we cannot shorten 9044 // this by omitting <tbody> or other required elements. 9045 thead: [ 1, "<table>", "</table>" ], 9046 col: [ 2, "<table><colgroup>", "</colgroup></table>" ], 9047 tr: [ 2, "<table><tbody>", "</tbody></table>" ], 9048 td: [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ], 9049 9050 _default: [ 0, "", "" ] 9051}; 9052 9053wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; 9054wrapMap.th = wrapMap.td; 9055 9056// Support: IE <=9 only 9057if ( !support.option ) { 9058 wrapMap.optgroup = wrapMap.option = [ 1, "<select multiple='multiple'>", "</select>" ]; 9059} 9060 9061 9062function getAll( context, tag ) { 9063 9064 // Support: IE <=9 - 11 only 9065 // Use typeof to avoid zero-argument method invocation on host objects (trac-15151) 9066 var ret; 9067 9068 if ( typeof context.getElementsByTagName !== "undefined" ) { 9069 ret = context.getElementsByTagName( tag || "*" ); 9070 9071 } else if ( typeof context.querySelectorAll !== "undefined" ) { 9072 ret = context.querySelectorAll( tag || "*" ); 9073 9074 } else { 9075 ret = []; 9076 } 9077 9078 if ( tag === undefined || tag && nodeName( context, tag ) ) { 9079 return jQuery.merge( [ context ], ret ); 9080 } 9081 9082 return ret; 9083} 9084 9085 9086// Mark scripts as having already been evaluated 9087function setGlobalEval( elems, refElements ) { 9088 var i = 0, 9089 l = elems.length; 9090 9091 for ( ; i < l; i++ ) { 9092 dataPriv.set( 9093 elems[ i ], 9094 "globalEval", 9095 !refElements || dataPriv.get( refElements[ i ], "globalEval" ) 9096 ); 9097 } 9098} 9099 9100 9101var rhtml = /<|&#?\w+;/; 9102 9103function buildFragment( elems, context, scripts, selection, ignored ) { 9104 var elem, tmp, tag, wrap, attached, j, 9105 fragment = context.createDocumentFragment(), 9106 nodes = [], 9107 i = 0, 9108 l = elems.length; 9109 9110 for ( ; i < l; i++ ) { 9111 elem = elems[ i ]; 9112 9113 if ( elem || elem === 0 ) { 9114 9115 // Add nodes directly 9116 if ( toType( elem ) === "object" ) { 9117 9118 // Support: Android <=4.0 only, PhantomJS 1 only 9119 // push.apply(_, arraylike) throws on ancient WebKit 9120 jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem ); 9121 9122 // Convert non-html into a text node 9123 } else if ( !rhtml.test( elem ) ) { 9124 nodes.push( context.createTextNode( elem ) ); 9125 9126 // Convert html into DOM nodes 9127 } else { 9128 tmp = tmp || fragment.appendChild( context.createElement( "div" ) ); 9129 9130 // Deserialize a standard representation 9131 tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase(); 9132 wrap = wrapMap[ tag ] || wrapMap._default; 9133 tmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ]; 9134 9135 // Descend through wrappers to the right content 9136 j = wrap[ 0 ]; 9137 while ( j-- ) { 9138 tmp = tmp.lastChild; 9139 } 9140 9141 // Support: Android <=4.0 only, PhantomJS 1 only 9142 // push.apply(_, arraylike) throws on ancient WebKit 9143 jQuery.merge( nodes, tmp.childNodes ); 9144 9145 // Remember the top-level container 9146 tmp = fragment.firstChild; 9147 9148 // Ensure the created nodes are orphaned (trac-12392) 9149 tmp.textContent = ""; 9150 } 9151 } 9152 } 9153 9154 // Remove wrapper from fragment 9155 fragment.textContent = ""; 9156 9157 i = 0; 9158 while ( ( elem = nodes[ i++ ] ) ) { 9159 9160 // Skip elements already in the context collection (trac-4087) 9161 if ( selection && jQuery.inArray( elem, selection ) > -1 ) { 9162 if ( ignored ) { 9163 ignored.push( elem ); 9164 } 9165 continue; 9166 } 9167 9168 attached = isAttached( elem ); 9169 9170 // Append to fragment 9171 tmp = getAll( fragment.appendChild( elem ), "script" ); 9172 9173 // Preserve script evaluation history 9174 if ( attached ) { 9175 setGlobalEval( tmp ); 9176 } 9177 9178 // Capture executables 9179 if ( scripts ) { 9180 j = 0; 9181 while ( ( elem = tmp[ j++ ] ) ) { 9182 if ( rscriptType.test( elem.type || "" ) ) { 9183 scripts.push( elem ); 9184 } 9185 } 9186 } 9187 } 9188 9189 return fragment; 9190} 9191 9192 9193var rtypenamespace = /^([^.]*)(?:\.(.+)|)/; 9194 9195function returnTrue() { 9196 return true; 9197} 9198 9199function returnFalse() { 9200 return false; 9201} 9202 9203function on( elem, types, selector, data, fn, one ) { 9204 var origFn, type; 9205 9206 // Types can be a map of types/handlers 9207 if ( typeof types === "object" ) { 9208 9209 // ( types-Object, selector, data ) 9210 if ( typeof selector !== "string" ) { 9211 9212 // ( types-Object, data ) 9213 data = data || selector; 9214 selector = undefined; 9215 } 9216 for ( type in types ) { 9217 on( elem, type, selector, data, types[ type ], one ); 9218 } 9219 return elem; 9220 } 9221 9222 if ( data == null && fn == null ) { 9223 9224 // ( types, fn ) 9225 fn = selector; 9226 data = selector = undefined; 9227 } else if ( fn == null ) { 9228 if ( typeof selector === "string" ) { 9229 9230 // ( types, selector, fn ) 9231 fn = data; 9232 data = undefined; 9233 } else { 9234 9235 // ( types, data, fn ) 9236 fn = data; 9237 data = selector; 9238 selector = undefined; 9239 } 9240 } 9241 if ( fn === false ) { 9242 fn = returnFalse; 9243 } else if ( !fn ) { 9244 return elem; 9245 } 9246 9247 if ( one === 1 ) { 9248 origFn = fn; 9249 fn = function( event ) { 9250 9251 // Can use an empty set, since event contains the info 9252 jQuery().off( event ); 9253 return origFn.apply( this, arguments ); 9254 }; 9255 9256 // Use same guid so caller can remove using origFn 9257 fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ ); 9258 } 9259 return elem.each( function() { 9260 jQuery.event.add( this, types, fn, data, selector ); 9261 } ); 9262} 9263 9264/* 9265 * Helper functions for managing events -- not part of the public interface. 9266 * Props to Dean Edwards' addEvent library for many of the ideas. 9267 */ 9268jQuery.event = { 9269 9270 global: {}, 9271 9272 add: function( elem, types, handler, data, selector ) { 9273 9274 var handleObjIn, eventHandle, tmp, 9275 events, t, handleObj, 9276 special, handlers, type, namespaces, origType, 9277 elemData = dataPriv.get( elem ); 9278 9279 // Only attach events to objects that accept data 9280 if ( !acceptData( elem ) ) { 9281 return; 9282 } 9283 9284 // Caller can pass in an object of custom data in lieu of the handler 9285 if ( handler.handler ) { 9286 handleObjIn = handler; 9287 handler = handleObjIn.handler; 9288 selector = handleObjIn.selector; 9289 } 9290 9291 // Ensure that invalid selectors throw exceptions at attach time 9292 // Evaluate against documentElement in case elem is a non-element node (e.g., document) 9293 if ( selector ) { 9294 jQuery.find.matchesSelector( documentElement, selector ); 9295 } 9296 9297 // Make sure that the handler has a unique ID, used to find/remove it later 9298 if ( !handler.guid ) { 9299 handler.guid = jQuery.guid++; 9300 } 9301 9302 // Init the element's event structure and main handler, if this is the first 9303 if ( !( events = elemData.events ) ) { 9304 events = elemData.events = Object.create( null ); 9305 } 9306 if ( !( eventHandle = elemData.handle ) ) { 9307 eventHandle = elemData.handle = function( e ) { 9308 9309 // Discard the second event of a jQuery.event.trigger() and 9310 // when an event is called after a page has unloaded 9311 return typeof jQuery !== "undefined" && jQuery.event.triggered !== e.type ? 9312 jQuery.event.dispatch.apply( elem, arguments ) : undefined; 9313 }; 9314 } 9315 9316 // Handle multiple events separated by a space 9317 types = ( types || "" ).match( rnothtmlwhite ) || [ "" ]; 9318 t = types.length; 9319 while ( t-- ) { 9320 tmp = rtypenamespace.exec( types[ t ] ) || []; 9321 type = origType = tmp[ 1 ]; 9322 namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort(); 9323 9324 // There *must* be a type, no attaching namespace-only handlers 9325 if ( !type ) { 9326 continue; 9327 } 9328 9329 // If event changes its type, use the special event handlers for the changed type 9330 special = jQuery.event.special[ type ] || {}; 9331 9332 // If selector defined, determine special event api type, otherwise given type 9333 type = ( selector ? special.delegateType : special.bindType ) || type; 9334 9335 // Update special based on newly reset type 9336 special = jQuery.event.special[ type ] || {}; 9337 9338 // handleObj is passed to all event handlers 9339 handleObj = jQuery.extend( { 9340 type: type, 9341 origType: origType, 9342 data: data, 9343 handler: handler, 9344 guid: handler.guid, 9345 selector: selector, 9346 needsContext: selector && jQuery.expr.match.needsContext.test( selector ), 9347 namespace: namespaces.join( "." ) 9348 }, handleObjIn ); 9349 9350 // Init the event handler queue if we're the first 9351 if ( !( handlers = events[ type ] ) ) { 9352 handlers = events[ type ] = []; 9353 handlers.delegateCount = 0; 9354 9355 // Only use addEventListener if the special events handler returns false 9356 if ( !special.setup || 9357 special.setup.call( elem, data, namespaces, eventHandle ) === false ) { 9358 9359 if ( elem.addEventListener ) { 9360 elem.addEventListener( type, eventHandle ); 9361 } 9362 } 9363 } 9364 9365 if ( special.add ) { 9366 special.add.call( elem, handleObj ); 9367 9368 if ( !handleObj.handler.guid ) { 9369 handleObj.handler.guid = handler.guid; 9370 } 9371 } 9372 9373 // Add to the element's handler list, delegates in front 9374 if ( selector ) { 9375 handlers.splice( handlers.delegateCount++, 0, handleObj ); 9376 } else { 9377 handlers.push( handleObj ); 9378 } 9379 9380 // Keep track of which events have ever been used, for event optimization 9381 jQuery.event.global[ type ] = true; 9382 } 9383 9384 }, 9385 9386 // Detach an event or set of events from an element 9387 remove: function( elem, types, handler, selector, mappedTypes ) { 9388 9389 var j, origCount, tmp, 9390 events, t, handleObj, 9391 special, handlers, type, namespaces, origType, 9392 elemData = dataPriv.hasData( elem ) && dataPriv.get( elem ); 9393 9394 if ( !elemData || !( events = elemData.events ) ) { 9395 return; 9396 } 9397 9398 // Once for each type.namespace in types; type may be omitted 9399 types = ( types || "" ).match( rnothtmlwhite ) || [ "" ]; 9400 t = types.length; 9401 while ( t-- ) { 9402 tmp = rtypenamespace.exec( types[ t ] ) || []; 9403 type = origType = tmp[ 1 ]; 9404 namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort(); 9405 9406 // Unbind all events (on this namespace, if provided) for the element 9407 if ( !type ) { 9408 for ( type in events ) { 9409 jQuery.event.remove( elem, type + types[ t ], handler, selector, true ); 9410 } 9411 continue; 9412 } 9413 9414 special = jQuery.event.special[ type ] || {}; 9415 type = ( selector ? special.delegateType : special.bindType ) || type; 9416 handlers = events[ type ] || []; 9417 tmp = tmp[ 2 ] && 9418 new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ); 9419 9420 // Remove matching events 9421 origCount = j = handlers.length; 9422 while ( j-- ) { 9423 handleObj = handlers[ j ]; 9424 9425 if ( ( mappedTypes || origType === handleObj.origType ) && 9426 ( !handler || handler.guid === handleObj.guid ) && 9427 ( !tmp || tmp.test( handleObj.namespace ) ) && 9428 ( !selector || selector === handleObj.selector || 9429 selector === "**" && handleObj.selector ) ) { 9430 handlers.splice( j, 1 ); 9431 9432 if ( handleObj.selector ) { 9433 handlers.delegateCount--; 9434 } 9435 if ( special.remove ) { 9436 special.remove.call( elem, handleObj ); 9437 } 9438 } 9439 } 9440 9441 // Remove generic event handler if we removed something and no more handlers exist 9442 // (avoids potential for endless recursion during removal of special event handlers) 9443 if ( origCount && !handlers.length ) { 9444 if ( !special.teardown || 9445 special.teardown.call( elem, namespaces, elemData.handle ) === false ) { 9446 9447 jQuery.removeEvent( elem, type, elemData.handle ); 9448 } 9449 9450 delete events[ type ]; 9451 } 9452 } 9453 9454 // Remove data and the expando if it's no longer used 9455 if ( jQuery.isEmptyObject( events ) ) { 9456 dataPriv.remove( elem, "handle events" ); 9457 } 9458 }, 9459 9460 dispatch: function( nativeEvent ) { 9461 9462 var i, j, ret, matched, handleObj, handlerQueue, 9463 args = new Array( arguments.length ), 9464 9465 // Make a writable jQuery.Event from the native event object 9466 event = jQuery.event.fix( nativeEvent ), 9467 9468 handlers = ( 9469 dataPriv.get( this, "events" ) || Object.create( null ) 9470 )[ event.type ] || [], 9471 special = jQuery.event.special[ event.type ] || {}; 9472 9473 // Use the fix-ed jQuery.Event rather than the (read-only) native event 9474 args[ 0 ] = event; 9475 9476 for ( i = 1; i < arguments.length; i++ ) { 9477 args[ i ] = arguments[ i ]; 9478 } 9479 9480 event.delegateTarget = this; 9481 9482 // Call the preDispatch hook for the mapped type, and let it bail if desired 9483 if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) { 9484 return; 9485 } 9486 9487 // Determine handlers 9488 handlerQueue = jQuery.event.handlers.call( this, event, handlers ); 9489 9490 // Run delegates first; they may want to stop propagation beneath us 9491 i = 0; 9492 while ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) { 9493 event.currentTarget = matched.elem; 9494 9495 j = 0; 9496 while ( ( handleObj = matched.handlers[ j++ ] ) && 9497 !event.isImmediatePropagationStopped() ) { 9498 9499 // If the event is namespaced, then each handler is only invoked if it is 9500 // specially universal or its namespaces are a superset of the event's. 9501 if ( !event.rnamespace || handleObj.namespace === false || 9502 event.rnamespace.test( handleObj.namespace ) ) { 9503 9504 event.handleObj = handleObj; 9505 event.data = handleObj.data; 9506 9507 ret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle || 9508 handleObj.handler ).apply( matched.elem, args ); 9509 9510 if ( ret !== undefined ) { 9511 if ( ( event.result = ret ) === false ) { 9512 event.preventDefault(); 9513 event.stopPropagation(); 9514 } 9515 } 9516 } 9517 } 9518 } 9519 9520 // Call the postDispatch hook for the mapped type 9521 if ( special.postDispatch ) { 9522 special.postDispatch.call( this, event ); 9523 } 9524 9525 return event.result; 9526 }, 9527 9528 handlers: function( event, handlers ) { 9529 var i, handleObj, sel, matchedHandlers, matchedSelectors, 9530 handlerQueue = [], 9531 delegateCount = handlers.delegateCount, 9532 cur = event.target; 9533 9534 // Find delegate handlers 9535 if ( delegateCount && 9536 9537 // Support: IE <=9 9538 // Black-hole SVG <use> instance trees (trac-13180) 9539 cur.nodeType && 9540 9541 // Support: Firefox <=42 9542 // Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861) 9543 // https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click 9544 // Support: IE 11 only 9545 // ...but not arrow key "clicks" of radio inputs, which can have `button` -1 (gh-2343) 9546 !( event.type === "click" && event.button >= 1 ) ) { 9547 9548 for ( ; cur !== this; cur = cur.parentNode || this ) { 9549 9550 // Don't check non-elements (trac-13208) 9551 // Don't process clicks on disabled elements (trac-6911, trac-8165, trac-11382, trac-11764) 9552 if ( cur.nodeType === 1 && !( event.type === "click" && cur.disabled === true ) ) { 9553 matchedHandlers = []; 9554 matchedSelectors = {}; 9555 for ( i = 0; i < delegateCount; i++ ) { 9556 handleObj = handlers[ i ]; 9557 9558 // Don't conflict with Object.prototype properties (trac-13203) 9559 sel = handleObj.selector + " "; 9560 9561 if ( matchedSelectors[ sel ] === undefined ) { 9562 matchedSelectors[ sel ] = handleObj.needsContext ? 9563 jQuery( sel, this ).index( cur ) > -1 : 9564 jQuery.find( sel, this, null, [ cur ] ).length; 9565 } 9566 if ( matchedSelectors[ sel ] ) { 9567 matchedHandlers.push( handleObj ); 9568 } 9569 } 9570 if ( matchedHandlers.length ) { 9571 handlerQueue.push( { elem: cur, handlers: matchedHandlers } ); 9572 } 9573 } 9574 } 9575 } 9576 9577 // Add the remaining (directly-bound) handlers 9578 cur = this; 9579 if ( delegateCount < handlers.length ) { 9580 handlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } ); 9581 } 9582 9583 return handlerQueue; 9584 }, 9585 9586 addProp: function( name, hook ) { 9587 Object.defineProperty( jQuery.Event.prototype, name, { 9588 enumerable: true, 9589 configurable: true, 9590 9591 get: isFunction( hook ) ? 9592 function() { 9593 if ( this.originalEvent ) { 9594 return hook( this.originalEvent ); 9595 } 9596 } : 9597 function() { 9598 if ( this.originalEvent ) { 9599 return this.originalEvent[ name ]; 9600 } 9601 }, 9602 9603 set: function( value ) { 9604 Object.defineProperty( this, name, { 9605 enumerable: true, 9606 configurable: true, 9607 writable: true, 9608 value: value 9609 } ); 9610 } 9611 } ); 9612 }, 9613 9614 fix: function( originalEvent ) { 9615 return originalEvent[ jQuery.expando ] ? 9616 originalEvent : 9617 new jQuery.Event( originalEvent ); 9618 }, 9619 9620 special: { 9621 load: { 9622 9623 // Prevent triggered image.load events from bubbling to window.load 9624 noBubble: true 9625 }, 9626 click: { 9627 9628 // Utilize native event to ensure correct state for checkable inputs 9629 setup: function( data ) { 9630 9631 // For mutual compressibility with _default, replace `this` access with a local var. 9632 // `|| data` is dead code meant only to preserve the variable through minification. 9633 var el = this || data; 9634 9635 // Claim the first handler 9636 if ( rcheckableType.test( el.type ) && 9637 el.click && nodeName( el, "input" ) ) { 9638 9639 // dataPriv.set( el, "click", ... ) 9640 leverageNative( el, "click", true ); 9641 } 9642 9643 // Return false to allow normal processing in the caller 9644 return false; 9645 }, 9646 trigger: function( data ) { 9647 9648 // For mutual compressibility with _default, replace `this` access with a local var. 9649 // `|| data` is dead code meant only to preserve the variable through minification. 9650 var el = this || data; 9651 9652 // Force setup before triggering a click 9653 if ( rcheckableType.test( el.type ) && 9654 el.click && nodeName( el, "input" ) ) { 9655 9656 leverageNative( el, "click" ); 9657 } 9658 9659 // Return non-false to allow normal event-path propagation 9660 return true; 9661 }, 9662 9663 // For cross-browser consistency, suppress native .click() on links 9664 // Also prevent it if we're currently inside a leveraged native-event stack 9665 _default: function( event ) { 9666 var target = event.target; 9667 return rcheckableType.test( target.type ) && 9668 target.click && nodeName( target, "input" ) && 9669 dataPriv.get( target, "click" ) || 9670 nodeName( target, "a" ); 9671 } 9672 }, 9673 9674 beforeunload: { 9675 postDispatch: function( event ) { 9676 9677 // Support: Firefox 20+ 9678 // Firefox doesn't alert if the returnValue field is not set. 9679 if ( event.result !== undefined && event.originalEvent ) { 9680 event.originalEvent.returnValue = event.result; 9681 } 9682 } 9683 } 9684 } 9685}; 9686 9687// Ensure the presence of an event listener that handles manually-triggered 9688// synthetic events by interrupting progress until reinvoked in response to 9689// *native* events that it fires directly, ensuring that state changes have 9690// already occurred before other listeners are invoked. 9691function leverageNative( el, type, isSetup ) { 9692 9693 // Missing `isSetup` indicates a trigger call, which must force setup through jQuery.event.add 9694 if ( !isSetup ) { 9695 if ( dataPriv.get( el, type ) === undefined ) { 9696 jQuery.event.add( el, type, returnTrue ); 9697 } 9698 return; 9699 } 9700 9701 // Register the controller as a special universal handler for all event namespaces 9702 dataPriv.set( el, type, false ); 9703 jQuery.event.add( el, type, { 9704 namespace: false, 9705 handler: function( event ) { 9706 var result, 9707 saved = dataPriv.get( this, type ); 9708 9709 if ( ( event.isTrigger & 1 ) && this[ type ] ) { 9710 9711 // Interrupt processing of the outer synthetic .trigger()ed event 9712 if ( !saved ) { 9713 9714 // Store arguments for use when handling the inner native event 9715 // There will always be at least one argument (an event object), so this array 9716 // will not be confused with a leftover capture object. 9717 saved = slice.call( arguments ); 9718 dataPriv.set( this, type, saved ); 9719 9720 // Trigger the native event and capture its result 9721 this[ type ](); 9722 result = dataPriv.get( this, type ); 9723 dataPriv.set( this, type, false ); 9724 9725 if ( saved !== result ) { 9726 9727 // Cancel the outer synthetic event 9728 event.stopImmediatePropagation(); 9729 event.preventDefault(); 9730 9731 return result; 9732 } 9733 9734 // If this is an inner synthetic event for an event with a bubbling surrogate 9735 // (focus or blur), assume that the surrogate already propagated from triggering 9736 // the native event and prevent that from happening again here. 9737 // This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the 9738 // bubbling surrogate propagates *after* the non-bubbling base), but that seems 9739 // less bad than duplication. 9740 } else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) { 9741 event.stopPropagation(); 9742 } 9743 9744 // If this is a native event triggered above, everything is now in order 9745 // Fire an inner synthetic event with the original arguments 9746 } else if ( saved ) { 9747 9748 // ...and capture the result 9749 dataPriv.set( this, type, jQuery.event.trigger( 9750 saved[ 0 ], 9751 saved.slice( 1 ), 9752 this 9753 ) ); 9754 9755 // Abort handling of the native event by all jQuery handlers while allowing 9756 // native handlers on the same element to run. On target, this is achieved 9757 // by stopping immediate propagation just on the jQuery event. However, 9758 // the native event is re-wrapped by a jQuery one on each level of the 9759 // propagation so the only way to stop it for jQuery is to stop it for 9760 // everyone via native `stopPropagation()`. This is not a problem for 9761 // focus/blur which don't bubble, but it does also stop click on checkboxes 9762 // and radios. We accept this limitation. 9763 event.stopPropagation(); 9764 event.isImmediatePropagationStopped = returnTrue; 9765 } 9766 } 9767 } ); 9768} 9769 9770jQuery.removeEvent = function( elem, type, handle ) { 9771 9772 // This "if" is needed for plain objects 9773 if ( elem.removeEventListener ) { 9774 elem.removeEventListener( type, handle ); 9775 } 9776}; 9777 9778jQuery.Event = function( src, props ) { 9779 9780 // Allow instantiation without the 'new' keyword 9781 if ( !( this instanceof jQuery.Event ) ) { 9782 return new jQuery.Event( src, props ); 9783 } 9784 9785 // Event object 9786 if ( src && src.type ) { 9787 this.originalEvent = src; 9788 this.type = src.type; 9789 9790 // Events bubbling up the document may have been marked as prevented 9791 // by a handler lower down the tree; reflect the correct value. 9792 this.isDefaultPrevented = src.defaultPrevented || 9793 src.defaultPrevented === undefined && 9794 9795 // Support: Android <=2.3 only 9796 src.returnValue === false ? 9797 returnTrue : 9798 returnFalse; 9799 9800 // Create target properties 9801 // Support: Safari <=6 - 7 only 9802 // Target should not be a text node (trac-504, trac-13143) 9803 this.target = ( src.target && src.target.nodeType === 3 ) ? 9804 src.target.parentNode : 9805 src.target; 9806 9807 this.currentTarget = src.currentTarget; 9808 this.relatedTarget = src.relatedTarget; 9809 9810 // Event type 9811 } else { 9812 this.type = src; 9813 } 9814 9815 // Put explicitly provided properties onto the event object 9816 if ( props ) { 9817 jQuery.extend( this, props ); 9818 } 9819 9820 // Create a timestamp if incoming event doesn't have one 9821 this.timeStamp = src && src.timeStamp || Date.now(); 9822 9823 // Mark it as fixed 9824 this[ jQuery.expando ] = true; 9825}; 9826 9827// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding 9828// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html 9829jQuery.Event.prototype = { 9830 constructor: jQuery.Event, 9831 isDefaultPrevented: returnFalse, 9832 isPropagationStopped: returnFalse, 9833 isImmediatePropagationStopped: returnFalse, 9834 isSimulated: false, 9835 9836 preventDefault: function() { 9837 var e = this.originalEvent; 9838 9839 this.isDefaultPrevented = returnTrue; 9840 9841 if ( e && !this.isSimulated ) { 9842 e.preventDefault(); 9843 } 9844 }, 9845 stopPropagation: function() { 9846 var e = this.originalEvent; 9847 9848 this.isPropagationStopped = returnTrue; 9849 9850 if ( e && !this.isSimulated ) { 9851 e.stopPropagation(); 9852 } 9853 }, 9854 stopImmediatePropagation: function() { 9855 var e = this.originalEvent; 9856 9857 this.isImmediatePropagationStopped = returnTrue; 9858 9859 if ( e && !this.isSimulated ) { 9860 e.stopImmediatePropagation(); 9861 } 9862 9863 this.stopPropagation(); 9864 } 9865}; 9866 9867// Includes all common event props including KeyEvent and MouseEvent specific props 9868jQuery.each( { 9869 altKey: true, 9870 bubbles: true, 9871 cancelable: true, 9872 changedTouches: true, 9873 ctrlKey: true, 9874 detail: true, 9875 eventPhase: true, 9876 metaKey: true, 9877 pageX: true, 9878 pageY: true, 9879 shiftKey: true, 9880 view: true, 9881 "char": true, 9882 code: true, 9883 charCode: true, 9884 key: true, 9885 keyCode: true, 9886 button: true, 9887 buttons: true, 9888 clientX: true, 9889 clientY: true, 9890 offsetX: true, 9891 offsetY: true, 9892 pointerId: true, 9893 pointerType: true, 9894 screenX: true, 9895 screenY: true, 9896 targetTouches: true, 9897 toElement: true, 9898 touches: true, 9899 which: true 9900}, jQuery.event.addProp ); 9901 9902jQuery.each( { focus: "focusin", blur: "focusout" }, function( type, delegateType ) { 9903 9904 function focusMappedHandler( nativeEvent ) { 9905 if ( document.documentMode ) { 9906 9907 // Support: IE 11+ 9908 // Attach a single focusin/focusout handler on the document while someone wants 9909 // focus/blur. This is because the former are synchronous in IE while the latter 9910 // are async. In other browsers, all those handlers are invoked synchronously. 9911 9912 // `handle` from private data would already wrap the event, but we need 9913 // to change the `type` here. 9914 var handle = dataPriv.get( this, "handle" ), 9915 event = jQuery.event.fix( nativeEvent ); 9916 event.type = nativeEvent.type === "focusin" ? "focus" : "blur"; 9917 event.isSimulated = true; 9918 9919 // First, handle focusin/focusout 9920 handle( nativeEvent ); 9921 9922 // ...then, handle focus/blur 9923 // 9924 // focus/blur don't bubble while focusin/focusout do; simulate the former by only 9925 // invoking the handler at the lower level. 9926 if ( event.target === event.currentTarget ) { 9927 9928 // The setup part calls `leverageNative`, which, in turn, calls 9929 // `jQuery.event.add`, so event handle will already have been set 9930 // by this point. 9931 handle( event ); 9932 } 9933 } else { 9934 9935 // For non-IE browsers, attach a single capturing handler on the document 9936 // while someone wants focusin/focusout. 9937 jQuery.event.simulate( delegateType, nativeEvent.target, 9938 jQuery.event.fix( nativeEvent ) ); 9939 } 9940 } 9941 9942 jQuery.event.special[ type ] = { 9943 9944 // Utilize native event if possible so blur/focus sequence is correct 9945 setup: function() { 9946 9947 var attaches; 9948 9949 // Claim the first handler 9950 // dataPriv.set( this, "focus", ... ) 9951 // dataPriv.set( this, "blur", ... ) 9952 leverageNative( this, type, true ); 9953 9954 if ( document.documentMode ) { 9955 9956 // Support: IE 9 - 11+ 9957 // We use the same native handler for focusin & focus (and focusout & blur) 9958 // so we need to coordinate setup & teardown parts between those events. 9959 // Use `delegateType` as the key as `type` is already used by `leverageNative`. 9960 attaches = dataPriv.get( this, delegateType ); 9961 if ( !attaches ) { 9962 this.addEventListener( delegateType, focusMappedHandler ); 9963 } 9964 dataPriv.set( this, delegateType, ( attaches || 0 ) + 1 ); 9965 } else { 9966 9967 // Return false to allow normal processing in the caller 9968 return false; 9969 } 9970 }, 9971 trigger: function() { 9972 9973 // Force setup before trigger 9974 leverageNative( this, type ); 9975 9976 // Return non-false to allow normal event-path propagation 9977 return true; 9978 }, 9979 9980 teardown: function() { 9981 var attaches; 9982 9983 if ( document.documentMode ) { 9984 attaches = dataPriv.get( this, delegateType ) - 1; 9985 if ( !attaches ) { 9986 this.removeEventListener( delegateType, focusMappedHandler ); 9987 dataPriv.remove( this, delegateType ); 9988 } else { 9989 dataPriv.set( this, delegateType, attaches ); 9990 } 9991 } else { 9992 9993 // Return false to indicate standard teardown should be applied 9994 return false; 9995 } 9996 }, 9997 9998 // Suppress native focus or blur if we're currently inside 9999 // a leveraged native-event stack 10000 _default: function( event ) { 10001 return dataPriv.get( event.target, type ); 10002 }, 10003 10004 delegateType: delegateType 10005 }; 10006 10007 // Support: Firefox <=44 10008 // Firefox doesn't have focus(in | out) events 10009 // Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787 10010 // 10011 // Support: Chrome <=48 - 49, Safari <=9.0 - 9.1 10012 // focus(in | out) events fire after focus & blur events, 10013 // which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order 10014 // Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857 10015 // 10016 // Support: IE 9 - 11+ 10017 // To preserve relative focusin/focus & focusout/blur event order guaranteed on the 3.x branch, 10018 // attach a single handler for both events in IE. 10019 jQuery.event.special[ delegateType ] = { 10020 setup: function() { 10021 10022 // Handle: regular nodes (via `this.ownerDocument`), window 10023 // (via `this.document`) & document (via `this`). 10024 var doc = this.ownerDocument || this.document || this, 10025 dataHolder = document.documentMode ? this : doc, 10026 attaches = dataPriv.get( dataHolder, delegateType ); 10027 10028 // Support: IE 9 - 11+ 10029 // We use the same native handler for focusin & focus (and focusout & blur) 10030 // so we need to coordinate setup & teardown parts between those events. 10031 // Use `delegateType` as the key as `type` is already used by `leverageNative`. 10032 if ( !attaches ) { 10033 if ( document.documentMode ) { 10034 this.addEventListener( delegateType, focusMappedHandler ); 10035 } else { 10036 doc.addEventListener( type, focusMappedHandler, true ); 10037 } 10038 } 10039 dataPriv.set( dataHolder, delegateType, ( attaches || 0 ) + 1 ); 10040 }, 10041 teardown: function() { 10042 var doc = this.ownerDocument || this.document || this, 10043 dataHolder = document.documentMode ? this : doc, 10044 attaches = dataPriv.get( dataHolder, delegateType ) - 1; 10045 10046 if ( !attaches ) { 10047 if ( document.documentMode ) { 10048 this.removeEventListener( delegateType, focusMappedHandler ); 10049 } else { 10050 doc.removeEventListener( type, focusMappedHandler, true ); 10051 } 10052 dataPriv.remove( dataHolder, delegateType ); 10053 } else { 10054 dataPriv.set( dataHolder, delegateType, attaches ); 10055 } 10056 } 10057 }; 10058} ); 10059 10060// Create mouseenter/leave events using mouseover/out and event-time checks 10061// so that event delegation works in jQuery. 10062// Do the same for pointerenter/pointerleave and pointerover/pointerout 10063// 10064// Support: Safari 7 only 10065// Safari sends mouseenter too often; see: 10066// https://bugs.chromium.org/p/chromium/issues/detail?id=470258 10067// for the description of the bug (it existed in older Chrome versions as well). 10068jQuery.each( { 10069 mouseenter: "mouseover", 10070 mouseleave: "mouseout", 10071 pointerenter: "pointerover", 10072 pointerleave: "pointerout" 10073}, function( orig, fix ) { 10074 jQuery.event.special[ orig ] = { 10075 delegateType: fix, 10076 bindType: fix, 10077 10078 handle: function( event ) { 10079 var ret, 10080 target = this, 10081 related = event.relatedTarget, 10082 handleObj = event.handleObj; 10083 10084 // For mouseenter/leave call the handler if related is outside the target. 10085 // NB: No relatedTarget if the mouse left/entered the browser window 10086 if ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) { 10087 event.type = handleObj.origType; 10088 ret = handleObj.handler.apply( this, arguments ); 10089 event.type = fix; 10090 } 10091 return ret; 10092 } 10093 }; 10094} ); 10095 10096jQuery.fn.extend( { 10097 10098 on: function( types, selector, data, fn ) { 10099 return on( this, types, selector, data, fn ); 10100 }, 10101 one: function( types, selector, data, fn ) { 10102 return on( this, types, selector, data, fn, 1 ); 10103 }, 10104 off: function( types, selector, fn ) { 10105 var handleObj, type; 10106 if ( types && types.preventDefault && types.handleObj ) { 10107 10108 // ( event ) dispatched jQuery.Event 10109 handleObj = types.handleObj; 10110 jQuery( types.delegateTarget ).off( 10111 handleObj.namespace ? 10112 handleObj.origType + "." + handleObj.namespace : 10113 handleObj.origType, 10114 handleObj.selector, 10115 handleObj.handler 10116 ); 10117 return this; 10118 } 10119 if ( typeof types === "object" ) { 10120 10121 // ( types-object [, selector] ) 10122 for ( type in types ) { 10123 this.off( type, selector, types[ type ] ); 10124 } 10125 return this; 10126 } 10127 if ( selector === false || typeof selector === "function" ) { 10128 10129 // ( types [, fn] ) 10130 fn = selector; 10131 selector = undefined; 10132 } 10133 if ( fn === false ) { 10134 fn = returnFalse; 10135 } 10136 return this.each( function() { 10137 jQuery.event.remove( this, types, fn, selector ); 10138 } ); 10139 } 10140} ); 10141 10142 10143var 10144 10145 // Support: IE <=10 - 11, Edge 12 - 13 only 10146 // In IE/Edge using regex groups here causes severe slowdowns. 10147 // See https://connect.microsoft.com/IE/feedback/details/1736512/ 10148 rnoInnerhtml = /<script|<style|<link/i, 10149 10150 // checked="checked" or checked 10151 rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i, 10152 10153 rcleanScript = /^\s*<!\[CDATA\[|\]\]>\s*$/g; 10154 10155// Prefer a tbody over its parent table for containing new rows 10156function manipulationTarget( elem, content ) { 10157 if ( nodeName( elem, "table" ) && 10158 nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ) { 10159 10160 return jQuery( elem ).children( "tbody" )[ 0 ] || elem; 10161 } 10162 10163 return elem; 10164} 10165 10166// Replace/restore the type attribute of script elements for safe DOM manipulation 10167function disableScript( elem ) { 10168 elem.type = ( elem.getAttribute( "type" ) !== null ) + "/" + elem.type; 10169 return elem; 10170} 10171function restoreScript( elem ) { 10172 if ( ( elem.type || "" ).slice( 0, 5 ) === "true/" ) { 10173 elem.type = elem.type.slice( 5 ); 10174 } else { 10175 elem.removeAttribute( "type" ); 10176 } 10177 10178 return elem; 10179} 10180 10181function cloneCopyEvent( src, dest ) { 10182 var i, l, type, pdataOld, udataOld, udataCur, events; 10183 10184 if ( dest.nodeType !== 1 ) { 10185 return; 10186 } 10187 10188 // 1. Copy private data: events, handlers, etc. 10189 if ( dataPriv.hasData( src ) ) { 10190 pdataOld = dataPriv.get( src ); 10191 events = pdataOld.events; 10192 10193 if ( events ) { 10194 dataPriv.remove( dest, "handle events" ); 10195 10196 for ( type in events ) { 10197 for ( i = 0, l = events[ type ].length; i < l; i++ ) { 10198 jQuery.event.add( dest, type, events[ type ][ i ] ); 10199 } 10200 } 10201 } 10202 } 10203 10204 // 2. Copy user data 10205 if ( dataUser.hasData( src ) ) { 10206 udataOld = dataUser.access( src ); 10207 udataCur = jQuery.extend( {}, udataOld ); 10208 10209 dataUser.set( dest, udataCur ); 10210 } 10211} 10212 10213// Fix IE bugs, see support tests 10214function fixInput( src, dest ) { 10215 var nodeName = dest.nodeName.toLowerCase(); 10216 10217 // Fails to persist the checked state of a cloned checkbox or radio button. 10218 if ( nodeName === "input" && rcheckableType.test( src.type ) ) { 10219 dest.checked = src.checked; 10220 10221 // Fails to return the selected option to the default selected state when cloning options 10222 } else if ( nodeName === "input" || nodeName === "textarea" ) { 10223 dest.defaultValue = src.defaultValue; 10224 } 10225} 10226 10227function domManip( collection, args, callback, ignored ) { 10228 10229 // Flatten any nested arrays 10230 args = flat( args ); 10231 10232 var fragment, first, scripts, hasScripts, node, doc, 10233 i = 0, 10234 l = collection.length, 10235 iNoClone = l - 1, 10236 value = args[ 0 ], 10237 valueIsFunction = isFunction( value ); 10238 10239 // We can't cloneNode fragments that contain checked, in WebKit 10240 if ( valueIsFunction || 10241 ( l > 1 && typeof value === "string" && 10242 !support.checkClone && rchecked.test( value ) ) ) { 10243 return collection.each( function( index ) { 10244 var self = collection.eq( index ); 10245 if ( valueIsFunction ) { 10246 args[ 0 ] = value.call( this, index, self.html() ); 10247 } 10248 domManip( self, args, callback, ignored ); 10249 } ); 10250 } 10251 10252 if ( l ) { 10253 fragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored ); 10254 first = fragment.firstChild; 10255 10256 if ( fragment.childNodes.length === 1 ) { 10257 fragment = first; 10258 } 10259 10260 // Require either new content or an interest in ignored elements to invoke the callback 10261 if ( first || ignored ) { 10262 scripts = jQuery.map( getAll( fragment, "script" ), disableScript ); 10263 hasScripts = scripts.length; 10264 10265 // Use the original fragment for the last item 10266 // instead of the first because it can end up 10267 // being emptied incorrectly in certain situations (trac-8070). 10268 for ( ; i < l; i++ ) { 10269 node = fragment; 10270 10271 if ( i !== iNoClone ) { 10272 node = jQuery.clone( node, true, true ); 10273 10274 // Keep references to cloned scripts for later restoration 10275 if ( hasScripts ) { 10276 10277 // Support: Android <=4.0 only, PhantomJS 1 only 10278 // push.apply(_, arraylike) throws on ancient WebKit 10279 jQuery.merge( scripts, getAll( node, "script" ) ); 10280 } 10281 } 10282 10283 callback.call( collection[ i ], node, i ); 10284 } 10285 10286 if ( hasScripts ) { 10287 doc = scripts[ scripts.length - 1 ].ownerDocument; 10288 10289 // Re-enable scripts 10290 jQuery.map( scripts, restoreScript ); 10291 10292 // Evaluate executable scripts on first document insertion 10293 for ( i = 0; i < hasScripts; i++ ) { 10294 node = scripts[ i ]; 10295 if ( rscriptType.test( node.type || "" ) && 10296 !dataPriv.access( node, "globalEval" ) && 10297 jQuery.contains( doc, node ) ) { 10298 10299 if ( node.src && ( node.type || "" ).toLowerCase() !== "module" ) { 10300 10301 // Optional AJAX dependency, but won't run scripts if not present 10302 if ( jQuery._evalUrl && !node.noModule ) { 10303 jQuery._evalUrl( node.src, { 10304 nonce: node.nonce || node.getAttribute( "nonce" ) 10305 }, doc ); 10306 } 10307 } else { 10308 10309 // Unwrap a CDATA section containing script contents. This shouldn't be 10310 // needed as in XML documents they're already not visible when 10311 // inspecting element contents and in HTML documents they have no 10312 // meaning but we're preserving that logic for backwards compatibility. 10313 // This will be removed completely in 4.0. See gh-4904. 10314 DOMEval( node.textContent.replace( rcleanScript, "" ), node, doc ); 10315 } 10316 } 10317 } 10318 } 10319 } 10320 } 10321 10322 return collection; 10323} 10324 10325function remove( elem, selector, keepData ) { 10326 var node, 10327 nodes = selector ? jQuery.filter( selector, elem ) : elem, 10328 i = 0; 10329 10330 for ( ; ( node = nodes[ i ] ) != null; i++ ) { 10331 if ( !keepData && node.nodeType === 1 ) { 10332 jQuery.cleanData( getAll( node ) ); 10333 } 10334 10335 if ( node.parentNode ) { 10336 if ( keepData && isAttached( node ) ) { 10337 setGlobalEval( getAll( node, "script" ) ); 10338 } 10339 node.parentNode.removeChild( node ); 10340 } 10341 } 10342 10343 return elem; 10344} 10345 10346jQuery.extend( { 10347 htmlPrefilter: function( html ) { 10348 return html; 10349 }, 10350 10351 clone: function( elem, dataAndEvents, deepDataAndEvents ) { 10352 var i, l, srcElements, destElements, 10353 clone = elem.cloneNode( true ), 10354 inPage = isAttached( elem ); 10355 10356 // Fix IE cloning issues 10357 if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) && 10358 !jQuery.isXMLDoc( elem ) ) { 10359 10360 // We eschew jQuery#find here for performance reasons: 10361 // https://jsperf.com/getall-vs-sizzle/2 10362 destElements = getAll( clone ); 10363 srcElements = getAll( elem ); 10364 10365 for ( i = 0, l = srcElements.length; i < l; i++ ) { 10366 fixInput( srcElements[ i ], destElements[ i ] ); 10367 } 10368 } 10369 10370 // Copy the events from the original to the clone 10371 if ( dataAndEvents ) { 10372 if ( deepDataAndEvents ) { 10373 srcElements = srcElements || getAll( elem ); 10374 destElements = destElements || getAll( clone ); 10375 10376 for ( i = 0, l = srcElements.length; i < l; i++ ) { 10377 cloneCopyEvent( srcElements[ i ], destElements[ i ] ); 10378 } 10379 } else { 10380 cloneCopyEvent( elem, clone ); 10381 } 10382 } 10383 10384 // Preserve script evaluation history 10385 destElements = getAll( clone, "script" ); 10386 if ( destElements.length > 0 ) { 10387 setGlobalEval( destElements, !inPage && getAll( elem, "script" ) ); 10388 } 10389 10390 // Return the cloned set 10391 return clone; 10392 }, 10393 10394 cleanData: function( elems ) { 10395 var data, elem, type, 10396 special = jQuery.event.special, 10397 i = 0; 10398 10399 for ( ; ( elem = elems[ i ] ) !== undefined; i++ ) { 10400 if ( acceptData( elem ) ) { 10401 if ( ( data = elem[ dataPriv.expando ] ) ) { 10402 if ( data.events ) { 10403 for ( type in data.events ) { 10404 if ( special[ type ] ) { 10405 jQuery.event.remove( elem, type ); 10406 10407 // This is a shortcut to avoid jQuery.event.remove's overhead 10408 } else { 10409 jQuery.removeEvent( elem, type, data.handle ); 10410 } 10411 } 10412 } 10413 10414 // Support: Chrome <=35 - 45+ 10415 // Assign undefined instead of using delete, see Data#remove 10416 elem[ dataPriv.expando ] = undefined; 10417 } 10418 if ( elem[ dataUser.expando ] ) { 10419 10420 // Support: Chrome <=35 - 45+ 10421 // Assign undefined instead of using delete, see Data#remove 10422 elem[ dataUser.expando ] = undefined; 10423 } 10424 } 10425 } 10426 } 10427} ); 10428 10429jQuery.fn.extend( { 10430 detach: function( selector ) { 10431 return remove( this, selector, true ); 10432 }, 10433 10434 remove: function( selector ) { 10435 return remove( this, selector ); 10436 }, 10437 10438 text: function( value ) { 10439 return access( this, function( value ) { 10440 return value === undefined ? 10441 jQuery.text( this ) : 10442 this.empty().each( function() { 10443 if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { 10444 this.textContent = value; 10445 } 10446 } ); 10447 }, null, value, arguments.length ); 10448 }, 10449 10450 append: function() { 10451 return domManip( this, arguments, function( elem ) { 10452 if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { 10453 var target = manipulationTarget( this, elem ); 10454 target.appendChild( elem ); 10455 } 10456 } ); 10457 }, 10458 10459 prepend: function() { 10460 return domManip( this, arguments, function( elem ) { 10461 if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { 10462 var target = manipulationTarget( this, elem ); 10463 target.insertBefore( elem, target.firstChild ); 10464 } 10465 } ); 10466 }, 10467 10468 before: function() { 10469 return domManip( this, arguments, function( elem ) { 10470 if ( this.parentNode ) { 10471 this.parentNode.insertBefore( elem, this ); 10472 } 10473 } ); 10474 }, 10475 10476 after: function() { 10477 return domManip( this, arguments, function( elem ) { 10478 if ( this.parentNode ) { 10479 this.parentNode.insertBefore( elem, this.nextSibling ); 10480 } 10481 } ); 10482 }, 10483 10484 empty: function() { 10485 var elem, 10486 i = 0; 10487 10488 for ( ; ( elem = this[ i ] ) != null; i++ ) { 10489 if ( elem.nodeType === 1 ) { 10490 10491 // Prevent memory leaks 10492 jQuery.cleanData( getAll( elem, false ) ); 10493 10494 // Remove any remaining nodes 10495 elem.textContent = ""; 10496 } 10497 } 10498 10499 return this; 10500 }, 10501 10502 clone: function( dataAndEvents, deepDataAndEvents ) { 10503 dataAndEvents = dataAndEvents == null ? false : dataAndEvents; 10504 deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents; 10505 10506 return this.map( function() { 10507 return jQuery.clone( this, dataAndEvents, deepDataAndEvents ); 10508 } ); 10509 }, 10510 10511 html: function( value ) { 10512 return access( this, function( value ) { 10513 var elem = this[ 0 ] || {}, 10514 i = 0, 10515 l = this.length; 10516 10517 if ( value === undefined && elem.nodeType === 1 ) { 10518 return elem.innerHTML; 10519 } 10520 10521 // See if we can take a shortcut and just use innerHTML 10522 if ( typeof value === "string" && !rnoInnerhtml.test( value ) && 10523 !wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) { 10524 10525 value = jQuery.htmlPrefilter( value ); 10526 10527 try { 10528 for ( ; i < l; i++ ) { 10529 elem = this[ i ] || {}; 10530 10531 // Remove element nodes and prevent memory leaks 10532 if ( elem.nodeType === 1 ) { 10533 jQuery.cleanData( getAll( elem, false ) ); 10534 elem.innerHTML = value; 10535 } 10536 } 10537 10538 elem = 0; 10539 10540 // If using innerHTML throws an exception, use the fallback method 10541 } catch ( e ) {} 10542 } 10543 10544 if ( elem ) { 10545 this.empty().append( value ); 10546 } 10547 }, null, value, arguments.length ); 10548 }, 10549 10550 replaceWith: function() { 10551 var ignored = []; 10552 10553 // Make the changes, replacing each non-ignored context element with the new content 10554 return domManip( this, arguments, function( elem ) { 10555 var parent = this.parentNode; 10556 10557 if ( jQuery.inArray( this, ignored ) < 0 ) { 10558 jQuery.cleanData( getAll( this ) ); 10559 if ( parent ) { 10560 parent.replaceChild( elem, this ); 10561 } 10562 } 10563 10564 // Force callback invocation 10565 }, ignored ); 10566 } 10567} ); 10568 10569jQuery.each( { 10570 appendTo: "append", 10571 prependTo: "prepend", 10572 insertBefore: "before", 10573 insertAfter: "after", 10574 replaceAll: "replaceWith" 10575}, function( name, original ) { 10576 jQuery.fn[ name ] = function( selector ) { 10577 var elems, 10578 ret = [], 10579 insert = jQuery( selector ), 10580 last = insert.length - 1, 10581 i = 0; 10582 10583 for ( ; i <= last; i++ ) { 10584 elems = i === last ? this : this.clone( true ); 10585 jQuery( insert[ i ] )[ original ]( elems ); 10586 10587 // Support: Android <=4.0 only, PhantomJS 1 only 10588 // .get() because push.apply(_, arraylike) throws on ancient WebKit 10589 push.apply( ret, elems.get() ); 10590 } 10591 10592 return this.pushStack( ret ); 10593 }; 10594} ); 10595var rnumnonpx = new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" ); 10596 10597var rcustomProp = /^--/; 10598 10599 10600var getStyles = function( elem ) { 10601 10602 // Support: IE <=11 only, Firefox <=30 (trac-15098, trac-14150) 10603 // IE throws on elements created in popups 10604 // FF meanwhile throws on frame elements through "defaultView.getComputedStyle" 10605 var view = elem.ownerDocument.defaultView; 10606 10607 if ( !view || !view.opener ) { 10608 view = window; 10609 } 10610 10611 return view.getComputedStyle( elem ); 10612 }; 10613 10614var swap = function( elem, options, callback ) { 10615 var ret, name, 10616 old = {}; 10617 10618 // Remember the old values, and insert the new ones 10619 for ( name in options ) { 10620 old[ name ] = elem.style[ name ]; 10621 elem.style[ name ] = options[ name ]; 10622 } 10623 10624 ret = callback.call( elem ); 10625 10626 // Revert the old values 10627 for ( name in options ) { 10628 elem.style[ name ] = old[ name ]; 10629 } 10630 10631 return ret; 10632}; 10633 10634 10635var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" ); 10636 10637 10638 10639( function() { 10640 10641 // Executing both pixelPosition & boxSizingReliable tests require only one layout 10642 // so they're executed at the same time to save the second computation. 10643 function computeStyleTests() { 10644 10645 // This is a singleton, we need to execute it only once 10646 if ( !div ) { 10647 return; 10648 } 10649 10650 container.style.cssText = "position:absolute;left:-11111px;width:60px;" + 10651 "margin-top:1px;padding:0;border:0"; 10652 div.style.cssText = 10653 "position:relative;display:block;box-sizing:border-box;overflow:scroll;" + 10654 "margin:auto;border:1px;padding:1px;" + 10655 "width:60%;top:1%"; 10656 documentElement.appendChild( container ).appendChild( div ); 10657 10658 var divStyle = window.getComputedStyle( div ); 10659 pixelPositionVal = divStyle.top !== "1%"; 10660 10661 // Support: Android 4.0 - 4.3 only, Firefox <=3 - 44 10662 reliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12; 10663 10664 // Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3 10665 // Some styles come back with percentage values, even though they shouldn't 10666 div.style.right = "60%"; 10667 pixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36; 10668 10669 // Support: IE 9 - 11 only 10670 // Detect misreporting of content dimensions for box-sizing:border-box elements 10671 boxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36; 10672 10673 // Support: IE 9 only 10674 // Detect overflow:scroll screwiness (gh-3699) 10675 // Support: Chrome <=64 10676 // Don't get tricked when zoom affects offsetWidth (gh-4029) 10677 div.style.position = "absolute"; 10678 scrollboxSizeVal = roundPixelMeasures( div.offsetWidth / 3 ) === 12; 10679 10680 documentElement.removeChild( container ); 10681 10682 // Nullify the div so it wouldn't be stored in the memory and 10683 // it will also be a sign that checks already performed 10684 div = null; 10685 } 10686 10687 function roundPixelMeasures( measure ) { 10688 return Math.round( parseFloat( measure ) ); 10689 } 10690 10691 var pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal, 10692 reliableTrDimensionsVal, reliableMarginLeftVal, 10693 container = document.createElement( "div" ), 10694 div = document.createElement( "div" ); 10695 10696 // Finish early in limited (non-browser) environments 10697 if ( !div.style ) { 10698 return; 10699 } 10700 10701 // Support: IE <=9 - 11 only 10702 // Style of cloned element affects source element cloned (trac-8908) 10703 div.style.backgroundClip = "content-box"; 10704 div.cloneNode( true ).style.backgroundClip = ""; 10705 support.clearCloneStyle = div.style.backgroundClip === "content-box"; 10706 10707 jQuery.extend( support, { 10708 boxSizingReliable: function() { 10709 computeStyleTests(); 10710 return boxSizingReliableVal; 10711 }, 10712 pixelBoxStyles: function() { 10713 computeStyleTests(); 10714 return pixelBoxStylesVal; 10715 }, 10716 pixelPosition: function() { 10717 computeStyleTests(); 10718 return pixelPositionVal; 10719 }, 10720 reliableMarginLeft: function() { 10721 computeStyleTests(); 10722 return reliableMarginLeftVal; 10723 }, 10724 scrollboxSize: function() { 10725 computeStyleTests(); 10726 return scrollboxSizeVal; 10727 }, 10728 10729 // Support: IE 9 - 11+, Edge 15 - 18+ 10730 // IE/Edge misreport `getComputedStyle` of table rows with width/height 10731 // set in CSS while `offset*` properties report correct values. 10732 // Behavior in IE 9 is more subtle than in newer versions & it passes 10733 // some versions of this test; make sure not to make it pass there! 10734 // 10735 // Support: Firefox 70+ 10736 // Only Firefox includes border widths 10737 // in computed dimensions. (gh-4529) 10738 reliableTrDimensions: function() { 10739 var table, tr, trChild, trStyle; 10740 if ( reliableTrDimensionsVal == null ) { 10741 table = document.createElement( "table" ); 10742 tr = document.createElement( "tr" ); 10743 trChild = document.createElement( "div" ); 10744 10745 table.style.cssText = "position:absolute;left:-11111px;border-collapse:separate"; 10746 tr.style.cssText = "box-sizing:content-box;border:1px solid"; 10747 10748 // Support: Chrome 86+ 10749 // Height set through cssText does not get applied. 10750 // Computed height then comes back as 0. 10751 tr.style.height = "1px"; 10752 trChild.style.height = "9px"; 10753 10754 // Support: Android 8 Chrome 86+ 10755 // In our bodyBackground.html iframe, 10756 // display for all div elements is set to "inline", 10757 // which causes a problem only in Android 8 Chrome 86. 10758 // Ensuring the div is `display: block` 10759 // gets around this issue. 10760 trChild.style.display = "block"; 10761 10762 documentElement 10763 .appendChild( table ) 10764 .appendChild( tr ) 10765 .appendChild( trChild ); 10766 10767 trStyle = window.getComputedStyle( tr ); 10768 reliableTrDimensionsVal = ( parseInt( trStyle.height, 10 ) + 10769 parseInt( trStyle.borderTopWidth, 10 ) + 10770 parseInt( trStyle.borderBottomWidth, 10 ) ) === tr.offsetHeight; 10771 10772 documentElement.removeChild( table ); 10773 } 10774 return reliableTrDimensionsVal; 10775 } 10776 } ); 10777} )(); 10778 10779 10780function curCSS( elem, name, computed ) { 10781 var width, minWidth, maxWidth, ret, 10782 isCustomProp = rcustomProp.test( name ), 10783 10784 // Support: Firefox 51+ 10785 // Retrieving style before computed somehow 10786 // fixes an issue with getting wrong values 10787 // on detached elements 10788 style = elem.style; 10789 10790 computed = computed || getStyles( elem ); 10791 10792 // getPropertyValue is needed for: 10793 // .css('filter') (IE 9 only, trac-12537) 10794 // .css('--customProperty) (gh-3144) 10795 if ( computed ) { 10796 10797 // Support: IE <=9 - 11+ 10798 // IE only supports `"float"` in `getPropertyValue`; in computed styles 10799 // it's only available as `"cssFloat"`. We no longer modify properties 10800 // sent to `.css()` apart from camelCasing, so we need to check both. 10801 // Normally, this would create difference in behavior: if 10802 // `getPropertyValue` returns an empty string, the value returned 10803 // by `.css()` would be `undefined`. This is usually the case for 10804 // disconnected elements. However, in IE even disconnected elements 10805 // with no styles return `"none"` for `getPropertyValue( "float" )` 10806 ret = computed.getPropertyValue( name ) || computed[ name ]; 10807 10808 if ( isCustomProp && ret ) { 10809 10810 // Support: Firefox 105+, Chrome <=105+ 10811 // Spec requires trimming whitespace for custom properties (gh-4926). 10812 // Firefox only trims leading whitespace. Chrome just collapses 10813 // both leading & trailing whitespace to a single space. 10814 // 10815 // Fall back to `undefined` if empty string returned. 10816 // This collapses a missing definition with property defined 10817 // and set to an empty string but there's no standard API 10818 // allowing us to differentiate them without a performance penalty 10819 // and returning `undefined` aligns with older jQuery. 10820 // 10821 // rtrimCSS treats U+000D CARRIAGE RETURN and U+000C FORM FEED 10822 // as whitespace while CSS does not, but this is not a problem 10823 // because CSS preprocessing replaces them with U+000A LINE FEED 10824 // (which *is* CSS whitespace) 10825 // https://www.w3.org/TR/css-syntax-3/#input-preprocessing 10826 ret = ret.replace( rtrimCSS, "$1" ) || undefined; 10827 } 10828 10829 if ( ret === "" && !isAttached( elem ) ) { 10830 ret = jQuery.style( elem, name ); 10831 } 10832 10833 // A tribute to the "awesome hack by Dean Edwards" 10834 // Android Browser returns percentage for some values, 10835 // but width seems to be reliably pixels. 10836 // This is against the CSSOM draft spec: 10837 // https://drafts.csswg.org/cssom/#resolved-values 10838 if ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) { 10839 10840 // Remember the original values 10841 width = style.width; 10842 minWidth = style.minWidth; 10843 maxWidth = style.maxWidth; 10844 10845 // Put in the new values to get a computed value out 10846 style.minWidth = style.maxWidth = style.width = ret; 10847 ret = computed.width; 10848 10849 // Revert the changed values 10850 style.width = width; 10851 style.minWidth = minWidth; 10852 style.maxWidth = maxWidth; 10853 } 10854 } 10855 10856 return ret !== undefined ? 10857 10858 // Support: IE <=9 - 11 only 10859 // IE returns zIndex value as an integer. 10860 ret + "" : 10861 ret; 10862} 10863 10864 10865function addGetHookIf( conditionFn, hookFn ) { 10866 10867 // Define the hook, we'll check on the first run if it's really needed. 10868 return { 10869 get: function() { 10870 if ( conditionFn() ) { 10871 10872 // Hook not needed (or it's not possible to use it due 10873 // to missing dependency), remove it. 10874 delete this.get; 10875 return; 10876 } 10877 10878 // Hook needed; redefine it so that the support test is not executed again. 10879 return ( this.get = hookFn ).apply( this, arguments ); 10880 } 10881 }; 10882} 10883 10884 10885var cssPrefixes = [ "Webkit", "Moz", "ms" ], 10886 emptyStyle = document.createElement( "div" ).style, 10887 vendorProps = {}; 10888 10889// Return a vendor-prefixed property or undefined 10890function vendorPropName( name ) { 10891 10892 // Check for vendor prefixed names 10893 var capName = name[ 0 ].toUpperCase() + name.slice( 1 ), 10894 i = cssPrefixes.length; 10895 10896 while ( i-- ) { 10897 name = cssPrefixes[ i ] + capName; 10898 if ( name in emptyStyle ) { 10899 return name; 10900 } 10901 } 10902} 10903 10904// Return a potentially-mapped jQuery.cssProps or vendor prefixed property 10905function finalPropName( name ) { 10906 var final = jQuery.cssProps[ name ] || vendorProps[ name ]; 10907 10908 if ( final ) { 10909 return final; 10910 } 10911 if ( name in emptyStyle ) { 10912 return name; 10913 } 10914 return vendorProps[ name ] = vendorPropName( name ) || name; 10915} 10916 10917 10918var 10919 10920 // Swappable if display is none or starts with table 10921 // except "table", "table-cell", or "table-caption" 10922 // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display 10923 rdisplayswap = /^(none|table(?!-c[ea]).+)/, 10924 cssShow = { position: "absolute", visibility: "hidden", display: "block" }, 10925 cssNormalTransform = { 10926 letterSpacing: "0", 10927 fontWeight: "400" 10928 }; 10929 10930function setPositiveNumber( _elem, value, subtract ) { 10931 10932 // Any relative (+/-) values have already been 10933 // normalized at this point 10934 var matches = rcssNum.exec( value ); 10935 return matches ? 10936 10937 // Guard against undefined "subtract", e.g., when used as in cssHooks 10938 Math.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || "px" ) : 10939 value; 10940} 10941 10942function boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) { 10943 var i = dimension === "width" ? 1 : 0, 10944 extra = 0, 10945 delta = 0, 10946 marginDelta = 0; 10947 10948 // Adjustment may not be necessary 10949 if ( box === ( isBorderBox ? "border" : "content" ) ) { 10950 return 0; 10951 } 10952 10953 for ( ; i < 4; i += 2 ) { 10954 10955 // Both box models exclude margin 10956 // Count margin delta separately to only add it after scroll gutter adjustment. 10957 // This is needed to make negative margins work with `outerHeight( true )` (gh-3982). 10958 if ( box === "margin" ) { 10959 marginDelta += jQuery.css( elem, box + cssExpand[ i ], true, styles ); 10960 } 10961 10962 // If we get here with a content-box, we're seeking "padding" or "border" or "margin" 10963 if ( !isBorderBox ) { 10964 10965 // Add padding 10966 delta += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); 10967 10968 // For "border" or "margin", add border 10969 if ( box !== "padding" ) { 10970 delta += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); 10971 10972 // But still keep track of it otherwise 10973 } else { 10974 extra += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); 10975 } 10976 10977 // If we get here with a border-box (content + padding + border), we're seeking "content" or 10978 // "padding" or "margin" 10979 } else { 10980 10981 // For "content", subtract padding 10982 if ( box === "content" ) { 10983 delta -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); 10984 } 10985 10986 // For "content" or "padding", subtract border 10987 if ( box !== "margin" ) { 10988 delta -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); 10989 } 10990 } 10991 } 10992 10993 // Account for positive content-box scroll gutter when requested by providing computedVal 10994 if ( !isBorderBox && computedVal >= 0 ) { 10995 10996 // offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border 10997 // Assuming integer scroll gutter, subtract the rest and round down 10998 delta += Math.max( 0, Math.ceil( 10999 elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] - 11000 computedVal - 11001 delta - 11002 extra - 11003 0.5 11004 11005 // If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter 11006 // Use an explicit zero to avoid NaN (gh-3964) 11007 ) ) || 0; 11008 } 11009 11010 return delta + marginDelta; 11011} 11012 11013function getWidthOrHeight( elem, dimension, extra ) { 11014 11015 // Start with computed style 11016 var styles = getStyles( elem ), 11017 11018 // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322). 11019 // Fake content-box until we know it's needed to know the true value. 11020 boxSizingNeeded = !support.boxSizingReliable() || extra, 11021 isBorderBox = boxSizingNeeded && 11022 jQuery.css( elem, "boxSizing", false, styles ) === "border-box", 11023 valueIsBorderBox = isBorderBox, 11024 11025 val = curCSS( elem, dimension, styles ), 11026 offsetProp = "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ); 11027 11028 // Support: Firefox <=54 11029 // Return a confounding non-pixel value or feign ignorance, as appropriate. 11030 if ( rnumnonpx.test( val ) ) { 11031 if ( !extra ) { 11032 return val; 11033 } 11034 val = "auto"; 11035 } 11036 11037 11038 // Support: IE 9 - 11 only 11039 // Use offsetWidth/offsetHeight for when box sizing is unreliable. 11040 // In those cases, the computed value can be trusted to be border-box. 11041 if ( ( !support.boxSizingReliable() && isBorderBox || 11042 11043 // Support: IE 10 - 11+, Edge 15 - 18+ 11044 // IE/Edge misreport `getComputedStyle` of table rows with width/height 11045 // set in CSS while `offset*` properties report correct values. 11046 // Interestingly, in some cases IE 9 doesn't suffer from this issue. 11047 !support.reliableTrDimensions() && nodeName( elem, "tr" ) || 11048 11049 // Fall back to offsetWidth/offsetHeight when value is "auto" 11050 // This happens for inline elements with no explicit setting (gh-3571) 11051 val === "auto" || 11052 11053 // Support: Android <=4.1 - 4.3 only 11054 // Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602) 11055 !parseFloat( val ) && jQuery.css( elem, "display", false, styles ) === "inline" ) && 11056 11057 // Make sure the element is visible & connected 11058 elem.getClientRects().length ) { 11059 11060 isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box"; 11061 11062 // Where available, offsetWidth/offsetHeight approximate border box dimensions. 11063 // Where not available (e.g., SVG), assume unreliable box-sizing and interpret the 11064 // retrieved value as a content box dimension. 11065 valueIsBorderBox = offsetProp in elem; 11066 if ( valueIsBorderBox ) { 11067 val = elem[ offsetProp ]; 11068 } 11069 } 11070 11071 // Normalize "" and auto 11072 val = parseFloat( val ) || 0; 11073 11074 // Adjust for the element's box model 11075 return ( val + 11076 boxModelAdjustment( 11077 elem, 11078 dimension, 11079 extra || ( isBorderBox ? "border" : "content" ), 11080 valueIsBorderBox, 11081 styles, 11082 11083 // Provide the current computed size to request scroll gutter calculation (gh-3589) 11084 val 11085 ) 11086 ) + "px"; 11087} 11088 11089jQuery.extend( { 11090 11091 // Add in style property hooks for overriding the default 11092 // behavior of getting and setting a style property 11093 cssHooks: { 11094 opacity: { 11095 get: function( elem, computed ) { 11096 if ( computed ) { 11097 11098 // We should always get a number back from opacity 11099 var ret = curCSS( elem, "opacity" ); 11100 return ret === "" ? "1" : ret; 11101 } 11102 } 11103 } 11104 }, 11105 11106 // Don't automatically add "px" to these possibly-unitless properties 11107 cssNumber: { 11108 animationIterationCount: true, 11109 aspectRatio: true, 11110 borderImageSlice: true, 11111 columnCount: true, 11112 flexGrow: true, 11113 flexShrink: true, 11114 fontWeight: true, 11115 gridArea: true, 11116 gridColumn: true, 11117 gridColumnEnd: true, 11118 gridColumnStart: true, 11119 gridRow: true, 11120 gridRowEnd: true, 11121 gridRowStart: true, 11122 lineHeight: true, 11123 opacity: true, 11124 order: true, 11125 orphans: true, 11126 scale: true, 11127 widows: true, 11128 zIndex: true, 11129 zoom: true, 11130 11131 // SVG-related 11132 fillOpacity: true, 11133 floodOpacity: true, 11134 stopOpacity: true, 11135 strokeMiterlimit: true, 11136 strokeOpacity: true 11137 }, 11138 11139 // Add in properties whose names you wish to fix before 11140 // setting or getting the value 11141 cssProps: {}, 11142 11143 // Get and set the style property on a DOM Node 11144 style: function( elem, name, value, extra ) { 11145 11146 // Don't set styles on text and comment nodes 11147 if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) { 11148 return; 11149 } 11150 11151 // Make sure that we're working with the right name 11152 var ret, type, hooks, 11153 origName = camelCase( name ), 11154 isCustomProp = rcustomProp.test( name ), 11155 style = elem.style; 11156 11157 // Make sure that we're working with the right name. We don't 11158 // want to query the value if it is a CSS custom property 11159 // since they are user-defined. 11160 if ( !isCustomProp ) { 11161 name = finalPropName( origName ); 11162 } 11163 11164 // Gets hook for the prefixed version, then unprefixed version 11165 hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; 11166 11167 // Check if we're setting a value 11168 if ( value !== undefined ) { 11169 type = typeof value; 11170 11171 // Convert "+=" or "-=" to relative numbers (trac-7345) 11172 if ( type === "string" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) { 11173 value = adjustCSS( elem, name, ret ); 11174 11175 // Fixes bug trac-9237 11176 type = "number"; 11177 } 11178 11179 // Make sure that null and NaN values aren't set (trac-7116) 11180 if ( value == null || value !== value ) { 11181 return; 11182 } 11183 11184 // If a number was passed in, add the unit (except for certain CSS properties) 11185 // The isCustomProp check can be removed in jQuery 4.0 when we only auto-append 11186 // "px" to a few hardcoded values. 11187 if ( type === "number" && !isCustomProp ) { 11188 value += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? "" : "px" ); 11189 } 11190 11191 // background-* props affect original clone's values 11192 if ( !support.clearCloneStyle && value === "" && name.indexOf( "background" ) === 0 ) { 11193 style[ name ] = "inherit"; 11194 } 11195 11196 // If a hook was provided, use that value, otherwise just set the specified value 11197 if ( !hooks || !( "set" in hooks ) || 11198 ( value = hooks.set( elem, value, extra ) ) !== undefined ) { 11199 11200 if ( isCustomProp ) { 11201 style.setProperty( name, value ); 11202 } else { 11203 style[ name ] = value; 11204 } 11205 } 11206 11207 } else { 11208 11209 // If a hook was provided get the non-computed value from there 11210 if ( hooks && "get" in hooks && 11211 ( ret = hooks.get( elem, false, extra ) ) !== undefined ) { 11212 11213 return ret; 11214 } 11215 11216 // Otherwise just get the value from the style object 11217 return style[ name ]; 11218 } 11219 }, 11220 11221 css: function( elem, name, extra, styles ) { 11222 var val, num, hooks, 11223 origName = camelCase( name ), 11224 isCustomProp = rcustomProp.test( name ); 11225 11226 // Make sure that we're working with the right name. We don't 11227 // want to modify the value if it is a CSS custom property 11228 // since they are user-defined. 11229 if ( !isCustomProp ) { 11230 name = finalPropName( origName ); 11231 } 11232 11233 // Try prefixed name followed by the unprefixed name 11234 hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; 11235 11236 // If a hook was provided get the computed value from there 11237 if ( hooks && "get" in hooks ) { 11238 val = hooks.get( elem, true, extra ); 11239 } 11240 11241 // Otherwise, if a way to get the computed value exists, use that 11242 if ( val === undefined ) { 11243 val = curCSS( elem, name, styles ); 11244 } 11245 11246 // Convert "normal" to computed value 11247 if ( val === "normal" && name in cssNormalTransform ) { 11248 val = cssNormalTransform[ name ]; 11249 } 11250 11251 // Make numeric if forced or a qualifier was provided and val looks numeric 11252 if ( extra === "" || extra ) { 11253 num = parseFloat( val ); 11254 return extra === true || isFinite( num ) ? num || 0 : val; 11255 } 11256 11257 return val; 11258 } 11259} ); 11260 11261jQuery.each( [ "height", "width" ], function( _i, dimension ) { 11262 jQuery.cssHooks[ dimension ] = { 11263 get: function( elem, computed, extra ) { 11264 if ( computed ) { 11265 11266 // Certain elements can have dimension info if we invisibly show them 11267 // but it must have a current display style that would benefit 11268 return rdisplayswap.test( jQuery.css( elem, "display" ) ) && 11269 11270 // Support: Safari 8+ 11271 // Table columns in Safari have non-zero offsetWidth & zero 11272 // getBoundingClientRect().width unless display is changed. 11273 // Support: IE <=11 only 11274 // Running getBoundingClientRect on a disconnected node 11275 // in IE throws an error. 11276 ( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ? 11277 swap( elem, cssShow, function() { 11278 return getWidthOrHeight( elem, dimension, extra ); 11279 } ) : 11280 getWidthOrHeight( elem, dimension, extra ); 11281 } 11282 }, 11283 11284 set: function( elem, value, extra ) { 11285 var matches, 11286 styles = getStyles( elem ), 11287 11288 // Only read styles.position if the test has a chance to fail 11289 // to avoid forcing a reflow. 11290 scrollboxSizeBuggy = !support.scrollboxSize() && 11291 styles.position === "absolute", 11292 11293 // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991) 11294 boxSizingNeeded = scrollboxSizeBuggy || extra, 11295 isBorderBox = boxSizingNeeded && 11296 jQuery.css( elem, "boxSizing", false, styles ) === "border-box", 11297 subtract = extra ? 11298 boxModelAdjustment( 11299 elem, 11300 dimension, 11301 extra, 11302 isBorderBox, 11303 styles 11304 ) : 11305 0; 11306 11307 // Account for unreliable border-box dimensions by comparing offset* to computed and 11308 // faking a content-box to get border and padding (gh-3699) 11309 if ( isBorderBox && scrollboxSizeBuggy ) { 11310 subtract -= Math.ceil( 11311 elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] - 11312 parseFloat( styles[ dimension ] ) - 11313 boxModelAdjustment( elem, dimension, "border", false, styles ) - 11314 0.5 11315 ); 11316 } 11317 11318 // Convert to pixels if value adjustment is needed 11319 if ( subtract && ( matches = rcssNum.exec( value ) ) && 11320 ( matches[ 3 ] || "px" ) !== "px" ) { 11321 11322 elem.style[ dimension ] = value; 11323 value = jQuery.css( elem, dimension ); 11324 } 11325 11326 return setPositiveNumber( elem, value, subtract ); 11327 } 11328 }; 11329} ); 11330 11331jQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft, 11332 function( elem, computed ) { 11333 if ( computed ) { 11334 return ( parseFloat( curCSS( elem, "marginLeft" ) ) || 11335 elem.getBoundingClientRect().left - 11336 swap( elem, { marginLeft: 0 }, function() { 11337 return elem.getBoundingClientRect().left; 11338 } ) 11339 ) + "px"; 11340 } 11341 } 11342); 11343 11344// These hooks are used by animate to expand properties 11345jQuery.each( { 11346 margin: "", 11347 padding: "", 11348 border: "Width" 11349}, function( prefix, suffix ) { 11350 jQuery.cssHooks[ prefix + suffix ] = { 11351 expand: function( value ) { 11352 var i = 0, 11353 expanded = {}, 11354 11355 // Assumes a single number if not a string 11356 parts = typeof value === "string" ? value.split( " " ) : [ value ]; 11357 11358 for ( ; i < 4; i++ ) { 11359 expanded[ prefix + cssExpand[ i ] + suffix ] = 11360 parts[ i ] || parts[ i - 2 ] || parts[ 0 ]; 11361 } 11362 11363 return expanded; 11364 } 11365 }; 11366 11367 if ( prefix !== "margin" ) { 11368 jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber; 11369 } 11370} ); 11371 11372jQuery.fn.extend( { 11373 css: function( name, value ) { 11374 return access( this, function( elem, name, value ) { 11375 var styles, len, 11376 map = {}, 11377 i = 0; 11378 11379 if ( Array.isArray( name ) ) { 11380 styles = getStyles( elem ); 11381 len = name.length; 11382 11383 for ( ; i < len; i++ ) { 11384 map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles ); 11385 } 11386 11387 return map; 11388 } 11389 11390 return value !== undefined ? 11391 jQuery.style( elem, name, value ) : 11392 jQuery.css( elem, name ); 11393 }, name, value, arguments.length > 1 ); 11394 } 11395} ); 11396 11397 11398function Tween( elem, options, prop, end, easing ) { 11399 return new Tween.prototype.init( elem, options, prop, end, easing ); 11400} 11401jQuery.Tween = Tween; 11402 11403Tween.prototype = { 11404 constructor: Tween, 11405 init: function( elem, options, prop, end, easing, unit ) { 11406 this.elem = elem; 11407 this.prop = prop; 11408 this.easing = easing || jQuery.easing._default; 11409 this.options = options; 11410 this.start = this.now = this.cur(); 11411 this.end = end; 11412 this.unit = unit || ( jQuery.cssNumber[ prop ] ? "" : "px" ); 11413 }, 11414 cur: function() { 11415 var hooks = Tween.propHooks[ this.prop ]; 11416 11417 return hooks && hooks.get ? 11418 hooks.get( this ) : 11419 Tween.propHooks._default.get( this ); 11420 }, 11421 run: function( percent ) { 11422 var eased, 11423 hooks = Tween.propHooks[ this.prop ]; 11424 11425 if ( this.options.duration ) { 11426 this.pos = eased = jQuery.easing[ this.easing ]( 11427 percent, this.options.duration * percent, 0, 1, this.options.duration 11428 ); 11429 } else { 11430 this.pos = eased = percent; 11431 } 11432 this.now = ( this.end - this.start ) * eased + this.start; 11433 11434 if ( this.options.step ) { 11435 this.options.step.call( this.elem, this.now, this ); 11436 } 11437 11438 if ( hooks && hooks.set ) { 11439 hooks.set( this ); 11440 } else { 11441 Tween.propHooks._default.set( this ); 11442 } 11443 return this; 11444 } 11445}; 11446 11447Tween.prototype.init.prototype = Tween.prototype; 11448 11449Tween.propHooks = { 11450 _default: { 11451 get: function( tween ) { 11452 var result; 11453 11454 // Use a property on the element directly when it is not a DOM element, 11455 // or when there is no matching style property that exists. 11456 if ( tween.elem.nodeType !== 1 || 11457 tween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) { 11458 return tween.elem[ tween.prop ]; 11459 } 11460 11461 // Passing an empty string as a 3rd parameter to .css will automatically 11462 // attempt a parseFloat and fallback to a string if the parse fails. 11463 // Simple values such as "10px" are parsed to Float; 11464 // complex values such as "rotate(1rad)" are returned as-is. 11465 result = jQuery.css( tween.elem, tween.prop, "" ); 11466 11467 // Empty strings, null, undefined and "auto" are converted to 0. 11468 return !result || result === "auto" ? 0 : result; 11469 }, 11470 set: function( tween ) { 11471 11472 // Use step hook for back compat. 11473 // Use cssHook if its there. 11474 // Use .style if available and use plain properties where available. 11475 if ( jQuery.fx.step[ tween.prop ] ) { 11476 jQuery.fx.step[ tween.prop ]( tween ); 11477 } else if ( tween.elem.nodeType === 1 && ( 11478 jQuery.cssHooks[ tween.prop ] || 11479 tween.elem.style[ finalPropName( tween.prop ) ] != null ) ) { 11480 jQuery.style( tween.elem, tween.prop, tween.now + tween.unit ); 11481 } else { 11482 tween.elem[ tween.prop ] = tween.now; 11483 } 11484 } 11485 } 11486}; 11487 11488// Support: IE <=9 only 11489// Panic based approach to setting things on disconnected nodes 11490Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = { 11491 set: function( tween ) { 11492 if ( tween.elem.nodeType && tween.elem.parentNode ) { 11493 tween.elem[ tween.prop ] = tween.now; 11494 } 11495 } 11496}; 11497 11498jQuery.easing = { 11499 linear: function( p ) { 11500 return p; 11501 }, 11502 swing: function( p ) { 11503 return 0.5 - Math.cos( p * Math.PI ) / 2; 11504 }, 11505 _default: "swing" 11506}; 11507 11508jQuery.fx = Tween.prototype.init; 11509 11510// Back compat <1.8 extension point 11511jQuery.fx.step = {}; 11512 11513 11514 11515 11516var 11517 fxNow, inProgress, 11518 rfxtypes = /^(?:toggle|show|hide)$/, 11519 rrun = /queueHooks$/; 11520 11521function schedule() { 11522 if ( inProgress ) { 11523 if ( document.hidden === false && window.requestAnimationFrame ) { 11524 window.requestAnimationFrame( schedule ); 11525 } else { 11526 window.setTimeout( schedule, jQuery.fx.interval ); 11527 } 11528 11529 jQuery.fx.tick(); 11530 } 11531} 11532 11533// Animations created synchronously will run synchronously 11534function createFxNow() { 11535 window.setTimeout( function() { 11536 fxNow = undefined; 11537 } ); 11538 return ( fxNow = Date.now() ); 11539} 11540 11541// Generate parameters to create a standard animation 11542function genFx( type, includeWidth ) { 11543 var which, 11544 i = 0, 11545 attrs = { height: type }; 11546 11547 // If we include width, step value is 1 to do all cssExpand values, 11548 // otherwise step value is 2 to skip over Left and Right 11549 includeWidth = includeWidth ? 1 : 0; 11550 for ( ; i < 4; i += 2 - includeWidth ) { 11551 which = cssExpand[ i ]; 11552 attrs[ "margin" + which ] = attrs[ "padding" + which ] = type; 11553 } 11554 11555 if ( includeWidth ) { 11556 attrs.opacity = attrs.width = type; 11557 } 11558 11559 return attrs; 11560} 11561 11562function createTween( value, prop, animation ) { 11563 var tween, 11564 collection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ "*" ] ), 11565 index = 0, 11566 length = collection.length; 11567 for ( ; index < length; index++ ) { 11568 if ( ( tween = collection[ index ].call( animation, prop, value ) ) ) { 11569 11570 // We're done with this property 11571 return tween; 11572 } 11573 } 11574} 11575 11576function defaultPrefilter( elem, props, opts ) { 11577 var prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display, 11578 isBox = "width" in props || "height" in props, 11579 anim = this, 11580 orig = {}, 11581 style = elem.style, 11582 hidden = elem.nodeType && isHiddenWithinTree( elem ), 11583 dataShow = dataPriv.get( elem, "fxshow" ); 11584 11585 // Queue-skipping animations hijack the fx hooks 11586 if ( !opts.queue ) { 11587 hooks = jQuery._queueHooks( elem, "fx" ); 11588 if ( hooks.unqueued == null ) { 11589 hooks.unqueued = 0; 11590 oldfire = hooks.empty.fire; 11591 hooks.empty.fire = function() { 11592 if ( !hooks.unqueued ) { 11593 oldfire(); 11594 } 11595 }; 11596 } 11597 hooks.unqueued++; 11598 11599 anim.always( function() { 11600 11601 // Ensure the complete handler is called before this completes 11602 anim.always( function() { 11603 hooks.unqueued--; 11604 if ( !jQuery.queue( elem, "fx" ).length ) { 11605 hooks.empty.fire(); 11606 } 11607 } ); 11608 } ); 11609 } 11610 11611 // Detect show/hide animations 11612 for ( prop in props ) { 11613 value = props[ prop ]; 11614 if ( rfxtypes.test( value ) ) { 11615 delete props[ prop ]; 11616 toggle = toggle || value === "toggle"; 11617 if ( value === ( hidden ? "hide" : "show" ) ) { 11618 11619 // Pretend to be hidden if this is a "show" and 11620 // there is still data from a stopped show/hide 11621 if ( value === "show" && dataShow && dataShow[ prop ] !== undefined ) { 11622 hidden = true; 11623 11624 // Ignore all other no-op show/hide data 11625 } else { 11626 continue; 11627 } 11628 } 11629 orig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop ); 11630 } 11631 } 11632 11633 // Bail out if this is a no-op like .hide().hide() 11634 propTween = !jQuery.isEmptyObject( props ); 11635 if ( !propTween && jQuery.isEmptyObject( orig ) ) { 11636 return; 11637 } 11638 11639 // Restrict "overflow" and "display" styles during box animations 11640 if ( isBox && elem.nodeType === 1 ) { 11641 11642 // Support: IE <=9 - 11, Edge 12 - 15 11643 // Record all 3 overflow attributes because IE does not infer the shorthand 11644 // from identically-valued overflowX and overflowY and Edge just mirrors 11645 // the overflowX value there. 11646 opts.overflow = [ style.overflow, style.overflowX, style.overflowY ]; 11647 11648 // Identify a display type, preferring old show/hide data over the CSS cascade 11649 restoreDisplay = dataShow && dataShow.display; 11650 if ( restoreDisplay == null ) { 11651 restoreDisplay = dataPriv.get( elem, "display" ); 11652 } 11653 display = jQuery.css( elem, "display" ); 11654 if ( display === "none" ) { 11655 if ( restoreDisplay ) { 11656 display = restoreDisplay; 11657 } else { 11658 11659 // Get nonempty value(s) by temporarily forcing visibility 11660 showHide( [ elem ], true ); 11661 restoreDisplay = elem.style.display || restoreDisplay; 11662 display = jQuery.css( elem, "display" ); 11663 showHide( [ elem ] ); 11664 } 11665 } 11666 11667 // Animate inline elements as inline-block 11668 if ( display === "inline" || display === "inline-block" && restoreDisplay != null ) { 11669 if ( jQuery.css( elem, "float" ) === "none" ) { 11670 11671 // Restore the original display value at the end of pure show/hide animations 11672 if ( !propTween ) { 11673 anim.done( function() { 11674 style.display = restoreDisplay; 11675 } ); 11676 if ( restoreDisplay == null ) { 11677 display = style.display; 11678 restoreDisplay = display === "none" ? "" : display; 11679 } 11680 } 11681 style.display = "inline-block"; 11682 } 11683 } 11684 } 11685 11686 if ( opts.overflow ) { 11687 style.overflow = "hidden"; 11688 anim.always( function() { 11689 style.overflow = opts.overflow[ 0 ]; 11690 style.overflowX = opts.overflow[ 1 ]; 11691 style.overflowY = opts.overflow[ 2 ]; 11692 } ); 11693 } 11694 11695 // Implement show/hide animations 11696 propTween = false; 11697 for ( prop in orig ) { 11698 11699 // General show/hide setup for this element animation 11700 if ( !propTween ) { 11701 if ( dataShow ) { 11702 if ( "hidden" in dataShow ) { 11703 hidden = dataShow.hidden; 11704 } 11705 } else { 11706 dataShow = dataPriv.access( elem, "fxshow", { display: restoreDisplay } ); 11707 } 11708 11709 // Store hidden/visible for toggle so `.stop().toggle()` "reverses" 11710 if ( toggle ) { 11711 dataShow.hidden = !hidden; 11712 } 11713 11714 // Show elements before animating them 11715 if ( hidden ) { 11716 showHide( [ elem ], true ); 11717 } 11718 11719 /* eslint-disable no-loop-func */ 11720 11721 anim.done( function() { 11722 11723 /* eslint-enable no-loop-func */ 11724 11725 // The final step of a "hide" animation is actually hiding the element 11726 if ( !hidden ) { 11727 showHide( [ elem ] ); 11728 } 11729 dataPriv.remove( elem, "fxshow" ); 11730 for ( prop in orig ) { 11731 jQuery.style( elem, prop, orig[ prop ] ); 11732 } 11733 } ); 11734 } 11735 11736 // Per-property setup 11737 propTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim ); 11738 if ( !( prop in dataShow ) ) { 11739 dataShow[ prop ] = propTween.start; 11740 if ( hidden ) { 11741 propTween.end = propTween.start; 11742 propTween.start = 0; 11743 } 11744 } 11745 } 11746} 11747 11748function propFilter( props, specialEasing ) { 11749 var index, name, easing, value, hooks; 11750 11751 // camelCase, specialEasing and expand cssHook pass 11752 for ( index in props ) { 11753 name = camelCase( index ); 11754 easing = specialEasing[ name ]; 11755 value = props[ index ]; 11756 if ( Array.isArray( value ) ) { 11757 easing = value[ 1 ]; 11758 value = props[ index ] = value[ 0 ]; 11759 } 11760 11761 if ( index !== name ) { 11762 props[ name ] = value; 11763 delete props[ index ]; 11764 } 11765 11766 hooks = jQuery.cssHooks[ name ]; 11767 if ( hooks && "expand" in hooks ) { 11768 value = hooks.expand( value ); 11769 delete props[ name ]; 11770 11771 // Not quite $.extend, this won't overwrite existing keys. 11772 // Reusing 'index' because we have the correct "name" 11773 for ( index in value ) { 11774 if ( !( index in props ) ) { 11775 props[ index ] = value[ index ]; 11776 specialEasing[ index ] = easing; 11777 } 11778 } 11779 } else { 11780 specialEasing[ name ] = easing; 11781 } 11782 } 11783} 11784 11785function Animation( elem, properties, options ) { 11786 var result, 11787 stopped, 11788 index = 0, 11789 length = Animation.prefilters.length, 11790 deferred = jQuery.Deferred().always( function() { 11791 11792 // Don't match elem in the :animated selector 11793 delete tick.elem; 11794 } ), 11795 tick = function() { 11796 if ( stopped ) { 11797 return false; 11798 } 11799 var currentTime = fxNow || createFxNow(), 11800 remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ), 11801 11802 // Support: Android 2.3 only 11803 // Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (trac-12497) 11804 temp = remaining / animation.duration || 0, 11805 percent = 1 - temp, 11806 index = 0, 11807 length = animation.tweens.length; 11808 11809 for ( ; index < length; index++ ) { 11810 animation.tweens[ index ].run( percent ); 11811 } 11812 11813 deferred.notifyWith( elem, [ animation, percent, remaining ] ); 11814 11815 // If there's more to do, yield 11816 if ( percent < 1 && length ) { 11817 return remaining; 11818 } 11819 11820 // If this was an empty animation, synthesize a final progress notification 11821 if ( !length ) { 11822 deferred.notifyWith( elem, [ animation, 1, 0 ] ); 11823 } 11824 11825 // Resolve the animation and report its conclusion 11826 deferred.resolveWith( elem, [ animation ] ); 11827 return false; 11828 }, 11829 animation = deferred.promise( { 11830 elem: elem, 11831 props: jQuery.extend( {}, properties ), 11832 opts: jQuery.extend( true, { 11833 specialEasing: {}, 11834 easing: jQuery.easing._default 11835 }, options ), 11836 originalProperties: properties, 11837 originalOptions: options, 11838 startTime: fxNow || createFxNow(), 11839 duration: options.duration, 11840 tweens: [], 11841 createTween: function( prop, end ) { 11842 var tween = jQuery.Tween( elem, animation.opts, prop, end, 11843 animation.opts.specialEasing[ prop ] || animation.opts.easing ); 11844 animation.tweens.push( tween ); 11845 return tween; 11846 }, 11847 stop: function( gotoEnd ) { 11848 var index = 0, 11849 11850 // If we are going to the end, we want to run all the tweens 11851 // otherwise we skip this part 11852 length = gotoEnd ? animation.tweens.length : 0; 11853 if ( stopped ) { 11854 return this; 11855 } 11856 stopped = true; 11857 for ( ; index < length; index++ ) { 11858 animation.tweens[ index ].run( 1 ); 11859 } 11860 11861 // Resolve when we played the last frame; otherwise, reject 11862 if ( gotoEnd ) { 11863 deferred.notifyWith( elem, [ animation, 1, 0 ] ); 11864 deferred.resolveWith( elem, [ animation, gotoEnd ] ); 11865 } else { 11866 deferred.rejectWith( elem, [ animation, gotoEnd ] ); 11867 } 11868 return this; 11869 } 11870 } ), 11871 props = animation.props; 11872 11873 propFilter( props, animation.opts.specialEasing ); 11874 11875 for ( ; index < length; index++ ) { 11876 result = Animation.prefilters[ index ].call( animation, elem, props, animation.opts ); 11877 if ( result ) { 11878 if ( isFunction( result.stop ) ) { 11879 jQuery._queueHooks( animation.elem, animation.opts.queue ).stop = 11880 result.stop.bind( result ); 11881 } 11882 return result; 11883 } 11884 } 11885 11886 jQuery.map( props, createTween, animation ); 11887 11888 if ( isFunction( animation.opts.start ) ) { 11889 animation.opts.start.call( elem, animation ); 11890 } 11891 11892 // Attach callbacks from options 11893 animation 11894 .progress( animation.opts.progress ) 11895 .done( animation.opts.done, animation.opts.complete ) 11896 .fail( animation.opts.fail ) 11897 .always( animation.opts.always ); 11898 11899 jQuery.fx.timer( 11900 jQuery.extend( tick, { 11901 elem: elem, 11902 anim: animation, 11903 queue: animation.opts.queue 11904 } ) 11905 ); 11906 11907 return animation; 11908} 11909 11910jQuery.Animation = jQuery.extend( Animation, { 11911 11912 tweeners: { 11913 "*": [ function( prop, value ) { 11914 var tween = this.createTween( prop, value ); 11915 adjustCSS( tween.elem, prop, rcssNum.exec( value ), tween ); 11916 return tween; 11917 } ] 11918 }, 11919 11920 tweener: function( props, callback ) { 11921 if ( isFunction( props ) ) { 11922 callback = props; 11923 props = [ "*" ]; 11924 } else { 11925 props = props.match( rnothtmlwhite ); 11926 } 11927 11928 var prop, 11929 index = 0, 11930 length = props.length; 11931 11932 for ( ; index < length; index++ ) { 11933 prop = props[ index ]; 11934 Animation.tweeners[ prop ] = Animation.tweeners[ prop ] || []; 11935 Animation.tweeners[ prop ].unshift( callback ); 11936 } 11937 }, 11938 11939 prefilters: [ defaultPrefilter ], 11940 11941 prefilter: function( callback, prepend ) { 11942 if ( prepend ) { 11943 Animation.prefilters.unshift( callback ); 11944 } else { 11945 Animation.prefilters.push( callback ); 11946 } 11947 } 11948} ); 11949 11950jQuery.speed = function( speed, easing, fn ) { 11951 var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : { 11952 complete: fn || !fn && easing || 11953 isFunction( speed ) && speed, 11954 duration: speed, 11955 easing: fn && easing || easing && !isFunction( easing ) && easing 11956 }; 11957 11958 // Go to the end state if fx are off 11959 if ( jQuery.fx.off ) { 11960 opt.duration = 0; 11961 11962 } else { 11963 if ( typeof opt.duration !== "number" ) { 11964 if ( opt.duration in jQuery.fx.speeds ) { 11965 opt.duration = jQuery.fx.speeds[ opt.duration ]; 11966 11967 } else { 11968 opt.duration = jQuery.fx.speeds._default; 11969 } 11970 } 11971 } 11972 11973 // Normalize opt.queue - true/undefined/null -> "fx" 11974 if ( opt.queue == null || opt.queue === true ) { 11975 opt.queue = "fx"; 11976 } 11977 11978 // Queueing 11979 opt.old = opt.complete; 11980 11981 opt.complete = function() { 11982 if ( isFunction( opt.old ) ) { 11983 opt.old.call( this ); 11984 } 11985 11986 if ( opt.queue ) { 11987 jQuery.dequeue( this, opt.queue ); 11988 } 11989 }; 11990 11991 return opt; 11992}; 11993 11994jQuery.fn.extend( { 11995 fadeTo: function( speed, to, easing, callback ) { 11996 11997 // Show any hidden elements after setting opacity to 0 11998 return this.filter( isHiddenWithinTree ).css( "opacity", 0 ).show() 11999 12000 // Animate to the value specified 12001 .end().animate( { opacity: to }, speed, easing, callback ); 12002 }, 12003 animate: function( prop, speed, easing, callback ) { 12004 var empty = jQuery.isEmptyObject( prop ), 12005 optall = jQuery.speed( speed, easing, callback ), 12006 doAnimation = function() { 12007 12008 // Operate on a copy of prop so per-property easing won't be lost 12009 var anim = Animation( this, jQuery.extend( {}, prop ), optall ); 12010 12011 // Empty animations, or finishing resolves immediately 12012 if ( empty || dataPriv.get( this, "finish" ) ) { 12013 anim.stop( true ); 12014 } 12015 }; 12016 12017 doAnimation.finish = doAnimation; 12018 12019 return empty || optall.queue === false ? 12020 this.each( doAnimation ) : 12021 this.queue( optall.queue, doAnimation ); 12022 }, 12023 stop: function( type, clearQueue, gotoEnd ) { 12024 var stopQueue = function( hooks ) { 12025 var stop = hooks.stop; 12026 delete hooks.stop; 12027 stop( gotoEnd ); 12028 }; 12029 12030 if ( typeof type !== "string" ) { 12031 gotoEnd = clearQueue; 12032 clearQueue = type; 12033 type = undefined; 12034 } 12035 if ( clearQueue ) { 12036 this.queue( type || "fx", [] ); 12037 } 12038 12039 return this.each( function() { 12040 var dequeue = true, 12041 index = type != null && type + "queueHooks", 12042 timers = jQuery.timers, 12043 data = dataPriv.get( this ); 12044 12045 if ( index ) { 12046 if ( data[ index ] && data[ index ].stop ) { 12047 stopQueue( data[ index ] ); 12048 } 12049 } else { 12050 for ( index in data ) { 12051 if ( data[ index ] && data[ index ].stop && rrun.test( index ) ) { 12052 stopQueue( data[ index ] ); 12053 } 12054 } 12055 } 12056 12057 for ( index = timers.length; index--; ) { 12058 if ( timers[ index ].elem === this && 12059 ( type == null || timers[ index ].queue === type ) ) { 12060 12061 timers[ index ].anim.stop( gotoEnd ); 12062 dequeue = false; 12063 timers.splice( index, 1 ); 12064 } 12065 } 12066 12067 // Start the next in the queue if the last step wasn't forced. 12068 // Timers currently will call their complete callbacks, which 12069 // will dequeue but only if they were gotoEnd. 12070 if ( dequeue || !gotoEnd ) { 12071 jQuery.dequeue( this, type ); 12072 } 12073 } ); 12074 }, 12075 finish: function( type ) { 12076 if ( type !== false ) { 12077 type = type || "fx"; 12078 } 12079 return this.each( function() { 12080 var index, 12081 data = dataPriv.get( this ), 12082 queue = data[ type + "queue" ], 12083 hooks = data[ type + "queueHooks" ], 12084 timers = jQuery.timers, 12085 length = queue ? queue.length : 0; 12086 12087 // Enable finishing flag on private data 12088 data.finish = true; 12089 12090 // Empty the queue first 12091 jQuery.queue( this, type, [] ); 12092 12093 if ( hooks && hooks.stop ) { 12094 hooks.stop.call( this, true ); 12095 } 12096 12097 // Look for any active animations, and finish them 12098 for ( index = timers.length; index--; ) { 12099 if ( timers[ index ].elem === this && timers[ index ].queue === type ) { 12100 timers[ index ].anim.stop( true ); 12101 timers.splice( index, 1 ); 12102 } 12103 } 12104 12105 // Look for any animations in the old queue and finish them 12106 for ( index = 0; index < length; index++ ) { 12107 if ( queue[ index ] && queue[ index ].finish ) { 12108 queue[ index ].finish.call( this ); 12109 } 12110 } 12111 12112 // Turn off finishing flag 12113 delete data.finish; 12114 } ); 12115 } 12116} ); 12117 12118jQuery.each( [ "toggle", "show", "hide" ], function( _i, name ) { 12119 var cssFn = jQuery.fn[ name ]; 12120 jQuery.fn[ name ] = function( speed, easing, callback ) { 12121 return speed == null || typeof speed === "boolean" ? 12122 cssFn.apply( this, arguments ) : 12123 this.animate( genFx( name, true ), speed, easing, callback ); 12124 }; 12125} ); 12126 12127// Generate shortcuts for custom animations 12128jQuery.each( { 12129 slideDown: genFx( "show" ), 12130 slideUp: genFx( "hide" ), 12131 slideToggle: genFx( "toggle" ), 12132 fadeIn: { opacity: "show" }, 12133 fadeOut: { opacity: "hide" }, 12134 fadeToggle: { opacity: "toggle" } 12135}, function( name, props ) { 12136 jQuery.fn[ name ] = function( speed, easing, callback ) { 12137 return this.animate( props, speed, easing, callback ); 12138 }; 12139} ); 12140 12141jQuery.timers = []; 12142jQuery.fx.tick = function() { 12143 var timer, 12144 i = 0, 12145 timers = jQuery.timers; 12146 12147 fxNow = Date.now(); 12148 12149 for ( ; i < timers.length; i++ ) { 12150 timer = timers[ i ]; 12151 12152 // Run the timer and safely remove it when done (allowing for external removal) 12153 if ( !timer() && timers[ i ] === timer ) { 12154 timers.splice( i--, 1 ); 12155 } 12156 } 12157 12158 if ( !timers.length ) { 12159 jQuery.fx.stop(); 12160 } 12161 fxNow = undefined; 12162}; 12163 12164jQuery.fx.timer = function( timer ) { 12165 jQuery.timers.push( timer ); 12166 jQuery.fx.start(); 12167}; 12168 12169jQuery.fx.interval = 13; 12170jQuery.fx.start = function() { 12171 if ( inProgress ) { 12172 return; 12173 } 12174 12175 inProgress = true; 12176 schedule(); 12177}; 12178 12179jQuery.fx.stop = function() { 12180 inProgress = null; 12181}; 12182 12183jQuery.fx.speeds = { 12184 slow: 600, 12185 fast: 200, 12186 12187 // Default speed 12188 _default: 400 12189}; 12190 12191 12192// Based off of the plugin by Clint Helfers, with permission. 12193jQuery.fn.delay = function( time, type ) { 12194 time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time; 12195 type = type || "fx"; 12196 12197 return this.queue( type, function( next, hooks ) { 12198 var timeout = window.setTimeout( next, time ); 12199 hooks.stop = function() { 12200 window.clearTimeout( timeout ); 12201 }; 12202 } ); 12203}; 12204 12205 12206( function() { 12207 var input = document.createElement( "input" ), 12208 select = document.createElement( "select" ), 12209 opt = select.appendChild( document.createElement( "option" ) ); 12210 12211 input.type = "checkbox"; 12212 12213 // Support: Android <=4.3 only 12214 // Default value for a checkbox should be "on" 12215 support.checkOn = input.value !== ""; 12216 12217 // Support: IE <=11 only 12218 // Must access selectedIndex to make default options select 12219 support.optSelected = opt.selected; 12220 12221 // Support: IE <=11 only 12222 // An input loses its value after becoming a radio 12223 input = document.createElement( "input" ); 12224 input.value = "t"; 12225 input.type = "radio"; 12226 support.radioValue = input.value === "t"; 12227} )(); 12228 12229 12230var boolHook, 12231 attrHandle = jQuery.expr.attrHandle; 12232 12233jQuery.fn.extend( { 12234 attr: function( name, value ) { 12235 return access( this, jQuery.attr, name, value, arguments.length > 1 ); 12236 }, 12237 12238 removeAttr: function( name ) { 12239 return this.each( function() { 12240 jQuery.removeAttr( this, name ); 12241 } ); 12242 } 12243} ); 12244 12245jQuery.extend( { 12246 attr: function( elem, name, value ) { 12247 var ret, hooks, 12248 nType = elem.nodeType; 12249 12250 // Don't get/set attributes on text, comment and attribute nodes 12251 if ( nType === 3 || nType === 8 || nType === 2 ) { 12252 return; 12253 } 12254 12255 // Fallback to prop when attributes are not supported 12256 if ( typeof elem.getAttribute === "undefined" ) { 12257 return jQuery.prop( elem, name, value ); 12258 } 12259 12260 // Attribute hooks are determined by the lowercase version 12261 // Grab necessary hook if one is defined 12262 if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { 12263 hooks = jQuery.attrHooks[ name.toLowerCase() ] || 12264 ( jQuery.expr.match.bool.test( name ) ? boolHook : undefined ); 12265 } 12266 12267 if ( value !== undefined ) { 12268 if ( value === null ) { 12269 jQuery.removeAttr( elem, name ); 12270 return; 12271 } 12272 12273 if ( hooks && "set" in hooks && 12274 ( ret = hooks.set( elem, value, name ) ) !== undefined ) { 12275 return ret; 12276 } 12277 12278 elem.setAttribute( name, value + "" ); 12279 return value; 12280 } 12281 12282 if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) { 12283 return ret; 12284 } 12285 12286 ret = jQuery.find.attr( elem, name ); 12287 12288 // Non-existent attributes return null, we normalize to undefined 12289 return ret == null ? undefined : ret; 12290 }, 12291 12292 attrHooks: { 12293 type: { 12294 set: function( elem, value ) { 12295 if ( !support.radioValue && value === "radio" && 12296 nodeName( elem, "input" ) ) { 12297 var val = elem.value; 12298 elem.setAttribute( "type", value ); 12299 if ( val ) { 12300 elem.value = val; 12301 } 12302 return value; 12303 } 12304 } 12305 } 12306 }, 12307 12308 removeAttr: function( elem, value ) { 12309 var name, 12310 i = 0, 12311 12312 // Attribute names can contain non-HTML whitespace characters 12313 // https://html.spec.whatwg.org/multipage/syntax.html#attributes-2 12314 attrNames = value && value.match( rnothtmlwhite ); 12315 12316 if ( attrNames && elem.nodeType === 1 ) { 12317 while ( ( name = attrNames[ i++ ] ) ) { 12318 elem.removeAttribute( name ); 12319 } 12320 } 12321 } 12322} ); 12323 12324// Hooks for boolean attributes 12325boolHook = { 12326 set: function( elem, value, name ) { 12327 if ( value === false ) { 12328 12329 // Remove boolean attributes when set to false 12330 jQuery.removeAttr( elem, name ); 12331 } else { 12332 elem.setAttribute( name, name ); 12333 } 12334 return name; 12335 } 12336}; 12337 12338jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( _i, name ) { 12339 var getter = attrHandle[ name ] || jQuery.find.attr; 12340 12341 attrHandle[ name ] = function( elem, name, isXML ) { 12342 var ret, handle, 12343 lowercaseName = name.toLowerCase(); 12344 12345 if ( !isXML ) { 12346 12347 // Avoid an infinite loop by temporarily removing this function from the getter 12348 handle = attrHandle[ lowercaseName ]; 12349 attrHandle[ lowercaseName ] = ret; 12350 ret = getter( elem, name, isXML ) != null ? 12351 lowercaseName : 12352 null; 12353 attrHandle[ lowercaseName ] = handle; 12354 } 12355 return ret; 12356 }; 12357} ); 12358 12359 12360 12361 12362var rfocusable = /^(?:input|select|textarea|button)$/i, 12363 rclickable = /^(?:a|area)$/i; 12364 12365jQuery.fn.extend( { 12366 prop: function( name, value ) { 12367 return access( this, jQuery.prop, name, value, arguments.length > 1 ); 12368 }, 12369 12370 removeProp: function( name ) { 12371 return this.each( function() { 12372 delete this[ jQuery.propFix[ name ] || name ]; 12373 } ); 12374 } 12375} ); 12376 12377jQuery.extend( { 12378 prop: function( elem, name, value ) { 12379 var ret, hooks, 12380 nType = elem.nodeType; 12381 12382 // Don't get/set properties on text, comment and attribute nodes 12383 if ( nType === 3 || nType === 8 || nType === 2 ) { 12384 return; 12385 } 12386 12387 if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { 12388 12389 // Fix name and attach hooks 12390 name = jQuery.propFix[ name ] || name; 12391 hooks = jQuery.propHooks[ name ]; 12392 } 12393 12394 if ( value !== undefined ) { 12395 if ( hooks && "set" in hooks && 12396 ( ret = hooks.set( elem, value, name ) ) !== undefined ) { 12397 return ret; 12398 } 12399 12400 return ( elem[ name ] = value ); 12401 } 12402 12403 if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) { 12404 return ret; 12405 } 12406 12407 return elem[ name ]; 12408 }, 12409 12410 propHooks: { 12411 tabIndex: { 12412 get: function( elem ) { 12413 12414 // Support: IE <=9 - 11 only 12415 // elem.tabIndex doesn't always return the 12416 // correct value when it hasn't been explicitly set 12417 // Use proper attribute retrieval (trac-12072) 12418 var tabindex = jQuery.find.attr( elem, "tabindex" ); 12419 12420 if ( tabindex ) { 12421 return parseInt( tabindex, 10 ); 12422 } 12423 12424 if ( 12425 rfocusable.test( elem.nodeName ) || 12426 rclickable.test( elem.nodeName ) && 12427 elem.href 12428 ) { 12429 return 0; 12430 } 12431 12432 return -1; 12433 } 12434 } 12435 }, 12436 12437 propFix: { 12438 "for": "htmlFor", 12439 "class": "className" 12440 } 12441} ); 12442 12443// Support: IE <=11 only 12444// Accessing the selectedIndex property 12445// forces the browser to respect setting selected 12446// on the option 12447// The getter ensures a default option is selected 12448// when in an optgroup 12449// eslint rule "no-unused-expressions" is disabled for this code 12450// since it considers such accessions noop 12451if ( !support.optSelected ) { 12452 jQuery.propHooks.selected = { 12453 get: function( elem ) { 12454 12455 /* eslint no-unused-expressions: "off" */ 12456 12457 var parent = elem.parentNode; 12458 if ( parent && parent.parentNode ) { 12459 parent.parentNode.selectedIndex; 12460 } 12461 return null; 12462 }, 12463 set: function( elem ) { 12464 12465 /* eslint no-unused-expressions: "off" */ 12466 12467 var parent = elem.parentNode; 12468 if ( parent ) { 12469 parent.selectedIndex; 12470 12471 if ( parent.parentNode ) { 12472 parent.parentNode.selectedIndex; 12473 } 12474 } 12475 } 12476 }; 12477} 12478 12479jQuery.each( [ 12480 "tabIndex", 12481 "readOnly", 12482 "maxLength", 12483 "cellSpacing", 12484 "cellPadding", 12485 "rowSpan", 12486 "colSpan", 12487 "useMap", 12488 "frameBorder", 12489 "contentEditable" 12490], function() { 12491 jQuery.propFix[ this.toLowerCase() ] = this; 12492} ); 12493 12494 12495 12496 12497 // Strip and collapse whitespace according to HTML spec 12498 // https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace 12499 function stripAndCollapse( value ) { 12500 var tokens = value.match( rnothtmlwhite ) || []; 12501 return tokens.join( " " ); 12502 } 12503 12504 12505function getClass( elem ) { 12506 return elem.getAttribute && elem.getAttribute( "class" ) || ""; 12507} 12508 12509function classesToArray( value ) { 12510 if ( Array.isArray( value ) ) { 12511 return value; 12512 } 12513 if ( typeof value === "string" ) { 12514 return value.match( rnothtmlwhite ) || []; 12515 } 12516 return []; 12517} 12518 12519jQuery.fn.extend( { 12520 addClass: function( value ) { 12521 var classNames, cur, curValue, className, i, finalValue; 12522 12523 if ( isFunction( value ) ) { 12524 return this.each( function( j ) { 12525 jQuery( this ).addClass( value.call( this, j, getClass( this ) ) ); 12526 } ); 12527 } 12528 12529 classNames = classesToArray( value ); 12530 12531 if ( classNames.length ) { 12532 return this.each( function() { 12533 curValue = getClass( this ); 12534 cur = this.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " ); 12535 12536 if ( cur ) { 12537 for ( i = 0; i < classNames.length; i++ ) { 12538 className = classNames[ i ]; 12539 if ( cur.indexOf( " " + className + " " ) < 0 ) { 12540 cur += className + " "; 12541 } 12542 } 12543 12544 // Only assign if different to avoid unneeded rendering. 12545 finalValue = stripAndCollapse( cur ); 12546 if ( curValue !== finalValue ) { 12547 this.setAttribute( "class", finalValue ); 12548 } 12549 } 12550 } ); 12551 } 12552 12553 return this; 12554 }, 12555 12556 removeClass: function( value ) { 12557 var classNames, cur, curValue, className, i, finalValue; 12558 12559 if ( isFunction( value ) ) { 12560 return this.each( function( j ) { 12561 jQuery( this ).removeClass( value.call( this, j, getClass( this ) ) ); 12562 } ); 12563 } 12564 12565 if ( !arguments.length ) { 12566 return this.attr( "class", "" ); 12567 } 12568 12569 classNames = classesToArray( value ); 12570 12571 if ( classNames.length ) { 12572 return this.each( function() { 12573 curValue = getClass( this ); 12574 12575 // This expression is here for better compressibility (see addClass) 12576 cur = this.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " ); 12577 12578 if ( cur ) { 12579 for ( i = 0; i < classNames.length; i++ ) { 12580 className = classNames[ i ]; 12581 12582 // Remove *all* instances 12583 while ( cur.indexOf( " " + className + " " ) > -1 ) { 12584 cur = cur.replace( " " + className + " ", " " ); 12585 } 12586 } 12587 12588 // Only assign if different to avoid unneeded rendering. 12589 finalValue = stripAndCollapse( cur ); 12590 if ( curValue !== finalValue ) { 12591 this.setAttribute( "class", finalValue ); 12592 } 12593 } 12594 } ); 12595 } 12596 12597 return this; 12598 }, 12599 12600 toggleClass: function( value, stateVal ) { 12601 var classNames, className, i, self, 12602 type = typeof value, 12603 isValidValue = type === "string" || Array.isArray( value ); 12604 12605 if ( isFunction( value ) ) { 12606 return this.each( function( i ) { 12607 jQuery( this ).toggleClass( 12608 value.call( this, i, getClass( this ), stateVal ), 12609 stateVal 12610 ); 12611 } ); 12612 } 12613 12614 if ( typeof stateVal === "boolean" && isValidValue ) { 12615 return stateVal ? this.addClass( value ) : this.removeClass( value ); 12616 } 12617 12618 classNames = classesToArray( value ); 12619 12620 return this.each( function() { 12621 if ( isValidValue ) { 12622 12623 // Toggle individual class names 12624 self = jQuery( this ); 12625 12626 for ( i = 0; i < classNames.length; i++ ) { 12627 className = classNames[ i ]; 12628 12629 // Check each className given, space separated list 12630 if ( self.hasClass( className ) ) { 12631 self.removeClass( className ); 12632 } else { 12633 self.addClass( className ); 12634 } 12635 } 12636 12637 // Toggle whole class name 12638 } else if ( value === undefined || type === "boolean" ) { 12639 className = getClass( this ); 12640 if ( className ) { 12641 12642 // Store className if set 12643 dataPriv.set( this, "__className__", className ); 12644 } 12645 12646 // If the element has a class name or if we're passed `false`, 12647 // then remove the whole classname (if there was one, the above saved it). 12648 // Otherwise bring back whatever was previously saved (if anything), 12649 // falling back to the empty string if nothing was stored. 12650 if ( this.setAttribute ) { 12651 this.setAttribute( "class", 12652 className || value === false ? 12653 "" : 12654 dataPriv.get( this, "__className__" ) || "" 12655 ); 12656 } 12657 } 12658 } ); 12659 }, 12660 12661 hasClass: function( selector ) { 12662 var className, elem, 12663 i = 0; 12664 12665 className = " " + selector + " "; 12666 while ( ( elem = this[ i++ ] ) ) { 12667 if ( elem.nodeType === 1 && 12668 ( " " + stripAndCollapse( getClass( elem ) ) + " " ).indexOf( className ) > -1 ) { 12669 return true; 12670 } 12671 } 12672 12673 return false; 12674 } 12675} ); 12676 12677 12678 12679 12680var rreturn = /\r/g; 12681 12682jQuery.fn.extend( { 12683 val: function( value ) { 12684 var hooks, ret, valueIsFunction, 12685 elem = this[ 0 ]; 12686 12687 if ( !arguments.length ) { 12688 if ( elem ) { 12689 hooks = jQuery.valHooks[ elem.type ] || 12690 jQuery.valHooks[ elem.nodeName.toLowerCase() ]; 12691 12692 if ( hooks && 12693 "get" in hooks && 12694 ( ret = hooks.get( elem, "value" ) ) !== undefined 12695 ) { 12696 return ret; 12697 } 12698 12699 ret = elem.value; 12700 12701 // Handle most common string cases 12702 if ( typeof ret === "string" ) { 12703 return ret.replace( rreturn, "" ); 12704 } 12705 12706 // Handle cases where value is null/undef or number 12707 return ret == null ? "" : ret; 12708 } 12709 12710 return; 12711 } 12712 12713 valueIsFunction = isFunction( value ); 12714 12715 return this.each( function( i ) { 12716 var val; 12717 12718 if ( this.nodeType !== 1 ) { 12719 return; 12720 } 12721 12722 if ( valueIsFunction ) { 12723 val = value.call( this, i, jQuery( this ).val() ); 12724 } else { 12725 val = value; 12726 } 12727 12728 // Treat null/undefined as ""; convert numbers to string 12729 if ( val == null ) { 12730 val = ""; 12731 12732 } else if ( typeof val === "number" ) { 12733 val += ""; 12734 12735 } else if ( Array.isArray( val ) ) { 12736 val = jQuery.map( val, function( value ) { 12737 return value == null ? "" : value + ""; 12738 } ); 12739 } 12740 12741 hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ]; 12742 12743 // If set returns undefined, fall back to normal setting 12744 if ( !hooks || !( "set" in hooks ) || hooks.set( this, val, "value" ) === undefined ) { 12745 this.value = val; 12746 } 12747 } ); 12748 } 12749} ); 12750 12751jQuery.extend( { 12752 valHooks: { 12753 option: { 12754 get: function( elem ) { 12755 12756 var val = jQuery.find.attr( elem, "value" ); 12757 return val != null ? 12758 val : 12759 12760 // Support: IE <=10 - 11 only 12761 // option.text throws exceptions (trac-14686, trac-14858) 12762 // Strip and collapse whitespace 12763 // https://html.spec.whatwg.org/#strip-and-collapse-whitespace 12764 stripAndCollapse( jQuery.text( elem ) ); 12765 } 12766 }, 12767 select: { 12768 get: function( elem ) { 12769 var value, option, i, 12770 options = elem.options, 12771 index = elem.selectedIndex, 12772 one = elem.type === "select-one", 12773 values = one ? null : [], 12774 max = one ? index + 1 : options.length; 12775 12776 if ( index < 0 ) { 12777 i = max; 12778 12779 } else { 12780 i = one ? index : 0; 12781 } 12782 12783 // Loop through all the selected options 12784 for ( ; i < max; i++ ) { 12785 option = options[ i ]; 12786 12787 // Support: IE <=9 only 12788 // IE8-9 doesn't update selected after form reset (trac-2551) 12789 if ( ( option.selected || i === index ) && 12790 12791 // Don't return options that are disabled or in a disabled optgroup 12792 !option.disabled && 12793 ( !option.parentNode.disabled || 12794 !nodeName( option.parentNode, "optgroup" ) ) ) { 12795 12796 // Get the specific value for the option 12797 value = jQuery( option ).val(); 12798 12799 // We don't need an array for one selects 12800 if ( one ) { 12801 return value; 12802 } 12803 12804 // Multi-Selects return an array 12805 values.push( value ); 12806 } 12807 } 12808 12809 return values; 12810 }, 12811 12812 set: function( elem, value ) { 12813 var optionSet, option, 12814 options = elem.options, 12815 values = jQuery.makeArray( value ), 12816 i = options.length; 12817 12818 while ( i-- ) { 12819 option = options[ i ]; 12820 12821 /* eslint-disable no-cond-assign */ 12822 12823 if ( option.selected = 12824 jQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1 12825 ) { 12826 optionSet = true; 12827 } 12828 12829 /* eslint-enable no-cond-assign */ 12830 } 12831 12832 // Force browsers to behave consistently when non-matching value is set 12833 if ( !optionSet ) { 12834 elem.selectedIndex = -1; 12835 } 12836 return values; 12837 } 12838 } 12839 } 12840} ); 12841 12842// Radios and checkboxes getter/setter 12843jQuery.each( [ "radio", "checkbox" ], function() { 12844 jQuery.valHooks[ this ] = { 12845 set: function( elem, value ) { 12846 if ( Array.isArray( value ) ) { 12847 return ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 ); 12848 } 12849 } 12850 }; 12851 if ( !support.checkOn ) { 12852 jQuery.valHooks[ this ].get = function( elem ) { 12853 return elem.getAttribute( "value" ) === null ? "on" : elem.value; 12854 }; 12855 } 12856} ); 12857 12858 12859 12860 12861// Return jQuery for attributes-only inclusion 12862var location = window.location; 12863 12864var nonce = { guid: Date.now() }; 12865 12866var rquery = ( /\?/ ); 12867 12868 12869 12870// Cross-browser xml parsing 12871jQuery.parseXML = function( data ) { 12872 var xml, parserErrorElem; 12873 if ( !data || typeof data !== "string" ) { 12874 return null; 12875 } 12876 12877 // Support: IE 9 - 11 only 12878 // IE throws on parseFromString with invalid input. 12879 try { 12880 xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" ); 12881 } catch ( e ) {} 12882 12883 parserErrorElem = xml && xml.getElementsByTagName( "parsererror" )[ 0 ]; 12884 if ( !xml || parserErrorElem ) { 12885 jQuery.error( "Invalid XML: " + ( 12886 parserErrorElem ? 12887 jQuery.map( parserErrorElem.childNodes, function( el ) { 12888 return el.textContent; 12889 } ).join( "\n" ) : 12890 data 12891 ) ); 12892 } 12893 return xml; 12894}; 12895 12896 12897var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/, 12898 stopPropagationCallback = function( e ) { 12899 e.stopPropagation(); 12900 }; 12901 12902jQuery.extend( jQuery.event, { 12903 12904 trigger: function( event, data, elem, onlyHandlers ) { 12905 12906 var i, cur, tmp, bubbleType, ontype, handle, special, lastElement, 12907 eventPath = [ elem || document ], 12908 type = hasOwn.call( event, "type" ) ? event.type : event, 12909 namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split( "." ) : []; 12910 12911 cur = lastElement = tmp = elem = elem || document; 12912 12913 // Don't do events on text and comment nodes 12914 if ( elem.nodeType === 3 || elem.nodeType === 8 ) { 12915 return; 12916 } 12917 12918 // focus/blur morphs to focusin/out; ensure we're not firing them right now 12919 if ( rfocusMorph.test( type + jQuery.event.triggered ) ) { 12920 return; 12921 } 12922 12923 if ( type.indexOf( "." ) > -1 ) { 12924 12925 // Namespaced trigger; create a regexp to match event type in handle() 12926 namespaces = type.split( "." ); 12927 type = namespaces.shift(); 12928 namespaces.sort(); 12929 } 12930 ontype = type.indexOf( ":" ) < 0 && "on" + type; 12931 12932 // Caller can pass in a jQuery.Event object, Object, or just an event type string 12933 event = event[ jQuery.expando ] ? 12934 event : 12935 new jQuery.Event( type, typeof event === "object" && event ); 12936 12937 // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true) 12938 event.isTrigger = onlyHandlers ? 2 : 3; 12939 event.namespace = namespaces.join( "." ); 12940 event.rnamespace = event.namespace ? 12941 new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ) : 12942 null; 12943 12944 // Clean up the event in case it is being reused 12945 event.result = undefined; 12946 if ( !event.target ) { 12947 event.target = elem; 12948 } 12949 12950 // Clone any incoming data and prepend the event, creating the handler arg list 12951 data = data == null ? 12952 [ event ] : 12953 jQuery.makeArray( data, [ event ] ); 12954 12955 // Allow special events to draw outside the lines 12956 special = jQuery.event.special[ type ] || {}; 12957 if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) { 12958 return; 12959 } 12960 12961 // Determine event propagation path in advance, per W3C events spec (trac-9951) 12962 // Bubble up to document, then to window; watch for a global ownerDocument var (trac-9724) 12963 if ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) { 12964 12965 bubbleType = special.delegateType || type; 12966 if ( !rfocusMorph.test( bubbleType + type ) ) { 12967 cur = cur.parentNode; 12968 } 12969 for ( ; cur; cur = cur.parentNode ) { 12970 eventPath.push( cur ); 12971 tmp = cur; 12972 } 12973 12974 // Only add window if we got to document (e.g., not plain obj or detached DOM) 12975 if ( tmp === ( elem.ownerDocument || document ) ) { 12976 eventPath.push( tmp.defaultView || tmp.parentWindow || window ); 12977 } 12978 } 12979 12980 // Fire handlers on the event path 12981 i = 0; 12982 while ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) { 12983 lastElement = cur; 12984 event.type = i > 1 ? 12985 bubbleType : 12986 special.bindType || type; 12987 12988 // jQuery handler 12989 handle = ( dataPriv.get( cur, "events" ) || Object.create( null ) )[ event.type ] && 12990 dataPriv.get( cur, "handle" ); 12991 if ( handle ) { 12992 handle.apply( cur, data ); 12993 } 12994 12995 // Native handler 12996 handle = ontype && cur[ ontype ]; 12997 if ( handle && handle.apply && acceptData( cur ) ) { 12998 event.result = handle.apply( cur, data ); 12999 if ( event.result === false ) { 13000 event.preventDefault(); 13001 } 13002 } 13003 } 13004 event.type = type; 13005 13006 // If nobody prevented the default action, do it now 13007 if ( !onlyHandlers && !event.isDefaultPrevented() ) { 13008 13009 if ( ( !special._default || 13010 special._default.apply( eventPath.pop(), data ) === false ) && 13011 acceptData( elem ) ) { 13012 13013 // Call a native DOM method on the target with the same name as the event. 13014 // Don't do default actions on window, that's where global variables be (trac-6170) 13015 if ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) { 13016 13017 // Don't re-trigger an onFOO event when we call its FOO() method 13018 tmp = elem[ ontype ]; 13019 13020 if ( tmp ) { 13021 elem[ ontype ] = null; 13022 } 13023 13024 // Prevent re-triggering of the same event, since we already bubbled it above 13025 jQuery.event.triggered = type; 13026 13027 if ( event.isPropagationStopped() ) { 13028 lastElement.addEventListener( type, stopPropagationCallback ); 13029 } 13030 13031 elem[ type ](); 13032 13033 if ( event.isPropagationStopped() ) { 13034 lastElement.removeEventListener( type, stopPropagationCallback ); 13035 } 13036 13037 jQuery.event.triggered = undefined; 13038 13039 if ( tmp ) { 13040 elem[ ontype ] = tmp; 13041 } 13042 } 13043 } 13044 } 13045 13046 return event.result; 13047 }, 13048 13049 // Piggyback on a donor event to simulate a different one 13050 // Used only for `focus(in | out)` events 13051 simulate: function( type, elem, event ) { 13052 var e = jQuery.extend( 13053 new jQuery.Event(), 13054 event, 13055 { 13056 type: type, 13057 isSimulated: true 13058 } 13059 ); 13060 13061 jQuery.event.trigger( e, null, elem ); 13062 } 13063 13064} ); 13065 13066jQuery.fn.extend( { 13067 13068 trigger: function( type, data ) { 13069 return this.each( function() { 13070 jQuery.event.trigger( type, data, this ); 13071 } ); 13072 }, 13073 triggerHandler: function( type, data ) { 13074 var elem = this[ 0 ]; 13075 if ( elem ) { 13076 return jQuery.event.trigger( type, data, elem, true ); 13077 } 13078 } 13079} ); 13080 13081 13082var 13083 rbracket = /\[\]$/, 13084 rCRLF = /\r?\n/g, 13085 rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i, 13086 rsubmittable = /^(?:input|select|textarea|keygen)/i; 13087 13088function buildParams( prefix, obj, traditional, add ) { 13089 var name; 13090 13091 if ( Array.isArray( obj ) ) { 13092 13093 // Serialize array item. 13094 jQuery.each( obj, function( i, v ) { 13095 if ( traditional || rbracket.test( prefix ) ) { 13096 13097 // Treat each array item as a scalar. 13098 add( prefix, v ); 13099 13100 } else { 13101 13102 // Item is non-scalar (array or object), encode its numeric index. 13103 buildParams( 13104 prefix + "[" + ( typeof v === "object" && v != null ? i : "" ) + "]", 13105 v, 13106 traditional, 13107 add 13108 ); 13109 } 13110 } ); 13111 13112 } else if ( !traditional && toType( obj ) === "object" ) { 13113 13114 // Serialize object item. 13115 for ( name in obj ) { 13116 buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add ); 13117 } 13118 13119 } else { 13120 13121 // Serialize scalar item. 13122 add( prefix, obj ); 13123 } 13124} 13125 13126// Serialize an array of form elements or a set of 13127// key/values into a query string 13128jQuery.param = function( a, traditional ) { 13129 var prefix, 13130 s = [], 13131 add = function( key, valueOrFunction ) { 13132 13133 // If value is a function, invoke it and use its return value 13134 var value = isFunction( valueOrFunction ) ? 13135 valueOrFunction() : 13136 valueOrFunction; 13137 13138 s[ s.length ] = encodeURIComponent( key ) + "=" + 13139 encodeURIComponent( value == null ? "" : value ); 13140 }; 13141 13142 if ( a == null ) { 13143 return ""; 13144 } 13145 13146 // If an array was passed in, assume that it is an array of form elements. 13147 if ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) { 13148 13149 // Serialize the form elements 13150 jQuery.each( a, function() { 13151 add( this.name, this.value ); 13152 } ); 13153 13154 } else { 13155 13156 // If traditional, encode the "old" way (the way 1.3.2 or older 13157 // did it), otherwise encode params recursively. 13158 for ( prefix in a ) { 13159 buildParams( prefix, a[ prefix ], traditional, add ); 13160 } 13161 } 13162 13163 // Return the resulting serialization 13164 return s.join( "&" ); 13165}; 13166 13167jQuery.fn.extend( { 13168 serialize: function() { 13169 return jQuery.param( this.serializeArray() ); 13170 }, 13171 serializeArray: function() { 13172 return this.map( function() { 13173 13174 // Can add propHook for "elements" to filter or add form elements 13175 var elements = jQuery.prop( this, "elements" ); 13176 return elements ? jQuery.makeArray( elements ) : this; 13177 } ).filter( function() { 13178 var type = this.type; 13179 13180 // Use .is( ":disabled" ) so that fieldset[disabled] works 13181 return this.name && !jQuery( this ).is( ":disabled" ) && 13182 rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) && 13183 ( this.checked || !rcheckableType.test( type ) ); 13184 } ).map( function( _i, elem ) { 13185 var val = jQuery( this ).val(); 13186 13187 if ( val == null ) { 13188 return null; 13189 } 13190 13191 if ( Array.isArray( val ) ) { 13192 return jQuery.map( val, function( val ) { 13193 return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; 13194 } ); 13195 } 13196 13197 return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; 13198 } ).get(); 13199 } 13200} ); 13201 13202 13203var 13204 r20 = /%20/g, 13205 rhash = /#.*$/, 13206 rantiCache = /([?&])_=[^&]*/, 13207 rheaders = /^(.*?):[ \t]*([^\r\n]*)$/mg, 13208 13209 // trac-7653, trac-8125, trac-8152: local protocol detection 13210 rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/, 13211 rnoContent = /^(?:GET|HEAD)$/, 13212 rprotocol = /^\/\//, 13213 13214 /* Prefilters 13215 * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example) 13216 * 2) These are called: 13217 * - BEFORE asking for a transport 13218 * - AFTER param serialization (s.data is a string if s.processData is true) 13219 * 3) key is the dataType 13220 * 4) the catchall symbol "*" can be used 13221 * 5) execution will start with transport dataType and THEN continue down to "*" if needed 13222 */ 13223 prefilters = {}, 13224 13225 /* Transports bindings 13226 * 1) key is the dataType 13227 * 2) the catchall symbol "*" can be used 13228 * 3) selection will start with transport dataType and THEN go to "*" if needed 13229 */ 13230 transports = {}, 13231 13232 // Avoid comment-prolog char sequence (trac-10098); must appease lint and evade compression 13233 allTypes = "*/".concat( "*" ), 13234 13235 // Anchor tag for parsing the document origin 13236 originAnchor = document.createElement( "a" ); 13237 13238originAnchor.href = location.href; 13239 13240// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport 13241function addToPrefiltersOrTransports( structure ) { 13242 13243 // dataTypeExpression is optional and defaults to "*" 13244 return function( dataTypeExpression, func ) { 13245 13246 if ( typeof dataTypeExpression !== "string" ) { 13247 func = dataTypeExpression; 13248 dataTypeExpression = "*"; 13249 } 13250 13251 var dataType, 13252 i = 0, 13253 dataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || []; 13254 13255 if ( isFunction( func ) ) { 13256 13257 // For each dataType in the dataTypeExpression 13258 while ( ( dataType = dataTypes[ i++ ] ) ) { 13259 13260 // Prepend if requested 13261 if ( dataType[ 0 ] === "+" ) { 13262 dataType = dataType.slice( 1 ) || "*"; 13263 ( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func ); 13264 13265 // Otherwise append 13266 } else { 13267 ( structure[ dataType ] = structure[ dataType ] || [] ).push( func ); 13268 } 13269 } 13270 } 13271 }; 13272} 13273 13274// Base inspection function for prefilters and transports 13275function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) { 13276 13277 var inspected = {}, 13278 seekingTransport = ( structure === transports ); 13279 13280 function inspect( dataType ) { 13281 var selected; 13282 inspected[ dataType ] = true; 13283 jQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) { 13284 var dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR ); 13285 if ( typeof dataTypeOrTransport === "string" && 13286 !seekingTransport && !inspected[ dataTypeOrTransport ] ) { 13287 13288 options.dataTypes.unshift( dataTypeOrTransport ); 13289 inspect( dataTypeOrTransport ); 13290 return false; 13291 } else if ( seekingTransport ) { 13292 return !( selected = dataTypeOrTransport ); 13293 } 13294 } ); 13295 return selected; 13296 } 13297 13298 return inspect( options.dataTypes[ 0 ] ) || !inspected[ "*" ] && inspect( "*" ); 13299} 13300 13301// A special extend for ajax options 13302// that takes "flat" options (not to be deep extended) 13303// Fixes trac-9887 13304function ajaxExtend( target, src ) { 13305 var key, deep, 13306 flatOptions = jQuery.ajaxSettings.flatOptions || {}; 13307 13308 for ( key in src ) { 13309 if ( src[ key ] !== undefined ) { 13310 ( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ]; 13311 } 13312 } 13313 if ( deep ) { 13314 jQuery.extend( true, target, deep ); 13315 } 13316 13317 return target; 13318} 13319 13320/* Handles responses to an ajax request: 13321 * - finds the right dataType (mediates between content-type and expected dataType) 13322 * - returns the corresponding response 13323 */ 13324function ajaxHandleResponses( s, jqXHR, responses ) { 13325 13326 var ct, type, finalDataType, firstDataType, 13327 contents = s.contents, 13328 dataTypes = s.dataTypes; 13329 13330 // Remove auto dataType and get content-type in the process 13331 while ( dataTypes[ 0 ] === "*" ) { 13332 dataTypes.shift(); 13333 if ( ct === undefined ) { 13334 ct = s.mimeType || jqXHR.getResponseHeader( "Content-Type" ); 13335 } 13336 } 13337 13338 // Check if we're dealing with a known content-type 13339 if ( ct ) { 13340 for ( type in contents ) { 13341 if ( contents[ type ] && contents[ type ].test( ct ) ) { 13342 dataTypes.unshift( type ); 13343 break; 13344 } 13345 } 13346 } 13347 13348 // Check to see if we have a response for the expected dataType 13349 if ( dataTypes[ 0 ] in responses ) { 13350 finalDataType = dataTypes[ 0 ]; 13351 } else { 13352 13353 // Try convertible dataTypes 13354 for ( type in responses ) { 13355 if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[ 0 ] ] ) { 13356 finalDataType = type; 13357 break; 13358 } 13359 if ( !firstDataType ) { 13360 firstDataType = type; 13361 } 13362 } 13363 13364 // Or just use first one 13365 finalDataType = finalDataType || firstDataType; 13366 } 13367 13368 // If we found a dataType 13369 // We add the dataType to the list if needed 13370 // and return the corresponding response 13371 if ( finalDataType ) { 13372 if ( finalDataType !== dataTypes[ 0 ] ) { 13373 dataTypes.unshift( finalDataType ); 13374 } 13375 return responses[ finalDataType ]; 13376 } 13377} 13378 13379/* Chain conversions given the request and the original response 13380 * Also sets the responseXXX fields on the jqXHR instance 13381 */ 13382function ajaxConvert( s, response, jqXHR, isSuccess ) { 13383 var conv2, current, conv, tmp, prev, 13384 converters = {}, 13385 13386 // Work with a copy of dataTypes in case we need to modify it for conversion 13387 dataTypes = s.dataTypes.slice(); 13388 13389 // Create converters map with lowercased keys 13390 if ( dataTypes[ 1 ] ) { 13391 for ( conv in s.converters ) { 13392 converters[ conv.toLowerCase() ] = s.converters[ conv ]; 13393 } 13394 } 13395 13396 current = dataTypes.shift(); 13397 13398 // Convert to each sequential dataType 13399 while ( current ) { 13400 13401 if ( s.responseFields[ current ] ) { 13402 jqXHR[ s.responseFields[ current ] ] = response; 13403 } 13404 13405 // Apply the dataFilter if provided 13406 if ( !prev && isSuccess && s.dataFilter ) { 13407 response = s.dataFilter( response, s.dataType ); 13408 } 13409 13410 prev = current; 13411 current = dataTypes.shift(); 13412 13413 if ( current ) { 13414 13415 // There's only work to do if current dataType is non-auto 13416 if ( current === "*" ) { 13417 13418 current = prev; 13419 13420 // Convert response if prev dataType is non-auto and differs from current 13421 } else if ( prev !== "*" && prev !== current ) { 13422 13423 // Seek a direct converter 13424 conv = converters[ prev + " " + current ] || converters[ "* " + current ]; 13425 13426 // If none found, seek a pair 13427 if ( !conv ) { 13428 for ( conv2 in converters ) { 13429 13430 // If conv2 outputs current 13431 tmp = conv2.split( " " ); 13432 if ( tmp[ 1 ] === current ) { 13433 13434 // If prev can be converted to accepted input 13435 conv = converters[ prev + " " + tmp[ 0 ] ] || 13436 converters[ "* " + tmp[ 0 ] ]; 13437 if ( conv ) { 13438 13439 // Condense equivalence converters 13440 if ( conv === true ) { 13441 conv = converters[ conv2 ]; 13442 13443 // Otherwise, insert the intermediate dataType 13444 } else if ( converters[ conv2 ] !== true ) { 13445 current = tmp[ 0 ]; 13446 dataTypes.unshift( tmp[ 1 ] ); 13447 } 13448 break; 13449 } 13450 } 13451 } 13452 } 13453 13454 // Apply converter (if not an equivalence) 13455 if ( conv !== true ) { 13456 13457 // Unless errors are allowed to bubble, catch and return them 13458 if ( conv && s.throws ) { 13459 response = conv( response ); 13460 } else { 13461 try { 13462 response = conv( response ); 13463 } catch ( e ) { 13464 return { 13465 state: "parsererror", 13466 error: conv ? e : "No conversion from " + prev + " to " + current 13467 }; 13468 } 13469 } 13470 } 13471 } 13472 } 13473 } 13474 13475 return { state: "success", data: response }; 13476} 13477 13478jQuery.extend( { 13479 13480 // Counter for holding the number of active queries 13481 active: 0, 13482 13483 // Last-Modified header cache for next request 13484 lastModified: {}, 13485 etag: {}, 13486 13487 ajaxSettings: { 13488 url: location.href, 13489 type: "GET", 13490 isLocal: rlocalProtocol.test( location.protocol ), 13491 global: true, 13492 processData: true, 13493 async: true, 13494 contentType: "application/x-www-form-urlencoded; charset=UTF-8", 13495 13496 /* 13497 timeout: 0, 13498 data: null, 13499 dataType: null, 13500 username: null, 13501 password: null, 13502 cache: null, 13503 throws: false, 13504 traditional: false, 13505 headers: {}, 13506 */ 13507 13508 accepts: { 13509 "*": allTypes, 13510 text: "text/plain", 13511 html: "text/html", 13512 xml: "application/xml, text/xml", 13513 json: "application/json, text/javascript" 13514 }, 13515 13516 contents: { 13517 xml: /\bxml\b/, 13518 html: /\bhtml/, 13519 json: /\bjson\b/ 13520 }, 13521 13522 responseFields: { 13523 xml: "responseXML", 13524 text: "responseText", 13525 json: "responseJSON" 13526 }, 13527 13528 // Data converters 13529 // Keys separate source (or catchall "*") and destination types with a single space 13530 converters: { 13531 13532 // Convert anything to text 13533 "* text": String, 13534 13535 // Text to html (true = no transformation) 13536 "text html": true, 13537 13538 // Evaluate text as a json expression 13539 "text json": JSON.parse, 13540 13541 // Parse text as xml 13542 "text xml": jQuery.parseXML 13543 }, 13544 13545 // For options that shouldn't be deep extended: 13546 // you can add your own custom options here if 13547 // and when you create one that shouldn't be 13548 // deep extended (see ajaxExtend) 13549 flatOptions: { 13550 url: true, 13551 context: true 13552 } 13553 }, 13554 13555 // Creates a full fledged settings object into target 13556 // with both ajaxSettings and settings fields. 13557 // If target is omitted, writes into ajaxSettings. 13558 ajaxSetup: function( target, settings ) { 13559 return settings ? 13560 13561 // Building a settings object 13562 ajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) : 13563 13564 // Extending ajaxSettings 13565 ajaxExtend( jQuery.ajaxSettings, target ); 13566 }, 13567 13568 ajaxPrefilter: addToPrefiltersOrTransports( prefilters ), 13569 ajaxTransport: addToPrefiltersOrTransports( transports ), 13570 13571 // Main method 13572 ajax: function( url, options ) { 13573 13574 // If url is an object, simulate pre-1.5 signature 13575 if ( typeof url === "object" ) { 13576 options = url; 13577 url = undefined; 13578 } 13579 13580 // Force options to be an object 13581 options = options || {}; 13582 13583 var transport, 13584 13585 // URL without anti-cache param 13586 cacheURL, 13587 13588 // Response headers 13589 responseHeadersString, 13590 responseHeaders, 13591 13592 // timeout handle 13593 timeoutTimer, 13594 13595 // Url cleanup var 13596 urlAnchor, 13597 13598 // Request state (becomes false upon send and true upon completion) 13599 completed, 13600 13601 // To know if global events are to be dispatched 13602 fireGlobals, 13603 13604 // Loop variable 13605 i, 13606 13607 // uncached part of the url 13608 uncached, 13609 13610 // Create the final options object 13611 s = jQuery.ajaxSetup( {}, options ), 13612 13613 // Callbacks context 13614 callbackContext = s.context || s, 13615 13616 // Context for global events is callbackContext if it is a DOM node or jQuery collection 13617 globalEventContext = s.context && 13618 ( callbackContext.nodeType || callbackContext.jquery ) ? 13619 jQuery( callbackContext ) : 13620 jQuery.event, 13621 13622 // Deferreds 13623 deferred = jQuery.Deferred(), 13624 completeDeferred = jQuery.Callbacks( "once memory" ), 13625 13626 // Status-dependent callbacks 13627 statusCode = s.statusCode || {}, 13628 13629 // Headers (they are sent all at once) 13630 requestHeaders = {}, 13631 requestHeadersNames = {}, 13632 13633 // Default abort message 13634 strAbort = "canceled", 13635 13636 // Fake xhr 13637 jqXHR = { 13638 readyState: 0, 13639 13640 // Builds headers hashtable if needed 13641 getResponseHeader: function( key ) { 13642 var match; 13643 if ( completed ) { 13644 if ( !responseHeaders ) { 13645 responseHeaders = {}; 13646 while ( ( match = rheaders.exec( responseHeadersString ) ) ) { 13647 responseHeaders[ match[ 1 ].toLowerCase() + " " ] = 13648 ( responseHeaders[ match[ 1 ].toLowerCase() + " " ] || [] ) 13649 .concat( match[ 2 ] ); 13650 } 13651 } 13652 match = responseHeaders[ key.toLowerCase() + " " ]; 13653 } 13654 return match == null ? null : match.join( ", " ); 13655 }, 13656 13657 // Raw string 13658 getAllResponseHeaders: function() { 13659 return completed ? responseHeadersString : null; 13660 }, 13661 13662 // Caches the header 13663 setRequestHeader: function( name, value ) { 13664 if ( completed == null ) { 13665 name = requestHeadersNames[ name.toLowerCase() ] = 13666 requestHeadersNames[ name.toLowerCase() ] || name; 13667 requestHeaders[ name ] = value; 13668 } 13669 return this; 13670 }, 13671 13672 // Overrides response content-type header 13673 overrideMimeType: function( type ) { 13674 if ( completed == null ) { 13675 s.mimeType = type; 13676 } 13677 return this; 13678 }, 13679 13680 // Status-dependent callbacks 13681 statusCode: function( map ) { 13682 var code; 13683 if ( map ) { 13684 if ( completed ) { 13685 13686 // Execute the appropriate callbacks 13687 jqXHR.always( map[ jqXHR.status ] ); 13688 } else { 13689 13690 // Lazy-add the new callbacks in a way that preserves old ones 13691 for ( code in map ) { 13692 statusCode[ code ] = [ statusCode[ code ], map[ code ] ]; 13693 } 13694 } 13695 } 13696 return this; 13697 }, 13698 13699 // Cancel the request 13700 abort: function( statusText ) { 13701 var finalText = statusText || strAbort; 13702 if ( transport ) { 13703 transport.abort( finalText ); 13704 } 13705 done( 0, finalText ); 13706 return this; 13707 } 13708 }; 13709 13710 // Attach deferreds 13711 deferred.promise( jqXHR ); 13712 13713 // Add protocol if not provided (prefilters might expect it) 13714 // Handle falsy url in the settings object (trac-10093: consistency with old signature) 13715 // We also use the url parameter if available 13716 s.url = ( ( url || s.url || location.href ) + "" ) 13717 .replace( rprotocol, location.protocol + "//" ); 13718 13719 // Alias method option to type as per ticket trac-12004 13720 s.type = options.method || options.type || s.method || s.type; 13721 13722 // Extract dataTypes list 13723 s.dataTypes = ( s.dataType || "*" ).toLowerCase().match( rnothtmlwhite ) || [ "" ]; 13724 13725 // A cross-domain request is in order when the origin doesn't match the current origin. 13726 if ( s.crossDomain == null ) { 13727 urlAnchor = document.createElement( "a" ); 13728 13729 // Support: IE <=8 - 11, Edge 12 - 15 13730 // IE throws exception on accessing the href property if url is malformed, 13731 // e.g. http://example.com:80x/ 13732 try { 13733 urlAnchor.href = s.url; 13734 13735 // Support: IE <=8 - 11 only 13736 // Anchor's host property isn't correctly set when s.url is relative 13737 urlAnchor.href = urlAnchor.href; 13738 s.crossDomain = originAnchor.protocol + "//" + originAnchor.host !== 13739 urlAnchor.protocol + "//" + urlAnchor.host; 13740 } catch ( e ) { 13741 13742 // If there is an error parsing the URL, assume it is crossDomain, 13743 // it can be rejected by the transport if it is invalid 13744 s.crossDomain = true; 13745 } 13746 } 13747 13748 // Convert data if not already a string 13749 if ( s.data && s.processData && typeof s.data !== "string" ) { 13750 s.data = jQuery.param( s.data, s.traditional ); 13751 } 13752 13753 // Apply prefilters 13754 inspectPrefiltersOrTransports( prefilters, s, options, jqXHR ); 13755 13756 // If request was aborted inside a prefilter, stop there 13757 if ( completed ) { 13758 return jqXHR; 13759 } 13760 13761 // We can fire global events as of now if asked to 13762 // Don't fire events if jQuery.event is undefined in an AMD-usage scenario (trac-15118) 13763 fireGlobals = jQuery.event && s.global; 13764 13765 // Watch for a new set of requests 13766 if ( fireGlobals && jQuery.active++ === 0 ) { 13767 jQuery.event.trigger( "ajaxStart" ); 13768 } 13769 13770 // Uppercase the type 13771 s.type = s.type.toUpperCase(); 13772 13773 // Determine if request has content 13774 s.hasContent = !rnoContent.test( s.type ); 13775 13776 // Save the URL in case we're toying with the If-Modified-Since 13777 // and/or If-None-Match header later on 13778 // Remove hash to simplify url manipulation 13779 cacheURL = s.url.replace( rhash, "" ); 13780 13781 // More options handling for requests with no content 13782 if ( !s.hasContent ) { 13783 13784 // Remember the hash so we can put it back 13785 uncached = s.url.slice( cacheURL.length ); 13786 13787 // If data is available and should be processed, append data to url 13788 if ( s.data && ( s.processData || typeof s.data === "string" ) ) { 13789 cacheURL += ( rquery.test( cacheURL ) ? "&" : "?" ) + s.data; 13790 13791 // trac-9682: remove data so that it's not used in an eventual retry 13792 delete s.data; 13793 } 13794 13795 // Add or update anti-cache param if needed 13796 if ( s.cache === false ) { 13797 cacheURL = cacheURL.replace( rantiCache, "$1" ); 13798 uncached = ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ( nonce.guid++ ) + 13799 uncached; 13800 } 13801 13802 // Put hash and anti-cache on the URL that will be requested (gh-1732) 13803 s.url = cacheURL + uncached; 13804 13805 // Change '%20' to '+' if this is encoded form body content (gh-2658) 13806 } else if ( s.data && s.processData && 13807 ( s.contentType || "" ).indexOf( "application/x-www-form-urlencoded" ) === 0 ) { 13808 s.data = s.data.replace( r20, "+" ); 13809 } 13810 13811 // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. 13812 if ( s.ifModified ) { 13813 if ( jQuery.lastModified[ cacheURL ] ) { 13814 jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ cacheURL ] ); 13815 } 13816 if ( jQuery.etag[ cacheURL ] ) { 13817 jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ cacheURL ] ); 13818 } 13819 } 13820 13821 // Set the correct header, if data is being sent 13822 if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) { 13823 jqXHR.setRequestHeader( "Content-Type", s.contentType ); 13824 } 13825 13826 // Set the Accepts header for the server, depending on the dataType 13827 jqXHR.setRequestHeader( 13828 "Accept", 13829 s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ? 13830 s.accepts[ s.dataTypes[ 0 ] ] + 13831 ( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) : 13832 s.accepts[ "*" ] 13833 ); 13834 13835 // Check for headers option 13836 for ( i in s.headers ) { 13837 jqXHR.setRequestHeader( i, s.headers[ i ] ); 13838 } 13839 13840 // Allow custom headers/mimetypes and early abort 13841 if ( s.beforeSend && 13842 ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) { 13843 13844 // Abort if not done already and return 13845 return jqXHR.abort(); 13846 } 13847 13848 // Aborting is no longer a cancellation 13849 strAbort = "abort"; 13850 13851 // Install callbacks on deferreds 13852 completeDeferred.add( s.complete ); 13853 jqXHR.done( s.success ); 13854 jqXHR.fail( s.error ); 13855 13856 // Get transport 13857 transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR ); 13858 13859 // If no transport, we auto-abort 13860 if ( !transport ) { 13861 done( -1, "No Transport" ); 13862 } else { 13863 jqXHR.readyState = 1; 13864 13865 // Send global event 13866 if ( fireGlobals ) { 13867 globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] ); 13868 } 13869 13870 // If request was aborted inside ajaxSend, stop there 13871 if ( completed ) { 13872 return jqXHR; 13873 } 13874 13875 // Timeout 13876 if ( s.async && s.timeout > 0 ) { 13877 timeoutTimer = window.setTimeout( function() { 13878 jqXHR.abort( "timeout" ); 13879 }, s.timeout ); 13880 } 13881 13882 try { 13883 completed = false; 13884 transport.send( requestHeaders, done ); 13885 } catch ( e ) { 13886 13887 // Rethrow post-completion exceptions 13888 if ( completed ) { 13889 throw e; 13890 } 13891 13892 // Propagate others as results 13893 done( -1, e ); 13894 } 13895 } 13896 13897 // Callback for when everything is done 13898 function done( status, nativeStatusText, responses, headers ) { 13899 var isSuccess, success, error, response, modified, 13900 statusText = nativeStatusText; 13901 13902 // Ignore repeat invocations 13903 if ( completed ) { 13904 return; 13905 } 13906 13907 completed = true; 13908 13909 // Clear timeout if it exists 13910 if ( timeoutTimer ) { 13911 window.clearTimeout( timeoutTimer ); 13912 } 13913 13914 // Dereference transport for early garbage collection 13915 // (no matter how long the jqXHR object will be used) 13916 transport = undefined; 13917 13918 // Cache response headers 13919 responseHeadersString = headers || ""; 13920 13921 // Set readyState 13922 jqXHR.readyState = status > 0 ? 4 : 0; 13923 13924 // Determine if successful 13925 isSuccess = status >= 200 && status < 300 || status === 304; 13926 13927 // Get response data 13928 if ( responses ) { 13929 response = ajaxHandleResponses( s, jqXHR, responses ); 13930 } 13931 13932 // Use a noop converter for missing script but not if jsonp 13933 if ( !isSuccess && 13934 jQuery.inArray( "script", s.dataTypes ) > -1 && 13935 jQuery.inArray( "json", s.dataTypes ) < 0 ) { 13936 s.converters[ "text script" ] = function() {}; 13937 } 13938 13939 // Convert no matter what (that way responseXXX fields are always set) 13940 response = ajaxConvert( s, response, jqXHR, isSuccess ); 13941 13942 // If successful, handle type chaining 13943 if ( isSuccess ) { 13944 13945 // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. 13946 if ( s.ifModified ) { 13947 modified = jqXHR.getResponseHeader( "Last-Modified" ); 13948 if ( modified ) { 13949 jQuery.lastModified[ cacheURL ] = modified; 13950 } 13951 modified = jqXHR.getResponseHeader( "etag" ); 13952 if ( modified ) { 13953 jQuery.etag[ cacheURL ] = modified; 13954 } 13955 } 13956 13957 // if no content 13958 if ( status === 204 || s.type === "HEAD" ) { 13959 statusText = "nocontent"; 13960 13961 // if not modified 13962 } else if ( status === 304 ) { 13963 statusText = "notmodified"; 13964 13965 // If we have data, let's convert it 13966 } else { 13967 statusText = response.state; 13968 success = response.data; 13969 error = response.error; 13970 isSuccess = !error; 13971 } 13972 } else { 13973 13974 // Extract error from statusText and normalize for non-aborts 13975 error = statusText; 13976 if ( status || !statusText ) { 13977 statusText = "error"; 13978 if ( status < 0 ) { 13979 status = 0; 13980 } 13981 } 13982 } 13983 13984 // Set data for the fake xhr object 13985 jqXHR.status = status; 13986 jqXHR.statusText = ( nativeStatusText || statusText ) + ""; 13987 13988 // Success/Error 13989 if ( isSuccess ) { 13990 deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] ); 13991 } else { 13992 deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] ); 13993 } 13994 13995 // Status-dependent callbacks 13996 jqXHR.statusCode( statusCode ); 13997 statusCode = undefined; 13998 13999 if ( fireGlobals ) { 14000 globalEventContext.trigger( isSuccess ? "ajaxSuccess" : "ajaxError", 14001 [ jqXHR, s, isSuccess ? success : error ] ); 14002 } 14003 14004 // Complete 14005 completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] ); 14006 14007 if ( fireGlobals ) { 14008 globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] ); 14009 14010 // Handle the global AJAX counter 14011 if ( !( --jQuery.active ) ) { 14012 jQuery.event.trigger( "ajaxStop" ); 14013 } 14014 } 14015 } 14016 14017 return jqXHR; 14018 }, 14019 14020 getJSON: function( url, data, callback ) { 14021 return jQuery.get( url, data, callback, "json" ); 14022 }, 14023 14024 getScript: function( url, callback ) { 14025 return jQuery.get( url, undefined, callback, "script" ); 14026 } 14027} ); 14028 14029jQuery.each( [ "get", "post" ], function( _i, method ) { 14030 jQuery[ method ] = function( url, data, callback, type ) { 14031 14032 // Shift arguments if data argument was omitted 14033 if ( isFunction( data ) ) { 14034 type = type || callback; 14035 callback = data; 14036 data = undefined; 14037 } 14038 14039 // The url can be an options object (which then must have .url) 14040 return jQuery.ajax( jQuery.extend( { 14041 url: url, 14042 type: method, 14043 dataType: type, 14044 data: data, 14045 success: callback 14046 }, jQuery.isPlainObject( url ) && url ) ); 14047 }; 14048} ); 14049 14050jQuery.ajaxPrefilter( function( s ) { 14051 var i; 14052 for ( i in s.headers ) { 14053 if ( i.toLowerCase() === "content-type" ) { 14054 s.contentType = s.headers[ i ] || ""; 14055 } 14056 } 14057} ); 14058 14059 14060jQuery._evalUrl = function( url, options, doc ) { 14061 return jQuery.ajax( { 14062 url: url, 14063 14064 // Make this explicit, since user can override this through ajaxSetup (trac-11264) 14065 type: "GET", 14066 dataType: "script", 14067 cache: true, 14068 async: false, 14069 global: false, 14070 14071 // Only evaluate the response if it is successful (gh-4126) 14072 // dataFilter is not invoked for failure responses, so using it instead 14073 // of the default converter is kludgy but it works. 14074 converters: { 14075 "text script": function() {} 14076 }, 14077 dataFilter: function( response ) { 14078 jQuery.globalEval( response, options, doc ); 14079 } 14080 } ); 14081}; 14082 14083 14084jQuery.fn.extend( { 14085 wrapAll: function( html ) { 14086 var wrap; 14087 14088 if ( this[ 0 ] ) { 14089 if ( isFunction( html ) ) { 14090 html = html.call( this[ 0 ] ); 14091 } 14092 14093 // The elements to wrap the target around 14094 wrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true ); 14095 14096 if ( this[ 0 ].parentNode ) { 14097 wrap.insertBefore( this[ 0 ] ); 14098 } 14099 14100 wrap.map( function() { 14101 var elem = this; 14102 14103 while ( elem.firstElementChild ) { 14104 elem = elem.firstElementChild; 14105 } 14106 14107 return elem; 14108 } ).append( this ); 14109 } 14110 14111 return this; 14112 }, 14113 14114 wrapInner: function( html ) { 14115 if ( isFunction( html ) ) { 14116 return this.each( function( i ) { 14117 jQuery( this ).wrapInner( html.call( this, i ) ); 14118 } ); 14119 } 14120 14121 return this.each( function() { 14122 var self = jQuery( this ), 14123 contents = self.contents(); 14124 14125 if ( contents.length ) { 14126 contents.wrapAll( html ); 14127 14128 } else { 14129 self.append( html ); 14130 } 14131 } ); 14132 }, 14133 14134 wrap: function( html ) { 14135 var htmlIsFunction = isFunction( html ); 14136 14137 return this.each( function( i ) { 14138 jQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html ); 14139 } ); 14140 }, 14141 14142 unwrap: function( selector ) { 14143 this.parent( selector ).not( "body" ).each( function() { 14144 jQuery( this ).replaceWith( this.childNodes ); 14145 } ); 14146 return this; 14147 } 14148} ); 14149 14150 14151jQuery.expr.pseudos.hidden = function( elem ) { 14152 return !jQuery.expr.pseudos.visible( elem ); 14153}; 14154jQuery.expr.pseudos.visible = function( elem ) { 14155 return !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length ); 14156}; 14157 14158 14159 14160 14161jQuery.ajaxSettings.xhr = function() { 14162 try { 14163 return new window.XMLHttpRequest(); 14164 } catch ( e ) {} 14165}; 14166 14167var xhrSuccessStatus = { 14168 14169 // File protocol always yields status code 0, assume 200 14170 0: 200, 14171 14172 // Support: IE <=9 only 14173 // trac-1450: sometimes IE returns 1223 when it should be 204 14174 1223: 204 14175 }, 14176 xhrSupported = jQuery.ajaxSettings.xhr(); 14177 14178support.cors = !!xhrSupported && ( "withCredentials" in xhrSupported ); 14179support.ajax = xhrSupported = !!xhrSupported; 14180 14181jQuery.ajaxTransport( function( options ) { 14182 var callback, errorCallback; 14183 14184 // Cross domain only allowed if supported through XMLHttpRequest 14185 if ( support.cors || xhrSupported && !options.crossDomain ) { 14186 return { 14187 send: function( headers, complete ) { 14188 var i, 14189 xhr = options.xhr(); 14190 14191 xhr.open( 14192 options.type, 14193 options.url, 14194 options.async, 14195 options.username, 14196 options.password 14197 ); 14198 14199 // Apply custom fields if provided 14200 if ( options.xhrFields ) { 14201 for ( i in options.xhrFields ) { 14202 xhr[ i ] = options.xhrFields[ i ]; 14203 } 14204 } 14205 14206 // Override mime type if needed 14207 if ( options.mimeType && xhr.overrideMimeType ) { 14208 xhr.overrideMimeType( options.mimeType ); 14209 } 14210 14211 // X-Requested-With header 14212 // For cross-domain requests, seeing as conditions for a preflight are 14213 // akin to a jigsaw puzzle, we simply never set it to be sure. 14214 // (it can always be set on a per-request basis or even using ajaxSetup) 14215 // For same-domain requests, won't change header if already provided. 14216 if ( !options.crossDomain && !headers[ "X-Requested-With" ] ) { 14217 headers[ "X-Requested-With" ] = "XMLHttpRequest"; 14218 } 14219 14220 // Set headers 14221 for ( i in headers ) { 14222 xhr.setRequestHeader( i, headers[ i ] ); 14223 } 14224 14225 // Callback 14226 callback = function( type ) { 14227 return function() { 14228 if ( callback ) { 14229 callback = errorCallback = xhr.onload = 14230 xhr.onerror = xhr.onabort = xhr.ontimeout = 14231 xhr.onreadystatechange = null; 14232 14233 if ( type === "abort" ) { 14234 xhr.abort(); 14235 } else if ( type === "error" ) { 14236 14237 // Support: IE <=9 only 14238 // On a manual native abort, IE9 throws 14239 // errors on any property access that is not readyState 14240 if ( typeof xhr.status !== "number" ) { 14241 complete( 0, "error" ); 14242 } else { 14243 complete( 14244 14245 // File: protocol always yields status 0; see trac-8605, trac-14207 14246 xhr.status, 14247 xhr.statusText 14248 ); 14249 } 14250 } else { 14251 complete( 14252 xhrSuccessStatus[ xhr.status ] || xhr.status, 14253 xhr.statusText, 14254 14255 // Support: IE <=9 only 14256 // IE9 has no XHR2 but throws on binary (trac-11426) 14257 // For XHR2 non-text, let the caller handle it (gh-2498) 14258 ( xhr.responseType || "text" ) !== "text" || 14259 typeof xhr.responseText !== "string" ? 14260 { binary: xhr.response } : 14261 { text: xhr.responseText }, 14262 xhr.getAllResponseHeaders() 14263 ); 14264 } 14265 } 14266 }; 14267 }; 14268 14269 // Listen to events 14270 xhr.onload = callback(); 14271 errorCallback = xhr.onerror = xhr.ontimeout = callback( "error" ); 14272 14273 // Support: IE 9 only 14274 // Use onreadystatechange to replace onabort 14275 // to handle uncaught aborts 14276 if ( xhr.onabort !== undefined ) { 14277 xhr.onabort = errorCallback; 14278 } else { 14279 xhr.onreadystatechange = function() { 14280 14281 // Check readyState before timeout as it changes 14282 if ( xhr.readyState === 4 ) { 14283 14284 // Allow onerror to be called first, 14285 // but that will not handle a native abort 14286 // Also, save errorCallback to a variable 14287 // as xhr.onerror cannot be accessed 14288 window.setTimeout( function() { 14289 if ( callback ) { 14290 errorCallback(); 14291 } 14292 } ); 14293 } 14294 }; 14295 } 14296 14297 // Create the abort callback 14298 callback = callback( "abort" ); 14299 14300 try { 14301 14302 // Do send the request (this may raise an exception) 14303 xhr.send( options.hasContent && options.data || null ); 14304 } catch ( e ) { 14305 14306 // trac-14683: Only rethrow if this hasn't been notified as an error yet 14307 if ( callback ) { 14308 throw e; 14309 } 14310 } 14311 }, 14312 14313 abort: function() { 14314 if ( callback ) { 14315 callback(); 14316 } 14317 } 14318 }; 14319 } 14320} ); 14321 14322 14323 14324 14325// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432) 14326jQuery.ajaxPrefilter( function( s ) { 14327 if ( s.crossDomain ) { 14328 s.contents.script = false; 14329 } 14330} ); 14331 14332// Install script dataType 14333jQuery.ajaxSetup( { 14334 accepts: { 14335 script: "text/javascript, application/javascript, " + 14336 "application/ecmascript, application/x-ecmascript" 14337 }, 14338 contents: { 14339 script: /\b(?:java|ecma)script\b/ 14340 }, 14341 converters: { 14342 "text script": function( text ) { 14343 jQuery.globalEval( text ); 14344 return text; 14345 } 14346 } 14347} ); 14348 14349// Handle cache's special case and crossDomain 14350jQuery.ajaxPrefilter( "script", function( s ) { 14351 if ( s.cache === undefined ) { 14352 s.cache = false; 14353 } 14354 if ( s.crossDomain ) { 14355 s.type = "GET"; 14356 } 14357} ); 14358 14359// Bind script tag hack transport 14360jQuery.ajaxTransport( "script", function( s ) { 14361 14362 // This transport only deals with cross domain or forced-by-attrs requests 14363 if ( s.crossDomain || s.scriptAttrs ) { 14364 var script, callback; 14365 return { 14366 send: function( _, complete ) { 14367 script = jQuery( "<script>" ) 14368 .attr( s.scriptAttrs || {} ) 14369 .prop( { charset: s.scriptCharset, src: s.url } ) 14370 .on( "load error", callback = function( evt ) { 14371 script.remove(); 14372 callback = null; 14373 if ( evt ) { 14374 complete( evt.type === "error" ? 404 : 200, evt.type ); 14375 } 14376 } ); 14377 14378 // Use native DOM manipulation to avoid our domManip AJAX trickery 14379 document.head.appendChild( script[ 0 ] ); 14380 }, 14381 abort: function() { 14382 if ( callback ) { 14383 callback(); 14384 } 14385 } 14386 }; 14387 } 14388} ); 14389 14390 14391 14392 14393var oldCallbacks = [], 14394 rjsonp = /(=)\?(?=&|$)|\?\?/; 14395 14396// Default jsonp settings 14397jQuery.ajaxSetup( { 14398 jsonp: "callback", 14399 jsonpCallback: function() { 14400 var callback = oldCallbacks.pop() || ( jQuery.expando + "_" + ( nonce.guid++ ) ); 14401 this[ callback ] = true; 14402 return callback; 14403 } 14404} ); 14405 14406// Detect, normalize options and install callbacks for jsonp requests 14407jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) { 14408 14409 var callbackName, overwritten, responseContainer, 14410 jsonProp = s.jsonp !== false && ( rjsonp.test( s.url ) ? 14411 "url" : 14412 typeof s.data === "string" && 14413 ( s.contentType || "" ) 14414 .indexOf( "application/x-www-form-urlencoded" ) === 0 && 14415 rjsonp.test( s.data ) && "data" 14416 ); 14417 14418 // Handle iff the expected data type is "jsonp" or we have a parameter to set 14419 if ( jsonProp || s.dataTypes[ 0 ] === "jsonp" ) { 14420 14421 // Get callback name, remembering preexisting value associated with it 14422 callbackName = s.jsonpCallback = isFunction( s.jsonpCallback ) ? 14423 s.jsonpCallback() : 14424 s.jsonpCallback; 14425 14426 // Insert callback into url or form data 14427 if ( jsonProp ) { 14428 s[ jsonProp ] = s[ jsonProp ].replace( rjsonp, "$1" + callbackName ); 14429 } else if ( s.jsonp !== false ) { 14430 s.url += ( rquery.test( s.url ) ? "&" : "?" ) + s.jsonp + "=" + callbackName; 14431 } 14432 14433 // Use data converter to retrieve json after script execution 14434 s.converters[ "script json" ] = function() { 14435 if ( !responseContainer ) { 14436 jQuery.error( callbackName + " was not called" ); 14437 } 14438 return responseContainer[ 0 ]; 14439 }; 14440 14441 // Force json dataType 14442 s.dataTypes[ 0 ] = "json"; 14443 14444 // Install callback 14445 overwritten = window[ callbackName ]; 14446 window[ callbackName ] = function() { 14447 responseContainer = arguments; 14448 }; 14449 14450 // Clean-up function (fires after converters) 14451 jqXHR.always( function() { 14452 14453 // If previous value didn't exist - remove it 14454 if ( overwritten === undefined ) { 14455 jQuery( window ).removeProp( callbackName ); 14456 14457 // Otherwise restore preexisting value 14458 } else { 14459 window[ callbackName ] = overwritten; 14460 } 14461 14462 // Save back as free 14463 if ( s[ callbackName ] ) { 14464 14465 // Make sure that re-using the options doesn't screw things around 14466 s.jsonpCallback = originalSettings.jsonpCallback; 14467 14468 // Save the callback name for future use 14469 oldCallbacks.push( callbackName ); 14470 } 14471 14472 // Call if it was a function and we have a response 14473 if ( responseContainer && isFunction( overwritten ) ) { 14474 overwritten( responseContainer[ 0 ] ); 14475 } 14476 14477 responseContainer = overwritten = undefined; 14478 } ); 14479 14480 // Delegate to script 14481 return "script"; 14482 } 14483} ); 14484 14485 14486 14487 14488// Support: Safari 8 only 14489// In Safari 8 documents created via document.implementation.createHTMLDocument 14490// collapse sibling forms: the second one becomes a child of the first one. 14491// Because of that, this security measure has to be disabled in Safari 8. 14492// https://bugs.webkit.org/show_bug.cgi?id=137337 14493support.createHTMLDocument = ( function() { 14494 var body = document.implementation.createHTMLDocument( "" ).body; 14495 body.innerHTML = "<form></form><form></form>"; 14496 return body.childNodes.length === 2; 14497} )(); 14498 14499 14500// Argument "data" should be string of html 14501// context (optional): If specified, the fragment will be created in this context, 14502// defaults to document 14503// keepScripts (optional): If true, will include scripts passed in the html string 14504jQuery.parseHTML = function( data, context, keepScripts ) { 14505 if ( typeof data !== "string" ) { 14506 return []; 14507 } 14508 if ( typeof context === "boolean" ) { 14509 keepScripts = context; 14510 context = false; 14511 } 14512 14513 var base, parsed, scripts; 14514 14515 if ( !context ) { 14516 14517 // Stop scripts or inline event handlers from being executed immediately 14518 // by using document.implementation 14519 if ( support.createHTMLDocument ) { 14520 context = document.implementation.createHTMLDocument( "" ); 14521 14522 // Set the base href for the created document 14523 // so any parsed elements with URLs 14524 // are based on the document's URL (gh-2965) 14525 base = context.createElement( "base" ); 14526 base.href = document.location.href; 14527 context.head.appendChild( base ); 14528 } else { 14529 context = document; 14530 } 14531 } 14532 14533 parsed = rsingleTag.exec( data ); 14534 scripts = !keepScripts && []; 14535 14536 // Single tag 14537 if ( parsed ) { 14538 return [ context.createElement( parsed[ 1 ] ) ]; 14539 } 14540 14541 parsed = buildFragment( [ data ], context, scripts ); 14542 14543 if ( scripts && scripts.length ) { 14544 jQuery( scripts ).remove(); 14545 } 14546 14547 return jQuery.merge( [], parsed.childNodes ); 14548}; 14549 14550 14551/** 14552 * Load a url into a page 14553 */ 14554jQuery.fn.load = function( url, params, callback ) { 14555 var selector, type, response, 14556 self = this, 14557 off = url.indexOf( " " ); 14558 14559 if ( off > -1 ) { 14560 selector = stripAndCollapse( url.slice( off ) ); 14561 url = url.slice( 0, off ); 14562 } 14563 14564 // If it's a function 14565 if ( isFunction( params ) ) { 14566 14567 // We assume that it's the callback 14568 callback = params; 14569 params = undefined; 14570 14571 // Otherwise, build a param string 14572 } else if ( params && typeof params === "object" ) { 14573 type = "POST"; 14574 } 14575 14576 // If we have elements to modify, make the request 14577 if ( self.length > 0 ) { 14578 jQuery.ajax( { 14579 url: url, 14580 14581 // If "type" variable is undefined, then "GET" method will be used. 14582 // Make value of this field explicit since 14583 // user can override it through ajaxSetup method 14584 type: type || "GET", 14585 dataType: "html", 14586 data: params 14587 } ).done( function( responseText ) { 14588 14589 // Save response for use in complete callback 14590 response = arguments; 14591 14592 self.html( selector ? 14593 14594 // If a selector was specified, locate the right elements in a dummy div 14595 // Exclude scripts to avoid IE 'Permission Denied' errors 14596 jQuery( "<div>" ).append( jQuery.parseHTML( responseText ) ).find( selector ) : 14597 14598 // Otherwise use the full result 14599 responseText ); 14600 14601 // If the request succeeds, this function gets "data", "status", "jqXHR" 14602 // but they are ignored because response was set above. 14603 // If it fails, this function gets "jqXHR", "status", "error" 14604 } ).always( callback && function( jqXHR, status ) { 14605 self.each( function() { 14606 callback.apply( this, response || [ jqXHR.responseText, status, jqXHR ] ); 14607 } ); 14608 } ); 14609 } 14610 14611 return this; 14612}; 14613 14614 14615 14616 14617jQuery.expr.pseudos.animated = function( elem ) { 14618 return jQuery.grep( jQuery.timers, function( fn ) { 14619 return elem === fn.elem; 14620 } ).length; 14621}; 14622 14623 14624 14625 14626jQuery.offset = { 14627 setOffset: function( elem, options, i ) { 14628 var curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition, 14629 position = jQuery.css( elem, "position" ), 14630 curElem = jQuery( elem ), 14631 props = {}; 14632 14633 // Set position first, in-case top/left are set even on static elem 14634 if ( position === "static" ) { 14635 elem.style.position = "relative"; 14636 } 14637 14638 curOffset = curElem.offset(); 14639 curCSSTop = jQuery.css( elem, "top" ); 14640 curCSSLeft = jQuery.css( elem, "left" ); 14641 calculatePosition = ( position === "absolute" || position === "fixed" ) && 14642 ( curCSSTop + curCSSLeft ).indexOf( "auto" ) > -1; 14643 14644 // Need to be able to calculate position if either 14645 // top or left is auto and position is either absolute or fixed 14646 if ( calculatePosition ) { 14647 curPosition = curElem.position(); 14648 curTop = curPosition.top; 14649 curLeft = curPosition.left; 14650 14651 } else { 14652 curTop = parseFloat( curCSSTop ) || 0; 14653 curLeft = parseFloat( curCSSLeft ) || 0; 14654 } 14655 14656 if ( isFunction( options ) ) { 14657 14658 // Use jQuery.extend here to allow modification of coordinates argument (gh-1848) 14659 options = options.call( elem, i, jQuery.extend( {}, curOffset ) ); 14660 } 14661 14662 if ( options.top != null ) { 14663 props.top = ( options.top - curOffset.top ) + curTop; 14664 } 14665 if ( options.left != null ) { 14666 props.left = ( options.left - curOffset.left ) + curLeft; 14667 } 14668 14669 if ( "using" in options ) { 14670 options.using.call( elem, props ); 14671 14672 } else { 14673 curElem.css( props ); 14674 } 14675 } 14676}; 14677 14678jQuery.fn.extend( { 14679 14680 // offset() relates an element's border box to the document origin 14681 offset: function( options ) { 14682 14683 // Preserve chaining for setter 14684 if ( arguments.length ) { 14685 return options === undefined ? 14686 this : 14687 this.each( function( i ) { 14688 jQuery.offset.setOffset( this, options, i ); 14689 } ); 14690 } 14691 14692 var rect, win, 14693 elem = this[ 0 ]; 14694 14695 if ( !elem ) { 14696 return; 14697 } 14698 14699 // Return zeros for disconnected and hidden (display: none) elements (gh-2310) 14700 // Support: IE <=11 only 14701 // Running getBoundingClientRect on a 14702 // disconnected node in IE throws an error 14703 if ( !elem.getClientRects().length ) { 14704 return { top: 0, left: 0 }; 14705 } 14706 14707 // Get document-relative position by adding viewport scroll to viewport-relative gBCR 14708 rect = elem.getBoundingClientRect(); 14709 win = elem.ownerDocument.defaultView; 14710 return { 14711 top: rect.top + win.pageYOffset, 14712 left: rect.left + win.pageXOffset 14713 }; 14714 }, 14715 14716 // position() relates an element's margin box to its offset parent's padding box 14717 // This corresponds to the behavior of CSS absolute positioning 14718 position: function() { 14719 if ( !this[ 0 ] ) { 14720 return; 14721 } 14722 14723 var offsetParent, offset, doc, 14724 elem = this[ 0 ], 14725 parentOffset = { top: 0, left: 0 }; 14726 14727 // position:fixed elements are offset from the viewport, which itself always has zero offset 14728 if ( jQuery.css( elem, "position" ) === "fixed" ) { 14729 14730 // Assume position:fixed implies availability of getBoundingClientRect 14731 offset = elem.getBoundingClientRect(); 14732 14733 } else { 14734 offset = this.offset(); 14735 14736 // Account for the *real* offset parent, which can be the document or its root element 14737 // when a statically positioned element is identified 14738 doc = elem.ownerDocument; 14739 offsetParent = elem.offsetParent || doc.documentElement; 14740 while ( offsetParent && 14741 ( offsetParent === doc.body || offsetParent === doc.documentElement ) && 14742 jQuery.css( offsetParent, "position" ) === "static" ) { 14743 14744 offsetParent = offsetParent.parentNode; 14745 } 14746 if ( offsetParent && offsetParent !== elem && offsetParent.nodeType === 1 ) { 14747 14748 // Incorporate borders into its offset, since they are outside its content origin 14749 parentOffset = jQuery( offsetParent ).offset(); 14750 parentOffset.top += jQuery.css( offsetParent, "borderTopWidth", true ); 14751 parentOffset.left += jQuery.css( offsetParent, "borderLeftWidth", true ); 14752 } 14753 } 14754 14755 // Subtract parent offsets and element margins 14756 return { 14757 top: offset.top - parentOffset.top - jQuery.css( elem, "marginTop", true ), 14758 left: offset.left - parentOffset.left - jQuery.css( elem, "marginLeft", true ) 14759 }; 14760 }, 14761 14762 // This method will return documentElement in the following cases: 14763 // 1) For the element inside the iframe without offsetParent, this method will return 14764 // documentElement of the parent window 14765 // 2) For the hidden or detached element 14766 // 3) For body or html element, i.e. in case of the html node - it will return itself 14767 // 14768 // but those exceptions were never presented as a real life use-cases 14769 // and might be considered as more preferable results. 14770 // 14771 // This logic, however, is not guaranteed and can change at any point in the future 14772 offsetParent: function() { 14773 return this.map( function() { 14774 var offsetParent = this.offsetParent; 14775 14776 while ( offsetParent && jQuery.css( offsetParent, "position" ) === "static" ) { 14777 offsetParent = offsetParent.offsetParent; 14778 } 14779 14780 return offsetParent || documentElement; 14781 } ); 14782 } 14783} ); 14784 14785// Create scrollLeft and scrollTop methods 14786jQuery.each( { scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, function( method, prop ) { 14787 var top = "pageYOffset" === prop; 14788 14789 jQuery.fn[ method ] = function( val ) { 14790 return access( this, function( elem, method, val ) { 14791 14792 // Coalesce documents and windows 14793 var win; 14794 if ( isWindow( elem ) ) { 14795 win = elem; 14796 } else if ( elem.nodeType === 9 ) { 14797 win = elem.defaultView; 14798 } 14799 14800 if ( val === undefined ) { 14801 return win ? win[ prop ] : elem[ method ]; 14802 } 14803 14804 if ( win ) { 14805 win.scrollTo( 14806 !top ? val : win.pageXOffset, 14807 top ? val : win.pageYOffset 14808 ); 14809 14810 } else { 14811 elem[ method ] = val; 14812 } 14813 }, method, val, arguments.length ); 14814 }; 14815} ); 14816 14817// Support: Safari <=7 - 9.1, Chrome <=37 - 49 14818// Add the top/left cssHooks using jQuery.fn.position 14819// Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084 14820// Blink bug: https://bugs.chromium.org/p/chromium/issues/detail?id=589347 14821// getComputedStyle returns percent when specified for top/left/bottom/right; 14822// rather than make the css module depend on the offset module, just check for it here 14823jQuery.each( [ "top", "left" ], function( _i, prop ) { 14824 jQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition, 14825 function( elem, computed ) { 14826 if ( computed ) { 14827 computed = curCSS( elem, prop ); 14828 14829 // If curCSS returns percentage, fallback to offset 14830 return rnumnonpx.test( computed ) ? 14831 jQuery( elem ).position()[ prop ] + "px" : 14832 computed; 14833 } 14834 } 14835 ); 14836} ); 14837 14838 14839// Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods 14840jQuery.each( { Height: "height", Width: "width" }, function( name, type ) { 14841 jQuery.each( { 14842 padding: "inner" + name, 14843 content: type, 14844 "": "outer" + name 14845 }, function( defaultExtra, funcName ) { 14846 14847 // Margin is only for outerHeight, outerWidth 14848 jQuery.fn[ funcName ] = function( margin, value ) { 14849 var chainable = arguments.length && ( defaultExtra || typeof margin !== "boolean" ), 14850 extra = defaultExtra || ( margin === true || value === true ? "margin" : "border" ); 14851 14852 return access( this, function( elem, type, value ) { 14853 var doc; 14854 14855 if ( isWindow( elem ) ) { 14856 14857 // $( window ).outerWidth/Height return w/h including scrollbars (gh-1729) 14858 return funcName.indexOf( "outer" ) === 0 ? 14859 elem[ "inner" + name ] : 14860 elem.document.documentElement[ "client" + name ]; 14861 } 14862 14863 // Get document width or height 14864 if ( elem.nodeType === 9 ) { 14865 doc = elem.documentElement; 14866 14867 // Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height], 14868 // whichever is greatest 14869 return Math.max( 14870 elem.body[ "scroll" + name ], doc[ "scroll" + name ], 14871 elem.body[ "offset" + name ], doc[ "offset" + name ], 14872 doc[ "client" + name ] 14873 ); 14874 } 14875 14876 return value === undefined ? 14877 14878 // Get width or height on the element, requesting but not forcing parseFloat 14879 jQuery.css( elem, type, extra ) : 14880 14881 // Set width or height on the element 14882 jQuery.style( elem, type, value, extra ); 14883 }, type, chainable ? margin : undefined, chainable ); 14884 }; 14885 } ); 14886} ); 14887 14888 14889jQuery.each( [ 14890 "ajaxStart", 14891 "ajaxStop", 14892 "ajaxComplete", 14893 "ajaxError", 14894 "ajaxSuccess", 14895 "ajaxSend" 14896], function( _i, type ) { 14897 jQuery.fn[ type ] = function( fn ) { 14898 return this.on( type, fn ); 14899 }; 14900} ); 14901 14902 14903 14904 14905jQuery.fn.extend( { 14906 14907 bind: function( types, data, fn ) { 14908 return this.on( types, null, data, fn ); 14909 }, 14910 unbind: function( types, fn ) { 14911 return this.off( types, null, fn ); 14912 }, 14913 14914 delegate: function( selector, types, data, fn ) { 14915 return this.on( types, selector, data, fn ); 14916 }, 14917 undelegate: function( selector, types, fn ) { 14918 14919 // ( namespace ) or ( selector, types [, fn] ) 14920 return arguments.length === 1 ? 14921 this.off( selector, "**" ) : 14922 this.off( types, selector || "**", fn ); 14923 }, 14924 14925 hover: function( fnOver, fnOut ) { 14926 return this 14927 .on( "mouseenter", fnOver ) 14928 .on( "mouseleave", fnOut || fnOver ); 14929 } 14930} ); 14931 14932jQuery.each( 14933 ( "blur focus focusin focusout resize scroll click dblclick " + 14934 "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " + 14935 "change select submit keydown keypress keyup contextmenu" ).split( " " ), 14936 function( _i, name ) { 14937 14938 // Handle event binding 14939 jQuery.fn[ name ] = function( data, fn ) { 14940 return arguments.length > 0 ? 14941 this.on( name, null, data, fn ) : 14942 this.trigger( name ); 14943 }; 14944 } 14945); 14946 14947 14948 14949 14950// Support: Android <=4.0 only 14951// Make sure we trim BOM and NBSP 14952// Require that the "whitespace run" starts from a non-whitespace 14953// to avoid O(N^2) behavior when the engine would try matching "\s+$" at each space position. 14954var rtrim = /^[\s\uFEFF\xA0]+|([^\s\uFEFF\xA0])[\s\uFEFF\xA0]+$/g; 14955 14956// Bind a function to a context, optionally partially applying any 14957// arguments. 14958// jQuery.proxy is deprecated to promote standards (specifically Function#bind) 14959// However, it is not slated for removal any time soon 14960jQuery.proxy = function( fn, context ) { 14961 var tmp, args, proxy; 14962 14963 if ( typeof context === "string" ) { 14964 tmp = fn[ context ]; 14965 context = fn; 14966 fn = tmp; 14967 } 14968 14969 // Quick check to determine if target is callable, in the spec 14970 // this throws a TypeError, but we will just return undefined. 14971 if ( !isFunction( fn ) ) { 14972 return undefined; 14973 } 14974 14975 // Simulated bind 14976 args = slice.call( arguments, 2 ); 14977 proxy = function() { 14978 return fn.apply( context || this, args.concat( slice.call( arguments ) ) ); 14979 }; 14980 14981 // Set the guid of unique handler to the same of original handler, so it can be removed 14982 proxy.guid = fn.guid = fn.guid || jQuery.guid++; 14983 14984 return proxy; 14985}; 14986 14987jQuery.holdReady = function( hold ) { 14988 if ( hold ) { 14989 jQuery.readyWait++; 14990 } else { 14991 jQuery.ready( true ); 14992 } 14993}; 14994jQuery.isArray = Array.isArray; 14995jQuery.parseJSON = JSON.parse; 14996jQuery.nodeName = nodeName; 14997jQuery.isFunction = isFunction; 14998jQuery.isWindow = isWindow; 14999jQuery.camelCase = camelCase; 15000jQuery.type = toType; 15001 15002jQuery.now = Date.now; 15003 15004jQuery.isNumeric = function( obj ) { 15005 15006 // As of jQuery 3.0, isNumeric is limited to 15007 // strings and numbers (primitives or objects) 15008 // that can be coerced to finite numbers (gh-2662) 15009 var type = jQuery.type( obj ); 15010 return ( type === "number" || type === "string" ) && 15011 15012 // parseFloat NaNs numeric-cast false positives ("") 15013 // ...but misinterprets leading-number strings, particularly hex literals ("0x...") 15014 // subtraction forces infinities to NaN 15015 !isNaN( obj - parseFloat( obj ) ); 15016}; 15017 15018jQuery.trim = function( text ) { 15019 return text == null ? 15020 "" : 15021 ( text + "" ).replace( rtrim, "$1" ); 15022}; 15023 15024 15025 15026// Register as a named AMD module, since jQuery can be concatenated with other 15027// files that may use define, but not via a proper concatenation script that 15028// understands anonymous AMD modules. A named AMD is safest and most robust 15029// way to register. Lowercase jquery is used because AMD module names are 15030// derived from file names, and jQuery is normally delivered in a lowercase 15031// file name. Do this after creating the global so that if an AMD module wants 15032// to call noConflict to hide this version of jQuery, it will work. 15033 15034// Note that for maximum portability, libraries that are not jQuery should 15035// declare themselves as anonymous modules, and avoid setting a global if an 15036// AMD loader is present. jQuery is a special case. For more information, see 15037// https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon 15038 15039if ( true ) { 15040 !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = (function() { 15041 return jQuery; 15042 }).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), 15043 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); 15044} 15045 15046 15047 15048 15049var 15050 15051 // Map over jQuery in case of overwrite 15052 _jQuery = window.jQuery, 15053 15054 // Map over the $ in case of overwrite 15055 _$ = window.$; 15056 15057jQuery.noConflict = function( deep ) { 15058 if ( window.$ === jQuery ) { 15059 window.$ = _$; 15060 } 15061 15062 if ( deep && window.jQuery === jQuery ) { 15063 window.jQuery = _jQuery; 15064 } 15065 15066 return jQuery; 15067}; 15068 15069// Expose jQuery and $ identifiers, even in AMD 15070// (trac-7102#comment:10, https://github.com/jquery/jquery/pull/557) 15071// and CommonJS for browser emulators (trac-13566) 15072if ( typeof noGlobal === "undefined" ) { 15073 window.jQuery = window.$ = jQuery; 15074} 15075 15076 15077 15078 15079return jQuery; 15080} ); 15081 15082 15083/***/ }), 15084 15085/***/ "./node_modules/moment/locale sync recursive ^\\.\\/.*$": 15086/*!***************************************************!*\ 15087 !*** ./node_modules/moment/locale/ sync ^\.\/.*$ ***! 15088 \***************************************************/ 15089/***/ ((module, __unused_webpack_exports, __webpack_require__) => { 15090 15091var map = { 15092 "./af": "./node_modules/moment/locale/af.js", 15093 "./af.js": "./node_modules/moment/locale/af.js", 15094 "./ar": "./node_modules/moment/locale/ar.js", 15095 "./ar-dz": "./node_modules/moment/locale/ar-dz.js", 15096 "./ar-dz.js": "./node_modules/moment/locale/ar-dz.js", 15097 "./ar-kw": "./node_modules/moment/locale/ar-kw.js", 15098 "./ar-kw.js": "./node_modules/moment/locale/ar-kw.js", 15099 "./ar-ly": "./node_modules/moment/locale/ar-ly.js", 15100 "./ar-ly.js": "./node_modules/moment/locale/ar-ly.js", 15101 "./ar-ma": "./node_modules/moment/locale/ar-ma.js", 15102 "./ar-ma.js": "./node_modules/moment/locale/ar-ma.js", 15103 "./ar-ps": "./node_modules/moment/locale/ar-ps.js", 15104 "./ar-ps.js": "./node_modules/moment/locale/ar-ps.js", 15105 "./ar-sa": "./node_modules/moment/locale/ar-sa.js", 15106 "./ar-sa.js": "./node_modules/moment/locale/ar-sa.js", 15107 "./ar-tn": "./node_modules/moment/locale/ar-tn.js", 15108 "./ar-tn.js": "./node_modules/moment/locale/ar-tn.js", 15109 "./ar.js": "./node_modules/moment/locale/ar.js", 15110 "./az": "./node_modules/moment/locale/az.js", 15111 "./az.js": "./node_modules/moment/locale/az.js", 15112 "./be": "./node_modules/moment/locale/be.js", 15113 "./be.js": "./node_modules/moment/locale/be.js", 15114 "./bg": "./node_modules/moment/locale/bg.js", 15115 "./bg.js": "./node_modules/moment/locale/bg.js", 15116 "./bm": "./node_modules/moment/locale/bm.js", 15117 "./bm.js": "./node_modules/moment/locale/bm.js", 15118 "./bn": "./node_modules/moment/locale/bn.js", 15119 "./bn-bd": "./node_modules/moment/locale/bn-bd.js", 15120 "./bn-bd.js": "./node_modules/moment/locale/bn-bd.js", 15121 "./bn.js": "./node_modules/moment/locale/bn.js", 15122 "./bo": "./node_modules/moment/locale/bo.js", 15123 "./bo.js": "./node_modules/moment/locale/bo.js", 15124 "./br": "./node_modules/moment/locale/br.js", 15125 "./br.js": "./node_modules/moment/locale/br.js", 15126 "./bs": "./node_modules/moment/locale/bs.js", 15127 "./bs.js": "./node_modules/moment/locale/bs.js", 15128 "./ca": "./node_modules/moment/locale/ca.js", 15129 "./ca.js": "./node_modules/moment/locale/ca.js", 15130 "./cs": "./node_modules/moment/locale/cs.js", 15131 "./cs.js": "./node_modules/moment/locale/cs.js", 15132 "./cv": "./node_modules/moment/locale/cv.js", 15133 "./cv.js": "./node_modules/moment/locale/cv.js", 15134 "./cy": "./node_modules/moment/locale/cy.js", 15135 "./cy.js": "./node_modules/moment/locale/cy.js", 15136 "./da": "./node_modules/moment/locale/da.js", 15137 "./da.js": "./node_modules/moment/locale/da.js", 15138 "./de": "./node_modules/moment/locale/de.js", 15139 "./de-at": "./node_modules/moment/locale/de-at.js", 15140 "./de-at.js": "./node_modules/moment/locale/de-at.js", 15141 "./de-ch": "./node_modules/moment/locale/de-ch.js", 15142 "./de-ch.js": "./node_modules/moment/locale/de-ch.js", 15143 "./de.js": "./node_modules/moment/locale/de.js", 15144 "./dv": "./node_modules/moment/locale/dv.js", 15145 "./dv.js": "./node_modules/moment/locale/dv.js", 15146 "./el": "./node_modules/moment/locale/el.js", 15147 "./el.js": "./node_modules/moment/locale/el.js", 15148 "./en-au": "./node_modules/moment/locale/en-au.js", 15149 "./en-au.js": "./node_modules/moment/locale/en-au.js", 15150 "./en-ca": "./node_modules/moment/locale/en-ca.js", 15151 "./en-ca.js": "./node_modules/moment/locale/en-ca.js", 15152 "./en-gb": "./node_modules/moment/locale/en-gb.js", 15153 "./en-gb.js": "./node_modules/moment/locale/en-gb.js", 15154 "./en-ie": "./node_modules/moment/locale/en-ie.js", 15155 "./en-ie.js": "./node_modules/moment/locale/en-ie.js", 15156 "./en-il": "./node_modules/moment/locale/en-il.js", 15157 "./en-il.js": "./node_modules/moment/locale/en-il.js", 15158 "./en-in": "./node_modules/moment/locale/en-in.js", 15159 "./en-in.js": "./node_modules/moment/locale/en-in.js", 15160 "./en-nz": "./node_modules/moment/locale/en-nz.js", 15161 "./en-nz.js": "./node_modules/moment/locale/en-nz.js", 15162 "./en-sg": "./node_modules/moment/locale/en-sg.js", 15163 "./en-sg.js": "./node_modules/moment/locale/en-sg.js", 15164 "./eo": "./node_modules/moment/locale/eo.js", 15165 "./eo.js": "./node_modules/moment/locale/eo.js", 15166 "./es": "./node_modules/moment/locale/es.js", 15167 "./es-do": "./node_modules/moment/locale/es-do.js", 15168 "./es-do.js": "./node_modules/moment/locale/es-do.js", 15169 "./es-mx": "./node_modules/moment/locale/es-mx.js", 15170 "./es-mx.js": "./node_modules/moment/locale/es-mx.js", 15171 "./es-us": "./node_modules/moment/locale/es-us.js", 15172 "./es-us.js": "./node_modules/moment/locale/es-us.js", 15173 "./es.js": "./node_modules/moment/locale/es.js", 15174 "./et": "./node_modules/moment/locale/et.js", 15175 "./et.js": "./node_modules/moment/locale/et.js", 15176 "./eu": "./node_modules/moment/locale/eu.js", 15177 "./eu.js": "./node_modules/moment/locale/eu.js", 15178 "./fa": "./node_modules/moment/locale/fa.js", 15179 "./fa.js": "./node_modules/moment/locale/fa.js", 15180 "./fi": "./node_modules/moment/locale/fi.js", 15181 "./fi.js": "./node_modules/moment/locale/fi.js", 15182 "./fil": "./node_modules/moment/locale/fil.js", 15183 "./fil.js": "./node_modules/moment/locale/fil.js", 15184 "./fo": "./node_modules/moment/locale/fo.js", 15185 "./fo.js": "./node_modules/moment/locale/fo.js", 15186 "./fr": "./node_modules/moment/locale/fr.js", 15187 "./fr-ca": "./node_modules/moment/locale/fr-ca.js", 15188 "./fr-ca.js": "./node_modules/moment/locale/fr-ca.js", 15189 "./fr-ch": "./node_modules/moment/locale/fr-ch.js", 15190 "./fr-ch.js": "./node_modules/moment/locale/fr-ch.js", 15191 "./fr.js": "./node_modules/moment/locale/fr.js", 15192 "./fy": "./node_modules/moment/locale/fy.js", 15193 "./fy.js": "./node_modules/moment/locale/fy.js", 15194 "./ga": "./node_modules/moment/locale/ga.js", 15195 "./ga.js": "./node_modules/moment/locale/ga.js", 15196 "./gd": "./node_modules/moment/locale/gd.js", 15197 "./gd.js": "./node_modules/moment/locale/gd.js", 15198 "./gl": "./node_modules/moment/locale/gl.js", 15199 "./gl.js": "./node_modules/moment/locale/gl.js", 15200 "./gom-deva": "./node_modules/moment/locale/gom-deva.js", 15201 "./gom-deva.js": "./node_modules/moment/locale/gom-deva.js", 15202 "./gom-latn": "./node_modules/moment/locale/gom-latn.js", 15203 "./gom-latn.js": "./node_modules/moment/locale/gom-latn.js", 15204 "./gu": "./node_modules/moment/locale/gu.js", 15205 "./gu.js": "./node_modules/moment/locale/gu.js", 15206 "./he": "./node_modules/moment/locale/he.js", 15207 "./he.js": "./node_modules/moment/locale/he.js", 15208 "./hi": "./node_modules/moment/locale/hi.js", 15209 "./hi.js": "./node_modules/moment/locale/hi.js", 15210 "./hr": "./node_modules/moment/locale/hr.js", 15211 "./hr.js": "./node_modules/moment/locale/hr.js", 15212 "./hu": "./node_modules/moment/locale/hu.js", 15213 "./hu.js": "./node_modules/moment/locale/hu.js", 15214 "./hy-am": "./node_modules/moment/locale/hy-am.js", 15215 "./hy-am.js": "./node_modules/moment/locale/hy-am.js", 15216 "./id": "./node_modules/moment/locale/id.js", 15217 "./id.js": "./node_modules/moment/locale/id.js", 15218 "./is": "./node_modules/moment/locale/is.js", 15219 "./is.js": "./node_modules/moment/locale/is.js", 15220 "./it": "./node_modules/moment/locale/it.js", 15221 "./it-ch": "./node_modules/moment/locale/it-ch.js", 15222 "./it-ch.js": "./node_modules/moment/locale/it-ch.js", 15223 "./it.js": "./node_modules/moment/locale/it.js", 15224 "./ja": "./node_modules/moment/locale/ja.js", 15225 "./ja.js": "./node_modules/moment/locale/ja.js", 15226 "./jv": "./node_modules/moment/locale/jv.js", 15227 "./jv.js": "./node_modules/moment/locale/jv.js", 15228 "./ka": "./node_modules/moment/locale/ka.js", 15229 "./ka.js": "./node_modules/moment/locale/ka.js", 15230 "./kk": "./node_modules/moment/locale/kk.js", 15231 "./kk.js": "./node_modules/moment/locale/kk.js", 15232 "./km": "./node_modules/moment/locale/km.js", 15233 "./km.js": "./node_modules/moment/locale/km.js", 15234 "./kn": "./node_modules/moment/locale/kn.js", 15235 "./kn.js": "./node_modules/moment/locale/kn.js", 15236 "./ko": "./node_modules/moment/locale/ko.js", 15237 "./ko.js": "./node_modules/moment/locale/ko.js", 15238 "./ku": "./node_modules/moment/locale/ku.js", 15239 "./ku-kmr": "./node_modules/moment/locale/ku-kmr.js", 15240 "./ku-kmr.js": "./node_modules/moment/locale/ku-kmr.js", 15241 "./ku.js": "./node_modules/moment/locale/ku.js", 15242 "./ky": "./node_modules/moment/locale/ky.js", 15243 "./ky.js": "./node_modules/moment/locale/ky.js", 15244 "./lb": "./node_modules/moment/locale/lb.js", 15245 "./lb.js": "./node_modules/moment/locale/lb.js", 15246 "./lo": "./node_modules/moment/locale/lo.js", 15247 "./lo.js": "./node_modules/moment/locale/lo.js", 15248 "./lt": "./node_modules/moment/locale/lt.js", 15249 "./lt.js": "./node_modules/moment/locale/lt.js", 15250 "./lv": "./node_modules/moment/locale/lv.js", 15251 "./lv.js": "./node_modules/moment/locale/lv.js", 15252 "./me": "./node_modules/moment/locale/me.js", 15253 "./me.js": "./node_modules/moment/locale/me.js", 15254 "./mi": "./node_modules/moment/locale/mi.js", 15255 "./mi.js": "./node_modules/moment/locale/mi.js", 15256 "./mk": "./node_modules/moment/locale/mk.js", 15257 "./mk.js": "./node_modules/moment/locale/mk.js", 15258 "./ml": "./node_modules/moment/locale/ml.js", 15259 "./ml.js": "./node_modules/moment/locale/ml.js", 15260 "./mn": "./node_modules/moment/locale/mn.js", 15261 "./mn.js": "./node_modules/moment/locale/mn.js", 15262 "./mr": "./node_modules/moment/locale/mr.js", 15263 "./mr.js": "./node_modules/moment/locale/mr.js", 15264 "./ms": "./node_modules/moment/locale/ms.js", 15265 "./ms-my": "./node_modules/moment/locale/ms-my.js", 15266 "./ms-my.js": "./node_modules/moment/locale/ms-my.js", 15267 "./ms.js": "./node_modules/moment/locale/ms.js", 15268 "./mt": "./node_modules/moment/locale/mt.js", 15269 "./mt.js": "./node_modules/moment/locale/mt.js", 15270 "./my": "./node_modules/moment/locale/my.js", 15271 "./my.js": "./node_modules/moment/locale/my.js", 15272 "./nb": "./node_modules/moment/locale/nb.js", 15273 "./nb.js": "./node_modules/moment/locale/nb.js", 15274 "./ne": "./node_modules/moment/locale/ne.js", 15275 "./ne.js": "./node_modules/moment/locale/ne.js", 15276 "./nl": "./node_modules/moment/locale/nl.js", 15277 "./nl-be": "./node_modules/moment/locale/nl-be.js", 15278 "./nl-be.js": "./node_modules/moment/locale/nl-be.js", 15279 "./nl.js": "./node_modules/moment/locale/nl.js", 15280 "./nn": "./node_modules/moment/locale/nn.js", 15281 "./nn.js": "./node_modules/moment/locale/nn.js", 15282 "./oc-lnc": "./node_modules/moment/locale/oc-lnc.js", 15283 "./oc-lnc.js": "./node_modules/moment/locale/oc-lnc.js", 15284 "./pa-in": "./node_modules/moment/locale/pa-in.js", 15285 "./pa-in.js": "./node_modules/moment/locale/pa-in.js", 15286 "./pl": "./node_modules/moment/locale/pl.js", 15287 "./pl.js": "./node_modules/moment/locale/pl.js", 15288 "./pt": "./node_modules/moment/locale/pt.js", 15289 "./pt-br": "./node_modules/moment/locale/pt-br.js", 15290 "./pt-br.js": "./node_modules/moment/locale/pt-br.js", 15291 "./pt.js": "./node_modules/moment/locale/pt.js", 15292 "./ro": "./node_modules/moment/locale/ro.js", 15293 "./ro.js": "./node_modules/moment/locale/ro.js", 15294 "./ru": "./node_modules/moment/locale/ru.js", 15295 "./ru.js": "./node_modules/moment/locale/ru.js", 15296 "./sd": "./node_modules/moment/locale/sd.js", 15297 "./sd.js": "./node_modules/moment/locale/sd.js", 15298 "./se": "./node_modules/moment/locale/se.js", 15299 "./se.js": "./node_modules/moment/locale/se.js", 15300 "./si": "./node_modules/moment/locale/si.js", 15301 "./si.js": "./node_modules/moment/locale/si.js", 15302 "./sk": "./node_modules/moment/locale/sk.js", 15303 "./sk.js": "./node_modules/moment/locale/sk.js", 15304 "./sl": "./node_modules/moment/locale/sl.js", 15305 "./sl.js": "./node_modules/moment/locale/sl.js", 15306 "./sq": "./node_modules/moment/locale/sq.js", 15307 "./sq.js": "./node_modules/moment/locale/sq.js", 15308 "./sr": "./node_modules/moment/locale/sr.js", 15309 "./sr-cyrl": "./node_modules/moment/locale/sr-cyrl.js", 15310 "./sr-cyrl.js": "./node_modules/moment/locale/sr-cyrl.js", 15311 "./sr.js": "./node_modules/moment/locale/sr.js", 15312 "./ss": "./node_modules/moment/locale/ss.js", 15313 "./ss.js": "./node_modules/moment/locale/ss.js", 15314 "./sv": "./node_modules/moment/locale/sv.js", 15315 "./sv.js": "./node_modules/moment/locale/sv.js", 15316 "./sw": "./node_modules/moment/locale/sw.js", 15317 "./sw.js": "./node_modules/moment/locale/sw.js", 15318 "./ta": "./node_modules/moment/locale/ta.js", 15319 "./ta.js": "./node_modules/moment/locale/ta.js", 15320 "./te": "./node_modules/moment/locale/te.js", 15321 "./te.js": "./node_modules/moment/locale/te.js", 15322 "./tet": "./node_modules/moment/locale/tet.js", 15323 "./tet.js": "./node_modules/moment/locale/tet.js", 15324 "./tg": "./node_modules/moment/locale/tg.js", 15325 "./tg.js": "./node_modules/moment/locale/tg.js", 15326 "./th": "./node_modules/moment/locale/th.js", 15327 "./th.js": "./node_modules/moment/locale/th.js", 15328 "./tk": "./node_modules/moment/locale/tk.js", 15329 "./tk.js": "./node_modules/moment/locale/tk.js", 15330 "./tl-ph": "./node_modules/moment/locale/tl-ph.js", 15331 "./tl-ph.js": "./node_modules/moment/locale/tl-ph.js", 15332 "./tlh": "./node_modules/moment/locale/tlh.js", 15333 "./tlh.js": "./node_modules/moment/locale/tlh.js", 15334 "./tr": "./node_modules/moment/locale/tr.js", 15335 "./tr.js": "./node_modules/moment/locale/tr.js", 15336 "./tzl": "./node_modules/moment/locale/tzl.js", 15337 "./tzl.js": "./node_modules/moment/locale/tzl.js", 15338 "./tzm": "./node_modules/moment/locale/tzm.js", 15339 "./tzm-latn": "./node_modules/moment/locale/tzm-latn.js", 15340 "./tzm-latn.js": "./node_modules/moment/locale/tzm-latn.js", 15341 "./tzm.js": "./node_modules/moment/locale/tzm.js", 15342 "./ug-cn": "./node_modules/moment/locale/ug-cn.js", 15343 "./ug-cn.js": "./node_modules/moment/locale/ug-cn.js", 15344 "./uk": "./node_modules/moment/locale/uk.js", 15345 "./uk.js": "./node_modules/moment/locale/uk.js", 15346 "./ur": "./node_modules/moment/locale/ur.js", 15347 "./ur.js": "./node_modules/moment/locale/ur.js", 15348 "./uz": "./node_modules/moment/locale/uz.js", 15349 "./uz-latn": "./node_modules/moment/locale/uz-latn.js", 15350 "./uz-latn.js": "./node_modules/moment/locale/uz-latn.js", 15351 "./uz.js": "./node_modules/moment/locale/uz.js", 15352 "./vi": "./node_modules/moment/locale/vi.js", 15353 "./vi.js": "./node_modules/moment/locale/vi.js", 15354 "./x-pseudo": "./node_modules/moment/locale/x-pseudo.js", 15355 "./x-pseudo.js": "./node_modules/moment/locale/x-pseudo.js", 15356 "./yo": "./node_modules/moment/locale/yo.js", 15357 "./yo.js": "./node_modules/moment/locale/yo.js", 15358 "./zh-cn": "./node_modules/moment/locale/zh-cn.js", 15359 "./zh-cn.js": "./node_modules/moment/locale/zh-cn.js", 15360 "./zh-hk": "./node_modules/moment/locale/zh-hk.js", 15361 "./zh-hk.js": "./node_modules/moment/locale/zh-hk.js", 15362 "./zh-mo": "./node_modules/moment/locale/zh-mo.js", 15363 "./zh-mo.js": "./node_modules/moment/locale/zh-mo.js", 15364 "./zh-tw": "./node_modules/moment/locale/zh-tw.js", 15365 "./zh-tw.js": "./node_modules/moment/locale/zh-tw.js" 15366}; 15367 15368 15369function webpackContext(req) { 15370 var id = webpackContextResolve(req); 15371 return __webpack_require__(id); 15372} 15373function webpackContextResolve(req) { 15374 if(!__webpack_require__.o(map, req)) { 15375 var e = new Error("Cannot find module '" + req + "'"); 15376 e.code = 'MODULE_NOT_FOUND'; 15377 throw e; 15378 } 15379 return map[req]; 15380} 15381webpackContext.keys = function webpackContextKeys() { 15382 return Object.keys(map); 15383}; 15384webpackContext.resolve = webpackContextResolve; 15385module.exports = webpackContext; 15386webpackContext.id = "./node_modules/moment/locale sync recursive ^\\.\\/.*$"; 15387 15388/***/ }), 15389
vendor: 2,898 bytes, lines 15390-15479
15390/***/ "./node_modules/moment/locale/af.js": 15391/*!******************************************!*\ 15392 !*** ./node_modules/moment/locale/af.js ***! 15393 \******************************************/ 15394/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 15395 15396//! moment.js locale configuration 15397//! locale : Afrikaans [af] 15398//! author : Werner Mollentze : https://github.com/wernerm 15399 15400;(function (global, factory) { 15401 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 15402 0 15403}(this, (function (moment) { 'use strict'; 15404 15405 //! moment.js locale configuration 15406 15407 var af = moment.defineLocale('af', { 15408 months: 'Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember'.split( 15409 '_' 15410 ), 15411 monthsShort: 'Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des'.split('_'), 15412 weekdays: 'Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag'.split( 15413 '_' 15414 ), 15415 weekdaysShort: 'Son_Maa_Din_Woe_Don_Vry_Sat'.split('_'), 15416 weekdaysMin: 'So_Ma_Di_Wo_Do_Vr_Sa'.split('_'), 15417 meridiemParse: /vm|nm/i, 15418 isPM: function (input) { 15419 return /^nm$/i.test(input); 15420 }, 15421 meridiem: function (hours, minutes, isLower) { 15422 if (hours < 12) { 15423 return isLower ? 'vm' : 'VM'; 15424 } else { 15425 return isLower ? 'nm' : 'NM'; 15426 } 15427 }, 15428 longDateFormat: { 15429 LT: 'HH:mm', 15430 LTS: 'HH:mm:ss', 15431 L: 'DD/MM/YYYY', 15432 LL: 'D MMMM YYYY', 15433 LLL: 'D MMMM YYYY HH:mm', 15434 LLLL: 'dddd, D MMMM YYYY HH:mm', 15435 }, 15436 calendar: { 15437 sameDay: '[Vandag om] LT', 15438 nextDay: '[Môre om] LT', 15439 nextWeek: 'dddd [om] LT', 15440 lastDay: '[Gister om] LT', 15441 lastWeek: '[Laas] dddd [om] LT', 15442 sameElse: 'L', 15443 }, 15444 relativeTime: { 15445 future: 'oor %s', 15446 past: '%s gelede', 15447 s: "'n paar sekondes", 15448 ss: '%d sekondes', 15449 m: "'n minuut", 15450 mm: '%d minute', 15451 h: "'n uur", 15452 hh: '%d ure', 15453 d: "'n dag", 15454 dd: '%d dae', 15455 M: "'n maand", 15456 MM: '%d maande', 15457 y: "'n jaar", 15458 yy: '%d jaar', 15459 }, 15460 dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, 15461 ordinal: function (number) { 15462 return ( 15463 number + 15464 (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de') 15465 ); // Thanks to Joris Röling : https://github.com/jjupiter 15466 }, 15467 week: { 15468 dow: 1, // Maandag is die eerste dag van die week. 15469 doy: 4, // Die week wat die 4de Januarie bevat is die eerste week van die jaar. 15470 }, 15471 }); 15472 15473 return af; 15474 15475}))); 15476 15477 15478/***/ }), 15479
vendor: 5,574 bytes, lines 15480-15654
15480/***/ "./node_modules/moment/locale/ar-dz.js": 15481/*!*********************************************!*\ 15482 !*** ./node_modules/moment/locale/ar-dz.js ***! 15483 \*********************************************/ 15484/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 15485 15486//! moment.js locale configuration 15487//! locale : Arabic (Algeria) [ar-dz] 15488//! author : Amine Roukh: https://github.com/Amine27 15489//! author : Abdel Said: https://github.com/abdelsaid 15490//! author : Ahmed Elkhatib 15491//! author : forabi https://github.com/forabi 15492//! author : Noureddine LOUAHEDJ : https://github.com/noureddinem 15493 15494;(function (global, factory) { 15495 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 15496 0 15497}(this, (function (moment) { 'use strict'; 15498 15499 //! moment.js locale configuration 15500 15501 var pluralForm = function (n) { 15502 return n === 0 15503 ? 0 15504 : n === 1 15505 ? 1 15506 : n === 2 15507 ? 2 15508 : n % 100 >= 3 && n % 100 <= 10 15509 ? 3 15510 : n % 100 >= 11 15511 ? 4 15512 : 5; 15513 }, 15514 plurals = { 15515 s: [ 15516 'Ø£Ù٠٠٠ثاÙÙØ©', 15517 'ثاÙÙØ© ÙØ§ØØ¯Ø©', 15518 ['ثاÙÙØªØ§Ù', 'ثاÙÙØªÙÙ'], 15519 '%d Ø«ÙØ§Ù', 15520 '%d ثاÙÙØ©', 15521 '%d ثاÙÙØ©', 15522 ], 15523 m: [ 15524 'Ø£Ù٠٠٠دÙÙÙØ©', 15525 'دÙÙÙØ© ÙØ§ØØ¯Ø©', 15526 ['دÙÙÙØªØ§Ù', 'دÙÙÙØªÙÙ'], 15527 '%d Ø¯ÙØ§Ø¦Ù', 15528 '%d دÙÙÙØ©', 15529 '%d دÙÙÙØ©', 15530 ], 15531 h: [ 15532 'Ø£Ù٠٠٠ساعة', 15533 'ساعة ÙØ§ØØ¯Ø©', 15534 ['ساعتاÙ', 'ساعتÙÙ'], 15535 '%d ساعات', 15536 '%d ساعة', 15537 '%d ساعة', 15538 ], 15539 d: [ 15540 'Ø£ÙÙ Ù Ù ÙÙÙ ', 15541 'ÙÙÙ ÙØ§ØØ¯', 15542 ['ÙÙ٠اÙ', 'ÙÙÙ ÙÙ'], 15543 '%d Ø£ÙØ§Ù ', 15544 '%d ÙÙÙ ÙØ§', 15545 '%d ÙÙÙ ', 15546 ], 15547 M: [ 15548 'Ø£ÙÙ Ù Ù Ø´ÙØ±', 15549 'Ø´ÙØ± ÙØ§ØØ¯', 15550 ['Ø´ÙØ±Ø§Ù', 'Ø´ÙØ±ÙÙ'], 15551 '%d Ø£Ø´ÙØ±', 15552 '%d Ø´ÙØ±Ø§', 15553 '%d Ø´ÙØ±', 15554 ], 15555 y: [ 15556 'Ø£Ù٠٠٠عا٠', 15557 'Ø¹Ø§Ù ÙØ§ØØ¯', 15558 ['عا٠اÙ', 'عا٠ÙÙ'], 15559 '%d Ø£Ø¹ÙØ§Ù ', 15560 '%d Ø¹Ø§Ù ÙØ§', 15561 '%d عا٠', 15562 ], 15563 }, 15564 pluralize = function (u) { 15565 return function (number, withoutSuffix, string, isFuture) { 15566 var f = pluralForm(number), 15567 str = plurals[u][pluralForm(number)]; 15568 if (f === 2) { 15569 str = str[withoutSuffix ? 0 : 1]; 15570 } 15571 return str.replace(/%d/i, number); 15572 }; 15573 }, 15574 months = [ 15575 'جاÙÙÙ', 15576 'ÙÙÙØ±Ù', 15577 '٠ارس', 15578 'Ø£ÙØ±ÙÙ', 15579 '٠اÙ', 15580 'Ø¬ÙØ§Ù', 15581 'جÙÙÙÙØ©', 15582 'Ø£ÙØª', 15583 'سبت٠بر', 15584 'Ø£ÙØªÙبر', 15585 'ÙÙÙ٠بر', 15586 'Ø¯ÙØ³Ù بر', 15587 ]; 15588 15589 var arDz = moment.defineLocale('ar-dz', { 15590 months: months, 15591 monthsShort: months, 15592 weekdays: 'Ø§ÙØ£ØØ¯_Ø§ÙØ¥Ø«ÙÙÙ_Ø§ÙØ«Ùاثاء_Ø§ÙØ£Ø±Ø¨Ø¹Ø§Ø¡_Ø§ÙØ®Ù ÙØ³_Ø§ÙØ¬Ù عة_Ø§ÙØ³Ø¨Øª'.split('_'), 15593 weekdaysShort: 'Ø£ØØ¯_إثÙÙÙ_Ø«ÙØ§Ø«Ø§Ø¡_أربعاء_Ø®Ù ÙØ³_ج٠عة_سبت'.split('_'), 15594 weekdaysMin: 'Ø_Ù_Ø«_ر_Ø®_ج_س'.split('_'), 15595 weekdaysParseExact: true, 15596 longDateFormat: { 15597 LT: 'HH:mm', 15598 LTS: 'HH:mm:ss', 15599 L: 'D/\u200FM/\u200FYYYY', 15600 LL: 'D MMMM YYYY', 15601 LLL: 'D MMMM YYYY HH:mm', 15602 LLLL: 'dddd D MMMM YYYY HH:mm', 15603 }, 15604 meridiemParse: /ص|Ù /, 15605 isPM: function (input) { 15606 return 'Ù ' === input; 15607 }, 15608 meridiem: function (hour, minute, isLower) { 15609 if (hour < 12) { 15610 return 'ص'; 15611 } else { 15612 return 'Ù '; 15613 } 15614 }, 15615 calendar: { 15616 sameDay: '[اÙÙÙÙ Ø¹ÙØ¯ Ø§ÙØ³Ø§Ø¹Ø©] LT', 15617 nextDay: '[ØºØ¯ÙØ§ Ø¹ÙØ¯ Ø§ÙØ³Ø§Ø¹Ø©] LT', 15618 nextWeek: 'dddd [Ø¹ÙØ¯ Ø§ÙØ³Ø§Ø¹Ø©] LT', 15619 lastDay: '[أ٠س Ø¹ÙØ¯ Ø§ÙØ³Ø§Ø¹Ø©] LT', 15620 lastWeek: 'dddd [Ø¹ÙØ¯ Ø§ÙØ³Ø§Ø¹Ø©] LT', 15621 sameElse: 'L', 15622 }, 15623 relativeTime: { 15624 future: 'بعد %s', 15625 past: 'Ù ÙØ° %s', 15626 s: pluralize('s'), 15627 ss: pluralize('s'), 15628 m: pluralize('m'), 15629 mm: pluralize('m'), 15630 h: pluralize('h'), 15631 hh: pluralize('h'), 15632 d: pluralize('d'), 15633 dd: pluralize('d'), 15634 M: pluralize('M'), 15635 MM: pluralize('M'), 15636 y: pluralize('y'), 15637 yy: pluralize('y'), 15638 }, 15639 postformat: function (string) { 15640 return string.replace(/,/g, 'Ø'); 15641 }, 15642 week: { 15643 dow: 0, // Sunday is the first day of the week. 15644 doy: 4, // The week that contains Jan 4th is the first week of the year. 15645 }, 15646 }); 15647 15648 return arDz; 15649 15650}))); 15651 15652 15653/***/ }), 15654
vendor: 2,635 bytes, lines 15655-15728
15655/***/ "./node_modules/moment/locale/ar-kw.js": 15656/*!*********************************************!*\ 15657 !*** ./node_modules/moment/locale/ar-kw.js ***! 15658 \*********************************************/ 15659/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 15660 15661//! moment.js locale configuration 15662//! locale : Arabic (Kuwait) [ar-kw] 15663//! author : Nusret Parlak: https://github.com/nusretparlak 15664 15665;(function (global, factory) { 15666 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 15667 0 15668}(this, (function (moment) { 'use strict'; 15669 15670 //! moment.js locale configuration 15671 15672 var arKw = moment.defineLocale('ar-kw', { 15673 months: 'ÙÙØ§Ùر_ÙØ¨Ø±Ø§Ùر_٠ارس_أبرÙÙ_٠اÙ_ÙÙÙÙÙ_ÙÙÙÙÙØ²_غشت_Ø´ØªÙØ¨Ø±_Ø£ÙØªÙبر_ÙÙÙØ¨Ø±_Ø¯Ø¬ÙØ¨Ø±'.split( 15674 '_' 15675 ), 15676 monthsShort: 15677 'ÙÙØ§Ùر_ÙØ¨Ø±Ø§Ùر_٠ارس_أبرÙÙ_٠اÙ_ÙÙÙÙÙ_ÙÙÙÙÙØ²_غشت_Ø´ØªÙØ¨Ø±_Ø£ÙØªÙبر_ÙÙÙØ¨Ø±_Ø¯Ø¬ÙØ¨Ø±'.split( 15678 '_' 15679 ), 15680 weekdays: 'Ø§ÙØ£ØØ¯_Ø§ÙØ¥ØªÙÙÙ_Ø§ÙØ«Ùاثاء_Ø§ÙØ£Ø±Ø¨Ø¹Ø§Ø¡_Ø§ÙØ®Ù ÙØ³_Ø§ÙØ¬Ù عة_Ø§ÙØ³Ø¨Øª'.split('_'), 15681 weekdaysShort: 'Ø§ØØ¯_اتÙÙÙ_Ø«ÙØ§Ø«Ø§Ø¡_اربعاء_Ø®Ù ÙØ³_ج٠عة_سبت'.split('_'), 15682 weekdaysMin: 'Ø_Ù_Ø«_ر_Ø®_ج_س'.split('_'), 15683 weekdaysParseExact: true, 15684 longDateFormat: { 15685 LT: 'HH:mm', 15686 LTS: 'HH:mm:ss', 15687 L: 'DD/MM/YYYY', 15688 LL: 'D MMMM YYYY', 15689 LLL: 'D MMMM YYYY HH:mm', 15690 LLLL: 'dddd D MMMM YYYY HH:mm', 15691 }, 15692 calendar: { 15693 sameDay: '[اÙÙÙ٠عÙÙ Ø§ÙØ³Ø§Ø¹Ø©] LT', 15694 nextDay: '[غدا عÙÙ Ø§ÙØ³Ø§Ø¹Ø©] LT', 15695 nextWeek: 'dddd [عÙÙ Ø§ÙØ³Ø§Ø¹Ø©] LT', 15696 lastDay: '[أ٠س عÙÙ Ø§ÙØ³Ø§Ø¹Ø©] LT', 15697 lastWeek: 'dddd [عÙÙ Ø§ÙØ³Ø§Ø¹Ø©] LT', 15698 sameElse: 'L', 15699 }, 15700 relativeTime: { 15701 future: 'ÙÙ %s', 15702 past: 'Ù ÙØ° %s', 15703 s: 'Ø«ÙØ§Ù', 15704 ss: '%d ثاÙÙØ©', 15705 m: 'دÙÙÙØ©', 15706 mm: '%d Ø¯ÙØ§Ø¦Ù', 15707 h: 'ساعة', 15708 hh: '%d ساعات', 15709 d: 'ÙÙÙ ', 15710 dd: '%d Ø£ÙØ§Ù ', 15711 M: 'Ø´ÙØ±', 15712 MM: '%d Ø£Ø´ÙØ±', 15713 y: 'Ø³ÙØ©', 15714 yy: '%d سÙÙØ§Øª', 15715 }, 15716 week: { 15717 dow: 0, // Sunday is the first day of the week. 15718 doy: 12, // The week that contains Jan 12th is the first week of the year. 15719 }, 15720 }); 15721 15722 return arKw; 15723 15724}))); 15725 15726 15727/***/ }), 15728
vendor: 5,849 bytes, lines 15729-15918
15729/***/ "./node_modules/moment/locale/ar-ly.js": 15730/*!*********************************************!*\ 15731 !*** ./node_modules/moment/locale/ar-ly.js ***! 15732 \*********************************************/ 15733/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 15734 15735//! moment.js locale configuration 15736//! locale : Arabic (Libya) [ar-ly] 15737//! author : Ali Hmer: https://github.com/kikoanis 15738 15739;(function (global, factory) { 15740 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 15741 0 15742}(this, (function (moment) { 'use strict'; 15743 15744 //! moment.js locale configuration 15745 15746 var symbolMap = { 15747 1: '1', 15748 2: '2', 15749 3: '3', 15750 4: '4', 15751 5: '5', 15752 6: '6', 15753 7: '7', 15754 8: '8', 15755 9: '9', 15756 0: '0', 15757 }, 15758 pluralForm = function (n) { 15759 return n === 0 15760 ? 0 15761 : n === 1 15762 ? 1 15763 : n === 2 15764 ? 2 15765 : n % 100 >= 3 && n % 100 <= 10 15766 ? 3 15767 : n % 100 >= 11 15768 ? 4 15769 : 5; 15770 }, 15771 plurals = { 15772 s: [ 15773 'Ø£Ù٠٠٠ثاÙÙØ©', 15774 'ثاÙÙØ© ÙØ§ØØ¯Ø©', 15775 ['ثاÙÙØªØ§Ù', 'ثاÙÙØªÙÙ'], 15776 '%d Ø«ÙØ§Ù', 15777 '%d ثاÙÙØ©', 15778 '%d ثاÙÙØ©', 15779 ], 15780 m: [ 15781 'Ø£Ù٠٠٠دÙÙÙØ©', 15782 'دÙÙÙØ© ÙØ§ØØ¯Ø©', 15783 ['دÙÙÙØªØ§Ù', 'دÙÙÙØªÙÙ'], 15784 '%d Ø¯ÙØ§Ø¦Ù', 15785 '%d دÙÙÙØ©', 15786 '%d دÙÙÙØ©', 15787 ], 15788 h: [ 15789 'Ø£Ù٠٠٠ساعة', 15790 'ساعة ÙØ§ØØ¯Ø©', 15791 ['ساعتاÙ', 'ساعتÙÙ'], 15792 '%d ساعات', 15793 '%d ساعة', 15794 '%d ساعة', 15795 ], 15796 d: [ 15797 'Ø£ÙÙ Ù Ù ÙÙÙ ', 15798 'ÙÙÙ ÙØ§ØØ¯', 15799 ['ÙÙ٠اÙ', 'ÙÙÙ ÙÙ'], 15800 '%d Ø£ÙØ§Ù ', 15801 '%d ÙÙÙ ÙØ§', 15802 '%d ÙÙÙ ', 15803 ], 15804 M: [ 15805 'Ø£ÙÙ Ù Ù Ø´ÙØ±', 15806 'Ø´ÙØ± ÙØ§ØØ¯', 15807 ['Ø´ÙØ±Ø§Ù', 'Ø´ÙØ±ÙÙ'], 15808 '%d Ø£Ø´ÙØ±', 15809 '%d Ø´ÙØ±Ø§', 15810 '%d Ø´ÙØ±', 15811 ], 15812 y: [ 15813 'Ø£Ù٠٠٠عا٠', 15814 'Ø¹Ø§Ù ÙØ§ØØ¯', 15815 ['عا٠اÙ', 'عا٠ÙÙ'], 15816 '%d Ø£Ø¹ÙØ§Ù ', 15817 '%d Ø¹Ø§Ù ÙØ§', 15818 '%d عا٠', 15819 ], 15820 }, 15821 pluralize = function (u) { 15822 return function (number, withoutSuffix, string, isFuture) { 15823 var f = pluralForm(number), 15824 str = plurals[u][pluralForm(number)]; 15825 if (f === 2) { 15826 str = str[withoutSuffix ? 0 : 1]; 15827 } 15828 return str.replace(/%d/i, number); 15829 }; 15830 }, 15831 months = [ 15832 'ÙÙØ§Ùر', 15833 'ÙØ¨Ø±Ø§Ùر', 15834 '٠ارس', 15835 'أبرÙÙ', 15836 '٠اÙÙ', 15837 'ÙÙÙÙÙ', 15838 'ÙÙÙÙÙ', 15839 'أغسطس', 15840 'سبت٠بر', 15841 'Ø£ÙØªÙبر', 15842 'ÙÙÙ٠بر', 15843 'Ø¯ÙØ³Ù بر', 15844 ]; 15845 15846 var arLy = moment.defineLocale('ar-ly', { 15847 months: months, 15848 monthsShort: months, 15849 weekdays: 'Ø§ÙØ£ØØ¯_Ø§ÙØ¥Ø«ÙÙÙ_Ø§ÙØ«Ùاثاء_Ø§ÙØ£Ø±Ø¨Ø¹Ø§Ø¡_Ø§ÙØ®Ù ÙØ³_Ø§ÙØ¬Ù عة_Ø§ÙØ³Ø¨Øª'.split('_'), 15850 weekdaysShort: 'Ø£ØØ¯_إثÙÙÙ_Ø«ÙØ§Ø«Ø§Ø¡_أربعاء_Ø®Ù ÙØ³_ج٠عة_سبت'.split('_'), 15851 weekdaysMin: 'Ø_Ù_Ø«_ر_Ø®_ج_س'.split('_'), 15852 weekdaysParseExact: true, 15853 longDateFormat: { 15854 LT: 'HH:mm', 15855 LTS: 'HH:mm:ss', 15856 L: 'D/\u200FM/\u200FYYYY', 15857 LL: 'D MMMM YYYY', 15858 LLL: 'D MMMM YYYY HH:mm', 15859 LLLL: 'dddd D MMMM YYYY HH:mm', 15860 }, 15861 meridiemParse: /ص|Ù /, 15862 isPM: function (input) { 15863 return 'Ù ' === input; 15864 }, 15865 meridiem: function (hour, minute, isLower) { 15866 if (hour < 12) { 15867 return 'ص'; 15868 } else { 15869 return 'Ù '; 15870 } 15871 }, 15872 calendar: { 15873 sameDay: '[اÙÙÙÙ Ø¹ÙØ¯ Ø§ÙØ³Ø§Ø¹Ø©] LT', 15874 nextDay: '[ØºØ¯ÙØ§ Ø¹ÙØ¯ Ø§ÙØ³Ø§Ø¹Ø©] LT', 15875 nextWeek: 'dddd [Ø¹ÙØ¯ Ø§ÙØ³Ø§Ø¹Ø©] LT', 15876 lastDay: '[أ٠س Ø¹ÙØ¯ Ø§ÙØ³Ø§Ø¹Ø©] LT', 15877 lastWeek: 'dddd [Ø¹ÙØ¯ Ø§ÙØ³Ø§Ø¹Ø©] LT', 15878 sameElse: 'L', 15879 }, 15880 relativeTime: { 15881 future: 'بعد %s', 15882 past: 'Ù ÙØ° %s', 15883 s: pluralize('s'), 15884 ss: pluralize('s'), 15885 m: pluralize('m'), 15886 mm: pluralize('m'), 15887 h: pluralize('h'), 15888 hh: pluralize('h'), 15889 d: pluralize('d'), 15890 dd: pluralize('d'), 15891 M: pluralize('M'), 15892 MM: pluralize('M'), 15893 y: pluralize('y'), 15894 yy: pluralize('y'), 15895 }, 15896 preparse: function (string) { 15897 return string.replace(/Ø/g, ','); 15898 }, 15899 postformat: function (string) { 15900 return string 15901 .replace(/\d/g, function (match) { 15902 return symbolMap[match]; 15903 }) 15904 .replace(/,/g, 'Ø'); 15905 }, 15906 week: { 15907 dow: 6, // Saturday is the first day of the week. 15908 doy: 12, // The week that contains Jan 12th is the first week of the year. 15909 }, 15910 }); 15911 15912 return arLy; 15913 15914}))); 15915 15916 15917/***/ }), 15918
vendor: 2,690 bytes, lines 15919-15993
15919/***/ "./node_modules/moment/locale/ar-ma.js": 15920/*!*********************************************!*\ 15921 !*** ./node_modules/moment/locale/ar-ma.js ***! 15922 \*********************************************/ 15923/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 15924 15925//! moment.js locale configuration 15926//! locale : Arabic (Morocco) [ar-ma] 15927//! author : ElFadili Yassine : https://github.com/ElFadiliY 15928//! author : Abdel Said : https://github.com/abdelsaid 15929 15930;(function (global, factory) { 15931 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 15932 0 15933}(this, (function (moment) { 'use strict'; 15934 15935 //! moment.js locale configuration 15936 15937 var arMa = moment.defineLocale('ar-ma', { 15938 months: 'ÙÙØ§Ùر_ÙØ¨Ø±Ø§Ùر_٠ارس_أبرÙÙ_٠اÙ_ÙÙÙÙÙ_ÙÙÙÙÙØ²_غشت_Ø´ØªÙØ¨Ø±_Ø£ÙØªÙبر_ÙÙÙØ¨Ø±_Ø¯Ø¬ÙØ¨Ø±'.split( 15939 '_' 15940 ), 15941 monthsShort: 15942 'ÙÙØ§Ùر_ÙØ¨Ø±Ø§Ùر_٠ارس_أبرÙÙ_٠اÙ_ÙÙÙÙÙ_ÙÙÙÙÙØ²_غشت_Ø´ØªÙØ¨Ø±_Ø£ÙØªÙبر_ÙÙÙØ¨Ø±_Ø¯Ø¬ÙØ¨Ø±'.split( 15943 '_' 15944 ), 15945 weekdays: 'Ø§ÙØ£ØØ¯_Ø§ÙØ¥Ø«ÙÙÙ_Ø§ÙØ«Ùاثاء_Ø§ÙØ£Ø±Ø¨Ø¹Ø§Ø¡_Ø§ÙØ®Ù ÙØ³_Ø§ÙØ¬Ù عة_Ø§ÙØ³Ø¨Øª'.split('_'), 15946 weekdaysShort: 'Ø§ØØ¯_اثÙÙÙ_Ø«ÙØ§Ø«Ø§Ø¡_اربعاء_Ø®Ù ÙØ³_ج٠عة_سبت'.split('_'), 15947 weekdaysMin: 'Ø_Ù_Ø«_ر_Ø®_ج_س'.split('_'), 15948 weekdaysParseExact: true, 15949 longDateFormat: { 15950 LT: 'HH:mm', 15951 LTS: 'HH:mm:ss', 15952 L: 'DD/MM/YYYY', 15953 LL: 'D MMMM YYYY', 15954 LLL: 'D MMMM YYYY HH:mm', 15955 LLLL: 'dddd D MMMM YYYY HH:mm', 15956 }, 15957 calendar: { 15958 sameDay: '[اÙÙÙ٠عÙÙ Ø§ÙØ³Ø§Ø¹Ø©] LT', 15959 nextDay: '[غدا عÙÙ Ø§ÙØ³Ø§Ø¹Ø©] LT', 15960 nextWeek: 'dddd [عÙÙ Ø§ÙØ³Ø§Ø¹Ø©] LT', 15961 lastDay: '[أ٠س عÙÙ Ø§ÙØ³Ø§Ø¹Ø©] LT', 15962 lastWeek: 'dddd [عÙÙ Ø§ÙØ³Ø§Ø¹Ø©] LT', 15963 sameElse: 'L', 15964 }, 15965 relativeTime: { 15966 future: 'ÙÙ %s', 15967 past: 'Ù ÙØ° %s', 15968 s: 'Ø«ÙØ§Ù', 15969 ss: '%d ثاÙÙØ©', 15970 m: 'دÙÙÙØ©', 15971 mm: '%d Ø¯ÙØ§Ø¦Ù', 15972 h: 'ساعة', 15973 hh: '%d ساعات', 15974 d: 'ÙÙÙ ', 15975 dd: '%d Ø£ÙØ§Ù ', 15976 M: 'Ø´ÙØ±', 15977 MM: '%d Ø£Ø´ÙØ±', 15978 y: 'Ø³ÙØ©', 15979 yy: '%d سÙÙØ§Øª', 15980 }, 15981 week: { 15982 dow: 1, // Monday is the first day of the week. 15983 doy: 4, // The week that contains Jan 4th is the first week of the year. 15984 }, 15985 }); 15986 15987 return arMa; 15988 15989}))); 15990 15991 15992/***/ }), 15993
vendor: 4,259 bytes, lines 15994-16124
15994/***/ "./node_modules/moment/locale/ar-ps.js": 15995/*!*********************************************!*\ 15996 !*** ./node_modules/moment/locale/ar-ps.js ***! 15997 \*********************************************/ 15998/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 15999 16000//! moment.js locale configuration 16001//! locale : Arabic (Palestine) [ar-ps] 16002//! author : Majd Al-Shihabi : https://github.com/majdal 16003 16004;(function (global, factory) { 16005 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 16006 0 16007}(this, (function (moment) { 'use strict'; 16008 16009 //! moment.js locale configuration 16010 16011 var symbolMap = { 16012 1: 'Ù¡', 16013 2: 'Ù¢', 16014 3: 'Ù£', 16015 4: 'Ù¤', 16016 5: 'Ù¥', 16017 6: 'Ù¦', 16018 7: 'Ù§', 16019 8: 'Ù¨', 16020 9: 'Ù©', 16021 0: 'Ù ', 16022 }, 16023 numberMap = { 16024 'Ù¡': '1', 16025 'Ù¢': '2', 16026 'Ù£': '3', 16027 'Ù¤': '4', 16028 'Ù¥': '5', 16029 'Ù¦': '6', 16030 'Ù§': '7', 16031 'Ù¨': '8', 16032 'Ù©': '9', 16033 'Ù ': '0', 16034 }; 16035 16036 var arPs = moment.defineLocale('ar-ps', { 16037 months: 'ÙØ§ÙÙÙ Ø§ÙØ«Ø§ÙÙ_شباط_آذار_ÙÙØ³Ø§Ù_Ø£ÙÙØ§Ø±_ØØ²ÙراÙ_ت٠ÙÙØ²_آب_Ø£ÙÙÙÙ_ØªØ´Ø±Ù Ø§ÙØ£ÙÙÙ_تشرÙÙ Ø§ÙØ«Ø§ÙÙ_ÙØ§ÙÙÙ Ø§ÙØ£ÙÙÙ'.split( 16038 '_' 16039 ), 16040 monthsShort: 16041 'ÙÙ¢_شباط_آذار_ÙÙØ³Ø§Ù_Ø£ÙÙØ§Ø±_ØØ²ÙراÙ_ت٠ÙÙØ²_آب_Ø£ÙÙÙÙ_ت١_ت٢_ÙÙ¡'.split('_'), 16042 weekdays: 'Ø§ÙØ£ØØ¯_Ø§ÙØ¥Ø«ÙÙÙ_Ø§ÙØ«Ùاثاء_Ø§ÙØ£Ø±Ø¨Ø¹Ø§Ø¡_Ø§ÙØ®Ù ÙØ³_Ø§ÙØ¬Ù عة_Ø§ÙØ³Ø¨Øª'.split('_'), 16043 weekdaysShort: 'Ø£ØØ¯_إثÙÙÙ_Ø«ÙØ§Ø«Ø§Ø¡_أربعاء_Ø®Ù ÙØ³_ج٠عة_سبت'.split('_'), 16044 weekdaysMin: 'Ø_Ù_Ø«_ر_Ø®_ج_س'.split('_'), 16045 weekdaysParseExact: true, 16046 longDateFormat: { 16047 LT: 'HH:mm', 16048 LTS: 'HH:mm:ss', 16049 L: 'DD/MM/YYYY', 16050 LL: 'D MMMM YYYY', 16051 LLL: 'D MMMM YYYY HH:mm', 16052 LLLL: 'dddd D MMMM YYYY HH:mm', 16053 }, 16054 meridiemParse: /ص|Ù /, 16055 isPM: function (input) { 16056 return 'Ù ' === input; 16057 }, 16058 meridiem: function (hour, minute, isLower) { 16059 if (hour < 12) { 16060 return 'ص'; 16061 } else { 16062 return 'Ù '; 16063 } 16064 }, 16065 calendar: { 16066 sameDay: '[اÙÙÙ٠عÙÙ Ø§ÙØ³Ø§Ø¹Ø©] LT', 16067 nextDay: '[غدا عÙÙ Ø§ÙØ³Ø§Ø¹Ø©] LT', 16068 nextWeek: 'dddd [عÙÙ Ø§ÙØ³Ø§Ø¹Ø©] LT', 16069 lastDay: '[أ٠س عÙÙ Ø§ÙØ³Ø§Ø¹Ø©] LT', 16070 lastWeek: 'dddd [عÙÙ Ø§ÙØ³Ø§Ø¹Ø©] LT', 16071 sameElse: 'L', 16072 }, 16073 relativeTime: { 16074 future: 'ÙÙ %s', 16075 past: 'Ù ÙØ° %s', 16076 s: 'Ø«ÙØ§Ù', 16077 ss: '%d ثاÙÙØ©', 16078 m: 'دÙÙÙØ©', 16079 mm: '%d Ø¯ÙØ§Ø¦Ù', 16080 h: 'ساعة', 16081 hh: '%d ساعات', 16082 d: 'ÙÙÙ ', 16083 dd: '%d Ø£ÙØ§Ù ', 16084 M: 'Ø´ÙØ±', 16085 MM: '%d Ø£Ø´ÙØ±', 16086 y: 'Ø³ÙØ©', 16087 yy: '%d سÙÙØ§Øª', 16088 }, 16089 preparse: function (string) { 16090 return string 16091 .replace(/[٣٤٥٦٧٨٩٠]/g, function (match) { 16092 return numberMap[match]; 16093 }) 16094 .split('') // reversed since negative lookbehind not supported everywhere 16095 .reverse() 16096 .join('') 16097 .replace(/[١٢](?![\u062a\u0643])/g, function (match) { 16098 return numberMap[match]; 16099 }) 16100 .split('') 16101 .reverse() 16102 .join('') 16103 .replace(/Ø/g, ','); 16104 }, 16105 postformat: function (string) { 16106 return string 16107 .replace(/\d/g, function (match) { 16108 return symbolMap[match]; 16109 }) 16110 .replace(/,/g, 'Ø'); 16111 }, 16112 week: { 16113 dow: 0, // Sunday is the first day of the week. 16114 doy: 6, // The week that contains Jan 6th is the first week of the year. 16115 }, 16116 }); 16117 16118 return arPs; 16119 16120}))); 16121 16122 16123/***/ }), 16124
vendor: 3,939 bytes, lines 16125-16248
16125/***/ "./node_modules/moment/locale/ar-sa.js": 16126/*!*********************************************!*\ 16127 !*** ./node_modules/moment/locale/ar-sa.js ***! 16128 \*********************************************/ 16129/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 16130 16131//! moment.js locale configuration 16132//! locale : Arabic (Saudi Arabia) [ar-sa] 16133//! author : Suhail Alkowaileet : https://github.com/xsoh 16134 16135;(function (global, factory) { 16136 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 16137 0 16138}(this, (function (moment) { 'use strict'; 16139 16140 //! moment.js locale configuration 16141 16142 var symbolMap = { 16143 1: 'Ù¡', 16144 2: 'Ù¢', 16145 3: 'Ù£', 16146 4: 'Ù¤', 16147 5: 'Ù¥', 16148 6: 'Ù¦', 16149 7: 'Ù§', 16150 8: 'Ù¨', 16151 9: 'Ù©', 16152 0: 'Ù ', 16153 }, 16154 numberMap = { 16155 'Ù¡': '1', 16156 'Ù¢': '2', 16157 'Ù£': '3', 16158 'Ù¤': '4', 16159 'Ù¥': '5', 16160 'Ù¦': '6', 16161 'Ù§': '7', 16162 'Ù¨': '8', 16163 'Ù©': '9', 16164 'Ù ': '0', 16165 }; 16166 16167 var arSa = moment.defineLocale('ar-sa', { 16168 months: 'ÙÙØ§Ùر_ÙØ¨Ø±Ø§Ùر_٠ارس_أبرÙÙ_٠اÙÙ_ÙÙÙÙÙ_ÙÙÙÙÙ_أغسطس_سبت٠بر_Ø£ÙØªÙبر_ÙÙÙ٠بر_Ø¯ÙØ³Ù بر'.split( 16169 '_' 16170 ), 16171 monthsShort: 16172 'ÙÙØ§Ùر_ÙØ¨Ø±Ø§Ùر_٠ارس_أبرÙÙ_٠اÙÙ_ÙÙÙÙÙ_ÙÙÙÙÙ_أغسطس_سبت٠بر_Ø£ÙØªÙبر_ÙÙÙ٠بر_Ø¯ÙØ³Ù بر'.split( 16173 '_' 16174 ), 16175 weekdays: 'Ø§ÙØ£ØØ¯_Ø§ÙØ¥Ø«ÙÙÙ_Ø§ÙØ«Ùاثاء_Ø§ÙØ£Ø±Ø¨Ø¹Ø§Ø¡_Ø§ÙØ®Ù ÙØ³_Ø§ÙØ¬Ù عة_Ø§ÙØ³Ø¨Øª'.split('_'), 16176 weekdaysShort: 'Ø£ØØ¯_إثÙÙÙ_Ø«ÙØ§Ø«Ø§Ø¡_أربعاء_Ø®Ù ÙØ³_ج٠عة_سبت'.split('_'), 16177 weekdaysMin: 'Ø_Ù_Ø«_ر_Ø®_ج_س'.split('_'), 16178 weekdaysParseExact: true, 16179 longDateFormat: { 16180 LT: 'HH:mm', 16181 LTS: 'HH:mm:ss', 16182 L: 'DD/MM/YYYY', 16183 LL: 'D MMMM YYYY', 16184 LLL: 'D MMMM YYYY HH:mm', 16185 LLLL: 'dddd D MMMM YYYY HH:mm', 16186 }, 16187 meridiemParse: /ص|Ù /, 16188 isPM: function (input) { 16189 return 'Ù ' === input; 16190 }, 16191 meridiem: function (hour, minute, isLower) { 16192 if (hour < 12) { 16193 return 'ص'; 16194 } else { 16195 return 'Ù '; 16196 } 16197 }, 16198 calendar: { 16199 sameDay: '[اÙÙÙ٠عÙÙ Ø§ÙØ³Ø§Ø¹Ø©] LT', 16200 nextDay: '[غدا عÙÙ Ø§ÙØ³Ø§Ø¹Ø©] LT', 16201 nextWeek: 'dddd [عÙÙ Ø§ÙØ³Ø§Ø¹Ø©] LT', 16202 lastDay: '[أ٠س عÙÙ Ø§ÙØ³Ø§Ø¹Ø©] LT', 16203 lastWeek: 'dddd [عÙÙ Ø§ÙØ³Ø§Ø¹Ø©] LT', 16204 sameElse: 'L', 16205 }, 16206 relativeTime: { 16207 future: 'ÙÙ %s', 16208 past: 'Ù ÙØ° %s', 16209 s: 'Ø«ÙØ§Ù', 16210 ss: '%d ثاÙÙØ©', 16211 m: 'دÙÙÙØ©', 16212 mm: '%d Ø¯ÙØ§Ø¦Ù', 16213 h: 'ساعة', 16214 hh: '%d ساعات', 16215 d: 'ÙÙÙ ', 16216 dd: '%d Ø£ÙØ§Ù ', 16217 M: 'Ø´ÙØ±', 16218 MM: '%d Ø£Ø´ÙØ±', 16219 y: 'Ø³ÙØ©', 16220 yy: '%d سÙÙØ§Øª', 16221 }, 16222 preparse: function (string) { 16223 return string 16224 .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) { 16225 return numberMap[match]; 16226 }) 16227 .replace(/Ø/g, ','); 16228 }, 16229 postformat: function (string) { 16230 return string 16231 .replace(/\d/g, function (match) { 16232 return symbolMap[match]; 16233 }) 16234 .replace(/,/g, 'Ø'); 16235 }, 16236 week: { 16237 dow: 0, // Sunday is the first day of the week. 16238 doy: 6, // The week that contains Jan 6th is the first week of the year. 16239 }, 16240 }); 16241 16242 return arSa; 16243 16244}))); 16245 16246 16247/***/ }), 16248
vendor: 2,637 bytes, lines 16249-16322
16249/***/ "./node_modules/moment/locale/ar-tn.js": 16250/*!*********************************************!*\ 16251 !*** ./node_modules/moment/locale/ar-tn.js ***! 16252 \*********************************************/ 16253/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 16254 16255//! moment.js locale configuration 16256//! locale : Arabic (Tunisia) [ar-tn] 16257//! author : Nader Toukabri : https://github.com/naderio 16258 16259;(function (global, factory) { 16260 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 16261 0 16262}(this, (function (moment) { 'use strict'; 16263 16264 //! moment.js locale configuration 16265 16266 var arTn = moment.defineLocale('ar-tn', { 16267 months: 'جاÙÙÙ_ÙÙÙØ±Ù_٠ارس_Ø£ÙØ±ÙÙ_٠اÙ_Ø¬ÙØ§Ù_جÙÙÙÙØ©_Ø£ÙØª_سبت٠بر_Ø£ÙØªÙبر_ÙÙÙ٠بر_Ø¯ÙØ³Ù بر'.split( 16268 '_' 16269 ), 16270 monthsShort: 16271 'جاÙÙÙ_ÙÙÙØ±Ù_٠ارس_Ø£ÙØ±ÙÙ_٠اÙ_Ø¬ÙØ§Ù_جÙÙÙÙØ©_Ø£ÙØª_سبت٠بر_Ø£ÙØªÙبر_ÙÙÙ٠بر_Ø¯ÙØ³Ù بر'.split( 16272 '_' 16273 ), 16274 weekdays: 'Ø§ÙØ£ØØ¯_Ø§ÙØ¥Ø«ÙÙÙ_Ø§ÙØ«Ùاثاء_Ø§ÙØ£Ø±Ø¨Ø¹Ø§Ø¡_Ø§ÙØ®Ù ÙØ³_Ø§ÙØ¬Ù عة_Ø§ÙØ³Ø¨Øª'.split('_'), 16275 weekdaysShort: 'Ø£ØØ¯_إثÙÙÙ_Ø«ÙØ§Ø«Ø§Ø¡_أربعاء_Ø®Ù ÙØ³_ج٠عة_سبت'.split('_'), 16276 weekdaysMin: 'Ø_Ù_Ø«_ر_Ø®_ج_س'.split('_'), 16277 weekdaysParseExact: true, 16278 longDateFormat: { 16279 LT: 'HH:mm', 16280 LTS: 'HH:mm:ss', 16281 L: 'DD/MM/YYYY', 16282 LL: 'D MMMM YYYY', 16283 LLL: 'D MMMM YYYY HH:mm', 16284 LLLL: 'dddd D MMMM YYYY HH:mm', 16285 }, 16286 calendar: { 16287 sameDay: '[اÙÙÙ٠عÙÙ Ø§ÙØ³Ø§Ø¹Ø©] LT', 16288 nextDay: '[غدا عÙÙ Ø§ÙØ³Ø§Ø¹Ø©] LT', 16289 nextWeek: 'dddd [عÙÙ Ø§ÙØ³Ø§Ø¹Ø©] LT', 16290 lastDay: '[أ٠س عÙÙ Ø§ÙØ³Ø§Ø¹Ø©] LT', 16291 lastWeek: 'dddd [عÙÙ Ø§ÙØ³Ø§Ø¹Ø©] LT', 16292 sameElse: 'L', 16293 }, 16294 relativeTime: { 16295 future: 'ÙÙ %s', 16296 past: 'Ù ÙØ° %s', 16297 s: 'Ø«ÙØ§Ù', 16298 ss: '%d ثاÙÙØ©', 16299 m: 'دÙÙÙØ©', 16300 mm: '%d Ø¯ÙØ§Ø¦Ù', 16301 h: 'ساعة', 16302 hh: '%d ساعات', 16303 d: 'ÙÙÙ ', 16304 dd: '%d Ø£ÙØ§Ù ', 16305 M: 'Ø´ÙØ±', 16306 MM: '%d Ø£Ø´ÙØ±', 16307 y: 'Ø³ÙØ©', 16308 yy: '%d سÙÙØ§Øª', 16309 }, 16310 week: { 16311 dow: 1, // Monday is the first day of the week. 16312 doy: 4, // The week that contains Jan 4th is the first week of the year. 16313 }, 16314 }); 16315 16316 return arTn; 16317 16318}))); 16319 16320 16321/***/ }), 16322
vendor: 6,321 bytes, lines 16323-16530
16323/***/ "./node_modules/moment/locale/ar.js": 16324/*!******************************************!*\ 16325 !*** ./node_modules/moment/locale/ar.js ***! 16326 \******************************************/ 16327/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 16328 16329//! moment.js locale configuration 16330//! locale : Arabic [ar] 16331//! author : Abdel Said: https://github.com/abdelsaid 16332//! author : Ahmed Elkhatib 16333//! author : forabi https://github.com/forabi 16334 16335;(function (global, factory) { 16336 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 16337 0 16338}(this, (function (moment) { 'use strict'; 16339 16340 //! moment.js locale configuration 16341 16342 var symbolMap = { 16343 1: 'Ù¡', 16344 2: 'Ù¢', 16345 3: 'Ù£', 16346 4: 'Ù¤', 16347 5: 'Ù¥', 16348 6: 'Ù¦', 16349 7: 'Ù§', 16350 8: 'Ù¨', 16351 9: 'Ù©', 16352 0: 'Ù ', 16353 }, 16354 numberMap = { 16355 'Ù¡': '1', 16356 'Ù¢': '2', 16357 'Ù£': '3', 16358 'Ù¤': '4', 16359 'Ù¥': '5', 16360 'Ù¦': '6', 16361 'Ù§': '7', 16362 'Ù¨': '8', 16363 'Ù©': '9', 16364 'Ù ': '0', 16365 }, 16366 pluralForm = function (n) { 16367 return n === 0 16368 ? 0 16369 : n === 1 16370 ? 1 16371 : n === 2 16372 ? 2 16373 : n % 100 >= 3 && n % 100 <= 10 16374 ? 3 16375 : n % 100 >= 11 16376 ? 4 16377 : 5; 16378 }, 16379 plurals = { 16380 s: [ 16381 'Ø£Ù٠٠٠ثاÙÙØ©', 16382 'ثاÙÙØ© ÙØ§ØØ¯Ø©', 16383 ['ثاÙÙØªØ§Ù', 'ثاÙÙØªÙÙ'], 16384 '%d Ø«ÙØ§Ù', 16385 '%d ثاÙÙØ©', 16386 '%d ثاÙÙØ©', 16387 ], 16388 m: [ 16389 'Ø£Ù٠٠٠دÙÙÙØ©', 16390 'دÙÙÙØ© ÙØ§ØØ¯Ø©', 16391 ['دÙÙÙØªØ§Ù', 'دÙÙÙØªÙÙ'], 16392 '%d Ø¯ÙØ§Ø¦Ù', 16393 '%d دÙÙÙØ©', 16394 '%d دÙÙÙØ©', 16395 ], 16396 h: [ 16397 'Ø£Ù٠٠٠ساعة', 16398 'ساعة ÙØ§ØØ¯Ø©', 16399 ['ساعتاÙ', 'ساعتÙÙ'], 16400 '%d ساعات', 16401 '%d ساعة', 16402 '%d ساعة', 16403 ], 16404 d: [ 16405 'Ø£ÙÙ Ù Ù ÙÙÙ ', 16406 'ÙÙÙ ÙØ§ØØ¯', 16407 ['ÙÙ٠اÙ', 'ÙÙÙ ÙÙ'], 16408 '%d Ø£ÙØ§Ù ', 16409 '%d ÙÙÙ ÙØ§', 16410 '%d ÙÙÙ ', 16411 ], 16412 M: [ 16413 'Ø£ÙÙ Ù Ù Ø´ÙØ±', 16414 'Ø´ÙØ± ÙØ§ØØ¯', 16415 ['Ø´ÙØ±Ø§Ù', 'Ø´ÙØ±ÙÙ'], 16416 '%d Ø£Ø´ÙØ±', 16417 '%d Ø´ÙØ±Ø§', 16418 '%d Ø´ÙØ±', 16419 ], 16420 y: [ 16421 'Ø£Ù٠٠٠عا٠', 16422 'Ø¹Ø§Ù ÙØ§ØØ¯', 16423 ['عا٠اÙ', 'عا٠ÙÙ'], 16424 '%d Ø£Ø¹ÙØ§Ù ', 16425 '%d Ø¹Ø§Ù ÙØ§', 16426 '%d عا٠', 16427 ], 16428 }, 16429 pluralize = function (u) { 16430 return function (number, withoutSuffix, string, isFuture) { 16431 var f = pluralForm(number), 16432 str = plurals[u][pluralForm(number)]; 16433 if (f === 2) { 16434 str = str[withoutSuffix ? 0 : 1]; 16435 } 16436 return str.replace(/%d/i, number); 16437 }; 16438 }, 16439 months = [ 16440 'ÙÙØ§Ùر', 16441 'ÙØ¨Ø±Ø§Ùر', 16442 '٠ارس', 16443 'أبرÙÙ', 16444 '٠اÙÙ', 16445 'ÙÙÙÙÙ', 16446 'ÙÙÙÙÙ', 16447 'أغسطس', 16448 'سبت٠بر', 16449 'Ø£ÙØªÙبر', 16450 'ÙÙÙ٠بر', 16451 'Ø¯ÙØ³Ù بر', 16452 ]; 16453 16454 var ar = moment.defineLocale('ar', { 16455 months: months, 16456 monthsShort: months, 16457 weekdays: 'Ø§ÙØ£ØØ¯_Ø§ÙØ¥Ø«ÙÙÙ_Ø§ÙØ«Ùاثاء_Ø§ÙØ£Ø±Ø¨Ø¹Ø§Ø¡_Ø§ÙØ®Ù ÙØ³_Ø§ÙØ¬Ù عة_Ø§ÙØ³Ø¨Øª'.split('_'), 16458 weekdaysShort: 'Ø£ØØ¯_إثÙÙÙ_Ø«ÙØ§Ø«Ø§Ø¡_أربعاء_Ø®Ù ÙØ³_ج٠عة_سبت'.split('_'), 16459 weekdaysMin: 'Ø_Ù_Ø«_ر_Ø®_ج_س'.split('_'), 16460 weekdaysParseExact: true, 16461 longDateFormat: { 16462 LT: 'HH:mm', 16463 LTS: 'HH:mm:ss', 16464 L: 'D/\u200FM/\u200FYYYY', 16465 LL: 'D MMMM YYYY', 16466 LLL: 'D MMMM YYYY HH:mm', 16467 LLLL: 'dddd D MMMM YYYY HH:mm', 16468 }, 16469 meridiemParse: /ص|Ù /, 16470 isPM: function (input) { 16471 return 'Ù ' === input; 16472 }, 16473 meridiem: function (hour, minute, isLower) { 16474 if (hour < 12) { 16475 return 'ص'; 16476 } else { 16477 return 'Ù '; 16478 } 16479 }, 16480 calendar: { 16481 sameDay: '[اÙÙÙÙ Ø¹ÙØ¯ Ø§ÙØ³Ø§Ø¹Ø©] LT', 16482 nextDay: '[ØºØ¯ÙØ§ Ø¹ÙØ¯ Ø§ÙØ³Ø§Ø¹Ø©] LT', 16483 nextWeek: 'dddd [Ø¹ÙØ¯ Ø§ÙØ³Ø§Ø¹Ø©] LT', 16484 lastDay: '[أ٠س Ø¹ÙØ¯ Ø§ÙØ³Ø§Ø¹Ø©] LT', 16485 lastWeek: 'dddd [Ø¹ÙØ¯ Ø§ÙØ³Ø§Ø¹Ø©] LT', 16486 sameElse: 'L', 16487 }, 16488 relativeTime: { 16489 future: 'بعد %s', 16490 past: 'Ù ÙØ° %s', 16491 s: pluralize('s'), 16492 ss: pluralize('s'), 16493 m: pluralize('m'), 16494 mm: pluralize('m'), 16495 h: pluralize('h'), 16496 hh: pluralize('h'), 16497 d: pluralize('d'), 16498 dd: pluralize('d'), 16499 M: pluralize('M'), 16500 MM: pluralize('M'), 16501 y: pluralize('y'), 16502 yy: pluralize('y'), 16503 }, 16504 preparse: function (string) { 16505 return string 16506 .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) { 16507 return numberMap[match]; 16508 }) 16509 .replace(/Ø/g, ','); 16510 }, 16511 postformat: function (string) { 16512 return string 16513 .replace(/\d/g, function (match) { 16514 return symbolMap[match]; 16515 }) 16516 .replace(/,/g, 'Ø'); 16517 }, 16518 week: { 16519 dow: 6, // Saturday is the first day of the week. 16520 doy: 12, // The week that contains Jan 12th is the first week of the year. 16521 }, 16522 }); 16523 16524 return ar; 16525 16526}))); 16527 16528 16529/***/ }), 16530
vendor: 3,715 bytes, lines 16531-16651
16531/***/ "./node_modules/moment/locale/az.js": 16532/*!******************************************!*\ 16533 !*** ./node_modules/moment/locale/az.js ***! 16534 \******************************************/ 16535/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 16536 16537//! moment.js locale configuration 16538//! locale : Azerbaijani [az] 16539//! author : topchiyev : https://github.com/topchiyev 16540 16541;(function (global, factory) { 16542 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 16543 0 16544}(this, (function (moment) { 'use strict'; 16545 16546 //! moment.js locale configuration 16547 16548 var suffixes = { 16549 1: '-inci', 16550 5: '-inci', 16551 8: '-inci', 16552 70: '-inci', 16553 80: '-inci', 16554 2: '-nci', 16555 7: '-nci', 16556 20: '-nci', 16557 50: '-nci', 16558 3: '-üncü', 16559 4: '-üncü', 16560 100: '-üncü', 16561 6: '-ncı', 16562 9: '-uncu', 16563 10: '-uncu', 16564 30: '-uncu', 16565 60: '-ıncı', 16566 90: '-ıncı', 16567 }; 16568 16569 var az = moment.defineLocale('az', { 16570 months: 'yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr'.split( 16571 '_' 16572 ), 16573 monthsShort: 'yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek'.split('_'), 16574 weekdays: 16575 'Bazar_Bazar ertÉsi_ÃÉrÅÉnbÉ axÅamı_ÃÉrÅÉnbÉ_CümÉ axÅamı_CümÉ_ÅÉnbÉ'.split( 16576 '_' 16577 ), 16578 weekdaysShort: 'Baz_BzE_ÃAx_ÃÉr_CAx_Cüm_ÅÉn'.split('_'), 16579 weekdaysMin: 'Bz_BE_ÃA_ÃÉ_CA_Cü_ÅÉ'.split('_'), 16580 weekdaysParseExact: true, 16581 longDateFormat: { 16582 LT: 'HH:mm', 16583 LTS: 'HH:mm:ss', 16584 L: 'DD.MM.YYYY', 16585 LL: 'D MMMM YYYY', 16586 LLL: 'D MMMM YYYY HH:mm', 16587 LLLL: 'dddd, D MMMM YYYY HH:mm', 16588 }, 16589 calendar: { 16590 sameDay: '[bugün saat] LT', 16591 nextDay: '[sabah saat] LT', 16592 nextWeek: '[gÉlÉn hÉftÉ] dddd [saat] LT', 16593 lastDay: '[dünÉn] LT', 16594 lastWeek: '[keçÉn hÉftÉ] dddd [saat] LT', 16595 sameElse: 'L', 16596 }, 16597 relativeTime: { 16598 future: '%s sonra', 16599 past: '%s ÉvvÉl', 16600 s: 'bir neÃ§É saniyÉ', 16601 ss: '%d saniyÉ', 16602 m: 'bir dÉqiqÉ', 16603 mm: '%d dÉqiqÉ', 16604 h: 'bir saat', 16605 hh: '%d saat', 16606 d: 'bir gün', 16607 dd: '%d gün', 16608 M: 'bir ay', 16609 MM: '%d ay', 16610 y: 'bir il', 16611 yy: '%d il', 16612 }, 16613 meridiemParse: /gecÉ|sÉhÉr|gündüz|axÅam/, 16614 isPM: function (input) { 16615 return /^(gündüz|axÅam)$/.test(input); 16616 }, 16617 meridiem: function (hour, minute, isLower) { 16618 if (hour < 4) { 16619 return 'gecÉ'; 16620 } else if (hour < 12) { 16621 return 'sÉhÉr'; 16622 } else if (hour < 17) { 16623 return 'gündüz'; 16624 } else { 16625 return 'axÅam'; 16626 } 16627 }, 16628 dayOfMonthOrdinalParse: /\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/, 16629 ordinal: function (number) { 16630 if (number === 0) { 16631 // special case for zero 16632 return number + '-ıncı'; 16633 } 16634 var a = number % 10, 16635 b = (number % 100) - a, 16636 c = number >= 100 ? 100 : null; 16637 return number + (suffixes[a] || suffixes[b] || suffixes[c]); 16638 }, 16639 week: { 16640 dow: 1, // Monday is the first day of the week. 16641 doy: 7, // The week that contains Jan 7th is the first week of the year. 16642 }, 16643 }); 16644 16645 return az; 16646 16647}))); 16648 16649 16650/***/ }), 16651
vendor: 6,179 bytes, lines 16652-16812
16652/***/ "./node_modules/moment/locale/be.js": 16653/*!******************************************!*\ 16654 !*** ./node_modules/moment/locale/be.js ***! 16655 \******************************************/ 16656/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 16657 16658//! moment.js locale configuration 16659//! locale : Belarusian [be] 16660//! author : Dmitry Demidov : https://github.com/demidov91 16661//! author: Praleska: http://praleska.pro/ 16662//! Author : Menelion Elensúle : https://github.com/Oire 16663 16664;(function (global, factory) { 16665 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 16666 0 16667}(this, (function (moment) { 'use strict'; 16668 16669 //! moment.js locale configuration 16670 16671 function plural(word, num) { 16672 var forms = word.split('_'); 16673 return num % 10 === 1 && num % 100 !== 11 16674 ? forms[0] 16675 : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) 16676 ? forms[1] 16677 : forms[2]; 16678 } 16679 function relativeTimeWithPlural(number, withoutSuffix, key) { 16680 var format = { 16681 ss: withoutSuffix ? 'ÑекÑнда_ÑекÑндÑ_ÑекÑнд' : 'ÑекÑндÑ_ÑекÑндÑ_ÑекÑнд', 16682 mm: withoutSuffix ? 'Ñ Ð²ÑлÑна_Ñ Ð²ÑлÑнÑ_Ñ Ð²ÑлÑн' : 'Ñ Ð²ÑлÑнÑ_Ñ Ð²ÑлÑнÑ_Ñ Ð²ÑлÑн', 16683 hh: withoutSuffix ? 'гадзÑна_гадзÑнÑ_гадзÑн' : 'гадзÑнÑ_гадзÑнÑ_гадзÑн', 16684 dd: 'дзенÑ_днÑ_дзÑн', 16685 MM: 'меÑÑÑ_меÑÑÑÑ_меÑÑÑаÑ', 16686 yy: 'год_гадÑ_гадоÑ', 16687 }; 16688 if (key === 'm') { 16689 return withoutSuffix ? 'Ñ Ð²ÑлÑна' : 'Ñ Ð²ÑлÑнÑ'; 16690 } else if (key === 'h') { 16691 return withoutSuffix ? 'гадзÑна' : 'гадзÑнÑ'; 16692 } else { 16693 return number + ' ' + plural(format[key], +number); 16694 } 16695 } 16696 16697 var be = moment.defineLocale('be', { 16698 months: { 16699 format: 'ÑÑÑдзенÑ_лÑÑага_ÑакавÑка_кÑаÑавÑка_ÑÑаÑнÑ_ÑÑÑвенÑ_лÑпенÑ_жнÑÑнÑ_веÑаÑнÑ_каÑÑÑÑÑнÑка_лÑÑÑапада_ÑнежнÑ'.split( 16700 '_' 16701 ), 16702 standalone: 16703 'ÑÑÑдзенÑ_лÑÑÑ_ÑакавÑк_кÑаÑавÑк_ÑÑавенÑ_ÑÑÑвенÑ_лÑпенÑ_жнÑвенÑ_веÑаÑенÑ_каÑÑÑÑÑнÑк_лÑÑÑапад_ÑнежанÑ'.split( 16704 '_' 16705 ), 16706 }, 16707 monthsShort: 16708 'ÑÑÑд_лÑÑ_Ñак_кÑаÑ_ÑÑав_ÑÑÑв_лÑп_жнÑв_веÑ_каÑÑ_лÑÑÑ_Ñнеж'.split('_'), 16709 weekdays: { 16710 format: 'нÑдзелÑ_панÑдзелак_аÑÑоÑак_ÑеÑадÑ_ÑаÑвеÑ_пÑÑнÑÑÑ_ÑÑбоÑÑ'.split( 16711 '_' 16712 ), 16713 standalone: 16714 'нÑдзелÑ_панÑдзелак_аÑÑоÑак_ÑеÑада_ÑаÑвеÑ_пÑÑнÑÑа_ÑÑбоÑа'.split( 16715 '_' 16716 ), 16717 isFormat: /\[ ?[УÑÑ] ?(?:мÑнÑлÑÑ|наÑÑÑпнÑÑ)? ?\] ?dddd/, 16718 }, 16719 weekdaysShort: 'нд_пн_аÑ_ÑÑ_ÑÑ_пÑ_Ñб'.split('_'), 16720 weekdaysMin: 'нд_пн_аÑ_ÑÑ_ÑÑ_пÑ_Ñб'.split('_'), 16721 longDateFormat: { 16722 LT: 'HH:mm', 16723 LTS: 'HH:mm:ss', 16724 L: 'DD.MM.YYYY', 16725 LL: 'D MMMM YYYY г.', 16726 LLL: 'D MMMM YYYY г., HH:mm', 16727 LLLL: 'dddd, D MMMM YYYY г., HH:mm', 16728 }, 16729 calendar: { 16730 sameDay: '[СÑÐ½Ð½Ñ Ñ] LT', 16731 nextDay: '[ÐаÑÑÑа Ñ] LT', 16732 lastDay: '[УÑоÑа Ñ] LT', 16733 nextWeek: function () { 16734 return '[У] dddd [Ñ] LT'; 16735 }, 16736 lastWeek: function () { 16737 switch (this.day()) { 16738 case 0: 16739 case 3: 16740 case 5: 16741 case 6: 16742 return '[У мÑнÑлÑÑ] dddd [Ñ] LT'; 16743 case 1: 16744 case 2: 16745 case 4: 16746 return '[У мÑнÑлÑ] dddd [Ñ] LT'; 16747 } 16748 }, 16749 sameElse: 'L', 16750 }, 16751 relativeTime: { 16752 future: 'пÑаз %s', 16753 past: '%s ÑамÑ', 16754 s: 'некалÑÐºÑ ÑекÑнд', 16755 m: relativeTimeWithPlural, 16756 mm: relativeTimeWithPlural, 16757 h: relativeTimeWithPlural, 16758 hh: relativeTimeWithPlural, 16759 d: 'дзенÑ', 16760 dd: relativeTimeWithPlural, 16761 M: 'меÑÑÑ', 16762 MM: relativeTimeWithPlural, 16763 y: 'год', 16764 yy: relativeTimeWithPlural, 16765 }, 16766 meridiemParse: /ноÑÑ|ÑанÑÑÑ|днÑ|веÑаÑа/, 16767 isPM: function (input) { 16768 return /^(днÑ|веÑаÑа)$/.test(input); 16769 }, 16770 meridiem: function (hour, minute, isLower) { 16771 if (hour < 4) { 16772 return 'ноÑÑ'; 16773 } else if (hour < 12) { 16774 return 'ÑанÑÑÑ'; 16775 } else if (hour < 17) { 16776 return 'днÑ'; 16777 } else { 16778 return 'веÑаÑа'; 16779 } 16780 }, 16781 dayOfMonthOrdinalParse: /\d{1,2}-(Ñ|Ñ|га)/, 16782 ordinal: function (number, period) { 16783 switch (period) { 16784 case 'M': 16785 case 'd': 16786 case 'DDD': 16787 case 'w': 16788 case 'W': 16789 return (number % 10 === 2 || number % 10 === 3) && 16790 number % 100 !== 12 && 16791 number % 100 !== 13 16792 ? number + '-Ñ' 16793 : number + '-Ñ'; 16794 case 'D': 16795 return number + '-га'; 16796 default: 16797 return number; 16798 } 16799 }, 16800 week: { 16801 dow: 1, // Monday is the first day of the week. 16802 doy: 7, // The week that contains Jan 7th is the first week of the year. 16803 }, 16804 }); 16805 16806 return be; 16807 16808}))); 16809 16810 16811/***/ }), 16812
vendor: 3,768 bytes, lines 16813-16918
16813/***/ "./node_modules/moment/locale/bg.js": 16814/*!******************************************!*\ 16815 !*** ./node_modules/moment/locale/bg.js ***! 16816 \******************************************/ 16817/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 16818 16819//! moment.js locale configuration 16820//! locale : Bulgarian [bg] 16821//! author : Krasen Borisov : https://github.com/kraz 16822 16823;(function (global, factory) { 16824 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 16825 0 16826}(this, (function (moment) { 'use strict'; 16827 16828 //! moment.js locale configuration 16829 16830 var bg = moment.defineLocale('bg', { 16831 months: 'ÑнÑаÑи_ÑевÑÑаÑи_маÑÑ_апÑил_май_Ñни_Ñли_авгÑÑÑ_ÑепÑемвÑи_окÑомвÑи_ноемвÑи_декемвÑи'.split( 16832 '_' 16833 ), 16834 monthsShort: 'ÑнÑ_Ñев_маÑ_апÑ_май_Ñни_Ñли_авг_Ñеп_окÑ_ное_дек'.split('_'), 16835 weekdays: 'неделÑ_понеделник_вÑоÑник_ÑÑÑда_ÑеÑвÑÑÑÑк_пеÑÑк_ÑÑбоÑа'.split( 16836 '_' 16837 ), 16838 weekdaysShort: 'нед_пон_вÑо_ÑÑÑ_ÑеÑ_пеÑ_ÑÑб'.split('_'), 16839 weekdaysMin: 'нд_пн_вÑ_ÑÑ_ÑÑ_пÑ_Ñб'.split('_'), 16840 longDateFormat: { 16841 LT: 'H:mm', 16842 LTS: 'H:mm:ss', 16843 L: 'D.MM.YYYY', 16844 LL: 'D MMMM YYYY', 16845 LLL: 'D MMMM YYYY H:mm', 16846 LLLL: 'dddd, D MMMM YYYY H:mm', 16847 }, 16848 calendar: { 16849 sameDay: '[ÐÐ½ÐµÑ Ð²] LT', 16850 nextDay: '[УÑÑе в] LT', 16851 nextWeek: 'dddd [в] LT', 16852 lastDay: '[ÐÑеÑа в] LT', 16853 lastWeek: function () { 16854 switch (this.day()) { 16855 case 0: 16856 case 3: 16857 case 6: 16858 return '[ÐиналаÑа] dddd [в] LT'; 16859 case 1: 16860 case 2: 16861 case 4: 16862 case 5: 16863 return '[ÐиналиÑ] dddd [в] LT'; 16864 } 16865 }, 16866 sameElse: 'L', 16867 }, 16868 relativeTime: { 16869 future: 'Ñлед %s', 16870 past: 'пÑеди %s', 16871 s: 'нÑколко ÑекÑнди', 16872 ss: '%d ÑекÑнди', 16873 m: 'минÑÑа', 16874 mm: '%d минÑÑи', 16875 h: 'ÑаÑ', 16876 hh: '%d ÑаÑа', 16877 d: 'ден', 16878 dd: '%d дена', 16879 w: 'ÑедмиÑа', 16880 ww: '%d ÑедмиÑи', 16881 M: 'меÑеÑ', 16882 MM: '%d меÑеÑа', 16883 y: 'година', 16884 yy: '%d години', 16885 }, 16886 dayOfMonthOrdinalParse: /\d{1,2}-(ев|ен|Ñи|ви|Ñи|ми)/, 16887 ordinal: function (number) { 16888 var lastDigit = number % 10, 16889 last2Digits = number % 100; 16890 if (number === 0) { 16891 return number + '-ев'; 16892 } else if (last2Digits === 0) { 16893 return number + '-ен'; 16894 } else if (last2Digits > 10 && last2Digits < 20) { 16895 return number + '-Ñи'; 16896 } else if (lastDigit === 1) { 16897 return number + '-ви'; 16898 } else if (lastDigit === 2) { 16899 return number + '-Ñи'; 16900 } else if (lastDigit === 7 || lastDigit === 8) { 16901 return number + '-ми'; 16902 } else { 16903 return number + '-Ñи'; 16904 } 16905 }, 16906 week: { 16907 dow: 1, // Monday is the first day of the week. 16908 doy: 7, // The week that contains Jan 7th is the first week of the year. 16909 }, 16910 }); 16911 16912 return bg; 16913 16914}))); 16915 16916 16917/***/ }), 16918
vendor: 2,378 bytes, lines 16919-16988
16919/***/ "./node_modules/moment/locale/bm.js": 16920/*!******************************************!*\ 16921 !*** ./node_modules/moment/locale/bm.js ***! 16922 \******************************************/ 16923/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 16924 16925//! moment.js locale configuration 16926//! locale : Bambara [bm] 16927//! author : Estelle Comment : https://github.com/estellecomment 16928 16929;(function (global, factory) { 16930 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 16931 0 16932}(this, (function (moment) { 'use strict'; 16933 16934 //! moment.js locale configuration 16935 16936 var bm = moment.defineLocale('bm', { 16937 months: 'Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_MÉkalo_ZuwÉnkalo_Zuluyekalo_Utikalo_SÉtanburukalo_ÉkutÉburukalo_Nowanburukalo_Desanburukalo'.split( 16938 '_' 16939 ), 16940 monthsShort: 'Zan_Few_Mar_Awi_MÉ_Zuw_Zul_Uti_SÉt_Éku_Now_Des'.split('_'), 16941 weekdays: 'Kari_NtÉnÉn_Tarata_Araba_Alamisa_Juma_Sibiri'.split('_'), 16942 weekdaysShort: 'Kar_NtÉ_Tar_Ara_Ala_Jum_Sib'.split('_'), 16943 weekdaysMin: 'Ka_Nt_Ta_Ar_Al_Ju_Si'.split('_'), 16944 longDateFormat: { 16945 LT: 'HH:mm', 16946 LTS: 'HH:mm:ss', 16947 L: 'DD/MM/YYYY', 16948 LL: 'MMMM [tile] D [san] YYYY', 16949 LLL: 'MMMM [tile] D [san] YYYY [lÉrÉ] HH:mm', 16950 LLLL: 'dddd MMMM [tile] D [san] YYYY [lÉrÉ] HH:mm', 16951 }, 16952 calendar: { 16953 sameDay: '[Bi lÉrÉ] LT', 16954 nextDay: '[Sini lÉrÉ] LT', 16955 nextWeek: 'dddd [don lÉrÉ] LT', 16956 lastDay: '[Kunu lÉrÉ] LT', 16957 lastWeek: 'dddd [tÉmÉnen lÉrÉ] LT', 16958 sameElse: 'L', 16959 }, 16960 relativeTime: { 16961 future: '%s kÉnÉ', 16962 past: 'a bÉ %s bÉ', 16963 s: 'sanga dama dama', 16964 ss: 'sekondi %d', 16965 m: 'miniti kelen', 16966 mm: 'miniti %d', 16967 h: 'lÉrÉ kelen', 16968 hh: 'lÉrÉ %d', 16969 d: 'tile kelen', 16970 dd: 'tile %d', 16971 M: 'kalo kelen', 16972 MM: 'kalo %d', 16973 y: 'san kelen', 16974 yy: 'san %d', 16975 }, 16976 week: { 16977 dow: 1, // Monday is the first day of the week. 16978 doy: 4, // The week that contains Jan 4th is the first week of the year. 16979 }, 16980 }); 16981 16982 return bm; 16983 16984}))); 16985 16986 16987/***/ }), 16988
vendor: 5,334 bytes, lines 16989-17136
16989/***/ "./node_modules/moment/locale/bn-bd.js": 16990/*!*********************************************!*\ 16991 !*** ./node_modules/moment/locale/bn-bd.js ***! 16992 \*********************************************/ 16993/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 16994 16995//! moment.js locale configuration 16996//! locale : Bengali (Bangladesh) [bn-bd] 16997//! author : Asraf Hossain Patoary : https://github.com/ashwoolford 16998 16999;(function (global, factory) { 17000 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 17001 0 17002}(this, (function (moment) { 'use strict'; 17003 17004 //! moment.js locale configuration 17005 17006 var symbolMap = { 17007 1: 'à§§', 17008 2: '২', 17009 3: 'à§©', 17010 4: '৪', 17011 5: 'à§«', 17012 6: '৬', 17013 7: 'à§', 17014 8: 'à§®', 17015 9: '৯', 17016 0: '০', 17017 }, 17018 numberMap = { 17019 'à§§': '1', 17020 '২': '2', 17021 'à§©': '3', 17022 '৪': '4', 17023 'à§«': '5', 17024 '৬': '6', 17025 'à§': '7', 17026 'à§®': '8', 17027 '৯': '9', 17028 '০': '0', 17029 }; 17030 17031 var bnBd = moment.defineLocale('bn-bd', { 17032 months: 'à¦à¦¾à¦¨à§à§à¦¾à¦°à¦¿_ফà§à¦¬à§à¦°à§à§à¦¾à¦°à¦¿_মারà§à¦_à¦à¦ªà§à¦°à¦¿à¦²_মà§_à¦à§à¦¨_à¦à§à¦²à¦¾à¦_à¦à¦à¦¸à§à¦_সà§à¦ªà§à¦à§à¦®à§à¦¬à¦°_ঠà¦à§à¦à§à¦¬à¦°_নà¦à§à¦®à§à¦¬à¦°_ডিসà§à¦®à§à¦¬à¦°'.split( 17033 '_' 17034 ), 17035 monthsShort: 17036 'à¦à¦¾à¦¨à§_ফà§à¦¬à§à¦°à§_মারà§à¦_à¦à¦ªà§à¦°à¦¿à¦²_মà§_à¦à§à¦¨_à¦à§à¦²à¦¾à¦_à¦à¦à¦¸à§à¦_সà§à¦ªà§à¦_ঠà¦à§à¦à§_নà¦à§_ডিসà§'.split( 17037 '_' 17038 ), 17039 weekdays: 'রবিবার_সà§à¦®à¦¬à¦¾à¦°_মà¦à§à¦à¦²à¦¬à¦¾à¦°_বà§à¦§à¦¬à¦¾à¦°_বà§à¦¹à¦¸à§à¦ªà¦¤à¦¿à¦¬à¦¾à¦°_শà§à¦à§à¦°à¦¬à¦¾à¦°_শনিবার'.split( 17040 '_' 17041 ), 17042 weekdaysShort: 'রবি_সà§à¦®_মà¦à§à¦à¦²_বà§à¦§_বà§à¦¹à¦¸à§à¦ªà¦¤à¦¿_শà§à¦à§à¦°_শনি'.split('_'), 17043 weekdaysMin: 'রবি_সà§à¦®_মà¦à§à¦à¦²_বà§à¦§_বà§à¦¹_শà§à¦à§à¦°_শনি'.split('_'), 17044 longDateFormat: { 17045 LT: 'A h:mm সমà§', 17046 LTS: 'A h:mm:ss সমà§', 17047 L: 'DD/MM/YYYY', 17048 LL: 'D MMMM YYYY', 17049 LLL: 'D MMMM YYYY, A h:mm সমà§', 17050 LLLL: 'dddd, D MMMM YYYY, A h:mm সমà§', 17051 }, 17052 calendar: { 17053 sameDay: '[à¦à¦] LT', 17054 nextDay: '[à¦à¦à¦¾à¦®à§à¦à¦¾à¦²] LT', 17055 nextWeek: 'dddd, LT', 17056 lastDay: '[à¦à¦¤à¦à¦¾à¦²] LT', 17057 lastWeek: '[à¦à¦¤] dddd, LT', 17058 sameElse: 'L', 17059 }, 17060 relativeTime: { 17061 future: '%s পরà§', 17062 past: '%s à¦à¦à§', 17063 s: 'à¦à§à§à¦ সà§à¦à§à¦¨à§à¦¡', 17064 ss: '%d সà§à¦à§à¦¨à§à¦¡', 17065 m: 'à¦à¦ মিনিà¦', 17066 mm: '%d মিনিà¦', 17067 h: 'à¦à¦ à¦à¦¨à§à¦à¦¾', 17068 hh: '%d à¦à¦¨à§à¦à¦¾', 17069 d: 'à¦à¦ দিন', 17070 dd: '%d দিন', 17071 M: 'à¦à¦ মাস', 17072 MM: '%d মাস', 17073 y: 'à¦à¦ বà¦à¦°', 17074 yy: '%d বà¦à¦°', 17075 }, 17076 preparse: function (string) { 17077 return string.replace(/[১২৩৪৫৬à§à§®à§¯à§¦]/g, function (match) { 17078 return numberMap[match]; 17079 }); 17080 }, 17081 postformat: function (string) { 17082 return string.replace(/\d/g, function (match) { 17083 return symbolMap[match]; 17084 }); 17085 }, 17086 17087 meridiemParse: /রাত|à¦à§à¦°|সà¦à¦¾à¦²|দà§à¦ªà§à¦°|বিà¦à¦¾à¦²|সনà§à¦§à§à¦¯à¦¾|রাত/, 17088 meridiemHour: function (hour, meridiem) { 17089 if (hour === 12) { 17090 hour = 0; 17091 } 17092 if (meridiem === 'রাত') { 17093 return hour < 4 ? hour : hour + 12; 17094 } else if (meridiem === 'à¦à§à¦°') { 17095 return hour; 17096 } else if (meridiem === 'সà¦à¦¾à¦²') { 17097 return hour; 17098 } else if (meridiem === 'দà§à¦ªà§à¦°') { 17099 return hour >= 3 ? hour : hour + 12; 17100 } else if (meridiem === 'বিà¦à¦¾à¦²') { 17101 return hour + 12; 17102 } else if (meridiem === 'সনà§à¦§à§à¦¯à¦¾') { 17103 return hour + 12; 17104 } 17105 }, 17106 17107 meridiem: function (hour, minute, isLower) { 17108 if (hour < 4) { 17109 return 'রাত'; 17110 } else if (hour < 6) { 17111 return 'à¦à§à¦°'; 17112 } else if (hour < 12) { 17113 return 'সà¦à¦¾à¦²'; 17114 } else if (hour < 15) { 17115 return 'দà§à¦ªà§à¦°'; 17116 } else if (hour < 18) { 17117 return 'বিà¦à¦¾à¦²'; 17118 } else if (hour < 20) { 17119 return 'সনà§à¦§à§à¦¯à¦¾'; 17120 } else { 17121 return 'রাত'; 17122 } 17123 }, 17124 week: { 17125 dow: 0, // Sunday is the first day of the week. 17126 doy: 6, // The week that contains Jan 6th is the first week of the year. 17127 }, 17128 }); 17129 17130 return bnBd; 17131 17132}))); 17133 17134 17135/***/ }), 17136
vendor: 4,835 bytes, lines 17137-17274
17137/***/ "./node_modules/moment/locale/bn.js": 17138/*!******************************************!*\ 17139 !*** ./node_modules/moment/locale/bn.js ***! 17140 \******************************************/ 17141/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 17142 17143//! moment.js locale configuration 17144//! locale : Bengali [bn] 17145//! author : Kaushik Gandhi : https://github.com/kaushikgandhi 17146 17147;(function (global, factory) { 17148 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 17149 0 17150}(this, (function (moment) { 'use strict'; 17151 17152 //! moment.js locale configuration 17153 17154 var symbolMap = { 17155 1: 'à§§', 17156 2: '২', 17157 3: 'à§©', 17158 4: '৪', 17159 5: 'à§«', 17160 6: '৬', 17161 7: 'à§', 17162 8: 'à§®', 17163 9: '৯', 17164 0: '০', 17165 }, 17166 numberMap = { 17167 'à§§': '1', 17168 '২': '2', 17169 'à§©': '3', 17170 '৪': '4', 17171 'à§«': '5', 17172 '৬': '6', 17173 'à§': '7', 17174 'à§®': '8', 17175 '৯': '9', 17176 '০': '0', 17177 }; 17178 17179 var bn = moment.defineLocale('bn', { 17180 months: 'à¦à¦¾à¦¨à§à§à¦¾à¦°à¦¿_ফà§à¦¬à§à¦°à§à§à¦¾à¦°à¦¿_মারà§à¦_à¦à¦ªà§à¦°à¦¿à¦²_মà§_à¦à§à¦¨_à¦à§à¦²à¦¾à¦_à¦à¦à¦¸à§à¦_সà§à¦ªà§à¦à§à¦®à§à¦¬à¦°_ঠà¦à§à¦à§à¦¬à¦°_নà¦à§à¦®à§à¦¬à¦°_ডিসà§à¦®à§à¦¬à¦°'.split( 17181 '_' 17182 ), 17183 monthsShort: 17184 'à¦à¦¾à¦¨à§_ফà§à¦¬à§à¦°à§_মারà§à¦_à¦à¦ªà§à¦°à¦¿à¦²_মà§_à¦à§à¦¨_à¦à§à¦²à¦¾à¦_à¦à¦à¦¸à§à¦_সà§à¦ªà§à¦_ঠà¦à§à¦à§_নà¦à§_ডিসà§'.split( 17185 '_' 17186 ), 17187 weekdays: 'রবিবার_সà§à¦®à¦¬à¦¾à¦°_মà¦à§à¦à¦²à¦¬à¦¾à¦°_বà§à¦§à¦¬à¦¾à¦°_বà§à¦¹à¦¸à§à¦ªà¦¤à¦¿à¦¬à¦¾à¦°_শà§à¦à§à¦°à¦¬à¦¾à¦°_শনিবার'.split( 17188 '_' 17189 ), 17190 weekdaysShort: 'রবি_সà§à¦®_মà¦à§à¦à¦²_বà§à¦§_বà§à¦¹à¦¸à§à¦ªà¦¤à¦¿_শà§à¦à§à¦°_শনি'.split('_'), 17191 weekdaysMin: 'রবি_সà§à¦®_মà¦à§à¦à¦²_বà§à¦§_বà§à¦¹_শà§à¦à§à¦°_শনি'.split('_'), 17192 longDateFormat: { 17193 LT: 'A h:mm সমà§', 17194 LTS: 'A h:mm:ss সমà§', 17195 L: 'DD/MM/YYYY', 17196 LL: 'D MMMM YYYY', 17197 LLL: 'D MMMM YYYY, A h:mm সমà§', 17198 LLLL: 'dddd, D MMMM YYYY, A h:mm সমà§', 17199 }, 17200 calendar: { 17201 sameDay: '[à¦à¦] LT', 17202 nextDay: '[à¦à¦à¦¾à¦®à§à¦à¦¾à¦²] LT', 17203 nextWeek: 'dddd, LT', 17204 lastDay: '[à¦à¦¤à¦à¦¾à¦²] LT', 17205 lastWeek: '[à¦à¦¤] dddd, LT', 17206 sameElse: 'L', 17207 }, 17208 relativeTime: { 17209 future: '%s পরà§', 17210 past: '%s à¦à¦à§', 17211 s: 'à¦à§à§à¦ সà§à¦à§à¦¨à§à¦¡', 17212 ss: '%d সà§à¦à§à¦¨à§à¦¡', 17213 m: 'à¦à¦ মিনিà¦', 17214 mm: '%d মিনিà¦', 17215 h: 'à¦à¦ à¦à¦¨à§à¦à¦¾', 17216 hh: '%d à¦à¦¨à§à¦à¦¾', 17217 d: 'à¦à¦ দিন', 17218 dd: '%d দিন', 17219 M: 'à¦à¦ মাস', 17220 MM: '%d মাস', 17221 y: 'à¦à¦ বà¦à¦°', 17222 yy: '%d বà¦à¦°', 17223 }, 17224 preparse: function (string) { 17225 return string.replace(/[১২৩৪৫৬à§à§®à§¯à§¦]/g, function (match) { 17226 return numberMap[match]; 17227 }); 17228 }, 17229 postformat: function (string) { 17230 return string.replace(/\d/g, function (match) { 17231 return symbolMap[match]; 17232 }); 17233 }, 17234 meridiemParse: /রাত|সà¦à¦¾à¦²|দà§à¦ªà§à¦°|বিà¦à¦¾à¦²|রাত/, 17235 meridiemHour: function (hour, meridiem) { 17236 if (hour === 12) { 17237 hour = 0; 17238 } 17239 if ( 17240 (meridiem === 'রাত' && hour >= 4) || 17241 (meridiem === 'দà§à¦ªà§à¦°' && hour < 5) || 17242 meridiem === 'বিà¦à¦¾à¦²' 17243 ) { 17244 return hour + 12; 17245 } else { 17246 return hour; 17247 } 17248 }, 17249 meridiem: function (hour, minute, isLower) { 17250 if (hour < 4) { 17251 return 'রাত'; 17252 } else if (hour < 10) { 17253 return 'সà¦à¦¾à¦²'; 17254 } else if (hour < 17) { 17255 return 'দà§à¦ªà§à¦°'; 17256 } else if (hour < 20) { 17257 return 'বিà¦à¦¾à¦²'; 17258 } else { 17259 return 'রাত'; 17260 } 17261 }, 17262 week: { 17263 dow: 0, // Sunday is the first day of the week. 17264 doy: 6, // The week that contains Jan 6th is the first week of the year. 17265 }, 17266 }); 17267 17268 return bn; 17269 17270}))); 17271 17272 17273/***/ }), 17274
vendor: 5,356 bytes, lines 17275-17417
17275/***/ "./node_modules/moment/locale/bo.js": 17276/*!******************************************!*\ 17277 !*** ./node_modules/moment/locale/bo.js ***! 17278 \******************************************/ 17279/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 17280 17281//! moment.js locale configuration 17282//! locale : Tibetan [bo] 17283//! author : Thupten N. Chakrishar : https://github.com/vajradog 17284 17285;(function (global, factory) { 17286 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 17287 0 17288}(this, (function (moment) { 'use strict'; 17289 17290 //! moment.js locale configuration 17291 17292 var symbolMap = { 17293 1: '༡', 17294 2: '༢', 17295 3: '༣', 17296 4: '༤', 17297 5: '༥', 17298 6: '༦', 17299 7: '༧', 17300 8: '༨', 17301 9: '༩', 17302 0: '༠', 17303 }, 17304 numberMap = { 17305 '༡': '1', 17306 '༢': '2', 17307 '༣': '3', 17308 '༤': '4', 17309 '༥': '5', 17310 '༦': '6', 17311 '༧': '7', 17312 '༨': '8', 17313 '༩': '9', 17314 '༠': '0', 17315 }; 17316 17317 var bo = moment.defineLocale('bo', { 17318 months: 'à½à¾³à¼à½à¼à½à½à¼à½à½¼_à½à¾³à¼à½à¼à½à½à½²à½¦à¼à½_à½à¾³à¼à½à¼à½à½¦à½´à½à¼à½_à½à¾³à¼à½à¼à½à½à½²à¼à½_à½à¾³à¼à½à¼à½£à¾à¼à½_à½à¾³à¼à½à¼à½à¾²à½´à½à¼à½_à½à¾³à¼à½à¼à½à½à½´à½à¼à½_à½à¾³à¼à½à¼à½à½¢à¾à¾±à½à¼à½_à½à¾³à¼à½à¼à½à½à½´à¼à½_à½à¾³à¼à½à¼à½à½ ུà¼à½_à½à¾³à¼à½à¼à½à½ ུà¼à½à½ ིà½à¼à½_à½à¾³à¼à½à¼à½à½ ུà¼à½à½à½²à½¦à¼à½'.split( 17319 '_' 17320 ), 17321 monthsShort: 17322 'à½à¾³à¼1_à½à¾³à¼2_à½à¾³à¼3_à½à¾³à¼4_à½à¾³à¼5_à½à¾³à¼6_à½à¾³à¼7_à½à¾³à¼8_à½à¾³à¼9_à½à¾³à¼10_à½à¾³à¼11_à½à¾³à¼12'.split( 17323 '_' 17324 ), 17325 monthsShortRegex: /^(à½à¾³à¼\d{1,2})/, 17326 monthsParseExact: true, 17327 weekdays: 17328 'à½à½à½ à¼à½à½²à¼à½à¼_à½à½à½ à¼à½à¾³à¼à½à¼_à½à½à½ à¼à½à½²à½à¼à½à½à½¢à¼_à½à½à½ à¼à½£à¾·à½à¼à½à¼_à½à½à½ à¼à½à½´à½¢à¼à½à½´_à½à½à½ à¼à½à¼à½¦à½à½¦à¼_à½à½à½ à¼à½¦à¾¤à½ºà½à¼à½à¼'.split( 17329 '_' 17330 ), 17331 weekdaysShort: 'à½à½²à¼à½à¼_à½à¾³à¼à½à¼_à½à½²à½à¼à½à½à½¢à¼_ལྷà½à¼à½à¼_à½à½´à½¢à¼à½à½´_à½à¼à½¦à½à½¦à¼_སྤེà½à¼à½à¼'.split( 17332 '_' 17333 ), 17334 weekdaysMin: 'à½à½²_à½à¾³_à½à½²à½_ལྷà½_à½à½´à½¢_སà½à½¦_སྤེà½'.split('_'), 17335 longDateFormat: { 17336 LT: 'A h:mm', 17337 LTS: 'A h:mm:ss', 17338 L: 'DD/MM/YYYY', 17339 LL: 'D MMMM YYYY', 17340 LLL: 'D MMMM YYYY, A h:mm', 17341 LLLL: 'dddd, D MMMM YYYY, A h:mm', 17342 }, 17343 calendar: { 17344 sameDay: '[à½à½²à¼à½¢à½²à½] LT', 17345 nextDay: '[སà½à¼à½à½²à½] LT', 17346 nextWeek: '[à½à½à½´à½à¼à½à¾²à½à¼à½¢à¾à½ºà½¦à¼à½], LT', 17347 lastDay: '[à½à¼à½¦à½] LT', 17348 lastWeek: '[à½à½à½´à½à¼à½à¾²à½à¼à½à½à½ à¼à½] dddd, LT', 17349 sameElse: 'L', 17350 }, 17351 relativeTime: { 17352 future: '%s ལà¼', 17353 past: '%s སà¾à½à¼à½£', 17354 s: 'ལà½à¼à½¦à½', 17355 ss: '%d སà¾à½¢à¼à½à¼', 17356 m: 'སà¾à½¢à¼à½à¼à½à½ ིà½', 17357 mm: '%d སà¾à½¢à¼à½', 17358 h: 'à½à½´à¼à½à½¼à½à¼à½à½ ིà½', 17359 hh: '%d à½à½´à¼à½à½¼à½', 17360 d: 'à½à½²à½à¼à½à½ ིà½', 17361 dd: '%d à½à½²à½à¼', 17362 M: 'à½à¾³à¼à½à¼à½à½ ིà½', 17363 MM: '%d à½à¾³à¼à½', 17364 y: 'ལོà¼à½à½ ིà½', 17365 yy: '%d ལོ', 17366 }, 17367 preparse: function (string) { 17368 return string.replace(/[༡༢༣༤༥༦༧༨༩༠]/g, function (match) { 17369 return numberMap[match]; 17370 }); 17371 }, 17372 postformat: function (string) { 17373 return string.replace(/\d/g, function (match) { 17374 return symbolMap[match]; 17375 }); 17376 }, 17377 meridiemParse: /à½à½à½à¼à½à½¼|à½à½¼à½à½¦à¼à½à½¦|à½à½²à½à¼à½à½´à½|à½à½à½¼à½à¼à½à½|à½à½à½à¼à½à½¼/, 17378 meridiemHour: function (hour, meridiem) { 17379 if (hour === 12) { 17380 hour = 0; 17381 } 17382 if ( 17383 (meridiem === 'à½à½à½à¼à½à½¼' && hour >= 4) || 17384 (meridiem === 'à½à½²à½à¼à½à½´à½' && hour < 5) || 17385 meridiem === 'à½à½à½¼à½à¼à½à½' 17386 ) { 17387 return hour + 12; 17388 } else { 17389 return hour; 17390 } 17391 }, 17392 meridiem: function (hour, minute, isLower) { 17393 if (hour < 4) { 17394 return 'à½à½à½à¼à½à½¼'; 17395 } else if (hour < 10) { 17396 return 'à½à½¼à½à½¦à¼à½à½¦'; 17397 } else if (hour < 17) { 17398 return 'à½à½²à½à¼à½à½´à½'; 17399 } else if (hour < 20) { 17400 return 'à½à½à½¼à½à¼à½à½'; 17401 } else { 17402 return 'à½à½à½à¼à½à½¼'; 17403 } 17404 }, 17405 week: { 17406 dow: 0, // Sunday is the first day of the week. 17407 doy: 6, // The week that contains Jan 6th is the first week of the year. 17408 }, 17409 }); 17410 17411 return bo; 17412 17413}))); 17414 17415 17416/***/ }), 17417
vendor: 5,665 bytes, lines 17418-17604
17418/***/ "./node_modules/moment/locale/br.js": 17419/*!******************************************!*\ 17420 !*** ./node_modules/moment/locale/br.js ***! 17421 \******************************************/ 17422/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 17423 17424//! moment.js locale configuration 17425//! locale : Breton [br] 17426//! author : Jean-Baptiste Le Duigou : https://github.com/jbleduigou 17427 17428;(function (global, factory) { 17429 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 17430 0 17431}(this, (function (moment) { 'use strict'; 17432 17433 //! moment.js locale configuration 17434 17435 function relativeTimeWithMutation(number, withoutSuffix, key) { 17436 var format = { 17437 mm: 'munutenn', 17438 MM: 'miz', 17439 dd: 'devezh', 17440 }; 17441 return number + ' ' + mutation(format[key], number); 17442 } 17443 function specialMutationForYears(number) { 17444 switch (lastNumber(number)) { 17445 case 1: 17446 case 3: 17447 case 4: 17448 case 5: 17449 case 9: 17450 return number + ' bloaz'; 17451 default: 17452 return number + ' vloaz'; 17453 } 17454 } 17455 function lastNumber(number) { 17456 if (number > 9) { 17457 return lastNumber(number % 10); 17458 } 17459 return number; 17460 } 17461 function mutation(text, number) { 17462 if (number === 2) { 17463 return softMutation(text); 17464 } 17465 return text; 17466 } 17467 function softMutation(text) { 17468 var mutationTable = { 17469 m: 'v', 17470 b: 'v', 17471 d: 'z', 17472 }; 17473 if (mutationTable[text.charAt(0)] === undefined) { 17474 return text; 17475 } 17476 return mutationTable[text.charAt(0)] + text.substring(1); 17477 } 17478 17479 var monthsParse = [ 17480 /^gen/i, 17481 /^c[ʼ\']hwe/i, 17482 /^meu/i, 17483 /^ebr/i, 17484 /^mae/i, 17485 /^(mez|eve)/i, 17486 /^gou/i, 17487 /^eos/i, 17488 /^gwe/i, 17489 /^her/i, 17490 /^du/i, 17491 /^ker/i, 17492 ], 17493 monthsRegex = 17494 /^(genver|c[ʼ\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu|gen|c[ʼ\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i, 17495 monthsStrictRegex = 17496 /^(genver|c[ʼ\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu)/i, 17497 monthsShortStrictRegex = 17498 /^(gen|c[ʼ\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i, 17499 fullWeekdaysParse = [ 17500 /^sul/i, 17501 /^lun/i, 17502 /^meurzh/i, 17503 /^merc[ʼ\']her/i, 17504 /^yaou/i, 17505 /^gwener/i, 17506 /^sadorn/i, 17507 ], 17508 shortWeekdaysParse = [ 17509 /^Sul/i, 17510 /^Lun/i, 17511 /^Meu/i, 17512 /^Mer/i, 17513 /^Yao/i, 17514 /^Gwe/i, 17515 /^Sad/i, 17516 ], 17517 minWeekdaysParse = [ 17518 /^Su/i, 17519 /^Lu/i, 17520 /^Me([^r]|$)/i, 17521 /^Mer/i, 17522 /^Ya/i, 17523 /^Gw/i, 17524 /^Sa/i, 17525 ]; 17526 17527 var br = moment.defineLocale('br', { 17528 months: 'Genver_Cʼhwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu'.split( 17529 '_' 17530 ), 17531 monthsShort: 'Gen_Cʼhwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker'.split('_'), 17532 weekdays: 'Sul_Lun_Meurzh_Mercʼher_Yaou_Gwener_Sadorn'.split('_'), 17533 weekdaysShort: 'Sul_Lun_Meu_Mer_Yao_Gwe_Sad'.split('_'), 17534 weekdaysMin: 'Su_Lu_Me_Mer_Ya_Gw_Sa'.split('_'), 17535 weekdaysParse: minWeekdaysParse, 17536 fullWeekdaysParse: fullWeekdaysParse, 17537 shortWeekdaysParse: shortWeekdaysParse, 17538 minWeekdaysParse: minWeekdaysParse, 17539 17540 monthsRegex: monthsRegex, 17541 monthsShortRegex: monthsRegex, 17542 monthsStrictRegex: monthsStrictRegex, 17543 monthsShortStrictRegex: monthsShortStrictRegex, 17544 monthsParse: monthsParse, 17545 longMonthsParse: monthsParse, 17546 shortMonthsParse: monthsParse, 17547 17548 longDateFormat: { 17549 LT: 'HH:mm', 17550 LTS: 'HH:mm:ss', 17551 L: 'DD/MM/YYYY', 17552 LL: 'D [a viz] MMMM YYYY', 17553 LLL: 'D [a viz] MMMM YYYY HH:mm', 17554 LLLL: 'dddd, D [a viz] MMMM YYYY HH:mm', 17555 }, 17556 calendar: { 17557 sameDay: '[Hiziv da] LT', 17558 nextDay: '[Warcʼhoazh da] LT', 17559 nextWeek: 'dddd [da] LT', 17560 lastDay: '[Decʼh da] LT', 17561 lastWeek: 'dddd [paset da] LT', 17562 sameElse: 'L', 17563 }, 17564 relativeTime: { 17565 future: 'a-benn %s', 17566 past: '%s ʼzo', 17567 s: 'un nebeud segondennoù', 17568 ss: '%d eilenn', 17569 m: 'ur vunutenn', 17570 mm: relativeTimeWithMutation, 17571 h: 'un eur', 17572 hh: '%d eur', 17573 d: 'un devezh', 17574 dd: relativeTimeWithMutation, 17575 M: 'ur miz', 17576 MM: relativeTimeWithMutation, 17577 y: 'ur bloaz', 17578 yy: specialMutationForYears, 17579 }, 17580 dayOfMonthOrdinalParse: /\d{1,2}(añ|vet)/, 17581 ordinal: function (number) { 17582 var output = number === 1 ? 'añ' : 'vet'; 17583 return number + output; 17584 }, 17585 week: { 17586 dow: 1, // Monday is the first day of the week. 17587 doy: 4, // The week that contains Jan 4th is the first week of the year. 17588 }, 17589 meridiemParse: /a.m.|g.m./, // goude merenn | a-raok merenn 17590 isPM: function (token) { 17591 return token === 'g.m.'; 17592 }, 17593 meridiem: function (hour, minute, isLower) { 17594 return hour < 12 ? 'a.m.' : 'g.m.'; 17595 }, 17596 }); 17597 17598 return br; 17599 17600}))); 17601 17602 17603/***/ }), 17604
vendor: 5,820 bytes, lines 17605-17783
17605/***/ "./node_modules/moment/locale/bs.js": 17606/*!******************************************!*\ 17607 !*** ./node_modules/moment/locale/bs.js ***! 17608 \******************************************/ 17609/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 17610 17611//! moment.js locale configuration 17612//! locale : Bosnian [bs] 17613//! author : Nedim Cholich : https://github.com/frontyard 17614//! author : Rasid Redzic : https://github.com/rasidre 17615//! based on (hr) translation by Bojan MarkoviÄ 17616 17617;(function (global, factory) { 17618 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 17619 0 17620}(this, (function (moment) { 'use strict'; 17621 17622 //! moment.js locale configuration 17623 17624 function processRelativeTime(number, withoutSuffix, key, isFuture) { 17625 switch (key) { 17626 case 'm': 17627 return withoutSuffix 17628 ? 'jedna minuta' 17629 : isFuture 17630 ? 'jednu minutu' 17631 : 'jedne minute'; 17632 } 17633 } 17634 17635 function translate(number, withoutSuffix, key) { 17636 var result = number + ' '; 17637 switch (key) { 17638 case 'ss': 17639 if (number === 1) { 17640 result += 'sekunda'; 17641 } else if (number === 2 || number === 3 || number === 4) { 17642 result += 'sekunde'; 17643 } else { 17644 result += 'sekundi'; 17645 } 17646 return result; 17647 case 'mm': 17648 if (number === 1) { 17649 result += 'minuta'; 17650 } else if (number === 2 || number === 3 || number === 4) { 17651 result += 'minute'; 17652 } else { 17653 result += 'minuta'; 17654 } 17655 return result; 17656 case 'h': 17657 return withoutSuffix ? 'jedan sat' : 'jedan sat'; 17658 case 'hh': 17659 if (number === 1) { 17660 result += 'sat'; 17661 } else if (number === 2 || number === 3 || number === 4) { 17662 result += 'sata'; 17663 } else { 17664 result += 'sati'; 17665 } 17666 return result; 17667 case 'dd': 17668 if (number === 1) { 17669 result += 'dan'; 17670 } else { 17671 result += 'dana'; 17672 } 17673 return result; 17674 case 'MM': 17675 if (number === 1) { 17676 result += 'mjesec'; 17677 } else if (number === 2 || number === 3 || number === 4) { 17678 result += 'mjeseca'; 17679 } else { 17680 result += 'mjeseci'; 17681 } 17682 return result; 17683 case 'yy': 17684 if (number === 1) { 17685 result += 'godina'; 17686 } else if (number === 2 || number === 3 || number === 4) { 17687 result += 'godine'; 17688 } else { 17689 result += 'godina'; 17690 } 17691 return result; 17692 } 17693 } 17694 17695 var bs = moment.defineLocale('bs', { 17696 months: 'januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar'.split( 17697 '_' 17698 ), 17699 monthsShort: 17700 'jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.'.split( 17701 '_' 17702 ), 17703 monthsParseExact: true, 17704 weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_Äetvrtak_petak_subota'.split( 17705 '_' 17706 ), 17707 weekdaysShort: 'ned._pon._uto._sri._Äet._pet._sub.'.split('_'), 17708 weekdaysMin: 'ne_po_ut_sr_Äe_pe_su'.split('_'), 17709 weekdaysParseExact: true, 17710 longDateFormat: { 17711 LT: 'H:mm', 17712 LTS: 'H:mm:ss', 17713 L: 'DD.MM.YYYY', 17714 LL: 'D. MMMM YYYY', 17715 LLL: 'D. MMMM YYYY H:mm', 17716 LLLL: 'dddd, D. MMMM YYYY H:mm', 17717 }, 17718 calendar: { 17719 sameDay: '[danas u] LT', 17720 nextDay: '[sutra u] LT', 17721 nextWeek: function () { 17722 switch (this.day()) { 17723 case 0: 17724 return '[u] [nedjelju] [u] LT'; 17725 case 3: 17726 return '[u] [srijedu] [u] LT'; 17727 case 6: 17728 return '[u] [subotu] [u] LT'; 17729 case 1: 17730 case 2: 17731 case 4: 17732 case 5: 17733 return '[u] dddd [u] LT'; 17734 } 17735 }, 17736 lastDay: '[juÄer u] LT', 17737 lastWeek: function () { 17738 switch (this.day()) { 17739 case 0: 17740 case 3: 17741 return '[proÅ¡lu] dddd [u] LT'; 17742 case 6: 17743 return '[proÅ¡le] [subote] [u] LT'; 17744 case 1: 17745 case 2: 17746 case 4: 17747 case 5: 17748 return '[proÅ¡li] dddd [u] LT'; 17749 } 17750 }, 17751 sameElse: 'L', 17752 }, 17753 relativeTime: { 17754 future: 'za %s', 17755 past: 'prije %s', 17756 s: 'par sekundi', 17757 ss: translate, 17758 m: processRelativeTime, 17759 mm: translate, 17760 h: translate, 17761 hh: translate, 17762 d: 'dan', 17763 dd: translate, 17764 M: 'mjesec', 17765 MM: translate, 17766 y: 'godinu', 17767 yy: translate, 17768 }, 17769 dayOfMonthOrdinalParse: /\d{1,2}\./, 17770 ordinal: '%d.', 17771 week: { 17772 dow: 1, // Monday is the first day of the week. 17773 doy: 7, // The week that contains Jan 7th is the first week of the year. 17774 }, 17775 }); 17776 17777 return bs; 17778 17779}))); 17780 17781 17782/***/ }), 17783
vendor: 3,920 bytes, lines 17784-17902
17784/***/ "./node_modules/moment/locale/ca.js": 17785/*!******************************************!*\ 17786 !*** ./node_modules/moment/locale/ca.js ***! 17787 \******************************************/ 17788/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 17789 17790//! moment.js locale configuration 17791//! locale : Catalan [ca] 17792//! author : Juan G. Hurtado : https://github.com/juanghurtado 17793 17794;(function (global, factory) { 17795 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 17796 0 17797}(this, (function (moment) { 'use strict'; 17798 17799 //! moment.js locale configuration 17800 17801 var ca = moment.defineLocale('ca', { 17802 months: { 17803 standalone: 17804 'gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre'.split( 17805 '_' 17806 ), 17807 format: "de gener_de febrer_de març_d'abril_de maig_de juny_de juliol_d'agost_de setembre_d'octubre_de novembre_de desembre".split( 17808 '_' 17809 ), 17810 isFormat: /D[oD]?(\s)+MMMM/, 17811 }, 17812 monthsShort: 17813 'gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.'.split( 17814 '_' 17815 ), 17816 monthsParseExact: true, 17817 weekdays: 17818 'diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte'.split( 17819 '_' 17820 ), 17821 weekdaysShort: 'dg._dl._dt._dc._dj._dv._ds.'.split('_'), 17822 weekdaysMin: 'dg_dl_dt_dc_dj_dv_ds'.split('_'), 17823 weekdaysParseExact: true, 17824 longDateFormat: { 17825 LT: 'H:mm', 17826 LTS: 'H:mm:ss', 17827 L: 'DD/MM/YYYY', 17828 LL: 'D MMMM [de] YYYY', 17829 ll: 'D MMM YYYY', 17830 LLL: 'D MMMM [de] YYYY [a les] H:mm', 17831 lll: 'D MMM YYYY, H:mm', 17832 LLLL: 'dddd D MMMM [de] YYYY [a les] H:mm', 17833 llll: 'ddd D MMM YYYY, H:mm', 17834 }, 17835 calendar: { 17836 sameDay: function () { 17837 return '[avui a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT'; 17838 }, 17839 nextDay: function () { 17840 return '[demà a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT'; 17841 }, 17842 nextWeek: function () { 17843 return 'dddd [a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT'; 17844 }, 17845 lastDay: function () { 17846 return '[ahir a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT'; 17847 }, 17848 lastWeek: function () { 17849 return ( 17850 '[el] dddd [passat a ' + 17851 (this.hours() !== 1 ? 'les' : 'la') + 17852 '] LT' 17853 ); 17854 }, 17855 sameElse: 'L', 17856 }, 17857 relativeTime: { 17858 future: "d'aquà %s", 17859 past: 'fa %s', 17860 s: 'uns segons', 17861 ss: '%d segons', 17862 m: 'un minut', 17863 mm: '%d minuts', 17864 h: 'una hora', 17865 hh: '%d hores', 17866 d: 'un dia', 17867 dd: '%d dies', 17868 M: 'un mes', 17869 MM: '%d mesos', 17870 y: 'un any', 17871 yy: '%d anys', 17872 }, 17873 dayOfMonthOrdinalParse: /\d{1,2}(r|n|t|è|a)/, 17874 ordinal: function (number, period) { 17875 var output = 17876 number === 1 17877 ? 'r' 17878 : number === 2 17879 ? 'n' 17880 : number === 3 17881 ? 'r' 17882 : number === 4 17883 ? 't' 17884 : 'è'; 17885 if (period === 'w' || period === 'W') { 17886 output = 'a'; 17887 } 17888 return number + output; 17889 }, 17890 week: { 17891 dow: 1, // Monday is the first day of the week. 17892 doy: 4, // The week that contains Jan 4th is the first week of the year. 17893 }, 17894 }); 17895 17896 return ca; 17897 17898}))); 17899 17900 17901/***/ }), 17902
vendor: 7,951 bytes, lines 17903-18102
17903/***/ "./node_modules/moment/locale/cs.js": 17904/*!******************************************!*\ 17905 !*** ./node_modules/moment/locale/cs.js ***! 17906 \******************************************/ 17907/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 17908 17909//! moment.js locale configuration 17910//! locale : Czech [cs] 17911//! author : petrbela : https://github.com/petrbela 17912 17913;(function (global, factory) { 17914 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 17915 0 17916}(this, (function (moment) { 'use strict'; 17917 17918 //! moment.js locale configuration 17919 17920 var months = { 17921 standalone: 17922 'leden_únor_bÅezen_duben_kvÄten_Äerven_Äervenec_srpen_záÅÃ_ÅÃjen_listopad_prosinec'.split( 17923 '_' 17924 ), 17925 format: 'ledna_února_bÅezna_dubna_kvÄtna_Äervna_Äervence_srpna_záÅÃ_ÅÃjna_listopadu_prosince'.split( 17926 '_' 17927 ), 17928 isFormat: /DD?[o.]?(\[[^\[\]]*\]|\s)+MMMM/, 17929 }, 17930 monthsShort = 'led_úno_bÅe_dub_kvÄ_Ävn_Ävc_srp_záÅ_ÅÃj_lis_pro'.split('_'), 17931 monthsParse = [ 17932 /^led/i, 17933 /^úno/i, 17934 /^bÅe/i, 17935 /^dub/i, 17936 /^kvÄ/i, 17937 /^(Ävn|Äerven$|Äervna)/i, 17938 /^(Ävc|Äervenec|Äervence)/i, 17939 /^srp/i, 17940 /^záÅ/i, 17941 /^ÅÃj/i, 17942 /^lis/i, 17943 /^pro/i, 17944 ], 17945 // NOTE: 'Äerven' is substring of 'Äervenec'; therefore 'Äervenec' must precede 'Äerven' in the regex to be fully matched. 17946 // Otherwise parser matches '1. Äervenec' as '1. Äerven' + 'ec'. 17947 monthsRegex = 17948 /^(leden|únor|bÅezen|duben|kvÄten|Äervenec|Äervence|Äerven|Äervna|srpen|záÅÃ|ÅÃjen|listopad|prosinec|led|úno|bÅe|dub|kvÄ|Ävn|Ävc|srp|záÅ|ÅÃj|lis|pro)/i; 17949 17950 function plural(n) { 17951 return n > 1 && n < 5 && ~~(n / 10) !== 1; 17952 } 17953 function translate(number, withoutSuffix, key, isFuture) { 17954 var result = number + ' '; 17955 switch (key) { 17956 case 's': // a few seconds / in a few seconds / a few seconds ago 17957 return withoutSuffix || isFuture ? 'pár sekund' : 'pár sekundami'; 17958 case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago 17959 if (withoutSuffix || isFuture) { 17960 return result + (plural(number) ? 'sekundy' : 'sekund'); 17961 } else { 17962 return result + 'sekundami'; 17963 } 17964 case 'm': // a minute / in a minute / a minute ago 17965 return withoutSuffix ? 'minuta' : isFuture ? 'minutu' : 'minutou'; 17966 case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago 17967 if (withoutSuffix || isFuture) { 17968 return result + (plural(number) ? 'minuty' : 'minut'); 17969 } else { 17970 return result + 'minutami'; 17971 } 17972 case 'h': // an hour / in an hour / an hour ago 17973 return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou'; 17974 case 'hh': // 9 hours / in 9 hours / 9 hours ago 17975 if (withoutSuffix || isFuture) { 17976 return result + (plural(number) ? 'hodiny' : 'hodin'); 17977 } else { 17978 return result + 'hodinami'; 17979 } 17980 case 'd': // a day / in a day / a day ago 17981 return withoutSuffix || isFuture ? 'den' : 'dnem'; 17982 case 'dd': // 9 days / in 9 days / 9 days ago 17983 if (withoutSuffix || isFuture) { 17984 return result + (plural(number) ? 'dny' : 'dnÃ'); 17985 } else { 17986 return result + 'dny'; 17987 } 17988 case 'M': // a month / in a month / a month ago 17989 return withoutSuffix || isFuture ? 'mÄsÃc' : 'mÄsÃcem'; 17990 case 'MM': // 9 months / in 9 months / 9 months ago 17991 if (withoutSuffix || isFuture) { 17992 return result + (plural(number) ? 'mÄsÃce' : 'mÄsÃců'); 17993 } else { 17994 return result + 'mÄsÃci'; 17995 } 17996 case 'y': // a year / in a year / a year ago 17997 return withoutSuffix || isFuture ? 'rok' : 'rokem'; 17998 case 'yy': // 9 years / in 9 years / 9 years ago 17999 if (withoutSuffix || isFuture) { 18000 return result + (plural(number) ? 'roky' : 'let'); 18001 } else { 18002 return result + 'lety'; 18003 } 18004 } 18005 } 18006 18007 var cs = moment.defineLocale('cs', { 18008 months: months, 18009 monthsShort: monthsShort, 18010 monthsRegex: monthsRegex, 18011 monthsShortRegex: monthsRegex, 18012 // NOTE: 'Äerven' is substring of 'Äervenec'; therefore 'Äervenec' must precede 'Äerven' in the regex to be fully matched. 18013 // Otherwise parser matches '1. Äervenec' as '1. Äerven' + 'ec'. 18014 monthsStrictRegex: 18015 /^(leden|ledna|února|únor|bÅezen|bÅezna|duben|dubna|kvÄten|kvÄtna|Äervenec|Äervence|Äerven|Äervna|srpen|srpna|záÅÃ|ÅÃjen|ÅÃjna|listopadu|listopad|prosinec|prosince)/i, 18016 monthsShortStrictRegex: 18017 /^(led|úno|bÅe|dub|kvÄ|Ävn|Ävc|srp|záÅ|ÅÃj|lis|pro)/i, 18018 monthsParse: monthsParse, 18019 longMonthsParse: monthsParse, 18020 shortMonthsParse: monthsParse, 18021 weekdays: 'nedÄle_pondÄlÃ_úterý_stÅeda_Ätvrtek_pátek_sobota'.split('_'), 18022 weekdaysShort: 'ne_po_út_st_Ät_pá_so'.split('_'), 18023 weekdaysMin: 'ne_po_út_st_Ät_pá_so'.split('_'), 18024 longDateFormat: { 18025 LT: 'H:mm', 18026 LTS: 'H:mm:ss', 18027 L: 'DD.MM.YYYY', 18028 LL: 'D. MMMM YYYY', 18029 LLL: 'D. MMMM YYYY H:mm', 18030 LLLL: 'dddd D. MMMM YYYY H:mm', 18031 l: 'D. M. YYYY', 18032 }, 18033 calendar: { 18034 sameDay: '[dnes v] LT', 18035 nextDay: '[zÃtra v] LT', 18036 nextWeek: function () { 18037 switch (this.day()) { 18038 case 0: 18039 return '[v nedÄli v] LT'; 18040 case 1: 18041 case 2: 18042 return '[v] dddd [v] LT'; 18043 case 3: 18044 return '[ve stÅedu v] LT'; 18045 case 4: 18046 return '[ve Ätvrtek v] LT'; 18047 case 5: 18048 return '[v pátek v] LT'; 18049 case 6: 18050 return '[v sobotu v] LT'; 18051 } 18052 }, 18053 lastDay: '[vÄera v] LT', 18054 lastWeek: function () { 18055 switch (this.day()) { 18056 case 0: 18057 return '[minulou nedÄli v] LT'; 18058 case 1: 18059 case 2: 18060 return '[minulé] dddd [v] LT'; 18061 case 3: 18062 return '[minulou stÅedu v] LT'; 18063 case 4: 18064 case 5: 18065 return '[minulý] dddd [v] LT'; 18066 case 6: 18067 return '[minulou sobotu v] LT'; 18068 } 18069 }, 18070 sameElse: 'L', 18071 }, 18072 relativeTime: { 18073 future: 'za %s', 18074 past: 'pÅed %s', 18075 s: translate, 18076 ss: translate, 18077 m: translate, 18078 mm: translate, 18079 h: translate, 18080 hh: translate, 18081 d: translate, 18082 dd: translate, 18083 M: translate, 18084 MM: translate, 18085 y: translate, 18086 yy: translate, 18087 }, 18088 dayOfMonthOrdinalParse: /\d{1,2}\./, 18089 ordinal: '%d.', 18090 week: { 18091 dow: 1, // Monday is the first day of the week. 18092 doy: 4, // The week that contains Jan 4th is the first week of the year. 18093 }, 18094 }); 18095 18096 return cs; 18097 18098}))); 18099 18100 18101/***/ }), 18102
vendor: 3,062 bytes, lines 18103-18184
18103/***/ "./node_modules/moment/locale/cv.js": 18104/*!******************************************!*\ 18105 !*** ./node_modules/moment/locale/cv.js ***! 18106 \******************************************/ 18107/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 18108 18109//! moment.js locale configuration 18110//! locale : Chuvash [cv] 18111//! author : Anatoly Mironov : https://github.com/mirontoli 18112 18113;(function (global, factory) { 18114 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 18115 0 18116}(this, (function (moment) { 'use strict'; 18117 18118 //! moment.js locale configuration 18119 18120 var cv = moment.defineLocale('cv', { 18121 months: 'кÓÑлаÑ_наÑÓÑ_пÑÑ_ака_май_Ò«ÓÑÑме_ÑÑÓ_Ò«ÑÑла_авÓн_Ñпа_Ñӳк_ÑаÑÑав'.split( 18122 '_' 18123 ), 18124 monthsShort: 'кÓÑ_наÑ_пÑÑ_ака_май_Ò«ÓÑ_ÑÑÓ_Ò«ÑÑ_авн_Ñпа_Ñӳк_ÑаÑ'.split('_'), 18125 weekdays: 18126 'вÑÑÑаÑникÑн_ÑÑнÑикÑн_ÑÑлаÑикÑн_ÑнкÑн_кÓҫнеÑникÑн_ÑÑнекÑн_ÑÓмаÑкÑн'.split( 18127 '_' 18128 ), 18129 weekdaysShort: 'вÑÑ_ÑÑн_ÑÑл_Ñн_кÓÒ«_ÑÑн_ÑÓм'.split('_'), 18130 weekdaysMin: 'вÑ_Ñн_ÑÑ_Ñн_кҫ_ÑÑ_Ñм'.split('_'), 18131 longDateFormat: { 18132 LT: 'HH:mm', 18133 LTS: 'HH:mm:ss', 18134 L: 'DD-MM-YYYY', 18135 LL: 'YYYY [Ò«ÑÐ»Ñ Ð¸] MMMM [ÑйÓÑ Óн] D[-мÓÑÓ]', 18136 LLL: 'YYYY [Ò«ÑÐ»Ñ Ð¸] MMMM [ÑйÓÑ Óн] D[-мÓÑÓ], HH:mm', 18137 LLLL: 'dddd, YYYY [Ò«ÑÐ»Ñ Ð¸] MMMM [ÑйÓÑ Óн] D[-мÓÑÓ], HH:mm', 18138 }, 18139 calendar: { 18140 sameDay: '[ÐаÑн] LT [ÑÐµÑ ÐµÑÑе]', 18141 nextDay: '[ЫÑан] LT [ÑÐµÑ ÐµÑÑе]', 18142 lastDay: '[ÓнеÑ] LT [ÑÐµÑ ÐµÑÑе]', 18143 nextWeek: '[ҪиÑеÑ] dddd LT [ÑÐµÑ ÐµÑÑе]', 18144 lastWeek: '[ÐÑÑнÓ] dddd LT [ÑÐµÑ ÐµÑÑе]', 18145 sameElse: 'L', 18146 }, 18147 relativeTime: { 18148 future: function (output) { 18149 var affix = /ÑÐµÑ ÐµÑ$/i.exec(output) 18150 ? 'Ñен' 18151 : /Ò«Ñл$/i.exec(output) 18152 ? 'Ñан' 18153 : 'Ñан'; 18154 return output + affix; 18155 }, 18156 past: '%s каÑлла', 18157 s: 'пÓÑ-ик ҫеккÑнÑ', 18158 ss: '%d ҫеккÑнÑ', 18159 m: 'пÓÑ Ð¼Ð¸Ð½ÑÑ', 18160 mm: '%d минÑÑ', 18161 h: 'пÓÑ ÑÐµÑ ÐµÑ', 18162 hh: '%d ÑÐµÑ ÐµÑ', 18163 d: 'пÓÑ ÐºÑн', 18164 dd: '%d кÑн', 18165 M: 'пÓÑ ÑйÓÑ ', 18166 MM: '%d ÑйÓÑ ', 18167 y: 'пÓÑ Ò«Ñл', 18168 yy: '%d Ò«Ñл', 18169 }, 18170 dayOfMonthOrdinalParse: /\d{1,2}-мÓÑ/, 18171 ordinal: '%d-мÓÑ', 18172 week: { 18173 dow: 1, // Monday is the first day of the week. 18174 doy: 7, // The week that contains Jan 7th is the first week of the year. 18175 }, 18176 }); 18177 18178 return cv; 18179 18180}))); 18181 18182 18183/***/ }), 18184
vendor: 3,687 bytes, lines 18185-18301
18185/***/ "./node_modules/moment/locale/cy.js": 18186/*!******************************************!*\ 18187 !*** ./node_modules/moment/locale/cy.js ***! 18188 \******************************************/ 18189/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 18190 18191//! moment.js locale configuration 18192//! locale : Welsh [cy] 18193//! author : Robert Allen : https://github.com/robgallen 18194//! author : https://github.com/ryangreaves 18195 18196;(function (global, factory) { 18197 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 18198 0 18199}(this, (function (moment) { 'use strict'; 18200 18201 //! moment.js locale configuration 18202 18203 var cy = moment.defineLocale('cy', { 18204 months: 'Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr'.split( 18205 '_' 18206 ), 18207 monthsShort: 'Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag'.split( 18208 '_' 18209 ), 18210 weekdays: 18211 'Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn'.split( 18212 '_' 18213 ), 18214 weekdaysShort: 'Sul_Llun_Maw_Mer_Iau_Gwe_Sad'.split('_'), 18215 weekdaysMin: 'Su_Ll_Ma_Me_Ia_Gw_Sa'.split('_'), 18216 weekdaysParseExact: true, 18217 // time formats are the same as en-gb 18218 longDateFormat: { 18219 LT: 'HH:mm', 18220 LTS: 'HH:mm:ss', 18221 L: 'DD/MM/YYYY', 18222 LL: 'D MMMM YYYY', 18223 LLL: 'D MMMM YYYY HH:mm', 18224 LLLL: 'dddd, D MMMM YYYY HH:mm', 18225 }, 18226 calendar: { 18227 sameDay: '[Heddiw am] LT', 18228 nextDay: '[Yfory am] LT', 18229 nextWeek: 'dddd [am] LT', 18230 lastDay: '[Ddoe am] LT', 18231 lastWeek: 'dddd [diwethaf am] LT', 18232 sameElse: 'L', 18233 }, 18234 relativeTime: { 18235 future: 'mewn %s', 18236 past: '%s yn ôl', 18237 s: 'ychydig eiliadau', 18238 ss: '%d eiliad', 18239 m: 'munud', 18240 mm: '%d munud', 18241 h: 'awr', 18242 hh: '%d awr', 18243 d: 'diwrnod', 18244 dd: '%d diwrnod', 18245 M: 'mis', 18246 MM: '%d mis', 18247 y: 'blwyddyn', 18248 yy: '%d flynedd', 18249 }, 18250 dayOfMonthOrdinalParse: /\d{1,2}(fed|ain|af|il|ydd|ed|eg)/, 18251 // traditional ordinal numbers above 31 are not commonly used in colloquial Welsh 18252 ordinal: function (number) { 18253 var b = number, 18254 output = '', 18255 lookup = [ 18256 '', 18257 'af', 18258 'il', 18259 'ydd', 18260 'ydd', 18261 'ed', 18262 'ed', 18263 'ed', 18264 'fed', 18265 'fed', 18266 'fed', // 1af to 10fed 18267 'eg', 18268 'fed', 18269 'eg', 18270 'eg', 18271 'fed', 18272 'eg', 18273 'eg', 18274 'fed', 18275 'eg', 18276 'fed', // 11eg to 20fed 18277 ]; 18278 if (b > 20) { 18279 if (b === 40 || b === 50 || b === 60 || b === 80 || b === 100) { 18280 output = 'fed'; // not 30ain, 70ain or 90ain 18281 } else { 18282 output = 'ain'; 18283 } 18284 } else if (b > 0) { 18285 output = lookup[b]; 18286 } 18287 return number + output; 18288 }, 18289 week: { 18290 dow: 1, // Monday is the first day of the week. 18291 doy: 4, // The week that contains Jan 4th is the first week of the year. 18292 }, 18293 }); 18294 18295 return cy; 18296 18297}))); 18298 18299 18300/***/ }), 18301
vendor: 2,306 bytes, lines 18302-18373
18302/***/ "./node_modules/moment/locale/da.js": 18303/*!******************************************!*\ 18304 !*** ./node_modules/moment/locale/da.js ***! 18305 \******************************************/ 18306/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 18307 18308//! moment.js locale configuration 18309//! locale : Danish [da] 18310//! author : Ulrik Nielsen : https://github.com/mrbase 18311 18312;(function (global, factory) { 18313 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 18314 0 18315}(this, (function (moment) { 'use strict'; 18316 18317 //! moment.js locale configuration 18318 18319 var da = moment.defineLocale('da', { 18320 months: 'januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december'.split( 18321 '_' 18322 ), 18323 monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'), 18324 weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'), 18325 weekdaysShort: 'søn_man_tir_ons_tor_fre_lør'.split('_'), 18326 weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'), 18327 longDateFormat: { 18328 LT: 'HH:mm', 18329 LTS: 'HH:mm:ss', 18330 L: 'DD.MM.YYYY', 18331 LL: 'D. MMMM YYYY', 18332 LLL: 'D. MMMM YYYY HH:mm', 18333 LLLL: 'dddd [d.] D. MMMM YYYY [kl.] HH:mm', 18334 }, 18335 calendar: { 18336 sameDay: '[i dag kl.] LT', 18337 nextDay: '[i morgen kl.] LT', 18338 nextWeek: 'på dddd [kl.] LT', 18339 lastDay: '[i går kl.] LT', 18340 lastWeek: '[i] dddd[s kl.] LT', 18341 sameElse: 'L', 18342 }, 18343 relativeTime: { 18344 future: 'om %s', 18345 past: '%s siden', 18346 s: 'få sekunder', 18347 ss: '%d sekunder', 18348 m: 'et minut', 18349 mm: '%d minutter', 18350 h: 'en time', 18351 hh: '%d timer', 18352 d: 'en dag', 18353 dd: '%d dage', 18354 M: 'en måned', 18355 MM: '%d måneder', 18356 y: 'et år', 18357 yy: '%d år', 18358 }, 18359 dayOfMonthOrdinalParse: /\d{1,2}\./, 18360 ordinal: '%d.', 18361 week: { 18362 dow: 1, // Monday is the first day of the week. 18363 doy: 4, // The week that contains Jan 4th is the first week of the year. 18364 }, 18365 }); 18366 18367 return da; 18368 18369}))); 18370 18371 18372/***/ }), 18373
vendor: 3,416 bytes, lines 18374-18471
18374/***/ "./node_modules/moment/locale/de-at.js": 18375/*!*********************************************!*\ 18376 !*** ./node_modules/moment/locale/de-at.js ***! 18377 \*********************************************/ 18378/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 18379 18380//! moment.js locale configuration 18381//! locale : German (Austria) [de-at] 18382//! author : lluchs : https://github.com/lluchs 18383//! author: Menelion Elensúle: https://github.com/Oire 18384//! author : Martin Groller : https://github.com/MadMG 18385//! author : Mikolaj Dadela : https://github.com/mik01aj 18386 18387;(function (global, factory) { 18388 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 18389 0 18390}(this, (function (moment) { 'use strict'; 18391 18392 //! moment.js locale configuration 18393 18394 function processRelativeTime(number, withoutSuffix, key, isFuture) { 18395 var format = { 18396 m: ['eine Minute', 'einer Minute'], 18397 h: ['eine Stunde', 'einer Stunde'], 18398 d: ['ein Tag', 'einem Tag'], 18399 dd: [number + ' Tage', number + ' Tagen'], 18400 w: ['eine Woche', 'einer Woche'], 18401 M: ['ein Monat', 'einem Monat'], 18402 MM: [number + ' Monate', number + ' Monaten'], 18403 y: ['ein Jahr', 'einem Jahr'], 18404 yy: [number + ' Jahre', number + ' Jahren'], 18405 }; 18406 return withoutSuffix ? format[key][0] : format[key][1]; 18407 } 18408 18409 var deAt = moment.defineLocale('de-at', { 18410 months: 'Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split( 18411 '_' 18412 ), 18413 monthsShort: 18414 'Jän._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'), 18415 monthsParseExact: true, 18416 weekdays: 18417 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split( 18418 '_' 18419 ), 18420 weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'), 18421 weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'), 18422 weekdaysParseExact: true, 18423 longDateFormat: { 18424 LT: 'HH:mm', 18425 LTS: 'HH:mm:ss', 18426 L: 'DD.MM.YYYY', 18427 LL: 'D. MMMM YYYY', 18428 LLL: 'D. MMMM YYYY HH:mm', 18429 LLLL: 'dddd, D. MMMM YYYY HH:mm', 18430 }, 18431 calendar: { 18432 sameDay: '[heute um] LT [Uhr]', 18433 sameElse: 'L', 18434 nextDay: '[morgen um] LT [Uhr]', 18435 nextWeek: 'dddd [um] LT [Uhr]', 18436 lastDay: '[gestern um] LT [Uhr]', 18437 lastWeek: '[letzten] dddd [um] LT [Uhr]', 18438 }, 18439 relativeTime: { 18440 future: 'in %s', 18441 past: 'vor %s', 18442 s: 'ein paar Sekunden', 18443 ss: '%d Sekunden', 18444 m: processRelativeTime, 18445 mm: '%d Minuten', 18446 h: processRelativeTime, 18447 hh: '%d Stunden', 18448 d: processRelativeTime, 18449 dd: processRelativeTime, 18450 w: processRelativeTime, 18451 ww: '%d Wochen', 18452 M: processRelativeTime, 18453 MM: processRelativeTime, 18454 y: processRelativeTime, 18455 yy: processRelativeTime, 18456 }, 18457 dayOfMonthOrdinalParse: /\d{1,2}\./, 18458 ordinal: '%d.', 18459 week: { 18460 dow: 1, // Monday is the first day of the week. 18461 doy: 4, // The week that contains Jan 4th is the first week of the year. 18462 }, 18463 }); 18464 18465 return deAt; 18466 18467}))); 18468 18469 18470/***/ }), 18471
vendor: 3,251 bytes, lines 18472-18566
18472/***/ "./node_modules/moment/locale/de-ch.js": 18473/*!*********************************************!*\ 18474 !*** ./node_modules/moment/locale/de-ch.js ***! 18475 \*********************************************/ 18476/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 18477 18478//! moment.js locale configuration 18479//! locale : German (Switzerland) [de-ch] 18480//! author : sschueller : https://github.com/sschueller 18481 18482;(function (global, factory) { 18483 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 18484 0 18485}(this, (function (moment) { 'use strict'; 18486 18487 //! moment.js locale configuration 18488 18489 function processRelativeTime(number, withoutSuffix, key, isFuture) { 18490 var format = { 18491 m: ['eine Minute', 'einer Minute'], 18492 h: ['eine Stunde', 'einer Stunde'], 18493 d: ['ein Tag', 'einem Tag'], 18494 dd: [number + ' Tage', number + ' Tagen'], 18495 w: ['eine Woche', 'einer Woche'], 18496 M: ['ein Monat', 'einem Monat'], 18497 MM: [number + ' Monate', number + ' Monaten'], 18498 y: ['ein Jahr', 'einem Jahr'], 18499 yy: [number + ' Jahre', number + ' Jahren'], 18500 }; 18501 return withoutSuffix ? format[key][0] : format[key][1]; 18502 } 18503 18504 var deCh = moment.defineLocale('de-ch', { 18505 months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split( 18506 '_' 18507 ), 18508 monthsShort: 18509 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'), 18510 monthsParseExact: true, 18511 weekdays: 18512 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split( 18513 '_' 18514 ), 18515 weekdaysShort: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'), 18516 weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'), 18517 weekdaysParseExact: true, 18518 longDateFormat: { 18519 LT: 'HH:mm', 18520 LTS: 'HH:mm:ss', 18521 L: 'DD.MM.YYYY', 18522 LL: 'D. MMMM YYYY', 18523 LLL: 'D. MMMM YYYY HH:mm', 18524 LLLL: 'dddd, D. MMMM YYYY HH:mm', 18525 }, 18526 calendar: { 18527 sameDay: '[heute um] LT [Uhr]', 18528 sameElse: 'L', 18529 nextDay: '[morgen um] LT [Uhr]', 18530 nextWeek: 'dddd [um] LT [Uhr]', 18531 lastDay: '[gestern um] LT [Uhr]', 18532 lastWeek: '[letzten] dddd [um] LT [Uhr]', 18533 }, 18534 relativeTime: { 18535 future: 'in %s', 18536 past: 'vor %s', 18537 s: 'ein paar Sekunden', 18538 ss: '%d Sekunden', 18539 m: processRelativeTime, 18540 mm: '%d Minuten', 18541 h: processRelativeTime, 18542 hh: '%d Stunden', 18543 d: processRelativeTime, 18544 dd: processRelativeTime, 18545 w: processRelativeTime, 18546 ww: '%d Wochen', 18547 M: processRelativeTime, 18548 MM: processRelativeTime, 18549 y: processRelativeTime, 18550 yy: processRelativeTime, 18551 }, 18552 dayOfMonthOrdinalParse: /\d{1,2}\./, 18553 ordinal: '%d.', 18554 week: { 18555 dow: 1, // Monday is the first day of the week. 18556 doy: 4, // The week that contains Jan 4th is the first week of the year. 18557 }, 18558 }); 18559 18560 return deCh; 18561 18562}))); 18563 18564 18565/***/ }), 18566
vendor: 3,327 bytes, lines 18567-18663
18567/***/ "./node_modules/moment/locale/de.js": 18568/*!******************************************!*\ 18569 !*** ./node_modules/moment/locale/de.js ***! 18570 \******************************************/ 18571/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 18572 18573//! moment.js locale configuration 18574//! locale : German [de] 18575//! author : lluchs : https://github.com/lluchs 18576//! author: Menelion Elensúle: https://github.com/Oire 18577//! author : Mikolaj Dadela : https://github.com/mik01aj 18578 18579;(function (global, factory) { 18580 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 18581 0 18582}(this, (function (moment) { 'use strict'; 18583 18584 //! moment.js locale configuration 18585 18586 function processRelativeTime(number, withoutSuffix, key, isFuture) { 18587 var format = { 18588 m: ['eine Minute', 'einer Minute'], 18589 h: ['eine Stunde', 'einer Stunde'], 18590 d: ['ein Tag', 'einem Tag'], 18591 dd: [number + ' Tage', number + ' Tagen'], 18592 w: ['eine Woche', 'einer Woche'], 18593 M: ['ein Monat', 'einem Monat'], 18594 MM: [number + ' Monate', number + ' Monaten'], 18595 y: ['ein Jahr', 'einem Jahr'], 18596 yy: [number + ' Jahre', number + ' Jahren'], 18597 }; 18598 return withoutSuffix ? format[key][0] : format[key][1]; 18599 } 18600 18601 var de = moment.defineLocale('de', { 18602 months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split( 18603 '_' 18604 ), 18605 monthsShort: 18606 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'), 18607 monthsParseExact: true, 18608 weekdays: 18609 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split( 18610 '_' 18611 ), 18612 weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'), 18613 weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'), 18614 weekdaysParseExact: true, 18615 longDateFormat: { 18616 LT: 'HH:mm', 18617 LTS: 'HH:mm:ss', 18618 L: 'DD.MM.YYYY', 18619 LL: 'D. MMMM YYYY', 18620 LLL: 'D. MMMM YYYY HH:mm', 18621 LLLL: 'dddd, D. MMMM YYYY HH:mm', 18622 }, 18623 calendar: { 18624 sameDay: '[heute um] LT [Uhr]', 18625 sameElse: 'L', 18626 nextDay: '[morgen um] LT [Uhr]', 18627 nextWeek: 'dddd [um] LT [Uhr]', 18628 lastDay: '[gestern um] LT [Uhr]', 18629 lastWeek: '[letzten] dddd [um] LT [Uhr]', 18630 }, 18631 relativeTime: { 18632 future: 'in %s', 18633 past: 'vor %s', 18634 s: 'ein paar Sekunden', 18635 ss: '%d Sekunden', 18636 m: processRelativeTime, 18637 mm: '%d Minuten', 18638 h: processRelativeTime, 18639 hh: '%d Stunden', 18640 d: processRelativeTime, 18641 dd: processRelativeTime, 18642 w: processRelativeTime, 18643 ww: '%d Wochen', 18644 M: processRelativeTime, 18645 MM: processRelativeTime, 18646 y: processRelativeTime, 18647 yy: processRelativeTime, 18648 }, 18649 dayOfMonthOrdinalParse: /\d{1,2}\./, 18650 ordinal: '%d.', 18651 week: { 18652 dow: 1, // Monday is the first day of the week. 18653 doy: 4, // The week that contains Jan 4th is the first week of the year. 18654 }, 18655 }); 18656 18657 return de; 18658 18659}))); 18660 18661 18662/***/ }), 18663
vendor: 3,285 bytes, lines 18664-18772
18664/***/ "./node_modules/moment/locale/dv.js": 18665/*!******************************************!*\ 18666 !*** ./node_modules/moment/locale/dv.js ***! 18667 \******************************************/ 18668/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 18669 18670//! moment.js locale configuration 18671//! locale : Maldivian [dv] 18672//! author : Jawish Hameed : https://github.com/jawish 18673 18674;(function (global, factory) { 18675 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 18676 0 18677}(this, (function (moment) { 'use strict'; 18678 18679 //! moment.js locale configuration 18680 18681 var months = [ 18682 'ÞÞ¬ÞÞªÞÞ¦ÞÞ©', 18683 'ÞÞ¬ÞÞ°ÞÞªÞÞ¦ÞÞ©', 18684 'ÞÞ§ÞÞ¨ÞÞª', 18685 'ÞÞÞÞ°ÞÞ©ÞÞª', 18686 'ÞÞ', 18687 'ÞÞ«ÞÞ°', 18688 'ÞÞªÞÞ¦ÞÞ¨', 18689 'ÞÞ¯ÞÞ¦ÞÞ°ÞÞª', 18690 'ÞÞ¬ÞÞ°ÞÞ¬ÞÞ°ÞÞ¦ÞÞª', 18691 'ÞÞ®ÞÞ°ÞÞ¯ÞÞ¦ÞÞª', 18692 'ÞÞ®ÞÞ¬ÞÞ°ÞÞ¦ÞÞª', 18693 'ÞÞ¨ÞÞ¬ÞÞ°ÞÞ¦ÞÞª', 18694 ], 18695 weekdays = [ 18696 'ÞÞ§ÞÞ¨ÞÞ°ÞÞ¦', 18697 'ÞÞ¯ÞÞ¦', 18698 'ÞÞ¦ÞÞ°ÞÞ§ÞÞ¦', 18699 'ÞÞªÞÞ¦', 18700 'ÞÞªÞÞ§ÞÞ°ÞÞ¦ÞÞ¨', 18701 'ÞÞªÞÞªÞÞª', 18702 'ÞÞ®ÞÞ¨ÞÞ¨ÞÞª', 18703 ]; 18704 18705 var dv = moment.defineLocale('dv', { 18706 months: months, 18707 monthsShort: months, 18708 weekdays: weekdays, 18709 weekdaysShort: weekdays, 18710 weekdaysMin: 'ÞÞ§ÞÞ¨_ÞÞ¯ÞÞ¦_ÞÞ¦ÞÞ°_ÞÞªÞÞ¦_ÞÞªÞÞ§_ÞÞªÞÞª_ÞÞ®ÞÞ¨'.split('_'), 18711 longDateFormat: { 18712 LT: 'HH:mm', 18713 LTS: 'HH:mm:ss', 18714 L: 'D/M/YYYY', 18715 LL: 'D MMMM YYYY', 18716 LLL: 'D MMMM YYYY HH:mm', 18717 LLLL: 'dddd D MMMM YYYY HH:mm', 18718 }, 18719 meridiemParse: /ÞÞ|ÞÞ/, 18720 isPM: function (input) { 18721 return 'ÞÞ' === input; 18722 }, 18723 meridiem: function (hour, minute, isLower) { 18724 if (hour < 12) { 18725 return 'ÞÞ'; 18726 } else { 18727 return 'ÞÞ'; 18728 } 18729 }, 18730 calendar: { 18731 sameDay: '[ÞÞ¨ÞÞ¦ÞÞª] LT', 18732 nextDay: '[ÞÞ§ÞÞ¦ÞÞ§] LT', 18733 nextWeek: 'dddd LT', 18734 lastDay: '[ÞÞ¨ÞÞ°ÞÞ¬] LT', 18735 lastWeek: '[ÞÞ§ÞÞ¨ÞÞªÞÞ¨] dddd LT', 18736 sameElse: 'L', 18737 }, 18738 relativeTime: { 18739 future: 'ÞÞ¬ÞÞÞÞ¦ÞÞ¨ %s', 18740 past: 'ÞÞªÞÞ¨ÞÞ° %s', 18741 s: 'ÞÞ¨ÞÞªÞÞ°ÞÞªÞÞ®Þ Þ¬ÞÞ°', 18742 ss: 'd% ÞÞ¨ÞÞªÞÞ°ÞÞª', 18743 m: 'ÞÞ¨ÞÞ¨ÞÞ¬ÞÞ°', 18744 mm: 'ÞÞ¨ÞÞ¨ÞÞª %d', 18745 h: 'ÞÞ¦ÞÞ¨ÞÞ¨ÞÞ¬ÞÞ°', 18746 hh: 'ÞÞ¦ÞÞ¨ÞÞ¨ÞÞª %d', 18747 d: 'ÞÞªÞÞ¦ÞÞ¬ÞÞ°', 18748 dd: 'ÞÞªÞÞ¦ÞÞ° %d', 18749 M: 'ÞÞ¦ÞÞ¬ÞÞ°', 18750 MM: 'ÞÞ¦ÞÞ° %d', 18751 y: 'ÞÞ¦ÞÞ¦ÞÞ¬ÞÞ°', 18752 yy: 'ÞÞ¦ÞÞ¦ÞÞª %d', 18753 }, 18754 preparse: function (string) { 18755 return string.replace(/Ø/g, ','); 18756 }, 18757 postformat: function (string) { 18758 return string.replace(/,/g, 'Ø'); 18759 }, 18760 week: { 18761 dow: 7, // Sunday is the first day of the week. 18762 doy: 12, // The week that contains Jan 12th is the first week of the year. 18763 }, 18764 }); 18765 18766 return dv; 18767 18768}))); 18769 18770 18771/***/ }), 18772
vendor: 4,762 bytes, lines 18773-18897
18773/***/ "./node_modules/moment/locale/el.js": 18774/*!******************************************!*\ 18775 !*** ./node_modules/moment/locale/el.js ***! 18776 \******************************************/ 18777/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 18778 18779//! moment.js locale configuration 18780//! locale : Greek [el] 18781//! author : Aggelos Karalias : https://github.com/mehiel 18782 18783;(function (global, factory) { 18784 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 18785 0 18786}(this, (function (moment) { 'use strict'; 18787 18788 //! moment.js locale configuration 18789 18790 function isFunction(input) { 18791 return ( 18792 (typeof Function !== 'undefined' && input instanceof Function) || 18793 Object.prototype.toString.call(input) === '[object Function]' 18794 ); 18795 } 18796 18797 var el = moment.defineLocale('el', { 18798 monthsNominativeEl: 18799 'ÎÎ±Î½Î¿Ï Î¬ÏιοÏ_ΦεβÏÎ¿Ï Î¬ÏιοÏ_ÎάÏÏιοÏ_ÎÏÏίλιοÏ_ÎάιοÏ_ÎοÏνιοÏ_ÎοÏλιοÏ_ÎÏÎ³Î¿Ï ÏÏοÏ_ΣεÏÏÎμβÏιοÏ_ÎκÏÏβÏιοÏ_ÎοÎμβÏιοÏ_ÎεκÎμβÏιοÏ'.split( 18800 '_' 18801 ), 18802 monthsGenitiveEl: 18803 'ÎÎ±Î½Î¿Ï Î±ÏÎ¯Î¿Ï _ΦεβÏÎ¿Ï Î±ÏÎ¯Î¿Ï _ÎαÏÏÎ¯Î¿Ï _ÎÏÏÎ¹Î»Î¯Î¿Ï _ÎαÎÎ¿Ï _ÎÎ¿Ï Î½Î¯Î¿Ï _ÎÎ¿Ï Î»Î¯Î¿Ï _ÎÏ Î³Î¿ÏÏÏÎ¿Ï _ΣεÏÏεμβÏÎ¯Î¿Ï _ÎκÏÏβÏÎ¯Î¿Ï _ÎοεμβÏÎ¯Î¿Ï _ÎεκεμβÏÎ¯Î¿Ï '.split( 18804 '_' 18805 ), 18806 months: function (momentToFormat, format) { 18807 if (!momentToFormat) { 18808 return this._monthsNominativeEl; 18809 } else if ( 18810 typeof format === 'string' && 18811 /D/.test(format.substring(0, format.indexOf('MMMM'))) 18812 ) { 18813 // if there is a day number before 'MMMM' 18814 return this._monthsGenitiveEl[momentToFormat.month()]; 18815 } else { 18816 return this._monthsNominativeEl[momentToFormat.month()]; 18817 } 18818 }, 18819 monthsShort: 'Îαν_Φεβ_ÎαÏ_ÎÏÏ_ÎαÏ_ÎÎ¿Ï Î½_ÎÎ¿Ï Î»_ÎÏ Î³_ΣεÏ_ÎκÏ_Îοε_Îεκ'.split('_'), 18820 weekdays: 'ÎÏ Ïιακή_ÎÎµÏ ÏÎÏα_ΤÏίÏη_ΤεÏάÏÏη_Î ÎμÏÏη_ΠαÏαÏÎºÎµÏ Î®_ΣάββαÏο'.split( 18821 '_' 18822 ), 18823 weekdaysShort: 'ÎÏ Ï_ÎÎµÏ _ΤÏι_ΤεÏ_Πεμ_ΠαÏ_Σαβ'.split('_'), 18824 weekdaysMin: 'ÎÏ _Îε_ΤÏ_Τε_Πε_Πα_Σα'.split('_'), 18825 meridiem: function (hours, minutes, isLower) { 18826 if (hours > 11) { 18827 return isLower ? 'μμ' : 'ÎÎ'; 18828 } else { 18829 return isLower ? 'Ïμ' : 'Î Î'; 18830 } 18831 }, 18832 isPM: function (input) { 18833 return (input + '').toLowerCase()[0] === 'μ'; 18834 }, 18835 meridiemParse: /[Î Î]\.?Î?\.?/i, 18836 longDateFormat: { 18837 LT: 'h:mm A', 18838 LTS: 'h:mm:ss A', 18839 L: 'DD/MM/YYYY', 18840 LL: 'D MMMM YYYY', 18841 LLL: 'D MMMM YYYY h:mm A', 18842 LLLL: 'dddd, D MMMM YYYY h:mm A', 18843 }, 18844 calendarEl: { 18845 sameDay: '[ΣήμεÏα {}] LT', 18846 nextDay: '[ÎÏÏιο {}] LT', 18847 nextWeek: 'dddd [{}] LT', 18848 lastDay: '[Î§Î¸ÎµÏ {}] LT', 18849 lastWeek: function () { 18850 switch (this.day()) { 18851 case 6: 18852 return '[Ïο ÏÏοηγοÏμενο] dddd [{}] LT'; 18853 default: 18854 return '[Ïην ÏÏοηγοÏμενη] dddd [{}] LT'; 18855 } 18856 }, 18857 sameElse: 'L', 18858 }, 18859 calendar: function (key, mom) { 18860 var output = this._calendarEl[key], 18861 hours = mom && mom.hours(); 18862 if (isFunction(output)) { 18863 output = output.apply(mom); 18864 } 18865 return output.replace('{}', hours % 12 === 1 ? 'ÏÏη' : 'ÏÏιÏ'); 18866 }, 18867 relativeTime: { 18868 future: 'Ïε %s', 18869 past: '%s ÏÏιν', 18870 s: 'λίγα Î´ÎµÏ ÏεÏÏλεÏÏα', 18871 ss: '%d Î´ÎµÏ ÏεÏÏλεÏÏα', 18872 m: 'Îνα λεÏÏÏ', 18873 mm: '%d λεÏÏά', 18874 h: 'μία ÏÏα', 18875 hh: '%d ÏÏεÏ', 18876 d: 'μία μÎÏα', 18877 dd: '%d μÎÏεÏ', 18878 M: 'ÎÎ½Î±Ï Î¼Î®Î½Î±Ï', 18879 MM: '%d μήνεÏ', 18880 y: 'ÎÎ½Î±Ï ÏÏÏνοÏ', 18881 yy: '%d ÏÏÏνια', 18882 }, 18883 dayOfMonthOrdinalParse: /\d{1,2}η/, 18884 ordinal: '%dη', 18885 week: { 18886 dow: 1, // Monday is the first day of the week. 18887 doy: 4, // The week that contains Jan 4st is the first week of the year. 18888 }, 18889 }); 18890 18891 return el; 18892 18893}))); 18894 18895 18896/***/ }), 18897
vendor: 2,806 bytes, lines 18898-18984
18898/***/ "./node_modules/moment/locale/en-au.js": 18899/*!*********************************************!*\ 18900 !*** ./node_modules/moment/locale/en-au.js ***! 18901 \*********************************************/ 18902/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 18903 18904//! moment.js locale configuration 18905//! locale : English (Australia) [en-au] 18906//! author : Jared Morse : https://github.com/jarcoal 18907 18908;(function (global, factory) { 18909 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 18910 0 18911}(this, (function (moment) { 'use strict'; 18912 18913 //! moment.js locale configuration 18914 18915 var enAu = moment.defineLocale('en-au', { 18916 months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( 18917 '_' 18918 ), 18919 monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), 18920 weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( 18921 '_' 18922 ), 18923 weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), 18924 weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), 18925 longDateFormat: { 18926 LT: 'h:mm A', 18927 LTS: 'h:mm:ss A', 18928 L: 'DD/MM/YYYY', 18929 LL: 'D MMMM YYYY', 18930 LLL: 'D MMMM YYYY h:mm A', 18931 LLLL: 'dddd, D MMMM YYYY h:mm A', 18932 }, 18933 calendar: { 18934 sameDay: '[Today at] LT', 18935 nextDay: '[Tomorrow at] LT', 18936 nextWeek: 'dddd [at] LT', 18937 lastDay: '[Yesterday at] LT', 18938 lastWeek: '[Last] dddd [at] LT', 18939 sameElse: 'L', 18940 }, 18941 relativeTime: { 18942 future: 'in %s', 18943 past: '%s ago', 18944 s: 'a few seconds', 18945 ss: '%d seconds', 18946 m: 'a minute', 18947 mm: '%d minutes', 18948 h: 'an hour', 18949 hh: '%d hours', 18950 d: 'a day', 18951 dd: '%d days', 18952 M: 'a month', 18953 MM: '%d months', 18954 y: 'a year', 18955 yy: '%d years', 18956 }, 18957 dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, 18958 ordinal: function (number) { 18959 var b = number % 10, 18960 output = 18961 ~~((number % 100) / 10) === 1 18962 ? 'th' 18963 : b === 1 18964 ? 'st' 18965 : b === 2 18966 ? 'nd' 18967 : b === 3 18968 ? 'rd' 18969 : 'th'; 18970 return number + output; 18971 }, 18972 week: { 18973 dow: 0, // Sunday is the first day of the week. 18974 doy: 4, // The week that contains Jan 4th is the first week of the year. 18975 }, 18976 }); 18977 18978 return enAu; 18979 18980}))); 18981 18982 18983/***/ }), 18984
vendor: 2,639 bytes, lines 18985-19067
18985/***/ "./node_modules/moment/locale/en-ca.js": 18986/*!*********************************************!*\ 18987 !*** ./node_modules/moment/locale/en-ca.js ***! 18988 \*********************************************/ 18989/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 18990 18991//! moment.js locale configuration 18992//! locale : English (Canada) [en-ca] 18993//! author : Jonathan Abourbih : https://github.com/jonbca 18994 18995;(function (global, factory) { 18996 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 18997 0 18998}(this, (function (moment) { 'use strict'; 18999 19000 //! moment.js locale configuration 19001 19002 var enCa = moment.defineLocale('en-ca', { 19003 months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( 19004 '_' 19005 ), 19006 monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), 19007 weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( 19008 '_' 19009 ), 19010 weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), 19011 weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), 19012 longDateFormat: { 19013 LT: 'h:mm A', 19014 LTS: 'h:mm:ss A', 19015 L: 'YYYY-MM-DD', 19016 LL: 'MMMM D, YYYY', 19017 LLL: 'MMMM D, YYYY h:mm A', 19018 LLLL: 'dddd, MMMM D, YYYY h:mm A', 19019 }, 19020 calendar: { 19021 sameDay: '[Today at] LT', 19022 nextDay: '[Tomorrow at] LT', 19023 nextWeek: 'dddd [at] LT', 19024 lastDay: '[Yesterday at] LT', 19025 lastWeek: '[Last] dddd [at] LT', 19026 sameElse: 'L', 19027 }, 19028 relativeTime: { 19029 future: 'in %s', 19030 past: '%s ago', 19031 s: 'a few seconds', 19032 ss: '%d seconds', 19033 m: 'a minute', 19034 mm: '%d minutes', 19035 h: 'an hour', 19036 hh: '%d hours', 19037 d: 'a day', 19038 dd: '%d days', 19039 M: 'a month', 19040 MM: '%d months', 19041 y: 'a year', 19042 yy: '%d years', 19043 }, 19044 dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, 19045 ordinal: function (number) { 19046 var b = number % 10, 19047 output = 19048 ~~((number % 100) / 10) === 1 19049 ? 'th' 19050 : b === 1 19051 ? 'st' 19052 : b === 2 19053 ? 'nd' 19054 : b === 3 19055 ? 'rd' 19056 : 'th'; 19057 return number + output; 19058 }, 19059 }); 19060 19061 return enCa; 19062 19063}))); 19064 19065 19066/***/ }), 19067
vendor: 2,812 bytes, lines 19068-19154
19068/***/ "./node_modules/moment/locale/en-gb.js": 19069/*!*********************************************!*\ 19070 !*** ./node_modules/moment/locale/en-gb.js ***! 19071 \*********************************************/ 19072/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 19073 19074//! moment.js locale configuration 19075//! locale : English (United Kingdom) [en-gb] 19076//! author : Chris Gedrim : https://github.com/chrisgedrim 19077 19078;(function (global, factory) { 19079 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 19080 0 19081}(this, (function (moment) { 'use strict'; 19082 19083 //! moment.js locale configuration 19084 19085 var enGb = moment.defineLocale('en-gb', { 19086 months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( 19087 '_' 19088 ), 19089 monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), 19090 weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( 19091 '_' 19092 ), 19093 weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), 19094 weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), 19095 longDateFormat: { 19096 LT: 'HH:mm', 19097 LTS: 'HH:mm:ss', 19098 L: 'DD/MM/YYYY', 19099 LL: 'D MMMM YYYY', 19100 LLL: 'D MMMM YYYY HH:mm', 19101 LLLL: 'dddd, D MMMM YYYY HH:mm', 19102 }, 19103 calendar: { 19104 sameDay: '[Today at] LT', 19105 nextDay: '[Tomorrow at] LT', 19106 nextWeek: 'dddd [at] LT', 19107 lastDay: '[Yesterday at] LT', 19108 lastWeek: '[Last] dddd [at] LT', 19109 sameElse: 'L', 19110 }, 19111 relativeTime: { 19112 future: 'in %s', 19113 past: '%s ago', 19114 s: 'a few seconds', 19115 ss: '%d seconds', 19116 m: 'a minute', 19117 mm: '%d minutes', 19118 h: 'an hour', 19119 hh: '%d hours', 19120 d: 'a day', 19121 dd: '%d days', 19122 M: 'a month', 19123 MM: '%d months', 19124 y: 'a year', 19125 yy: '%d years', 19126 }, 19127 dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, 19128 ordinal: function (number) { 19129 var b = number % 10, 19130 output = 19131 ~~((number % 100) / 10) === 1 19132 ? 'th' 19133 : b === 1 19134 ? 'st' 19135 : b === 2 19136 ? 'nd' 19137 : b === 3 19138 ? 'rd' 19139 : 'th'; 19140 return number + output; 19141 }, 19142 week: { 19143 dow: 1, // Monday is the first day of the week. 19144 doy: 4, // The week that contains Jan 4th is the first week of the year. 19145 }, 19146 }); 19147 19148 return enGb; 19149 19150}))); 19151 19152 19153/***/ }), 19154
vendor: 2,810 bytes, lines 19155-19241
19155/***/ "./node_modules/moment/locale/en-ie.js": 19156/*!*********************************************!*\ 19157 !*** ./node_modules/moment/locale/en-ie.js ***! 19158 \*********************************************/ 19159/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 19160 19161//! moment.js locale configuration 19162//! locale : English (Ireland) [en-ie] 19163//! author : Chris Cartlidge : https://github.com/chriscartlidge 19164 19165;(function (global, factory) { 19166 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 19167 0 19168}(this, (function (moment) { 'use strict'; 19169 19170 //! moment.js locale configuration 19171 19172 var enIe = moment.defineLocale('en-ie', { 19173 months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( 19174 '_' 19175 ), 19176 monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), 19177 weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( 19178 '_' 19179 ), 19180 weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), 19181 weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), 19182 longDateFormat: { 19183 LT: 'HH:mm', 19184 LTS: 'HH:mm:ss', 19185 L: 'DD/MM/YYYY', 19186 LL: 'D MMMM YYYY', 19187 LLL: 'D MMMM YYYY HH:mm', 19188 LLLL: 'dddd D MMMM YYYY HH:mm', 19189 }, 19190 calendar: { 19191 sameDay: '[Today at] LT', 19192 nextDay: '[Tomorrow at] LT', 19193 nextWeek: 'dddd [at] LT', 19194 lastDay: '[Yesterday at] LT', 19195 lastWeek: '[Last] dddd [at] LT', 19196 sameElse: 'L', 19197 }, 19198 relativeTime: { 19199 future: 'in %s', 19200 past: '%s ago', 19201 s: 'a few seconds', 19202 ss: '%d seconds', 19203 m: 'a minute', 19204 mm: '%d minutes', 19205 h: 'an hour', 19206 hh: '%d hours', 19207 d: 'a day', 19208 dd: '%d days', 19209 M: 'a month', 19210 MM: '%d months', 19211 y: 'a year', 19212 yy: '%d years', 19213 }, 19214 dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, 19215 ordinal: function (number) { 19216 var b = number % 10, 19217 output = 19218 ~~((number % 100) / 10) === 1 19219 ? 'th' 19220 : b === 1 19221 ? 'st' 19222 : b === 2 19223 ? 'nd' 19224 : b === 3 19225 ? 'rd' 19226 : 'th'; 19227 return number + output; 19228 }, 19229 week: { 19230 dow: 1, // Monday is the first day of the week. 19231 doy: 4, // The week that contains Jan 4th is the first week of the year. 19232 }, 19233 }); 19234 19235 return enIe; 19236 19237}))); 19238 19239 19240/***/ }), 19241
vendor: 2,632 bytes, lines 19242-19324
19242/***/ "./node_modules/moment/locale/en-il.js": 19243/*!*********************************************!*\ 19244 !*** ./node_modules/moment/locale/en-il.js ***! 19245 \*********************************************/ 19246/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 19247 19248//! moment.js locale configuration 19249//! locale : English (Israel) [en-il] 19250//! author : Chris Gedrim : https://github.com/chrisgedrim 19251 19252;(function (global, factory) { 19253 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 19254 0 19255}(this, (function (moment) { 'use strict'; 19256 19257 //! moment.js locale configuration 19258 19259 var enIl = moment.defineLocale('en-il', { 19260 months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( 19261 '_' 19262 ), 19263 monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), 19264 weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( 19265 '_' 19266 ), 19267 weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), 19268 weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), 19269 longDateFormat: { 19270 LT: 'HH:mm', 19271 LTS: 'HH:mm:ss', 19272 L: 'DD/MM/YYYY', 19273 LL: 'D MMMM YYYY', 19274 LLL: 'D MMMM YYYY HH:mm', 19275 LLLL: 'dddd, D MMMM YYYY HH:mm', 19276 }, 19277 calendar: { 19278 sameDay: '[Today at] LT', 19279 nextDay: '[Tomorrow at] LT', 19280 nextWeek: 'dddd [at] LT', 19281 lastDay: '[Yesterday at] LT', 19282 lastWeek: '[Last] dddd [at] LT', 19283 sameElse: 'L', 19284 }, 19285 relativeTime: { 19286 future: 'in %s', 19287 past: '%s ago', 19288 s: 'a few seconds', 19289 ss: '%d seconds', 19290 m: 'a minute', 19291 mm: '%d minutes', 19292 h: 'an hour', 19293 hh: '%d hours', 19294 d: 'a day', 19295 dd: '%d days', 19296 M: 'a month', 19297 MM: '%d months', 19298 y: 'a year', 19299 yy: '%d years', 19300 }, 19301 dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, 19302 ordinal: function (number) { 19303 var b = number % 10, 19304 output = 19305 ~~((number % 100) / 10) === 1 19306 ? 'th' 19307 : b === 1 19308 ? 'st' 19309 : b === 2 19310 ? 'nd' 19311 : b === 3 19312 ? 'rd' 19313 : 'th'; 19314 return number + output; 19315 }, 19316 }); 19317 19318 return enIl; 19319 19320}))); 19321 19322 19323/***/ }), 19324
vendor: 2,806 bytes, lines 19325-19411
19325/***/ "./node_modules/moment/locale/en-in.js": 19326/*!*********************************************!*\ 19327 !*** ./node_modules/moment/locale/en-in.js ***! 19328 \*********************************************/ 19329/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 19330 19331//! moment.js locale configuration 19332//! locale : English (India) [en-in] 19333//! author : Jatin Agrawal : https://github.com/jatinag22 19334 19335;(function (global, factory) { 19336 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 19337 0 19338}(this, (function (moment) { 'use strict'; 19339 19340 //! moment.js locale configuration 19341 19342 var enIn = moment.defineLocale('en-in', { 19343 months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( 19344 '_' 19345 ), 19346 monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), 19347 weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( 19348 '_' 19349 ), 19350 weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), 19351 weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), 19352 longDateFormat: { 19353 LT: 'h:mm A', 19354 LTS: 'h:mm:ss A', 19355 L: 'DD/MM/YYYY', 19356 LL: 'D MMMM YYYY', 19357 LLL: 'D MMMM YYYY h:mm A', 19358 LLLL: 'dddd, D MMMM YYYY h:mm A', 19359 }, 19360 calendar: { 19361 sameDay: '[Today at] LT', 19362 nextDay: '[Tomorrow at] LT', 19363 nextWeek: 'dddd [at] LT', 19364 lastDay: '[Yesterday at] LT', 19365 lastWeek: '[Last] dddd [at] LT', 19366 sameElse: 'L', 19367 }, 19368 relativeTime: { 19369 future: 'in %s', 19370 past: '%s ago', 19371 s: 'a few seconds', 19372 ss: '%d seconds', 19373 m: 'a minute', 19374 mm: '%d minutes', 19375 h: 'an hour', 19376 hh: '%d hours', 19377 d: 'a day', 19378 dd: '%d days', 19379 M: 'a month', 19380 MM: '%d months', 19381 y: 'a year', 19382 yy: '%d years', 19383 }, 19384 dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, 19385 ordinal: function (number) { 19386 var b = number % 10, 19387 output = 19388 ~~((number % 100) / 10) === 1 19389 ? 'th' 19390 : b === 1 19391 ? 'st' 19392 : b === 2 19393 ? 'nd' 19394 : b === 3 19395 ? 'rd' 19396 : 'th'; 19397 return number + output; 19398 }, 19399 week: { 19400 dow: 0, // Sunday is the first day of the week. 19401 doy: 6, // The week that contains Jan 1st is the first week of the year. 19402 }, 19403 }); 19404 19405 return enIn; 19406 19407}))); 19408 19409 19410/***/ }), 19411
vendor: 2,815 bytes, lines 19412-19498
19412/***/ "./node_modules/moment/locale/en-nz.js": 19413/*!*********************************************!*\ 19414 !*** ./node_modules/moment/locale/en-nz.js ***! 19415 \*********************************************/ 19416/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 19417 19418//! moment.js locale configuration 19419//! locale : English (New Zealand) [en-nz] 19420//! author : Luke McGregor : https://github.com/lukemcgregor 19421 19422;(function (global, factory) { 19423 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 19424 0 19425}(this, (function (moment) { 'use strict'; 19426 19427 //! moment.js locale configuration 19428 19429 var enNz = moment.defineLocale('en-nz', { 19430 months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( 19431 '_' 19432 ), 19433 monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), 19434 weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( 19435 '_' 19436 ), 19437 weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), 19438 weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), 19439 longDateFormat: { 19440 LT: 'h:mm A', 19441 LTS: 'h:mm:ss A', 19442 L: 'DD/MM/YYYY', 19443 LL: 'D MMMM YYYY', 19444 LLL: 'D MMMM YYYY h:mm A', 19445 LLLL: 'dddd, D MMMM YYYY h:mm A', 19446 }, 19447 calendar: { 19448 sameDay: '[Today at] LT', 19449 nextDay: '[Tomorrow at] LT', 19450 nextWeek: 'dddd [at] LT', 19451 lastDay: '[Yesterday at] LT', 19452 lastWeek: '[Last] dddd [at] LT', 19453 sameElse: 'L', 19454 }, 19455 relativeTime: { 19456 future: 'in %s', 19457 past: '%s ago', 19458 s: 'a few seconds', 19459 ss: '%d seconds', 19460 m: 'a minute', 19461 mm: '%d minutes', 19462 h: 'an hour', 19463 hh: '%d hours', 19464 d: 'a day', 19465 dd: '%d days', 19466 M: 'a month', 19467 MM: '%d months', 19468 y: 'a year', 19469 yy: '%d years', 19470 }, 19471 dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, 19472 ordinal: function (number) { 19473 var b = number % 10, 19474 output = 19475 ~~((number % 100) / 10) === 1 19476 ? 'th' 19477 : b === 1 19478 ? 'st' 19479 : b === 2 19480 ? 'nd' 19481 : b === 3 19482 ? 'rd' 19483 : 'th'; 19484 return number + output; 19485 }, 19486 week: { 19487 dow: 1, // Monday is the first day of the week. 19488 doy: 4, // The week that contains Jan 4th is the first week of the year. 19489 }, 19490 }); 19491 19492 return enNz; 19493 19494}))); 19495 19496 19497/***/ }), 19498
vendor: 2,824 bytes, lines 19499-19585
19499/***/ "./node_modules/moment/locale/en-sg.js": 19500/*!*********************************************!*\ 19501 !*** ./node_modules/moment/locale/en-sg.js ***! 19502 \*********************************************/ 19503/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 19504 19505//! moment.js locale configuration 19506//! locale : English (Singapore) [en-sg] 19507//! author : Matthew Castrillon-Madrigal : https://github.com/techdimension 19508 19509;(function (global, factory) { 19510 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 19511 0 19512}(this, (function (moment) { 'use strict'; 19513 19514 //! moment.js locale configuration 19515 19516 var enSg = moment.defineLocale('en-sg', { 19517 months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( 19518 '_' 19519 ), 19520 monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), 19521 weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( 19522 '_' 19523 ), 19524 weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), 19525 weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), 19526 longDateFormat: { 19527 LT: 'HH:mm', 19528 LTS: 'HH:mm:ss', 19529 L: 'DD/MM/YYYY', 19530 LL: 'D MMMM YYYY', 19531 LLL: 'D MMMM YYYY HH:mm', 19532 LLLL: 'dddd, D MMMM YYYY HH:mm', 19533 }, 19534 calendar: { 19535 sameDay: '[Today at] LT', 19536 nextDay: '[Tomorrow at] LT', 19537 nextWeek: 'dddd [at] LT', 19538 lastDay: '[Yesterday at] LT', 19539 lastWeek: '[Last] dddd [at] LT', 19540 sameElse: 'L', 19541 }, 19542 relativeTime: { 19543 future: 'in %s', 19544 past: '%s ago', 19545 s: 'a few seconds', 19546 ss: '%d seconds', 19547 m: 'a minute', 19548 mm: '%d minutes', 19549 h: 'an hour', 19550 hh: '%d hours', 19551 d: 'a day', 19552 dd: '%d days', 19553 M: 'a month', 19554 MM: '%d months', 19555 y: 'a year', 19556 yy: '%d years', 19557 }, 19558 dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, 19559 ordinal: function (number) { 19560 var b = number % 10, 19561 output = 19562 ~~((number % 100) / 10) === 1 19563 ? 'th' 19564 : b === 1 19565 ? 'st' 19566 : b === 2 19567 ? 'nd' 19568 : b === 3 19569 ? 'rd' 19570 : 'th'; 19571 return number + output; 19572 }, 19573 week: { 19574 dow: 1, // Monday is the first day of the week. 19575 doy: 4, // The week that contains Jan 4th is the first week of the year. 19576 }, 19577 }); 19578 19579 return enSg; 19580 19581}))); 19582 19583 19584/***/ }), 19585
vendor: 3,063 bytes, lines 19586-19672
19586/***/ "./node_modules/moment/locale/eo.js": 19587/*!******************************************!*\ 19588 !*** ./node_modules/moment/locale/eo.js ***! 19589 \******************************************/ 19590/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 19591 19592//! moment.js locale configuration 19593//! locale : Esperanto [eo] 19594//! author : Colin Dean : https://github.com/colindean 19595//! author : Mia Nordentoft Imperatori : https://github.com/miestasmia 19596//! comment : miestasmia corrected the translation by colindean 19597//! comment : Vivakvo corrected the translation by colindean and miestasmia 19598 19599;(function (global, factory) { 19600 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 19601 0 19602}(this, (function (moment) { 'use strict'; 19603 19604 //! moment.js locale configuration 19605 19606 var eo = moment.defineLocale('eo', { 19607 months: 'januaro_februaro_marto_aprilo_majo_junio_julio_aÅgusto_septembro_oktobro_novembro_decembro'.split( 19608 '_' 19609 ), 19610 monthsShort: 'jan_feb_mart_apr_maj_jun_jul_aÅg_sept_okt_nov_dec'.split('_'), 19611 weekdays: 'dimanÄo_lundo_mardo_merkredo_ĵaÅdo_vendredo_sabato'.split('_'), 19612 weekdaysShort: 'dim_lun_mard_merk_ĵaÅ_ven_sab'.split('_'), 19613 weekdaysMin: 'di_lu_ma_me_ĵa_ve_sa'.split('_'), 19614 longDateFormat: { 19615 LT: 'HH:mm', 19616 LTS: 'HH:mm:ss', 19617 L: 'YYYY-MM-DD', 19618 LL: '[la] D[-an de] MMMM, YYYY', 19619 LLL: '[la] D[-an de] MMMM, YYYY HH:mm', 19620 LLLL: 'dddd[n], [la] D[-an de] MMMM, YYYY HH:mm', 19621 llll: 'ddd, [la] D[-an de] MMM, YYYY HH:mm', 19622 }, 19623 meridiemParse: /[ap]\.t\.m/i, 19624 isPM: function (input) { 19625 return input.charAt(0).toLowerCase() === 'p'; 19626 }, 19627 meridiem: function (hours, minutes, isLower) { 19628 if (hours > 11) { 19629 return isLower ? 'p.t.m.' : 'P.T.M.'; 19630 } else { 19631 return isLower ? 'a.t.m.' : 'A.T.M.'; 19632 } 19633 }, 19634 calendar: { 19635 sameDay: '[HodiaÅ je] LT', 19636 nextDay: '[MorgaÅ je] LT', 19637 nextWeek: 'dddd[n je] LT', 19638 lastDay: '[HieraÅ je] LT', 19639 lastWeek: '[pasintan] dddd[n je] LT', 19640 sameElse: 'L', 19641 }, 19642 relativeTime: { 19643 future: 'post %s', 19644 past: 'antaÅ %s', 19645 s: 'kelkaj sekundoj', 19646 ss: '%d sekundoj', 19647 m: 'unu minuto', 19648 mm: '%d minutoj', 19649 h: 'unu horo', 19650 hh: '%d horoj', 19651 d: 'unu tago', //ne 'diurno', Äar estas uzita por proksimumo 19652 dd: '%d tagoj', 19653 M: 'unu monato', 19654 MM: '%d monatoj', 19655 y: 'unu jaro', 19656 yy: '%d jaroj', 19657 }, 19658 dayOfMonthOrdinalParse: /\d{1,2}a/, 19659 ordinal: '%da', 19660 week: { 19661 dow: 1, // Monday is the first day of the week. 19662 doy: 7, // The week that contains Jan 7th is the first week of the year. 19663 }, 19664 }); 19665 19666 return eo; 19667 19668}))); 19669 19670 19671/***/ }), 19672
vendor: 4,354 bytes, lines 19673-19799
19673/***/ "./node_modules/moment/locale/es-do.js": 19674/*!*********************************************!*\ 19675 !*** ./node_modules/moment/locale/es-do.js ***! 19676 \*********************************************/ 19677/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 19678 19679//! moment.js locale configuration 19680//! locale : Spanish (Dominican Republic) [es-do] 19681 19682;(function (global, factory) { 19683 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 19684 0 19685}(this, (function (moment) { 'use strict'; 19686 19687 //! moment.js locale configuration 19688 19689 var monthsShortDot = 19690 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split( 19691 '_' 19692 ), 19693 monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'), 19694 monthsParse = [ 19695 /^ene/i, 19696 /^feb/i, 19697 /^mar/i, 19698 /^abr/i, 19699 /^may/i, 19700 /^jun/i, 19701 /^jul/i, 19702 /^ago/i, 19703 /^sep/i, 19704 /^oct/i, 19705 /^nov/i, 19706 /^dic/i, 19707 ], 19708 monthsRegex = 19709 /^(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; 19710 19711 var esDo = moment.defineLocale('es-do', { 19712 months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split( 19713 '_' 19714 ), 19715 monthsShort: function (m, format) { 19716 if (!m) { 19717 return monthsShortDot; 19718 } else if (/-MMM-/.test(format)) { 19719 return monthsShort[m.month()]; 19720 } else { 19721 return monthsShortDot[m.month()]; 19722 } 19723 }, 19724 monthsRegex: monthsRegex, 19725 monthsShortRegex: monthsRegex, 19726 monthsStrictRegex: 19727 /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i, 19728 monthsShortStrictRegex: 19729 /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, 19730 monthsParse: monthsParse, 19731 longMonthsParse: monthsParse, 19732 shortMonthsParse: monthsParse, 19733 weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'), 19734 weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'), 19735 weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'), 19736 weekdaysParseExact: true, 19737 longDateFormat: { 19738 LT: 'h:mm A', 19739 LTS: 'h:mm:ss A', 19740 L: 'DD/MM/YYYY', 19741 LL: 'D [de] MMMM [de] YYYY', 19742 LLL: 'D [de] MMMM [de] YYYY h:mm A', 19743 LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A', 19744 }, 19745 calendar: { 19746 sameDay: function () { 19747 return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; 19748 }, 19749 nextDay: function () { 19750 return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; 19751 }, 19752 nextWeek: function () { 19753 return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; 19754 }, 19755 lastDay: function () { 19756 return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; 19757 }, 19758 lastWeek: function () { 19759 return ( 19760 '[el] dddd [pasado a la' + 19761 (this.hours() !== 1 ? 's' : '') + 19762 '] LT' 19763 ); 19764 }, 19765 sameElse: 'L', 19766 }, 19767 relativeTime: { 19768 future: 'en %s', 19769 past: 'hace %s', 19770 s: 'unos segundos', 19771 ss: '%d segundos', 19772 m: 'un minuto', 19773 mm: '%d minutos', 19774 h: 'una hora', 19775 hh: '%d horas', 19776 d: 'un dÃa', 19777 dd: '%d dÃas', 19778 w: 'una semana', 19779 ww: '%d semanas', 19780 M: 'un mes', 19781 MM: '%d meses', 19782 y: 'un año', 19783 yy: '%d años', 19784 }, 19785 dayOfMonthOrdinalParse: /\d{1,2}º/, 19786 ordinal: '%dº', 19787 week: { 19788 dow: 1, // Monday is the first day of the week. 19789 doy: 4, // The week that contains Jan 4th is the first week of the year. 19790 }, 19791 }); 19792 19793 return esDo; 19794 19795}))); 19796 19797 19798/***/ }), 19799
vendor: 4,427 bytes, lines 19800-19928
19800/***/ "./node_modules/moment/locale/es-mx.js": 19801/*!*********************************************!*\ 19802 !*** ./node_modules/moment/locale/es-mx.js ***! 19803 \*********************************************/ 19804/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 19805 19806//! moment.js locale configuration 19807//! locale : Spanish (Mexico) [es-mx] 19808//! author : JC Franco : https://github.com/jcfranco 19809 19810;(function (global, factory) { 19811 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 19812 0 19813}(this, (function (moment) { 'use strict'; 19814 19815 //! moment.js locale configuration 19816 19817 var monthsShortDot = 19818 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split( 19819 '_' 19820 ), 19821 monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'), 19822 monthsParse = [ 19823 /^ene/i, 19824 /^feb/i, 19825 /^mar/i, 19826 /^abr/i, 19827 /^may/i, 19828 /^jun/i, 19829 /^jul/i, 19830 /^ago/i, 19831 /^sep/i, 19832 /^oct/i, 19833 /^nov/i, 19834 /^dic/i, 19835 ], 19836 monthsRegex = 19837 /^(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; 19838 19839 var esMx = moment.defineLocale('es-mx', { 19840 months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split( 19841 '_' 19842 ), 19843 monthsShort: function (m, format) { 19844 if (!m) { 19845 return monthsShortDot; 19846 } else if (/-MMM-/.test(format)) { 19847 return monthsShort[m.month()]; 19848 } else { 19849 return monthsShortDot[m.month()]; 19850 } 19851 }, 19852 monthsRegex: monthsRegex, 19853 monthsShortRegex: monthsRegex, 19854 monthsStrictRegex: 19855 /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i, 19856 monthsShortStrictRegex: 19857 /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, 19858 monthsParse: monthsParse, 19859 longMonthsParse: monthsParse, 19860 shortMonthsParse: monthsParse, 19861 weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'), 19862 weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'), 19863 weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'), 19864 weekdaysParseExact: true, 19865 longDateFormat: { 19866 LT: 'H:mm', 19867 LTS: 'H:mm:ss', 19868 L: 'DD/MM/YYYY', 19869 LL: 'D [de] MMMM [de] YYYY', 19870 LLL: 'D [de] MMMM [de] YYYY H:mm', 19871 LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm', 19872 }, 19873 calendar: { 19874 sameDay: function () { 19875 return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; 19876 }, 19877 nextDay: function () { 19878 return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; 19879 }, 19880 nextWeek: function () { 19881 return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; 19882 }, 19883 lastDay: function () { 19884 return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; 19885 }, 19886 lastWeek: function () { 19887 return ( 19888 '[el] dddd [pasado a la' + 19889 (this.hours() !== 1 ? 's' : '') + 19890 '] LT' 19891 ); 19892 }, 19893 sameElse: 'L', 19894 }, 19895 relativeTime: { 19896 future: 'en %s', 19897 past: 'hace %s', 19898 s: 'unos segundos', 19899 ss: '%d segundos', 19900 m: 'un minuto', 19901 mm: '%d minutos', 19902 h: 'una hora', 19903 hh: '%d horas', 19904 d: 'un dÃa', 19905 dd: '%d dÃas', 19906 w: 'una semana', 19907 ww: '%d semanas', 19908 M: 'un mes', 19909 MM: '%d meses', 19910 y: 'un año', 19911 yy: '%d años', 19912 }, 19913 dayOfMonthOrdinalParse: /\d{1,2}º/, 19914 ordinal: '%dº', 19915 week: { 19916 dow: 0, // Sunday is the first day of the week. 19917 doy: 4, // The week that contains Jan 4th is the first week of the year. 19918 }, 19919 invalidDate: 'Fecha inválida', 19920 }); 19921 19922 return esMx; 19923 19924}))); 19925 19926 19927/***/ }), 19928
vendor: 4,451 bytes, lines 19929-20057
19929/***/ "./node_modules/moment/locale/es-us.js": 19930/*!*********************************************!*\ 19931 !*** ./node_modules/moment/locale/es-us.js ***! 19932 \*********************************************/ 19933/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 19934 19935//! moment.js locale configuration 19936//! locale : Spanish (United States) [es-us] 19937//! author : bustta : https://github.com/bustta 19938//! author : chrisrodz : https://github.com/chrisrodz 19939 19940;(function (global, factory) { 19941 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 19942 0 19943}(this, (function (moment) { 'use strict'; 19944 19945 //! moment.js locale configuration 19946 19947 var monthsShortDot = 19948 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split( 19949 '_' 19950 ), 19951 monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'), 19952 monthsParse = [ 19953 /^ene/i, 19954 /^feb/i, 19955 /^mar/i, 19956 /^abr/i, 19957 /^may/i, 19958 /^jun/i, 19959 /^jul/i, 19960 /^ago/i, 19961 /^sep/i, 19962 /^oct/i, 19963 /^nov/i, 19964 /^dic/i, 19965 ], 19966 monthsRegex = 19967 /^(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; 19968 19969 var esUs = moment.defineLocale('es-us', { 19970 months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split( 19971 '_' 19972 ), 19973 monthsShort: function (m, format) { 19974 if (!m) { 19975 return monthsShortDot; 19976 } else if (/-MMM-/.test(format)) { 19977 return monthsShort[m.month()]; 19978 } else { 19979 return monthsShortDot[m.month()]; 19980 } 19981 }, 19982 monthsRegex: monthsRegex, 19983 monthsShortRegex: monthsRegex, 19984 monthsStrictRegex: 19985 /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i, 19986 monthsShortStrictRegex: 19987 /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, 19988 monthsParse: monthsParse, 19989 longMonthsParse: monthsParse, 19990 shortMonthsParse: monthsParse, 19991 weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'), 19992 weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'), 19993 weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'), 19994 weekdaysParseExact: true, 19995 longDateFormat: { 19996 LT: 'h:mm A', 19997 LTS: 'h:mm:ss A', 19998 L: 'MM/DD/YYYY', 19999 LL: 'D [de] MMMM [de] YYYY', 20000 LLL: 'D [de] MMMM [de] YYYY h:mm A', 20001 LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A', 20002 }, 20003 calendar: { 20004 sameDay: function () { 20005 return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; 20006 }, 20007 nextDay: function () { 20008 return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; 20009 }, 20010 nextWeek: function () { 20011 return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; 20012 }, 20013 lastDay: function () { 20014 return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; 20015 }, 20016 lastWeek: function () { 20017 return ( 20018 '[el] dddd [pasado a la' + 20019 (this.hours() !== 1 ? 's' : '') + 20020 '] LT' 20021 ); 20022 }, 20023 sameElse: 'L', 20024 }, 20025 relativeTime: { 20026 future: 'en %s', 20027 past: 'hace %s', 20028 s: 'unos segundos', 20029 ss: '%d segundos', 20030 m: 'un minuto', 20031 mm: '%d minutos', 20032 h: 'una hora', 20033 hh: '%d horas', 20034 d: 'un dÃa', 20035 dd: '%d dÃas', 20036 w: 'una semana', 20037 ww: '%d semanas', 20038 M: 'un mes', 20039 MM: '%d meses', 20040 y: 'un año', 20041 yy: '%d años', 20042 }, 20043 dayOfMonthOrdinalParse: /\d{1,2}º/, 20044 ordinal: '%dº', 20045 week: { 20046 dow: 0, // Sunday is the first day of the week. 20047 doy: 6, // The week that contains Jan 6th is the first week of the year. 20048 }, 20049 }); 20050 20051 return esUs; 20052 20053}))); 20054 20055 20056/***/ }), 20057
vendor: 4,399 bytes, lines 20058-20186
20058/***/ "./node_modules/moment/locale/es.js": 20059/*!******************************************!*\ 20060 !*** ./node_modules/moment/locale/es.js ***! 20061 \******************************************/ 20062/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 20063 20064//! moment.js locale configuration 20065//! locale : Spanish [es] 20066//! author : Julio Napurà : https://github.com/julionc 20067 20068;(function (global, factory) { 20069 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 20070 0 20071}(this, (function (moment) { 'use strict'; 20072 20073 //! moment.js locale configuration 20074 20075 var monthsShortDot = 20076 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split( 20077 '_' 20078 ), 20079 monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'), 20080 monthsParse = [ 20081 /^ene/i, 20082 /^feb/i, 20083 /^mar/i, 20084 /^abr/i, 20085 /^may/i, 20086 /^jun/i, 20087 /^jul/i, 20088 /^ago/i, 20089 /^sep/i, 20090 /^oct/i, 20091 /^nov/i, 20092 /^dic/i, 20093 ], 20094 monthsRegex = 20095 /^(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; 20096 20097 var es = moment.defineLocale('es', { 20098 months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split( 20099 '_' 20100 ), 20101 monthsShort: function (m, format) { 20102 if (!m) { 20103 return monthsShortDot; 20104 } else if (/-MMM-/.test(format)) { 20105 return monthsShort[m.month()]; 20106 } else { 20107 return monthsShortDot[m.month()]; 20108 } 20109 }, 20110 monthsRegex: monthsRegex, 20111 monthsShortRegex: monthsRegex, 20112 monthsStrictRegex: 20113 /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i, 20114 monthsShortStrictRegex: 20115 /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, 20116 monthsParse: monthsParse, 20117 longMonthsParse: monthsParse, 20118 shortMonthsParse: monthsParse, 20119 weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'), 20120 weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'), 20121 weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'), 20122 weekdaysParseExact: true, 20123 longDateFormat: { 20124 LT: 'H:mm', 20125 LTS: 'H:mm:ss', 20126 L: 'DD/MM/YYYY', 20127 LL: 'D [de] MMMM [de] YYYY', 20128 LLL: 'D [de] MMMM [de] YYYY H:mm', 20129 LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm', 20130 }, 20131 calendar: { 20132 sameDay: function () { 20133 return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; 20134 }, 20135 nextDay: function () { 20136 return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; 20137 }, 20138 nextWeek: function () { 20139 return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; 20140 }, 20141 lastDay: function () { 20142 return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; 20143 }, 20144 lastWeek: function () { 20145 return ( 20146 '[el] dddd [pasado a la' + 20147 (this.hours() !== 1 ? 's' : '') + 20148 '] LT' 20149 ); 20150 }, 20151 sameElse: 'L', 20152 }, 20153 relativeTime: { 20154 future: 'en %s', 20155 past: 'hace %s', 20156 s: 'unos segundos', 20157 ss: '%d segundos', 20158 m: 'un minuto', 20159 mm: '%d minutos', 20160 h: 'una hora', 20161 hh: '%d horas', 20162 d: 'un dÃa', 20163 dd: '%d dÃas', 20164 w: 'una semana', 20165 ww: '%d semanas', 20166 M: 'un mes', 20167 MM: '%d meses', 20168 y: 'un año', 20169 yy: '%d años', 20170 }, 20171 dayOfMonthOrdinalParse: /\d{1,2}º/, 20172 ordinal: '%dº', 20173 week: { 20174 dow: 1, // Monday is the first day of the week. 20175 doy: 4, // The week that contains Jan 4th is the first week of the year. 20176 }, 20177 invalidDate: 'Fecha inválida', 20178 }); 20179 20180 return es; 20181 20182}))); 20183 20184 20185/***/ }), 20186
vendor: 3,400 bytes, lines 20187-20283
20187/***/ "./node_modules/moment/locale/et.js": 20188/*!******************************************!*\ 20189 !*** ./node_modules/moment/locale/et.js ***! 20190 \******************************************/ 20191/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 20192 20193//! moment.js locale configuration 20194//! locale : Estonian [et] 20195//! author : Henry Kehlmann : https://github.com/madhenry 20196//! improvements : Illimar Tambek : https://github.com/ragulka 20197 20198;(function (global, factory) { 20199 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 20200 0 20201}(this, (function (moment) { 'use strict'; 20202 20203 //! moment.js locale configuration 20204 20205 function processRelativeTime(number, withoutSuffix, key, isFuture) { 20206 var format = { 20207 s: ['mõne sekundi', 'mõni sekund', 'paar sekundit'], 20208 ss: [number + 'sekundi', number + 'sekundit'], 20209 m: ['ühe minuti', 'üks minut'], 20210 mm: [number + ' minuti', number + ' minutit'], 20211 h: ['ühe tunni', 'tund aega', 'üks tund'], 20212 hh: [number + ' tunni', number + ' tundi'], 20213 d: ['ühe päeva', 'üks päev'], 20214 M: ['kuu aja', 'kuu aega', 'üks kuu'], 20215 MM: [number + ' kuu', number + ' kuud'], 20216 y: ['ühe aasta', 'aasta', 'üks aasta'], 20217 yy: [number + ' aasta', number + ' aastat'], 20218 }; 20219 if (withoutSuffix) { 20220 return format[key][2] ? format[key][2] : format[key][1]; 20221 } 20222 return isFuture ? format[key][0] : format[key][1]; 20223 } 20224 20225 var et = moment.defineLocale('et', { 20226 months: 'jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember'.split( 20227 '_' 20228 ), 20229 monthsShort: 20230 'jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets'.split('_'), 20231 weekdays: 20232 'pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev'.split( 20233 '_' 20234 ), 20235 weekdaysShort: 'P_E_T_K_N_R_L'.split('_'), 20236 weekdaysMin: 'P_E_T_K_N_R_L'.split('_'), 20237 longDateFormat: { 20238 LT: 'H:mm', 20239 LTS: 'H:mm:ss', 20240 L: 'DD.MM.YYYY', 20241 LL: 'D. MMMM YYYY', 20242 LLL: 'D. MMMM YYYY H:mm', 20243 LLLL: 'dddd, D. MMMM YYYY H:mm', 20244 }, 20245 calendar: { 20246 sameDay: '[Täna,] LT', 20247 nextDay: '[Homme,] LT', 20248 nextWeek: '[Järgmine] dddd LT', 20249 lastDay: '[Eile,] LT', 20250 lastWeek: '[Eelmine] dddd LT', 20251 sameElse: 'L', 20252 }, 20253 relativeTime: { 20254 future: '%s pärast', 20255 past: '%s tagasi', 20256 s: processRelativeTime, 20257 ss: processRelativeTime, 20258 m: processRelativeTime, 20259 mm: processRelativeTime, 20260 h: processRelativeTime, 20261 hh: processRelativeTime, 20262 d: processRelativeTime, 20263 dd: '%d päeva', 20264 M: processRelativeTime, 20265 MM: processRelativeTime, 20266 y: processRelativeTime, 20267 yy: processRelativeTime, 20268 }, 20269 dayOfMonthOrdinalParse: /\d{1,2}\./, 20270 ordinal: '%d.', 20271 week: { 20272 dow: 1, // Monday is the first day of the week. 20273 doy: 4, // The week that contains Jan 4th is the first week of the year. 20274 }, 20275 }); 20276 20277 return et; 20278 20279}))); 20280 20281 20282/***/ }), 20283
vendor: 2,689 bytes, lines 20284-20367
20284/***/ "./node_modules/moment/locale/eu.js": 20285/*!******************************************!*\ 20286 !*** ./node_modules/moment/locale/eu.js ***! 20287 \******************************************/ 20288/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 20289 20290//! moment.js locale configuration 20291//! locale : Basque [eu] 20292//! author : Eneko Illarramendi : https://github.com/eillarra 20293 20294;(function (global, factory) { 20295 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 20296 0 20297}(this, (function (moment) { 'use strict'; 20298 20299 //! moment.js locale configuration 20300 20301 var eu = moment.defineLocale('eu', { 20302 months: 'urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua'.split( 20303 '_' 20304 ), 20305 monthsShort: 20306 'urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.'.split( 20307 '_' 20308 ), 20309 monthsParseExact: true, 20310 weekdays: 20311 'igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata'.split( 20312 '_' 20313 ), 20314 weekdaysShort: 'ig._al._ar._az._og._ol._lr.'.split('_'), 20315 weekdaysMin: 'ig_al_ar_az_og_ol_lr'.split('_'), 20316 weekdaysParseExact: true, 20317 longDateFormat: { 20318 LT: 'HH:mm', 20319 LTS: 'HH:mm:ss', 20320 L: 'YYYY-MM-DD', 20321 LL: 'YYYY[ko] MMMM[ren] D[a]', 20322 LLL: 'YYYY[ko] MMMM[ren] D[a] HH:mm', 20323 LLLL: 'dddd, YYYY[ko] MMMM[ren] D[a] HH:mm', 20324 l: 'YYYY-M-D', 20325 ll: 'YYYY[ko] MMM D[a]', 20326 lll: 'YYYY[ko] MMM D[a] HH:mm', 20327 llll: 'ddd, YYYY[ko] MMM D[a] HH:mm', 20328 }, 20329 calendar: { 20330 sameDay: '[gaur] LT[etan]', 20331 nextDay: '[bihar] LT[etan]', 20332 nextWeek: 'dddd LT[etan]', 20333 lastDay: '[atzo] LT[etan]', 20334 lastWeek: '[aurreko] dddd LT[etan]', 20335 sameElse: 'L', 20336 }, 20337 relativeTime: { 20338 future: '%s barru', 20339 past: 'duela %s', 20340 s: 'segundo batzuk', 20341 ss: '%d segundo', 20342 m: 'minutu bat', 20343 mm: '%d minutu', 20344 h: 'ordu bat', 20345 hh: '%d ordu', 20346 d: 'egun bat', 20347 dd: '%d egun', 20348 M: 'hilabete bat', 20349 MM: '%d hilabete', 20350 y: 'urte bat', 20351 yy: '%d urte', 20352 }, 20353 dayOfMonthOrdinalParse: /\d{1,2}\./, 20354 ordinal: '%d.', 20355 week: { 20356 dow: 1, // Monday is the first day of the week. 20357 doy: 7, // The week that contains Jan 7th is the first week of the year. 20358 }, 20359 }); 20360 20361 return eu; 20362 20363}))); 20364 20365 20366/***/ }), 20367
vendor: 4,143 bytes, lines 20368-20499
20368/***/ "./node_modules/moment/locale/fa.js": 20369/*!******************************************!*\ 20370 !*** ./node_modules/moment/locale/fa.js ***! 20371 \******************************************/ 20372/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 20373 20374//! moment.js locale configuration 20375//! locale : Persian [fa] 20376//! author : Ebrahim Byagowi : https://github.com/ebraminio 20377 20378;(function (global, factory) { 20379 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 20380 0 20381}(this, (function (moment) { 'use strict'; 20382 20383 //! moment.js locale configuration 20384 20385 var symbolMap = { 20386 1: 'Û±', 20387 2: 'Û²', 20388 3: 'Û³', 20389 4: 'Û´', 20390 5: 'Ûµ', 20391 6: 'Û¶', 20392 7: 'Û·', 20393 8: 'Û¸', 20394 9: 'Û¹', 20395 0: 'Û°', 20396 }, 20397 numberMap = { 20398 'Û±': '1', 20399 'Û²': '2', 20400 'Û³': '3', 20401 'Û´': '4', 20402 'Ûµ': '5', 20403 'Û¶': '6', 20404 'Û·': '7', 20405 'Û¸': '8', 20406 'Û¹': '9', 20407 'Û°': '0', 20408 }; 20409 20410 var fa = moment.defineLocale('fa', { 20411 months: 'ÚØ§ÙÙÛÙ_ÙÙØ±ÛÙ_٠ارس_Ø¢ÙØ±ÛÙ_Ù Ù_ÚÙØ¦Ù_ÚÙØ¦ÛÙ_Ø§ÙØª_سپتا٠بر_اکتبر_ÙÙØ§Ù بر_دسا٠بر'.split( 20412 '_' 20413 ), 20414 monthsShort: 20415 'ÚØ§ÙÙÛÙ_ÙÙØ±ÛÙ_٠ارس_Ø¢ÙØ±ÛÙ_Ù Ù_ÚÙØ¦Ù_ÚÙØ¦ÛÙ_Ø§ÙØª_سپتا٠بر_اکتبر_ÙÙØ§Ù بر_دسا٠بر'.split( 20416 '_' 20417 ), 20418 weekdays: 20419 'ÛÚ©\u200cØ´ÙØ¨Ù_Ø¯ÙØ´ÙبÙ_سÙ\u200cØ´ÙØ¨Ù_ÚÙØ§Ø±Ø´ÙبÙ_Ù¾ÙØ¬\u200cØ´ÙØ¨Ù_ج٠عÙ_Ø´ÙØ¨Ù'.split( 20420 '_' 20421 ), 20422 weekdaysShort: 20423 'ÛÚ©\u200cØ´ÙØ¨Ù_Ø¯ÙØ´ÙبÙ_سÙ\u200cØ´ÙØ¨Ù_ÚÙØ§Ø±Ø´ÙبÙ_Ù¾ÙØ¬\u200cØ´ÙØ¨Ù_ج٠عÙ_Ø´ÙØ¨Ù'.split( 20424 '_' 20425 ), 20426 weekdaysMin: 'Û_د_س_Ú_Ù¾_ج_Ø´'.split('_'), 20427 weekdaysParseExact: true, 20428 longDateFormat: { 20429 LT: 'HH:mm', 20430 LTS: 'HH:mm:ss', 20431 L: 'DD/MM/YYYY', 20432 LL: 'D MMMM YYYY', 20433 LLL: 'D MMMM YYYY HH:mm', 20434 LLLL: 'dddd, D MMMM YYYY HH:mm', 20435 }, 20436 meridiemParse: /ÙØ¨Ù از Ø¸ÙØ±|بعد از Ø¸ÙØ±/, 20437 isPM: function (input) { 20438 return /بعد از Ø¸ÙØ±/.test(input); 20439 }, 20440 meridiem: function (hour, minute, isLower) { 20441 if (hour < 12) { 20442 return 'ÙØ¨Ù از Ø¸ÙØ±'; 20443 } else { 20444 return 'بعد از Ø¸ÙØ±'; 20445 } 20446 }, 20447 calendar: { 20448 sameDay: '[Ø§Ù Ø±ÙØ² ساعت] LT', 20449 nextDay: '[ÙØ±Ø¯Ø§ ساعت] LT', 20450 nextWeek: 'dddd [ساعت] LT', 20451 lastDay: '[Ø¯ÛØ±Ùز ساعت] LT', 20452 lastWeek: 'dddd [Ù¾ÛØ´] [ساعت] LT', 20453 sameElse: 'L', 20454 }, 20455 relativeTime: { 20456 future: 'در %s', 20457 past: '%s Ù¾ÛØ´', 20458 s: 'ÚÙØ¯ ثاÙÛÙ', 20459 ss: '%d ثاÙÛÙ', 20460 m: 'ÛÚ© دÙÛÙÙ', 20461 mm: '%d دÙÛÙÙ', 20462 h: 'ÛÚ© ساعت', 20463 hh: '%d ساعت', 20464 d: 'ÛÚ© Ø±ÙØ²', 20465 dd: '%d Ø±ÙØ²', 20466 M: 'ÛÚ© ٠اÙ', 20467 MM: '%d ٠اÙ', 20468 y: 'ÛÚ© ساÙ', 20469 yy: '%d ساÙ', 20470 }, 20471 preparse: function (string) { 20472 return string 20473 .replace(/[Û°-Û¹]/g, function (match) { 20474 return numberMap[match]; 20475 }) 20476 .replace(/Ø/g, ','); 20477 }, 20478 postformat: function (string) { 20479 return string 20480 .replace(/\d/g, function (match) { 20481 return symbolMap[match]; 20482 }) 20483 .replace(/,/g, 'Ø'); 20484 }, 20485 dayOfMonthOrdinalParse: /\d{1,2}Ù /, 20486 ordinal: '%dÙ ', 20487 week: { 20488 dow: 6, // Saturday is the first day of the week. 20489 doy: 12, // The week that contains Jan 12th is the first week of the year. 20490 }, 20491 }); 20492 20493 return fa; 20494 20495}))); 20496 20497 20498/***/ }), 20499
vendor: 4,589 bytes, lines 20500-20642
20500/***/ "./node_modules/moment/locale/fi.js": 20501/*!******************************************!*\ 20502 !*** ./node_modules/moment/locale/fi.js ***! 20503 \******************************************/ 20504/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 20505 20506//! moment.js locale configuration 20507//! locale : Finnish [fi] 20508//! author : Tarmo Aidantausta : https://github.com/bleadof 20509 20510;(function (global, factory) { 20511 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 20512 0 20513}(this, (function (moment) { 'use strict'; 20514 20515 //! moment.js locale configuration 20516 20517 var numbersPast = 20518 'nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän'.split( 20519 ' ' 20520 ), 20521 numbersFuture = [ 20522 'nolla', 20523 'yhden', 20524 'kahden', 20525 'kolmen', 20526 'neljän', 20527 'viiden', 20528 'kuuden', 20529 numbersPast[7], 20530 numbersPast[8], 20531 numbersPast[9], 20532 ]; 20533 function translate(number, withoutSuffix, key, isFuture) { 20534 var result = ''; 20535 switch (key) { 20536 case 's': 20537 return isFuture ? 'muutaman sekunnin' : 'muutama sekunti'; 20538 case 'ss': 20539 result = isFuture ? 'sekunnin' : 'sekuntia'; 20540 break; 20541 case 'm': 20542 return isFuture ? 'minuutin' : 'minuutti'; 20543 case 'mm': 20544 result = isFuture ? 'minuutin' : 'minuuttia'; 20545 break; 20546 case 'h': 20547 return isFuture ? 'tunnin' : 'tunti'; 20548 case 'hh': 20549 result = isFuture ? 'tunnin' : 'tuntia'; 20550 break; 20551 case 'd': 20552 return isFuture ? 'päivän' : 'päivä'; 20553 case 'dd': 20554 result = isFuture ? 'päivän' : 'päivää'; 20555 break; 20556 case 'M': 20557 return isFuture ? 'kuukauden' : 'kuukausi'; 20558 case 'MM': 20559 result = isFuture ? 'kuukauden' : 'kuukautta'; 20560 break; 20561 case 'y': 20562 return isFuture ? 'vuoden' : 'vuosi'; 20563 case 'yy': 20564 result = isFuture ? 'vuoden' : 'vuotta'; 20565 break; 20566 } 20567 result = verbalNumber(number, isFuture) + ' ' + result; 20568 return result; 20569 } 20570 function verbalNumber(number, isFuture) { 20571 return number < 10 20572 ? isFuture 20573 ? numbersFuture[number] 20574 : numbersPast[number] 20575 : number; 20576 } 20577 20578 var fi = moment.defineLocale('fi', { 20579 months: 'tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu'.split( 20580 '_' 20581 ), 20582 monthsShort: 20583 'tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu'.split( 20584 '_' 20585 ), 20586 weekdays: 20587 'sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai'.split( 20588 '_' 20589 ), 20590 weekdaysShort: 'su_ma_ti_ke_to_pe_la'.split('_'), 20591 weekdaysMin: 'su_ma_ti_ke_to_pe_la'.split('_'), 20592 longDateFormat: { 20593 LT: 'HH.mm', 20594 LTS: 'HH.mm.ss', 20595 L: 'DD.MM.YYYY', 20596 LL: 'Do MMMM[ta] YYYY', 20597 LLL: 'Do MMMM[ta] YYYY, [klo] HH.mm', 20598 LLLL: 'dddd, Do MMMM[ta] YYYY, [klo] HH.mm', 20599 l: 'D.M.YYYY', 20600 ll: 'Do MMM YYYY', 20601 lll: 'Do MMM YYYY, [klo] HH.mm', 20602 llll: 'ddd, Do MMM YYYY, [klo] HH.mm', 20603 }, 20604 calendar: { 20605 sameDay: '[tänään] [klo] LT', 20606 nextDay: '[huomenna] [klo] LT', 20607 nextWeek: 'dddd [klo] LT', 20608 lastDay: '[eilen] [klo] LT', 20609 lastWeek: '[viime] dddd[na] [klo] LT', 20610 sameElse: 'L', 20611 }, 20612 relativeTime: { 20613 future: '%s päästä', 20614 past: '%s sitten', 20615 s: translate, 20616 ss: translate, 20617 m: translate, 20618 mm: translate, 20619 h: translate, 20620 hh: translate, 20621 d: translate, 20622 dd: translate, 20623 M: translate, 20624 MM: translate, 20625 y: translate, 20626 yy: translate, 20627 }, 20628 dayOfMonthOrdinalParse: /\d{1,2}\./, 20629 ordinal: '%d.', 20630 week: { 20631 dow: 1, // Monday is the first day of the week. 20632 doy: 4, // The week that contains Jan 4th is the first week of the year. 20633 }, 20634 }); 20635 20636 return fi; 20637 20638}))); 20639 20640 20641/***/ }), 20642
vendor: 2,475 bytes, lines 20643-20719
20643/***/ "./node_modules/moment/locale/fil.js": 20644/*!*******************************************!*\ 20645 !*** ./node_modules/moment/locale/fil.js ***! 20646 \*******************************************/ 20647/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 20648 20649//! moment.js locale configuration 20650//! locale : Filipino [fil] 20651//! author : Dan Hagman : https://github.com/hagmandan 20652//! author : Matthew Co : https://github.com/matthewdeeco 20653 20654;(function (global, factory) { 20655 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 20656 0 20657}(this, (function (moment) { 'use strict'; 20658 20659 //! moment.js locale configuration 20660 20661 var fil = moment.defineLocale('fil', { 20662 months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split( 20663 '_' 20664 ), 20665 monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'), 20666 weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split( 20667 '_' 20668 ), 20669 weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'), 20670 weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'), 20671 longDateFormat: { 20672 LT: 'HH:mm', 20673 LTS: 'HH:mm:ss', 20674 L: 'MM/D/YYYY', 20675 LL: 'MMMM D, YYYY', 20676 LLL: 'MMMM D, YYYY HH:mm', 20677 LLLL: 'dddd, MMMM DD, YYYY HH:mm', 20678 }, 20679 calendar: { 20680 sameDay: 'LT [ngayong araw]', 20681 nextDay: '[Bukas ng] LT', 20682 nextWeek: 'LT [sa susunod na] dddd', 20683 lastDay: 'LT [kahapon]', 20684 lastWeek: 'LT [noong nakaraang] dddd', 20685 sameElse: 'L', 20686 }, 20687 relativeTime: { 20688 future: 'sa loob ng %s', 20689 past: '%s ang nakalipas', 20690 s: 'ilang segundo', 20691 ss: '%d segundo', 20692 m: 'isang minuto', 20693 mm: '%d minuto', 20694 h: 'isang oras', 20695 hh: '%d oras', 20696 d: 'isang araw', 20697 dd: '%d araw', 20698 M: 'isang buwan', 20699 MM: '%d buwan', 20700 y: 'isang taon', 20701 yy: '%d taon', 20702 }, 20703 dayOfMonthOrdinalParse: /\d{1,2}/, 20704 ordinal: function (number) { 20705 return number; 20706 }, 20707 week: { 20708 dow: 1, // Monday is the first day of the week. 20709 doy: 4, // The week that contains Jan 4th is the first week of the year. 20710 }, 20711 }); 20712 20713 return fil; 20714 20715}))); 20716 20717 20718/***/ }), 20719
vendor: 2,461 bytes, lines 20720-20795
20720/***/ "./node_modules/moment/locale/fo.js": 20721/*!******************************************!*\ 20722 !*** ./node_modules/moment/locale/fo.js ***! 20723 \******************************************/ 20724/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 20725 20726//! moment.js locale configuration 20727//! locale : Faroese [fo] 20728//! author : Ragnar Johannesen : https://github.com/ragnar123 20729//! author : Kristian Sakarisson : https://github.com/sakarisson 20730 20731;(function (global, factory) { 20732 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 20733 0 20734}(this, (function (moment) { 'use strict'; 20735 20736 //! moment.js locale configuration 20737 20738 var fo = moment.defineLocale('fo', { 20739 months: 'januar_februar_mars_aprÃl_mai_juni_juli_august_september_oktober_november_desember'.split( 20740 '_' 20741 ), 20742 monthsShort: 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'), 20743 weekdays: 20744 'sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_frÃggjadagur_leygardagur'.split( 20745 '_' 20746 ), 20747 weekdaysShort: 'sun_mán_týs_mik_hós_frÃ_ley'.split('_'), 20748 weekdaysMin: 'su_má_tý_mi_hó_fr_le'.split('_'), 20749 longDateFormat: { 20750 LT: 'HH:mm', 20751 LTS: 'HH:mm:ss', 20752 L: 'DD/MM/YYYY', 20753 LL: 'D MMMM YYYY', 20754 LLL: 'D MMMM YYYY HH:mm', 20755 LLLL: 'dddd D. MMMM, YYYY HH:mm', 20756 }, 20757 calendar: { 20758 sameDay: '[à dag kl.] LT', 20759 nextDay: '[à morgin kl.] LT', 20760 nextWeek: 'dddd [kl.] LT', 20761 lastDay: '[à gjár kl.] LT', 20762 lastWeek: '[sÃðstu] dddd [kl] LT', 20763 sameElse: 'L', 20764 }, 20765 relativeTime: { 20766 future: 'um %s', 20767 past: '%s sÃðani', 20768 s: 'fá sekund', 20769 ss: '%d sekundir', 20770 m: 'ein minuttur', 20771 mm: '%d minuttir', 20772 h: 'ein tÃmi', 20773 hh: '%d tÃmar', 20774 d: 'ein dagur', 20775 dd: '%d dagar', 20776 M: 'ein mánaður', 20777 MM: '%d mánaðir', 20778 y: 'eitt ár', 20779 yy: '%d ár', 20780 }, 20781 dayOfMonthOrdinalParse: /\d{1,2}\./, 20782 ordinal: '%d.', 20783 week: { 20784 dow: 1, // Monday is the first day of the week. 20785 doy: 4, // The week that contains Jan 4th is the first week of the year. 20786 }, 20787 }); 20788 20789 return fo; 20790 20791}))); 20792 20793 20794/***/ }), 20795
vendor: 2,861 bytes, lines 20796-20884
20796/***/ "./node_modules/moment/locale/fr-ca.js": 20797/*!*********************************************!*\ 20798 !*** ./node_modules/moment/locale/fr-ca.js ***! 20799 \*********************************************/ 20800/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 20801 20802//! moment.js locale configuration 20803//! locale : French (Canada) [fr-ca] 20804//! author : Jonathan Abourbih : https://github.com/jonbca 20805 20806;(function (global, factory) { 20807 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 20808 0 20809}(this, (function (moment) { 'use strict'; 20810 20811 //! moment.js locale configuration 20812 20813 var frCa = moment.defineLocale('fr-ca', { 20814 months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split( 20815 '_' 20816 ), 20817 monthsShort: 20818 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split( 20819 '_' 20820 ), 20821 monthsParseExact: true, 20822 weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'), 20823 weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'), 20824 weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'), 20825 weekdaysParseExact: true, 20826 longDateFormat: { 20827 LT: 'HH:mm', 20828 LTS: 'HH:mm:ss', 20829 L: 'YYYY-MM-DD', 20830 LL: 'D MMMM YYYY', 20831 LLL: 'D MMMM YYYY HH:mm', 20832 LLLL: 'dddd D MMMM YYYY HH:mm', 20833 }, 20834 calendar: { 20835 sameDay: '[Aujourdâhui à ] LT', 20836 nextDay: '[Demain à ] LT', 20837 nextWeek: 'dddd [à ] LT', 20838 lastDay: '[Hier à ] LT', 20839 lastWeek: 'dddd [dernier à ] LT', 20840 sameElse: 'L', 20841 }, 20842 relativeTime: { 20843 future: 'dans %s', 20844 past: 'il y a %s', 20845 s: 'quelques secondes', 20846 ss: '%d secondes', 20847 m: 'une minute', 20848 mm: '%d minutes', 20849 h: 'une heure', 20850 hh: '%d heures', 20851 d: 'un jour', 20852 dd: '%d jours', 20853 M: 'un mois', 20854 MM: '%d mois', 20855 y: 'un an', 20856 yy: '%d ans', 20857 }, 20858 dayOfMonthOrdinalParse: /\d{1,2}(er|e)/, 20859 ordinal: function (number, period) { 20860 switch (period) { 20861 // Words with masculine grammatical gender: mois, trimestre, jour 20862 default: 20863 case 'M': 20864 case 'Q': 20865 case 'D': 20866 case 'DDD': 20867 case 'd': 20868 return number + (number === 1 ? 'er' : 'e'); 20869 20870 // Words with feminine grammatical gender: semaine 20871 case 'w': 20872 case 'W': 20873 return number + (number === 1 ? 're' : 'e'); 20874 } 20875 }, 20876 }); 20877 20878 return frCa; 20879 20880}))); 20881 20882 20883/***/ }), 20884
vendor: 3,036 bytes, lines 20885-20977
20885/***/ "./node_modules/moment/locale/fr-ch.js": 20886/*!*********************************************!*\ 20887 !*** ./node_modules/moment/locale/fr-ch.js ***! 20888 \*********************************************/ 20889/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 20890 20891//! moment.js locale configuration 20892//! locale : French (Switzerland) [fr-ch] 20893//! author : Gaspard Bucher : https://github.com/gaspard 20894 20895;(function (global, factory) { 20896 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 20897 0 20898}(this, (function (moment) { 'use strict'; 20899 20900 //! moment.js locale configuration 20901 20902 var frCh = moment.defineLocale('fr-ch', { 20903 months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split( 20904 '_' 20905 ), 20906 monthsShort: 20907 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split( 20908 '_' 20909 ), 20910 monthsParseExact: true, 20911 weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'), 20912 weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'), 20913 weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'), 20914 weekdaysParseExact: true, 20915 longDateFormat: { 20916 LT: 'HH:mm', 20917 LTS: 'HH:mm:ss', 20918 L: 'DD.MM.YYYY', 20919 LL: 'D MMMM YYYY', 20920 LLL: 'D MMMM YYYY HH:mm', 20921 LLLL: 'dddd D MMMM YYYY HH:mm', 20922 }, 20923 calendar: { 20924 sameDay: '[Aujourdâhui à ] LT', 20925 nextDay: '[Demain à ] LT', 20926 nextWeek: 'dddd [à ] LT', 20927 lastDay: '[Hier à ] LT', 20928 lastWeek: 'dddd [dernier à ] LT', 20929 sameElse: 'L', 20930 }, 20931 relativeTime: { 20932 future: 'dans %s', 20933 past: 'il y a %s', 20934 s: 'quelques secondes', 20935 ss: '%d secondes', 20936 m: 'une minute', 20937 mm: '%d minutes', 20938 h: 'une heure', 20939 hh: '%d heures', 20940 d: 'un jour', 20941 dd: '%d jours', 20942 M: 'un mois', 20943 MM: '%d mois', 20944 y: 'un an', 20945 yy: '%d ans', 20946 }, 20947 dayOfMonthOrdinalParse: /\d{1,2}(er|e)/, 20948 ordinal: function (number, period) { 20949 switch (period) { 20950 // Words with masculine grammatical gender: mois, trimestre, jour 20951 default: 20952 case 'M': 20953 case 'Q': 20954 case 'D': 20955 case 'DDD': 20956 case 'd': 20957 return number + (number === 1 ? 'er' : 'e'); 20958 20959 // Words with feminine grammatical gender: semaine 20960 case 'w': 20961 case 'W': 20962 return number + (number === 1 ? 're' : 'e'); 20963 } 20964 }, 20965 week: { 20966 dow: 1, // Monday is the first day of the week. 20967 doy: 4, // The week that contains Jan 4th is the first week of the year. 20968 }, 20969 }); 20970 20971 return frCh; 20972 20973}))); 20974 20975 20976/***/ }), 20977
vendor: 4,356 bytes, lines 20978-21104
20978/***/ "./node_modules/moment/locale/fr.js": 20979/*!******************************************!*\ 20980 !*** ./node_modules/moment/locale/fr.js ***! 20981 \******************************************/ 20982/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 20983 20984//! moment.js locale configuration 20985//! locale : French [fr] 20986//! author : John Fischer : https://github.com/jfroffice 20987 20988;(function (global, factory) { 20989 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 20990 0 20991}(this, (function (moment) { 'use strict'; 20992 20993 //! moment.js locale configuration 20994 20995 var monthsStrictRegex = 20996 /^(janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i, 20997 monthsShortStrictRegex = 20998 /(janv\.?|févr\.?|mars|avr\.?|mai|juin|juil\.?|août|sept\.?|oct\.?|nov\.?|déc\.?)/i, 20999 monthsRegex = 21000 /(janv\.?|févr\.?|mars|avr\.?|mai|juin|juil\.?|août|sept\.?|oct\.?|nov\.?|déc\.?|janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i, 21001 monthsParse = [ 21002 /^janv/i, 21003 /^févr/i, 21004 /^mars/i, 21005 /^avr/i, 21006 /^mai/i, 21007 /^juin/i, 21008 /^juil/i, 21009 /^août/i, 21010 /^sept/i, 21011 /^oct/i, 21012 /^nov/i, 21013 /^déc/i, 21014 ]; 21015 21016 var fr = moment.defineLocale('fr', { 21017 months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split( 21018 '_' 21019 ), 21020 monthsShort: 21021 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split( 21022 '_' 21023 ), 21024 monthsRegex: monthsRegex, 21025 monthsShortRegex: monthsRegex, 21026 monthsStrictRegex: monthsStrictRegex, 21027 monthsShortStrictRegex: monthsShortStrictRegex, 21028 monthsParse: monthsParse, 21029 longMonthsParse: monthsParse, 21030 shortMonthsParse: monthsParse, 21031 weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'), 21032 weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'), 21033 weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'), 21034 weekdaysParseExact: true, 21035 longDateFormat: { 21036 LT: 'HH:mm', 21037 LTS: 'HH:mm:ss', 21038 L: 'DD/MM/YYYY', 21039 LL: 'D MMMM YYYY', 21040 LLL: 'D MMMM YYYY HH:mm', 21041 LLLL: 'dddd D MMMM YYYY HH:mm', 21042 }, 21043 calendar: { 21044 sameDay: '[Aujourdâhui à ] LT', 21045 nextDay: '[Demain à ] LT', 21046 nextWeek: 'dddd [à ] LT', 21047 lastDay: '[Hier à ] LT', 21048 lastWeek: 'dddd [dernier à ] LT', 21049 sameElse: 'L', 21050 }, 21051 relativeTime: { 21052 future: 'dans %s', 21053 past: 'il y a %s', 21054 s: 'quelques secondes', 21055 ss: '%d secondes', 21056 m: 'une minute', 21057 mm: '%d minutes', 21058 h: 'une heure', 21059 hh: '%d heures', 21060 d: 'un jour', 21061 dd: '%d jours', 21062 w: 'une semaine', 21063 ww: '%d semaines', 21064 M: 'un mois', 21065 MM: '%d mois', 21066 y: 'un an', 21067 yy: '%d ans', 21068 }, 21069 dayOfMonthOrdinalParse: /\d{1,2}(er|)/, 21070 ordinal: function (number, period) { 21071 switch (period) { 21072 // TODO: Return 'e' when day of month > 1. Move this case inside 21073 // block for masculine words below. 21074 // See https://github.com/moment/moment/issues/3375 21075 case 'D': 21076 return number + (number === 1 ? 'er' : ''); 21077 21078 // Words with masculine grammatical gender: mois, trimestre, jour 21079 default: 21080 case 'M': 21081 case 'Q': 21082 case 'DDD': 21083 case 'd': 21084 return number + (number === 1 ? 'er' : 'e'); 21085 21086 // Words with feminine grammatical gender: semaine 21087 case 'w': 21088 case 'W': 21089 return number + (number === 1 ? 're' : 'e'); 21090 } 21091 }, 21092 week: { 21093 dow: 1, // Monday is the first day of the week. 21094 doy: 4, // The week that contains Jan 4th is the first week of the year. 21095 }, 21096 }); 21097 21098 return fr; 21099 21100}))); 21101 21102 21103/***/ }), 21104
vendor: 3,036 bytes, lines 21105-21198
21105/***/ "./node_modules/moment/locale/fy.js": 21106/*!******************************************!*\ 21107 !*** ./node_modules/moment/locale/fy.js ***! 21108 \******************************************/ 21109/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 21110 21111//! moment.js locale configuration 21112//! locale : Frisian [fy] 21113//! author : Robin van der Vliet : https://github.com/robin0van0der0v 21114 21115;(function (global, factory) { 21116 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 21117 0 21118}(this, (function (moment) { 'use strict'; 21119 21120 //! moment.js locale configuration 21121 21122 var monthsShortWithDots = 21123 'jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.'.split('_'), 21124 monthsShortWithoutDots = 21125 'jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'); 21126 21127 var fy = moment.defineLocale('fy', { 21128 months: 'jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber'.split( 21129 '_' 21130 ), 21131 monthsShort: function (m, format) { 21132 if (!m) { 21133 return monthsShortWithDots; 21134 } else if (/-MMM-/.test(format)) { 21135 return monthsShortWithoutDots[m.month()]; 21136 } else { 21137 return monthsShortWithDots[m.month()]; 21138 } 21139 }, 21140 monthsParseExact: true, 21141 weekdays: 'snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon'.split( 21142 '_' 21143 ), 21144 weekdaysShort: 'si._mo._ti._wo._to._fr._so.'.split('_'), 21145 weekdaysMin: 'Si_Mo_Ti_Wo_To_Fr_So'.split('_'), 21146 weekdaysParseExact: true, 21147 longDateFormat: { 21148 LT: 'HH:mm', 21149 LTS: 'HH:mm:ss', 21150 L: 'DD-MM-YYYY', 21151 LL: 'D MMMM YYYY', 21152 LLL: 'D MMMM YYYY HH:mm', 21153 LLLL: 'dddd D MMMM YYYY HH:mm', 21154 }, 21155 calendar: { 21156 sameDay: '[hjoed om] LT', 21157 nextDay: '[moarn om] LT', 21158 nextWeek: 'dddd [om] LT', 21159 lastDay: '[juster om] LT', 21160 lastWeek: '[ôfrûne] dddd [om] LT', 21161 sameElse: 'L', 21162 }, 21163 relativeTime: { 21164 future: 'oer %s', 21165 past: '%s lyn', 21166 s: 'in pear sekonden', 21167 ss: '%d sekonden', 21168 m: 'ien minút', 21169 mm: '%d minuten', 21170 h: 'ien oere', 21171 hh: '%d oeren', 21172 d: 'ien dei', 21173 dd: '%d dagen', 21174 M: 'ien moanne', 21175 MM: '%d moannen', 21176 y: 'ien jier', 21177 yy: '%d jierren', 21178 }, 21179 dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, 21180 ordinal: function (number) { 21181 return ( 21182 number + 21183 (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de') 21184 ); 21185 }, 21186 week: { 21187 dow: 1, // Monday is the first day of the week. 21188 doy: 4, // The week that contains Jan 4th is the first week of the year. 21189 }, 21190 }); 21191 21192 return fy; 21193 21194}))); 21195 21196 21197/***/ }), 21198
vendor: 3,201 bytes, lines 21199-21312
21199/***/ "./node_modules/moment/locale/ga.js": 21200/*!******************************************!*\ 21201 !*** ./node_modules/moment/locale/ga.js ***! 21202 \******************************************/ 21203/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 21204 21205//! moment.js locale configuration 21206//! locale : Irish or Irish Gaelic [ga] 21207//! author : André Silva : https://github.com/askpt 21208 21209;(function (global, factory) { 21210 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 21211 0 21212}(this, (function (moment) { 'use strict'; 21213 21214 //! moment.js locale configuration 21215 21216 var months = [ 21217 'Eanáir', 21218 'Feabhra', 21219 'Márta', 21220 'Aibreán', 21221 'Bealtaine', 21222 'Meitheamh', 21223 'Iúil', 21224 'Lúnasa', 21225 'Meán Fómhair', 21226 'Deireadh Fómhair', 21227 'Samhain', 21228 'Nollaig', 21229 ], 21230 monthsShort = [ 21231 'Ean', 21232 'Feabh', 21233 'Márt', 21234 'Aib', 21235 'Beal', 21236 'Meith', 21237 'Iúil', 21238 'Lún', 21239 'M.F.', 21240 'D.F.', 21241 'Samh', 21242 'Noll', 21243 ], 21244 weekdays = [ 21245 'Dé Domhnaigh', 21246 'Dé Luain', 21247 'Dé Máirt', 21248 'Dé Céadaoin', 21249 'Déardaoin', 21250 'Dé hAoine', 21251 'Dé Sathairn', 21252 ], 21253 weekdaysShort = ['Domh', 'Luan', 'Máirt', 'Céad', 'Déar', 'Aoine', 'Sath'], 21254 weekdaysMin = ['Do', 'Lu', 'Má', 'Cé', 'Dé', 'A', 'Sa']; 21255 21256 var ga = moment.defineLocale('ga', { 21257 months: months, 21258 monthsShort: monthsShort, 21259 monthsParseExact: true, 21260 weekdays: weekdays, 21261 weekdaysShort: weekdaysShort, 21262 weekdaysMin: weekdaysMin, 21263 longDateFormat: { 21264 LT: 'HH:mm', 21265 LTS: 'HH:mm:ss', 21266 L: 'DD/MM/YYYY', 21267 LL: 'D MMMM YYYY', 21268 LLL: 'D MMMM YYYY HH:mm', 21269 LLLL: 'dddd, D MMMM YYYY HH:mm', 21270 }, 21271 calendar: { 21272 sameDay: '[Inniu ag] LT', 21273 nextDay: '[Amárach ag] LT', 21274 nextWeek: 'dddd [ag] LT', 21275 lastDay: '[Inné ag] LT', 21276 lastWeek: 'dddd [seo caite] [ag] LT', 21277 sameElse: 'L', 21278 }, 21279 relativeTime: { 21280 future: 'i %s', 21281 past: '%s ó shin', 21282 s: 'cúpla soicind', 21283 ss: '%d soicind', 21284 m: 'nóiméad', 21285 mm: '%d nóiméad', 21286 h: 'uair an chloig', 21287 hh: '%d uair an chloig', 21288 d: 'lá', 21289 dd: '%d lá', 21290 M: 'mÃ', 21291 MM: '%d mÃonna', 21292 y: 'bliain', 21293 yy: '%d bliain', 21294 }, 21295 dayOfMonthOrdinalParse: /\d{1,2}(d|na|mh)/, 21296 ordinal: function (number) { 21297 var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh'; 21298 return number + output; 21299 }, 21300 week: { 21301 dow: 1, // Monday is the first day of the week. 21302 doy: 4, // The week that contains Jan 4th is the first week of the year. 21303 }, 21304 }); 21305 21306 return ga; 21307 21308}))); 21309 21310 21311/***/ }), 21312
vendor: 3,221 bytes, lines 21313-21426
21313/***/ "./node_modules/moment/locale/gd.js": 21314/*!******************************************!*\ 21315 !*** ./node_modules/moment/locale/gd.js ***! 21316 \******************************************/ 21317/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 21318 21319//! moment.js locale configuration 21320//! locale : Scottish Gaelic [gd] 21321//! author : Jon Ashdown : https://github.com/jonashdown 21322 21323;(function (global, factory) { 21324 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 21325 0 21326}(this, (function (moment) { 'use strict'; 21327 21328 //! moment.js locale configuration 21329 21330 var months = [ 21331 'Am Faoilleach', 21332 'An Gearran', 21333 'Am Mà rt', 21334 'An Giblean', 21335 'An Cèitean', 21336 'An t-Ãgmhios', 21337 'An t-Iuchar', 21338 'An Lùnastal', 21339 'An t-Sultain', 21340 'An Dà mhair', 21341 'An t-Samhain', 21342 'An Dùbhlachd', 21343 ], 21344 monthsShort = [ 21345 'Faoi', 21346 'Gear', 21347 'Mà rt', 21348 'Gibl', 21349 'Cèit', 21350 'Ãgmh', 21351 'Iuch', 21352 'Lùn', 21353 'Sult', 21354 'Dà mh', 21355 'Samh', 21356 'Dùbh', 21357 ], 21358 weekdays = [ 21359 'Didòmhnaich', 21360 'Diluain', 21361 'Dimà irt', 21362 'Diciadain', 21363 'Diardaoin', 21364 'Dihaoine', 21365 'Disathairne', 21366 ], 21367 weekdaysShort = ['Did', 'Dil', 'Dim', 'Dic', 'Dia', 'Dih', 'Dis'], 21368 weekdaysMin = ['Dò', 'Lu', 'Mà ', 'Ci', 'Ar', 'Ha', 'Sa']; 21369 21370 var gd = moment.defineLocale('gd', { 21371 months: months, 21372 monthsShort: monthsShort, 21373 monthsParseExact: true, 21374 weekdays: weekdays, 21375 weekdaysShort: weekdaysShort, 21376 weekdaysMin: weekdaysMin, 21377 longDateFormat: { 21378 LT: 'HH:mm', 21379 LTS: 'HH:mm:ss', 21380 L: 'DD/MM/YYYY', 21381 LL: 'D MMMM YYYY', 21382 LLL: 'D MMMM YYYY HH:mm', 21383 LLLL: 'dddd, D MMMM YYYY HH:mm', 21384 }, 21385 calendar: { 21386 sameDay: '[An-diugh aig] LT', 21387 nextDay: '[A-mà ireach aig] LT', 21388 nextWeek: 'dddd [aig] LT', 21389 lastDay: '[An-dè aig] LT', 21390 lastWeek: 'dddd [seo chaidh] [aig] LT', 21391 sameElse: 'L', 21392 }, 21393 relativeTime: { 21394 future: 'ann an %s', 21395 past: 'bho chionn %s', 21396 s: 'beagan diogan', 21397 ss: '%d diogan', 21398 m: 'mionaid', 21399 mm: '%d mionaidean', 21400 h: 'uair', 21401 hh: '%d uairean', 21402 d: 'latha', 21403 dd: '%d latha', 21404 M: 'mìos', 21405 MM: '%d mìosan', 21406 y: 'bliadhna', 21407 yy: '%d bliadhna', 21408 }, 21409 dayOfMonthOrdinalParse: /\d{1,2}(d|na|mh)/, 21410 ordinal: function (number) { 21411 var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh'; 21412 return number + output; 21413 }, 21414 week: { 21415 dow: 1, // Monday is the first day of the week. 21416 doy: 4, // The week that contains Jan 4th is the first week of the year. 21417 }, 21418 }); 21419 21420 return gd; 21421 21422}))); 21423 21424 21425/***/ }), 21426
vendor: 3,112 bytes, lines 21427-21520
21427/***/ "./node_modules/moment/locale/gl.js": 21428/*!******************************************!*\ 21429 !*** ./node_modules/moment/locale/gl.js ***! 21430 \******************************************/ 21431/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 21432 21433//! moment.js locale configuration 21434//! locale : Galician [gl] 21435//! author : Juan G. Hurtado : https://github.com/juanghurtado 21436 21437;(function (global, factory) { 21438 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 21439 0 21440}(this, (function (moment) { 'use strict'; 21441 21442 //! moment.js locale configuration 21443 21444 var gl = moment.defineLocale('gl', { 21445 months: 'xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro'.split( 21446 '_' 21447 ), 21448 monthsShort: 21449 'xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.'.split( 21450 '_' 21451 ), 21452 monthsParseExact: true, 21453 weekdays: 'domingo_luns_martes_mércores_xoves_venres_sábado'.split('_'), 21454 weekdaysShort: 'dom._lun._mar._mér._xov._ven._sáb.'.split('_'), 21455 weekdaysMin: 'do_lu_ma_mé_xo_ve_sá'.split('_'), 21456 weekdaysParseExact: true, 21457 longDateFormat: { 21458 LT: 'H:mm', 21459 LTS: 'H:mm:ss', 21460 L: 'DD/MM/YYYY', 21461 LL: 'D [de] MMMM [de] YYYY', 21462 LLL: 'D [de] MMMM [de] YYYY H:mm', 21463 LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm', 21464 }, 21465 calendar: { 21466 sameDay: function () { 21467 return '[hoxe ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT'; 21468 }, 21469 nextDay: function () { 21470 return '[mañá ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT'; 21471 }, 21472 nextWeek: function () { 21473 return 'dddd [' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT'; 21474 }, 21475 lastDay: function () { 21476 return '[onte ' + (this.hours() !== 1 ? 'á' : 'a') + '] LT'; 21477 }, 21478 lastWeek: function () { 21479 return ( 21480 '[o] dddd [pasado ' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT' 21481 ); 21482 }, 21483 sameElse: 'L', 21484 }, 21485 relativeTime: { 21486 future: function (str) { 21487 if (str.indexOf('un') === 0) { 21488 return 'n' + str; 21489 } 21490 return 'en ' + str; 21491 }, 21492 past: 'hai %s', 21493 s: 'uns segundos', 21494 ss: '%d segundos', 21495 m: 'un minuto', 21496 mm: '%d minutos', 21497 h: 'unha hora', 21498 hh: '%d horas', 21499 d: 'un dÃa', 21500 dd: '%d dÃas', 21501 M: 'un mes', 21502 MM: '%d meses', 21503 y: 'un ano', 21504 yy: '%d anos', 21505 }, 21506 dayOfMonthOrdinalParse: /\d{1,2}º/, 21507 ordinal: '%dº', 21508 week: { 21509 dow: 1, // Monday is the first day of the week. 21510 doy: 4, // The week that contains Jan 4th is the first week of the year. 21511 }, 21512 }); 21513 21514 return gl; 21515 21516}))); 21517 21518 21519/***/ }), 21520
vendor: 6,505 bytes, lines 21521-21665
21521/***/ "./node_modules/moment/locale/gom-deva.js": 21522/*!************************************************!*\ 21523 !*** ./node_modules/moment/locale/gom-deva.js ***! 21524 \************************************************/ 21525/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 21526 21527//! moment.js locale configuration 21528//! locale : Konkani Devanagari script [gom-deva] 21529//! author : The Discoverer : https://github.com/WikiDiscoverer 21530 21531;(function (global, factory) { 21532 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 21533 0 21534}(this, (function (moment) { 'use strict'; 21535 21536 //! moment.js locale configuration 21537 21538 function processRelativeTime(number, withoutSuffix, key, isFuture) { 21539 var format = { 21540 s: ['थà¥à¤¡à¤¯à¤¾ सॠà¤à¤à¤¡à¤¾à¤à¤¨à¥', 'थà¥à¤¡à¥ सॠà¤à¤à¤¡'], 21541 ss: [number + ' सॠà¤à¤à¤¡à¤¾à¤à¤¨à¥', number + ' सॠà¤à¤à¤¡'], 21542 m: ['à¤à¤à¤¾ मिणà¤à¤¾à¤¨', 'à¤à¤ मिनà¥à¤'], 21543 mm: [number + ' मिणà¤à¤¾à¤à¤¨à¥', number + ' मिणà¤à¤¾à¤'], 21544 h: ['à¤à¤à¤¾ वरान', 'à¤à¤ वर'], 21545 hh: [number + ' वराà¤à¤¨à¥', number + ' वराà¤'], 21546 d: ['à¤à¤à¤¾ दिसान', 'à¤à¤ दà¥à¤¸'], 21547 dd: [number + ' दिसाà¤à¤¨à¥', number + ' दà¥à¤¸'], 21548 M: ['à¤à¤à¤¾ मà¥à¤¹à¤¯à¤¨à¥à¤¯à¤¾à¤¨', 'à¤à¤ मà¥à¤¹à¤¯à¤¨à¥'], 21549 MM: [number + ' मà¥à¤¹à¤¯à¤¨à¥à¤¯à¤¾à¤¨à¥', number + ' मà¥à¤¹à¤¯à¤¨à¥'], 21550 y: ['à¤à¤à¤¾ वरà¥à¤¸à¤¾à¤¨', 'à¤à¤ वरà¥à¤¸'], 21551 yy: [number + ' वरà¥à¤¸à¤¾à¤à¤¨à¥', number + ' वरà¥à¤¸à¤¾à¤'], 21552 }; 21553 return isFuture ? format[key][0] : format[key][1]; 21554 } 21555 21556 var gomDeva = moment.defineLocale('gom-deva', { 21557 months: { 21558 standalone: 21559 'à¤à¤¾à¤¨à¥à¤µà¤¾à¤°à¥_फà¥à¤¬à¥à¤°à¥à¤µà¤¾à¤°à¥_मारà¥à¤_à¤à¤ªà¥à¤°à¥à¤²_मà¥_à¤à¥à¤¨_à¤à¥à¤²à¤¯_à¤à¤à¤¸à¥à¤_सपà¥à¤à¥à¤à¤¬à¤°_à¤à¤à¥à¤à¥à¤¬à¤°_नà¥à¤µà¥à¤¹à¥à¤à¤¬à¤°_डिसà¥à¤à¤¬à¤°'.split( 21560 '_' 21561 ), 21562 format: 'à¤à¤¾à¤¨à¥à¤µà¤¾à¤°à¥à¤à¥à¤¯à¤¾_फà¥à¤¬à¥à¤°à¥à¤µà¤¾à¤°à¥à¤à¥à¤¯à¤¾_मारà¥à¤à¤¾à¤à¥à¤¯à¤¾_à¤à¤ªà¥à¤°à¥à¤²à¤¾à¤à¥à¤¯à¤¾_मà¥à¤¯à¤¾à¤à¥à¤¯à¤¾_à¤à¥à¤¨à¤¾à¤à¥à¤¯à¤¾_à¤à¥à¤²à¤¯à¤¾à¤à¥à¤¯à¤¾_à¤à¤à¤¸à¥à¤à¤¾à¤à¥à¤¯à¤¾_सपà¥à¤à¥à¤à¤¬à¤°à¤¾à¤à¥à¤¯à¤¾_à¤à¤à¥à¤à¥à¤¬à¤°à¤¾à¤à¥à¤¯à¤¾_नà¥à¤µà¥à¤¹à¥à¤à¤¬à¤°à¤¾à¤à¥à¤¯à¤¾_डिसà¥à¤à¤¬à¤°à¤¾à¤à¥à¤¯à¤¾'.split( 21563 '_' 21564 ), 21565 isFormat: /MMMM(\s)+D[oD]?/, 21566 }, 21567 monthsShort: 21568 'à¤à¤¾à¤¨à¥._फà¥à¤¬à¥à¤°à¥._मारà¥à¤_à¤à¤ªà¥à¤°à¥._मà¥_à¤à¥à¤¨_à¤à¥à¤²._à¤à¤._सपà¥à¤à¥à¤._à¤à¤à¥à¤à¥._नà¥à¤µà¥à¤¹à¥à¤._डिसà¥à¤.'.split( 21569 '_' 21570 ), 21571 monthsParseExact: true, 21572 weekdays: 'à¤à¤¯à¤¤à¤¾à¤°_सà¥à¤®à¤¾à¤°_मà¤à¤à¤³à¤¾à¤°_बà¥à¤§à¤µà¤¾à¤°_बिरà¥à¤¸à¥à¤¤à¤¾à¤°_सà¥à¤à¥à¤°à¤¾à¤°_शà¥à¤¨à¤µà¤¾à¤°'.split('_'), 21573 weekdaysShort: 'à¤à¤¯à¤¤._सà¥à¤®._मà¤à¤à¤³._बà¥à¤§._बà¥à¤°à¥à¤¸à¥à¤¤._सà¥à¤à¥à¤°._शà¥à¤¨.'.split('_'), 21574 weekdaysMin: 'à¤_सà¥_मà¤_बà¥_बà¥à¤°à¥_सà¥_शà¥'.split('_'), 21575 weekdaysParseExact: true, 21576 longDateFormat: { 21577 LT: 'A h:mm [वाà¤à¤¤à¤¾à¤]', 21578 LTS: 'A h:mm:ss [वाà¤à¤¤à¤¾à¤]', 21579 L: 'DD-MM-YYYY', 21580 LL: 'D MMMM YYYY', 21581 LLL: 'D MMMM YYYY A h:mm [वाà¤à¤¤à¤¾à¤]', 21582 LLLL: 'dddd, MMMM Do, YYYY, A h:mm [वाà¤à¤¤à¤¾à¤]', 21583 llll: 'ddd, D MMM YYYY, A h:mm [वाà¤à¤¤à¤¾à¤]', 21584 }, 21585 calendar: { 21586 sameDay: '[à¤à¤¯à¤] LT', 21587 nextDay: '[फालà¥à¤¯à¤¾à¤] LT', 21588 nextWeek: '[फà¥à¤¡à¤²à¥] dddd[,] LT', 21589 lastDay: '[à¤à¤¾à¤²] LT', 21590 lastWeek: '[फाà¤à¤²à¥] dddd[,] LT', 21591 sameElse: 'L', 21592 }, 21593 relativeTime: { 21594 future: '%s', 21595 past: '%s à¤à¤¦à¥à¤', 21596 s: processRelativeTime, 21597 ss: processRelativeTime, 21598 m: processRelativeTime, 21599 mm: processRelativeTime, 21600 h: processRelativeTime, 21601 hh: processRelativeTime, 21602 d: processRelativeTime, 21603 dd: processRelativeTime, 21604 M: processRelativeTime, 21605 MM: processRelativeTime, 21606 y: processRelativeTime, 21607 yy: processRelativeTime, 21608 }, 21609 dayOfMonthOrdinalParse: /\d{1,2}(वà¥à¤°)/, 21610 ordinal: function (number, period) { 21611 switch (period) { 21612 // the ordinal 'वà¥à¤°' only applies to day of the month 21613 case 'D': 21614 return number + 'वà¥à¤°'; 21615 default: 21616 case 'M': 21617 case 'Q': 21618 case 'DDD': 21619 case 'd': 21620 case 'w': 21621 case 'W': 21622 return number; 21623 } 21624 }, 21625 week: { 21626 dow: 0, // Sunday is the first day of the week 21627 doy: 3, // The week that contains Jan 4th is the first week of the year (7 + 0 - 4) 21628 }, 21629 meridiemParse: /रातà¥|सà¤à¤¾à¤³à¥à¤|दनपाराà¤|साà¤à¤à¥/, 21630 meridiemHour: function (hour, meridiem) { 21631 if (hour === 12) { 21632 hour = 0; 21633 } 21634 if (meridiem === 'रातà¥') { 21635 return hour < 4 ? hour : hour + 12; 21636 } else if (meridiem === 'सà¤à¤¾à¤³à¥à¤') { 21637 return hour; 21638 } else if (meridiem === 'दनपाराà¤') { 21639 return hour > 12 ? hour : hour + 12; 21640 } else if (meridiem === 'साà¤à¤à¥') { 21641 return hour + 12; 21642 } 21643 }, 21644 meridiem: function (hour, minute, isLower) { 21645 if (hour < 4) { 21646 return 'रातà¥'; 21647 } else if (hour < 12) { 21648 return 'सà¤à¤¾à¤³à¥à¤'; 21649 } else if (hour < 16) { 21650 return 'दनपाराà¤'; 21651 } else if (hour < 20) { 21652 return 'साà¤à¤à¥'; 21653 } else { 21654 return 'रातà¥'; 21655 } 21656 }, 21657 }); 21658 21659 return gomDeva; 21660 21661}))); 21662 21663 21664/***/ }), 21665
vendor: 5,121 bytes, lines 21666-21808
21666/***/ "./node_modules/moment/locale/gom-latn.js": 21667/*!************************************************!*\ 21668 !*** ./node_modules/moment/locale/gom-latn.js ***! 21669 \************************************************/ 21670/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 21671 21672//! moment.js locale configuration 21673//! locale : Konkani Latin script [gom-latn] 21674//! author : The Discoverer : https://github.com/WikiDiscoverer 21675 21676;(function (global, factory) { 21677 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 21678 0 21679}(this, (function (moment) { 'use strict'; 21680 21681 //! moment.js locale configuration 21682 21683 function processRelativeTime(number, withoutSuffix, key, isFuture) { 21684 var format = { 21685 s: ['thoddea sekondamni', 'thodde sekond'], 21686 ss: [number + ' sekondamni', number + ' sekond'], 21687 m: ['eka mintan', 'ek minut'], 21688 mm: [number + ' mintamni', number + ' mintam'], 21689 h: ['eka voran', 'ek vor'], 21690 hh: [number + ' voramni', number + ' voram'], 21691 d: ['eka disan', 'ek dis'], 21692 dd: [number + ' disamni', number + ' dis'], 21693 M: ['eka mhoinean', 'ek mhoino'], 21694 MM: [number + ' mhoineamni', number + ' mhoine'], 21695 y: ['eka vorsan', 'ek voros'], 21696 yy: [number + ' vorsamni', number + ' vorsam'], 21697 }; 21698 return isFuture ? format[key][0] : format[key][1]; 21699 } 21700 21701 var gomLatn = moment.defineLocale('gom-latn', { 21702 months: { 21703 standalone: 21704 'Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr'.split( 21705 '_' 21706 ), 21707 format: 'Janerachea_Febrerachea_Marsachea_Abrilachea_Maiachea_Junachea_Julaiachea_Agostachea_Setembrachea_Otubrachea_Novembrachea_Dezembrachea'.split( 21708 '_' 21709 ), 21710 isFormat: /MMMM(\s)+D[oD]?/, 21711 }, 21712 monthsShort: 21713 'Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.'.split('_'), 21714 monthsParseExact: true, 21715 weekdays: "Aitar_Somar_Mongllar_Budhvar_Birestar_Sukrar_Son'var".split('_'), 21716 weekdaysShort: 'Ait._Som._Mon._Bud._Bre._Suk._Son.'.split('_'), 21717 weekdaysMin: 'Ai_Sm_Mo_Bu_Br_Su_Sn'.split('_'), 21718 weekdaysParseExact: true, 21719 longDateFormat: { 21720 LT: 'A h:mm [vazta]', 21721 LTS: 'A h:mm:ss [vazta]', 21722 L: 'DD-MM-YYYY', 21723 LL: 'D MMMM YYYY', 21724 LLL: 'D MMMM YYYY A h:mm [vazta]', 21725 LLLL: 'dddd, MMMM Do, YYYY, A h:mm [vazta]', 21726 llll: 'ddd, D MMM YYYY, A h:mm [vazta]', 21727 }, 21728 calendar: { 21729 sameDay: '[Aiz] LT', 21730 nextDay: '[Faleam] LT', 21731 nextWeek: '[Fuddlo] dddd[,] LT', 21732 lastDay: '[Kal] LT', 21733 lastWeek: '[Fattlo] dddd[,] LT', 21734 sameElse: 'L', 21735 }, 21736 relativeTime: { 21737 future: '%s', 21738 past: '%s adim', 21739 s: processRelativeTime, 21740 ss: processRelativeTime, 21741 m: processRelativeTime, 21742 mm: processRelativeTime, 21743 h: processRelativeTime, 21744 hh: processRelativeTime, 21745 d: processRelativeTime, 21746 dd: processRelativeTime, 21747 M: processRelativeTime, 21748 MM: processRelativeTime, 21749 y: processRelativeTime, 21750 yy: processRelativeTime, 21751 }, 21752 dayOfMonthOrdinalParse: /\d{1,2}(er)/, 21753 ordinal: function (number, period) { 21754 switch (period) { 21755 // the ordinal 'er' only applies to day of the month 21756 case 'D': 21757 return number + 'er'; 21758 default: 21759 case 'M': 21760 case 'Q': 21761 case 'DDD': 21762 case 'd': 21763 case 'w': 21764 case 'W': 21765 return number; 21766 } 21767 }, 21768 week: { 21769 dow: 0, // Sunday is the first day of the week 21770 doy: 3, // The week that contains Jan 4th is the first week of the year (7 + 0 - 4) 21771 }, 21772 meridiemParse: /rati|sokallim|donparam|sanje/, 21773 meridiemHour: function (hour, meridiem) { 21774 if (hour === 12) { 21775 hour = 0; 21776 } 21777 if (meridiem === 'rati') { 21778 return hour < 4 ? hour : hour + 12; 21779 } else if (meridiem === 'sokallim') { 21780 return hour; 21781 } else if (meridiem === 'donparam') { 21782 return hour > 12 ? hour : hour + 12; 21783 } else if (meridiem === 'sanje') { 21784 return hour + 12; 21785 } 21786 }, 21787 meridiem: function (hour, minute, isLower) { 21788 if (hour < 4) { 21789 return 'rati'; 21790 } else if (hour < 12) { 21791 return 'sokallim'; 21792 } else if (hour < 16) { 21793 return 'donparam'; 21794 } else if (hour < 20) { 21795 return 'sanje'; 21796 } else { 21797 return 'rati'; 21798 } 21799 }, 21800 }); 21801 21802 return gomLatn; 21803 21804}))); 21805 21806 21807/***/ }), 21808
vendor: 5,081 bytes, lines 21809-21949
21809/***/ "./node_modules/moment/locale/gu.js": 21810/*!******************************************!*\ 21811 !*** ./node_modules/moment/locale/gu.js ***! 21812 \******************************************/ 21813/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 21814 21815//! moment.js locale configuration 21816//! locale : Gujarati [gu] 21817//! author : Kaushik Thanki : https://github.com/Kaushik1987 21818 21819;(function (global, factory) { 21820 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 21821 0 21822}(this, (function (moment) { 'use strict'; 21823 21824 //! moment.js locale configuration 21825 21826 var symbolMap = { 21827 1: 'à«§', 21828 2: '૨', 21829 3: 'à«©', 21830 4: '૪', 21831 5: 'à««', 21832 6: '૬', 21833 7: 'à«', 21834 8: 'à«®', 21835 9: '૯', 21836 0: '૦', 21837 }, 21838 numberMap = { 21839 'à«§': '1', 21840 '૨': '2', 21841 'à«©': '3', 21842 '૪': '4', 21843 'à««': '5', 21844 '૬': '6', 21845 'à«': '7', 21846 'à«®': '8', 21847 '૯': '9', 21848 '૦': '0', 21849 }; 21850 21851 var gu = moment.defineLocale('gu', { 21852 months: 'àªàª¾àª¨à«àª¯à«àªàª°à«_ફà«àª¬à«àª°à«àªàª°à«_મારà«àª_àªàªªà«àª°àª¿àª²_મà«_àªà«àª¨_àªà«àª²àª¾àª_àªàªàª¸à«àª_સપà«àªà«àª®à«àª¬àª°_àªàªà«àªà«àª¬àª°_નવà«àª®à«àª¬àª°_ડિસà«àª®à«àª¬àª°'.split( 21853 '_' 21854 ), 21855 monthsShort: 21856 'àªàª¾àª¨à«àª¯à«._ફà«àª¬à«àª°à«._મારà«àª_àªàªªà«àª°àª¿._મà«_àªà«àª¨_àªà«àª²àª¾._àªàª._સપà«àªà«._àªàªà«àªà«._નવà«._ડિસà«.'.split( 21857 '_' 21858 ), 21859 monthsParseExact: true, 21860 weekdays: 'રવિવાર_સà«àª®àªµàª¾àª°_મàªàªàª³àªµàª¾àª°_બà«àª§à«àªµàª¾àª°_àªà«àª°à«àªµàª¾àª°_શà«àªà«àª°àªµàª¾àª°_શનિવાર'.split( 21861 '_' 21862 ), 21863 weekdaysShort: 'રવિ_સà«àª®_મàªàªàª³_બà«àª§à«_àªà«àª°à«_શà«àªà«àª°_શનિ'.split('_'), 21864 weekdaysMin: 'ર_સà«_મàª_બà«_àªà«_શà«_શ'.split('_'), 21865 longDateFormat: { 21866 LT: 'A h:mm વાàªà«àª¯à«', 21867 LTS: 'A h:mm:ss વાàªà«àª¯à«', 21868 L: 'DD/MM/YYYY', 21869 LL: 'D MMMM YYYY', 21870 LLL: 'D MMMM YYYY, A h:mm વાàªà«àª¯à«', 21871 LLLL: 'dddd, D MMMM YYYY, A h:mm વાàªà«àª¯à«', 21872 }, 21873 calendar: { 21874 sameDay: '[àªàª] LT', 21875 nextDay: '[àªàª¾àª²à«] LT', 21876 nextWeek: 'dddd, LT', 21877 lastDay: '[àªàªàªàª¾àª²à«] LT', 21878 lastWeek: '[પાàªàª²àª¾] dddd, LT', 21879 sameElse: 'L', 21880 }, 21881 relativeTime: { 21882 future: '%s મા', 21883 past: '%s પહà«àª²àª¾', 21884 s: 'ઠમà«àª પળà«', 21885 ss: '%d સà«àªàªàª¡', 21886 m: 'àªàª મિનિàª', 21887 mm: '%d મિનિàª', 21888 h: 'àªàª àªàª²àª¾àª', 21889 hh: '%d àªàª²àª¾àª', 21890 d: 'àªàª દિવસ', 21891 dd: '%d દિવસ', 21892 M: 'àªàª મહિનà«', 21893 MM: '%d મહિનà«', 21894 y: 'àªàª વરà«àª·', 21895 yy: '%d વરà«àª·', 21896 }, 21897 preparse: function (string) { 21898 return string.replace(/[૧૨૩૪૫૬à«à«®à«¯à«¦]/g, function (match) { 21899 return numberMap[match]; 21900 }); 21901 }, 21902 postformat: function (string) { 21903 return string.replace(/\d/g, function (match) { 21904 return symbolMap[match]; 21905 }); 21906 }, 21907 // Gujarati notation for meridiems are quite fuzzy in practice. While there exists 21908 // a rigid notion of a 'Pahar' it is not used as rigidly in modern Gujarati. 21909 meridiemParse: /રાત|બપà«àª°|સવાર|સાàªàª/, 21910 meridiemHour: function (hour, meridiem) { 21911 if (hour === 12) { 21912 hour = 0; 21913 } 21914 if (meridiem === 'રાત') { 21915 return hour < 4 ? hour : hour + 12; 21916 } else if (meridiem === 'સવાર') { 21917 return hour; 21918 } else if (meridiem === 'બપà«àª°') { 21919 return hour >= 10 ? hour : hour + 12; 21920 } else if (meridiem === 'સાàªàª') { 21921 return hour + 12; 21922 } 21923 }, 21924 meridiem: function (hour, minute, isLower) { 21925 if (hour < 4) { 21926 return 'રાત'; 21927 } else if (hour < 10) { 21928 return 'સવાર'; 21929 } else if (hour < 17) { 21930 return 'બપà«àª°'; 21931 } else if (hour < 20) { 21932 return 'સાàªàª'; 21933 } else { 21934 return 'રાત'; 21935 } 21936 }, 21937 week: { 21938 dow: 0, // Sunday is the first day of the week. 21939 doy: 6, // The week that contains Jan 6th is the first week of the year. 21940 }, 21941 }); 21942 21943 return gu; 21944 21945}))); 21946 21947 21948/***/ }), 21949
vendor: 4,044 bytes, lines 21950-22062
21950/***/ "./node_modules/moment/locale/he.js": 21951/*!******************************************!*\ 21952 !*** ./node_modules/moment/locale/he.js ***! 21953 \******************************************/ 21954/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 21955 21956//! moment.js locale configuration 21957//! locale : Hebrew [he] 21958//! author : Tomer Cohen : https://github.com/tomer 21959//! author : Moshe Simantov : https://github.com/DevelopmentIL 21960//! author : Tal Ater : https://github.com/TalAter 21961 21962;(function (global, factory) { 21963 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 21964 0 21965}(this, (function (moment) { 'use strict'; 21966 21967 //! moment.js locale configuration 21968 21969 var he = moment.defineLocale('he', { 21970 months: '×× ××ר_פ×ר××ר_×רץ_×פר××_×××_××× ×_××××_××××ס×_ספ×××ר_×××§×××ר_× ××××ר_×צ××ר'.split( 21971 '_' 21972 ), 21973 monthsShort: 21974 '×× ×׳_פ×ר׳_×רץ_×פר׳_×××_××× ×_××××_×××׳_ספ×׳_××ק׳_× ××׳_×צ×׳'.split('_'), 21975 weekdays: 'ר×ש××_×©× ×_ש××ש×_ר×××¢×_×××ש×_ש×ש×_ש×ת'.split('_'), 21976 weekdaysShort: '×׳_×׳_×׳_×׳_×׳_×׳_ש׳'.split('_'), 21977 weekdaysMin: '×_×_×_×_×_×_ש'.split('_'), 21978 longDateFormat: { 21979 LT: 'HH:mm', 21980 LTS: 'HH:mm:ss', 21981 L: 'DD/MM/YYYY', 21982 LL: 'D [×]MMMM YYYY', 21983 LLL: 'D [×]MMMM YYYY HH:mm', 21984 LLLL: 'dddd, D [×]MMMM YYYY HH:mm', 21985 l: 'D/M/YYYY', 21986 ll: 'D MMM YYYY', 21987 lll: 'D MMM YYYY HH:mm', 21988 llll: 'ddd, D MMM YYYY HH:mm', 21989 }, 21990 calendar: { 21991 sameDay: '[×××× ×Ö¾]LT', 21992 nextDay: '[××ר ×Ö¾]LT', 21993 nextWeek: 'dddd [×שע×] LT', 21994 lastDay: '[×ת××× ×Ö¾]LT', 21995 lastWeek: '[××××] dddd [×××ר×× ×שע×] LT', 21996 sameElse: 'L', 21997 }, 21998 relativeTime: { 21999 future: '××¢×× %s', 22000 past: '××¤× × %s', 22001 s: '×ספר ×©× ××ת', 22002 ss: '%d ×©× ××ת', 22003 m: '××§×', 22004 mm: '%d ××§×ת', 22005 h: 'שע×', 22006 hh: function (number) { 22007 if (number === 2) { 22008 return 'שעת×××'; 22009 } 22010 return number + ' שע×ת'; 22011 }, 22012 d: '×××', 22013 dd: function (number) { 22014 if (number === 2) { 22015 return '××××××'; 22016 } 22017 return number + ' ××××'; 22018 }, 22019 M: '×××ש', 22020 MM: function (number) { 22021 if (number === 2) { 22022 return '×××ש×××'; 22023 } 22024 return number + ' ×××ש××'; 22025 }, 22026 y: '×©× ×', 22027 yy: function (number) { 22028 if (number === 2) { 22029 return '×©× ×ª×××'; 22030 } else if (number % 10 === 0 && number !== 10) { 22031 return number + ' ×©× ×'; 22032 } 22033 return number + ' ×©× ××'; 22034 }, 22035 }, 22036 meridiemParse: 22037 /×××"צ|××¤× ×"צ|×××¨× ×צ×ר×××|××¤× × ×צ×ר×××|××¤× ×ת ××קר|×××קר|×ער×/i, 22038 isPM: function (input) { 22039 return /^(×××"צ|×××¨× ×צ×ר×××|×ער×)$/.test(input); 22040 }, 22041 meridiem: function (hour, minute, isLower) { 22042 if (hour < 5) { 22043 return '××¤× ×ת ××קר'; 22044 } else if (hour < 10) { 22045 return '×××קר'; 22046 } else if (hour < 12) { 22047 return isLower ? '××¤× ×"צ' : '××¤× × ×צ×ר×××'; 22048 } else if (hour < 18) { 22049 return isLower ? '×××"צ' : '×××¨× ×צ×ר×××'; 22050 } else { 22051 return '×ער×'; 22052 } 22053 }, 22054 }); 22055 22056 return he; 22057 22058}))); 22059 22060 22061/***/ }), 22062
vendor: 7,530 bytes, lines 22063-22249
22063/***/ "./node_modules/moment/locale/hi.js": 22064/*!******************************************!*\ 22065 !*** ./node_modules/moment/locale/hi.js ***! 22066 \******************************************/ 22067/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 22068 22069//! moment.js locale configuration 22070//! locale : Hindi [hi] 22071//! author : Mayank Singhal : https://github.com/mayanksinghal 22072 22073;(function (global, factory) { 22074 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 22075 0 22076}(this, (function (moment) { 'use strict'; 22077 22078 //! moment.js locale configuration 22079 22080 var symbolMap = { 22081 1: '१', 22082 2: '२', 22083 3: '३', 22084 4: '४', 22085 5: '५', 22086 6: '६', 22087 7: 'à¥', 22088 8: '८', 22089 9: '९', 22090 0: '०', 22091 }, 22092 numberMap = { 22093 '१': '1', 22094 '२': '2', 22095 '३': '3', 22096 '४': '4', 22097 '५': '5', 22098 '६': '6', 22099 'à¥': '7', 22100 '८': '8', 22101 '९': '9', 22102 '०': '0', 22103 }, 22104 monthsParse = [ 22105 /^à¤à¤¨/i, 22106 /^फ़र|फर/i, 22107 /^मारà¥à¤/i, 22108 /^ठपà¥à¤°à¥/i, 22109 /^मà¤/i, 22110 /^à¤à¥à¤¨/i, 22111 /^à¤à¥à¤²/i, 22112 /^ठà¤/i, 22113 /^सितà¤|सित/i, 22114 /^ठà¤à¥à¤à¥/i, 22115 /^नव|नवà¤/i, 22116 /^दिसà¤|दिस/i, 22117 ], 22118 shortMonthsParse = [ 22119 /^à¤à¤¨/i, 22120 /^फ़र/i, 22121 /^मारà¥à¤/i, 22122 /^ठपà¥à¤°à¥/i, 22123 /^मà¤/i, 22124 /^à¤à¥à¤¨/i, 22125 /^à¤à¥à¤²/i, 22126 /^ठà¤/i, 22127 /^सित/i, 22128 /^ठà¤à¥à¤à¥/i, 22129 /^नव/i, 22130 /^दिस/i, 22131 ]; 22132 22133 var hi = moment.defineLocale('hi', { 22134 months: { 22135 format: 'à¤à¤¨à¤µà¤°à¥_फ़रवरà¥_मारà¥à¤_ठपà¥à¤°à¥à¤²_मà¤_à¤à¥à¤¨_à¤à¥à¤²à¤¾à¤_ठà¤à¤¸à¥à¤¤_सितमà¥à¤¬à¤°_ठà¤à¥à¤à¥à¤¬à¤°_नवमà¥à¤¬à¤°_दिसमà¥à¤¬à¤°'.split( 22136 '_' 22137 ), 22138 standalone: 22139 'à¤à¤¨à¤µà¤°à¥_फरवरà¥_मारà¥à¤_ठपà¥à¤°à¥à¤²_मà¤_à¤à¥à¤¨_à¤à¥à¤²à¤¾à¤_ठà¤à¤¸à¥à¤¤_सितà¤à¤¬à¤°_ठà¤à¥à¤à¥à¤¬à¤°_नवà¤à¤¬à¤°_दिसà¤à¤¬à¤°'.split( 22140 '_' 22141 ), 22142 }, 22143 monthsShort: 22144 'à¤à¤¨._फ़र._मारà¥à¤_ठपà¥à¤°à¥._मà¤_à¤à¥à¤¨_à¤à¥à¤²._ठà¤._सित._ठà¤à¥à¤à¥._नव._दिस.'.split('_'), 22145 weekdays: 'रविवार_सà¥à¤®à¤µà¤¾à¤°_मà¤à¤à¤²à¤µà¤¾à¤°_बà¥à¤§à¤µà¤¾à¤°_à¤à¥à¤°à¥à¤µà¤¾à¤°_शà¥à¤à¥à¤°à¤µà¤¾à¤°_शनिवार'.split('_'), 22146 weekdaysShort: 'रवि_सà¥à¤®_मà¤à¤à¤²_बà¥à¤§_à¤à¥à¤°à¥_शà¥à¤à¥à¤°_शनि'.split('_'), 22147 weekdaysMin: 'र_सà¥_मà¤_बà¥_à¤à¥_शà¥_श'.split('_'), 22148 longDateFormat: { 22149 LT: 'A h:mm बà¤à¥', 22150 LTS: 'A h:mm:ss बà¤à¥', 22151 L: 'DD/MM/YYYY', 22152 LL: 'D MMMM YYYY', 22153 LLL: 'D MMMM YYYY, A h:mm बà¤à¥', 22154 LLLL: 'dddd, D MMMM YYYY, A h:mm बà¤à¥', 22155 }, 22156 22157 monthsParse: monthsParse, 22158 longMonthsParse: monthsParse, 22159 shortMonthsParse: shortMonthsParse, 22160 22161 monthsRegex: 22162 /^(à¤à¤¨à¤µà¤°à¥|à¤à¤¨\.?|फ़रवरà¥|फरवरà¥|फ़र\.?|मारà¥à¤?|ठपà¥à¤°à¥à¤²|ठपà¥à¤°à¥\.?|मà¤?|à¤à¥à¤¨?|à¤à¥à¤²à¤¾à¤|à¤à¥à¤²\.?|ठà¤à¤¸à¥à¤¤|ठà¤\.?|सितमà¥à¤¬à¤°|सितà¤à¤¬à¤°|सित\.?|ठà¤à¥à¤à¥à¤¬à¤°|ठà¤à¥à¤à¥\.?|नवमà¥à¤¬à¤°|नवà¤à¤¬à¤°|नव\.?|दिसमà¥à¤¬à¤°|दिसà¤à¤¬à¤°|दिस\.?)/i, 22163 22164 monthsShortRegex: 22165 /^(à¤à¤¨à¤µà¤°à¥|à¤à¤¨\.?|फ़रवरà¥|फरवरà¥|फ़र\.?|मारà¥à¤?|ठपà¥à¤°à¥à¤²|ठपà¥à¤°à¥\.?|मà¤?|à¤à¥à¤¨?|à¤à¥à¤²à¤¾à¤|à¤à¥à¤²\.?|ठà¤à¤¸à¥à¤¤|ठà¤\.?|सितमà¥à¤¬à¤°|सितà¤à¤¬à¤°|सित\.?|ठà¤à¥à¤à¥à¤¬à¤°|ठà¤à¥à¤à¥\.?|नवमà¥à¤¬à¤°|नवà¤à¤¬à¤°|नव\.?|दिसमà¥à¤¬à¤°|दिसà¤à¤¬à¤°|दिस\.?)/i, 22166 22167 monthsStrictRegex: 22168 /^(à¤à¤¨à¤µà¤°à¥?|फ़रवरà¥|फरवरà¥?|मारà¥à¤?|ठपà¥à¤°à¥à¤²?|मà¤?|à¤à¥à¤¨?|à¤à¥à¤²à¤¾à¤?|ठà¤à¤¸à¥à¤¤?|सितमà¥à¤¬à¤°|सितà¤à¤¬à¤°|सित?\.?|ठà¤à¥à¤à¥à¤¬à¤°|ठà¤à¥à¤à¥\.?|नवमà¥à¤¬à¤°|नवà¤à¤¬à¤°?|दिसमà¥à¤¬à¤°|दिसà¤à¤¬à¤°?)/i, 22169 22170 monthsShortStrictRegex: 22171 /^(à¤à¤¨\.?|फ़र\.?|मारà¥à¤?|ठपà¥à¤°à¥\.?|मà¤?|à¤à¥à¤¨?|à¤à¥à¤²\.?|ठà¤\.?|सित\.?|ठà¤à¥à¤à¥\.?|नव\.?|दिस\.?)/i, 22172 22173 calendar: { 22174 sameDay: '[à¤à¤] LT', 22175 nextDay: '[à¤à¤²] LT', 22176 nextWeek: 'dddd, LT', 22177 lastDay: '[à¤à¤²] LT', 22178 lastWeek: '[पिà¤à¤²à¥] dddd, LT', 22179 sameElse: 'L', 22180 }, 22181 relativeTime: { 22182 future: '%s मà¥à¤', 22183 past: '%s पहलà¥', 22184 s: 'à¤à¥à¤ हॠà¤à¥à¤·à¤£', 22185 ss: '%d सà¥à¤à¤à¤¡', 22186 m: 'à¤à¤ मिनà¤', 22187 mm: '%d मिनà¤', 22188 h: 'à¤à¤ à¤à¤à¤à¤¾', 22189 hh: '%d à¤à¤à¤à¥', 22190 d: 'à¤à¤ दिन', 22191 dd: '%d दिन', 22192 M: 'à¤à¤ महà¥à¤¨à¥', 22193 MM: '%d महà¥à¤¨à¥', 22194 y: 'à¤à¤ वरà¥à¤·', 22195 yy: '%d वरà¥à¤·', 22196 }, 22197 preparse: function (string) { 22198 return string.replace(/[१२३४५६à¥à¥®à¥¯à¥¦]/g, function (match) { 22199 return numberMap[match]; 22200 }); 22201 }, 22202 postformat: function (string) { 22203 return string.replace(/\d/g, function (match) { 22204 return symbolMap[match]; 22205 }); 22206 }, 22207 // Hindi notation for meridiems are quite fuzzy in practice. While there exists 22208 // a rigid notion of a 'Pahar' it is not used as rigidly in modern Hindi. 22209 meridiemParse: /रात|सà¥à¤¬à¤¹|दà¥à¤ªà¤¹à¤°|शाम/, 22210 meridiemHour: function (hour, meridiem) { 22211 if (hour === 12) { 22212 hour = 0; 22213 } 22214 if (meridiem === 'रात') { 22215 return hour < 4 ? hour : hour + 12; 22216 } else if (meridiem === 'सà¥à¤¬à¤¹') { 22217 return hour; 22218 } else if (meridiem === 'दà¥à¤ªà¤¹à¤°') { 22219 return hour >= 10 ? hour : hour + 12; 22220 } else if (meridiem === 'शाम') { 22221 return hour + 12; 22222 } 22223 }, 22224 meridiem: function (hour, minute, isLower) { 22225 if (hour < 4) { 22226 return 'रात'; 22227 } else if (hour < 10) { 22228 return 'सà¥à¤¬à¤¹'; 22229 } else if (hour < 17) { 22230 return 'दà¥à¤ªà¤¹à¤°'; 22231 } else if (hour < 20) { 22232 return 'शाम'; 22233 } else { 22234 return 'रात'; 22235 } 22236 }, 22237 week: { 22238 dow: 0, // Sunday is the first day of the week. 22239 doy: 6, // The week that contains Jan 6th is the first week of the year. 22240 }, 22241 }); 22242 22243 return hi; 22244 22245}))); 22246 22247 22248/***/ }), 22249
vendor: 5,803 bytes, lines 22250-22424
22250/***/ "./node_modules/moment/locale/hr.js": 22251/*!******************************************!*\ 22252 !*** ./node_modules/moment/locale/hr.js ***! 22253 \******************************************/ 22254/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 22255 22256//! moment.js locale configuration 22257//! locale : Croatian [hr] 22258//! author : Bojan MarkoviÄ : https://github.com/bmarkovic 22259 22260;(function (global, factory) { 22261 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 22262 0 22263}(this, (function (moment) { 'use strict'; 22264 22265 //! moment.js locale configuration 22266 22267 function translate(number, withoutSuffix, key) { 22268 var result = number + ' '; 22269 switch (key) { 22270 case 'ss': 22271 if (number === 1) { 22272 result += 'sekunda'; 22273 } else if (number === 2 || number === 3 || number === 4) { 22274 result += 'sekunde'; 22275 } else { 22276 result += 'sekundi'; 22277 } 22278 return result; 22279 case 'm': 22280 return withoutSuffix ? 'jedna minuta' : 'jedne minute'; 22281 case 'mm': 22282 if (number === 1) { 22283 result += 'minuta'; 22284 } else if (number === 2 || number === 3 || number === 4) { 22285 result += 'minute'; 22286 } else { 22287 result += 'minuta'; 22288 } 22289 return result; 22290 case 'h': 22291 return withoutSuffix ? 'jedan sat' : 'jednog sata'; 22292 case 'hh': 22293 if (number === 1) { 22294 result += 'sat'; 22295 } else if (number === 2 || number === 3 || number === 4) { 22296 result += 'sata'; 22297 } else { 22298 result += 'sati'; 22299 } 22300 return result; 22301 case 'dd': 22302 if (number === 1) { 22303 result += 'dan'; 22304 } else { 22305 result += 'dana'; 22306 } 22307 return result; 22308 case 'MM': 22309 if (number === 1) { 22310 result += 'mjesec'; 22311 } else if (number === 2 || number === 3 || number === 4) { 22312 result += 'mjeseca'; 22313 } else { 22314 result += 'mjeseci'; 22315 } 22316 return result; 22317 case 'yy': 22318 if (number === 1) { 22319 result += 'godina'; 22320 } else if (number === 2 || number === 3 || number === 4) { 22321 result += 'godine'; 22322 } else { 22323 result += 'godina'; 22324 } 22325 return result; 22326 } 22327 } 22328 22329 var hr = moment.defineLocale('hr', { 22330 months: { 22331 format: 'sijeÄnja_veljaÄe_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca'.split( 22332 '_' 22333 ), 22334 standalone: 22335 'sijeÄanj_veljaÄa_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac'.split( 22336 '_' 22337 ), 22338 }, 22339 monthsShort: 22340 'sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.'.split( 22341 '_' 22342 ), 22343 monthsParseExact: true, 22344 weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_Äetvrtak_petak_subota'.split( 22345 '_' 22346 ), 22347 weekdaysShort: 'ned._pon._uto._sri._Äet._pet._sub.'.split('_'), 22348 weekdaysMin: 'ne_po_ut_sr_Äe_pe_su'.split('_'), 22349 weekdaysParseExact: true, 22350 longDateFormat: { 22351 LT: 'H:mm', 22352 LTS: 'H:mm:ss', 22353 L: 'DD.MM.YYYY', 22354 LL: 'Do MMMM YYYY', 22355 LLL: 'Do MMMM YYYY H:mm', 22356 LLLL: 'dddd, Do MMMM YYYY H:mm', 22357 }, 22358 calendar: { 22359 sameDay: '[danas u] LT', 22360 nextDay: '[sutra u] LT', 22361 nextWeek: function () { 22362 switch (this.day()) { 22363 case 0: 22364 return '[u] [nedjelju] [u] LT'; 22365 case 3: 22366 return '[u] [srijedu] [u] LT'; 22367 case 6: 22368 return '[u] [subotu] [u] LT'; 22369 case 1: 22370 case 2: 22371 case 4: 22372 case 5: 22373 return '[u] dddd [u] LT'; 22374 } 22375 }, 22376 lastDay: '[juÄer u] LT', 22377 lastWeek: function () { 22378 switch (this.day()) { 22379 case 0: 22380 return '[proÅ¡lu] [nedjelju] [u] LT'; 22381 case 3: 22382 return '[proÅ¡lu] [srijedu] [u] LT'; 22383 case 6: 22384 return '[proÅ¡le] [subote] [u] LT'; 22385 case 1: 22386 case 2: 22387 case 4: 22388 case 5: 22389 return '[proÅ¡li] dddd [u] LT'; 22390 } 22391 }, 22392 sameElse: 'L', 22393 }, 22394 relativeTime: { 22395 future: 'za %s', 22396 past: 'prije %s', 22397 s: 'par sekundi', 22398 ss: translate, 22399 m: translate, 22400 mm: translate, 22401 h: translate, 22402 hh: translate, 22403 d: 'dan', 22404 dd: translate, 22405 M: 'mjesec', 22406 MM: translate, 22407 y: 'godinu', 22408 yy: translate, 22409 }, 22410 dayOfMonthOrdinalParse: /\d{1,2}\./, 22411 ordinal: '%d.', 22412 week: { 22413 dow: 1, // Monday is the first day of the week. 22414 doy: 7, // The week that contains Jan 7th is the first week of the year. 22415 }, 22416 }); 22417 22418 return hr; 22419 22420}))); 22421 22422 22423/***/ }), 22424
vendor: 4,744 bytes, lines 22425-22561
22425/***/ "./node_modules/moment/locale/hu.js": 22426/*!******************************************!*\ 22427 !*** ./node_modules/moment/locale/hu.js ***! 22428 \******************************************/ 22429/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 22430 22431//! moment.js locale configuration 22432//! locale : Hungarian [hu] 22433//! author : Adam Brunner : https://github.com/adambrunner 22434//! author : Peter Viszt : https://github.com/passatgt 22435 22436;(function (global, factory) { 22437 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 22438 0 22439}(this, (function (moment) { 'use strict'; 22440 22441 //! moment.js locale configuration 22442 22443 var weekEndings = 22444 'vasárnap hétfÅn kedden szerdán csütörtökön pénteken szombaton'.split(' '); 22445 function translate(number, withoutSuffix, key, isFuture) { 22446 var num = number; 22447 switch (key) { 22448 case 's': 22449 return isFuture || withoutSuffix 22450 ? 'néhány másodperc' 22451 : 'néhány másodperce'; 22452 case 'ss': 22453 return num + (isFuture || withoutSuffix) 22454 ? ' másodperc' 22455 : ' másodperce'; 22456 case 'm': 22457 return 'egy' + (isFuture || withoutSuffix ? ' perc' : ' perce'); 22458 case 'mm': 22459 return num + (isFuture || withoutSuffix ? ' perc' : ' perce'); 22460 case 'h': 22461 return 'egy' + (isFuture || withoutSuffix ? ' óra' : ' órája'); 22462 case 'hh': 22463 return num + (isFuture || withoutSuffix ? ' óra' : ' órája'); 22464 case 'd': 22465 return 'egy' + (isFuture || withoutSuffix ? ' nap' : ' napja'); 22466 case 'dd': 22467 return num + (isFuture || withoutSuffix ? ' nap' : ' napja'); 22468 case 'M': 22469 return 'egy' + (isFuture || withoutSuffix ? ' hónap' : ' hónapja'); 22470 case 'MM': 22471 return num + (isFuture || withoutSuffix ? ' hónap' : ' hónapja'); 22472 case 'y': 22473 return 'egy' + (isFuture || withoutSuffix ? ' év' : ' éve'); 22474 case 'yy': 22475 return num + (isFuture || withoutSuffix ? ' év' : ' éve'); 22476 } 22477 return ''; 22478 } 22479 function week(isFuture) { 22480 return ( 22481 (isFuture ? '' : '[múlt] ') + 22482 '[' + 22483 weekEndings[this.day()] + 22484 '] LT[-kor]' 22485 ); 22486 } 22487 22488 var hu = moment.defineLocale('hu', { 22489 months: 'január_február_március_április_május_június_július_augusztus_szeptember_október_november_december'.split( 22490 '_' 22491 ), 22492 monthsShort: 22493 'jan._feb._márc._ápr._máj._jún._júl._aug._szept._okt._nov._dec.'.split( 22494 '_' 22495 ), 22496 monthsParseExact: true, 22497 weekdays: 'vasárnap_hétfÅ_kedd_szerda_csütörtök_péntek_szombat'.split('_'), 22498 weekdaysShort: 'vas_hét_kedd_sze_csüt_pén_szo'.split('_'), 22499 weekdaysMin: 'v_h_k_sze_cs_p_szo'.split('_'), 22500 longDateFormat: { 22501 LT: 'H:mm', 22502 LTS: 'H:mm:ss', 22503 L: 'YYYY.MM.DD.', 22504 LL: 'YYYY. MMMM D.', 22505 LLL: 'YYYY. MMMM D. H:mm', 22506 LLLL: 'YYYY. MMMM D., dddd H:mm', 22507 }, 22508 meridiemParse: /de|du/i, 22509 isPM: function (input) { 22510 return input.charAt(1).toLowerCase() === 'u'; 22511 }, 22512 meridiem: function (hours, minutes, isLower) { 22513 if (hours < 12) { 22514 return isLower === true ? 'de' : 'DE'; 22515 } else { 22516 return isLower === true ? 'du' : 'DU'; 22517 } 22518 }, 22519 calendar: { 22520 sameDay: '[ma] LT[-kor]', 22521 nextDay: '[holnap] LT[-kor]', 22522 nextWeek: function () { 22523 return week.call(this, true); 22524 }, 22525 lastDay: '[tegnap] LT[-kor]', 22526 lastWeek: function () { 22527 return week.call(this, false); 22528 }, 22529 sameElse: 'L', 22530 }, 22531 relativeTime: { 22532 future: '%s múlva', 22533 past: '%s', 22534 s: translate, 22535 ss: translate, 22536 m: translate, 22537 mm: translate, 22538 h: translate, 22539 hh: translate, 22540 d: translate, 22541 dd: translate, 22542 M: translate, 22543 MM: translate, 22544 y: translate, 22545 yy: translate, 22546 }, 22547 dayOfMonthOrdinalParse: /\d{1,2}\./, 22548 ordinal: '%d.', 22549 week: { 22550 dow: 1, // Monday is the first day of the week. 22551 doy: 4, // The week that contains Jan 4th is the first week of the year. 22552 }, 22553 }); 22554 22555 return hu; 22556 22557}))); 22558 22559 22560/***/ }), 22561
vendor: 4,093 bytes, lines 22562-22674
22562/***/ "./node_modules/moment/locale/hy-am.js": 22563/*!*********************************************!*\ 22564 !*** ./node_modules/moment/locale/hy-am.js ***! 22565 \*********************************************/ 22566/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 22567 22568//! moment.js locale configuration 22569//! locale : Armenian [hy-am] 22570//! author : Armendarabyan : https://github.com/armendarabyan 22571 22572;(function (global, factory) { 22573 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 22574 0 22575}(this, (function (moment) { 'use strict'; 22576 22577 //! moment.js locale configuration 22578 22579 var hyAm = moment.defineLocale('hy-am', { 22580 months: { 22581 format: 'Õ°Õ¸ÖÕ¶Õ¾Õ¡ÖÕ«_ÖÕ¥Õ¿ÖÕ¾Õ¡ÖÕ«_Õ´Õ¡ÖÕ¿Õ«_Õ¡ÕºÖÕ«Õ¬Õ«_Õ´Õ¡ÕµÕ«Õ½Õ«_Õ°Õ¸ÖÕ¶Õ«Õ½Õ«_Õ°Õ¸ÖÕ¬Õ«Õ½Õ«_Ö Õ£Õ¸Õ½Õ¿Õ¸Õ½Õ«_Õ½Õ¥ÕºÕ¿Õ¥Õ´Õ¢Õ¥ÖÕ«_Õ°Õ¸Õ¯Õ¿Õ¥Õ´Õ¢Õ¥ÖÕ«_Õ¶Õ¸ÕµÕ¥Õ´Õ¢Õ¥ÖÕ«_Õ¤Õ¥Õ¯Õ¿Õ¥Õ´Õ¢Õ¥ÖÕ«'.split( 22582 '_' 22583 ), 22584 standalone: 22585 'Õ°Õ¸ÖÕ¶Õ¾Õ¡Ö_ÖÕ¥Õ¿ÖÕ¾Õ¡Ö_Õ´Õ¡ÖÕ¿_Õ¡ÕºÖÕ«Õ¬_Õ´Õ¡ÕµÕ«Õ½_Õ°Õ¸ÖÕ¶Õ«Õ½_Õ°Õ¸ÖÕ¬Õ«Õ½_Ö Õ£Õ¸Õ½Õ¿Õ¸Õ½_Õ½Õ¥ÕºÕ¿Õ¥Õ´Õ¢Õ¥Ö_Õ°Õ¸Õ¯Õ¿Õ¥Õ´Õ¢Õ¥Ö_Õ¶Õ¸ÕµÕ¥Õ´Õ¢Õ¥Ö_Õ¤Õ¥Õ¯Õ¿Õ¥Õ´Õ¢Õ¥Ö'.split( 22586 '_' 22587 ), 22588 }, 22589 monthsShort: 'Õ°Õ¶Õ¾_ÖÕ¿Ö_Õ´ÖÕ¿_Õ¡ÕºÖ_Õ´ÕµÕ½_Õ°Õ¶Õ½_Õ°Õ¬Õ½_Ö Õ£Õ½_Õ½ÕºÕ¿_Õ°Õ¯Õ¿_Õ¶Õ´Õ¢_Õ¤Õ¯Õ¿'.split('_'), 22590 weekdays: 22591 'Õ¯Õ«ÖÕ¡Õ¯Õ«_Õ¥ÖÕ¯Õ¸ÖÕ·Õ¡Õ¢Õ©Õ«_Õ¥ÖÕ¥ÖÕ·Õ¡Õ¢Õ©Õ«_Õ¹Õ¸ÖÕ¥ÖÕ·Õ¡Õ¢Õ©Õ«_Õ°Õ«Õ¶Õ£Õ·Õ¡Õ¢Õ©Õ«_Õ¸ÖÖÕ¢Õ¡Õ©_Õ·Õ¡Õ¢Õ¡Õ©'.split( 22592 '_' 22593 ), 22594 weekdaysShort: 'Õ¯ÖÕ¯_Õ¥ÖÕ¯_Õ¥ÖÖ_Õ¹ÖÖ_Õ°Õ¶Õ£_Õ¸ÖÖÕ¢_Õ·Õ¢Õ©'.split('_'), 22595 weekdaysMin: 'Õ¯ÖÕ¯_Õ¥ÖÕ¯_Õ¥ÖÖ_Õ¹ÖÖ_Õ°Õ¶Õ£_Õ¸ÖÖÕ¢_Õ·Õ¢Õ©'.split('_'), 22596 longDateFormat: { 22597 LT: 'HH:mm', 22598 LTS: 'HH:mm:ss', 22599 L: 'DD.MM.YYYY', 22600 LL: 'D MMMM YYYY Õ©.', 22601 LLL: 'D MMMM YYYY Õ©., HH:mm', 22602 LLLL: 'dddd, D MMMM YYYY Õ©., HH:mm', 22603 }, 22604 calendar: { 22605 sameDay: '[Õ¡ÕµÕ½Ö Ö] LT', 22606 nextDay: '[Õ¾Õ¡Õ²Õ¨] LT', 22607 lastDay: '[Õ¥ÖÕ¥Õ¯] LT', 22608 nextWeek: function () { 22609 return 'dddd [Ö ÖÕ¨ ÕªÕ¡Õ´Õ¨] LT'; 22610 }, 22611 lastWeek: function () { 22612 return '[Õ¡Õ¶ÖÕ¡Õ®] dddd [Ö ÖÕ¨ ÕªÕ¡Õ´Õ¨] LT'; 22613 }, 22614 sameElse: 'L', 22615 }, 22616 relativeTime: { 22617 future: '%s Õ°Õ¥Õ¿Õ¸', 22618 past: '%s Õ¡Õ¼Õ¡Õ»', 22619 s: 'Õ´Õ« ÖÕ¡Õ¶Õ« Õ¾Õ¡ÕµÖÕ¯ÕµÕ¡Õ¶', 22620 ss: '%d Õ¾Õ¡ÕµÖÕ¯ÕµÕ¡Õ¶', 22621 m: 'ÖÕ¸ÕºÕ¥', 22622 mm: '%d ÖÕ¸ÕºÕ¥', 22623 h: 'ÕªÕ¡Õ´', 22624 hh: '%d ÕªÕ¡Õ´', 22625 d: 'Ö Ö', 22626 dd: '%d Ö Ö', 22627 M: 'Õ¡Õ´Õ«Õ½', 22628 MM: '%d Õ¡Õ´Õ«Õ½', 22629 y: 'Õ¿Õ¡ÖÕ«', 22630 yy: '%d Õ¿Õ¡ÖÕ«', 22631 }, 22632 meridiemParse: /Õ£Õ«Õ·Õ¥ÖÕ¾Õ¡|Õ¡Õ¼Õ¡Õ¾Õ¸Õ¿Õ¾Õ¡|ÖÕ¥ÖÕ¥Õ¯Õ¾Õ¡|Õ¥ÖÕ¥Õ¯Õ¸ÕµÕ¡Õ¶/, 22633 isPM: function (input) { 22634 return /^(ÖÕ¥ÖÕ¥Õ¯Õ¾Õ¡|Õ¥ÖÕ¥Õ¯Õ¸ÕµÕ¡Õ¶)$/.test(input); 22635 }, 22636 meridiem: function (hour) { 22637 if (hour < 4) { 22638 return 'Õ£Õ«Õ·Õ¥ÖÕ¾Õ¡'; 22639 } else if (hour < 12) { 22640 return 'Õ¡Õ¼Õ¡Õ¾Õ¸Õ¿Õ¾Õ¡'; 22641 } else if (hour < 17) { 22642 return 'ÖÕ¥ÖÕ¥Õ¯Õ¾Õ¡'; 22643 } else { 22644 return 'Õ¥ÖÕ¥Õ¯Õ¸ÕµÕ¡Õ¶'; 22645 } 22646 }, 22647 dayOfMonthOrdinalParse: /\d{1,2}|\d{1,2}-(Õ«Õ¶|ÖÕ¤)/, 22648 ordinal: function (number, period) { 22649 switch (period) { 22650 case 'DDD': 22651 case 'w': 22652 case 'W': 22653 case 'DDDo': 22654 if (number === 1) { 22655 return number + '-Õ«Õ¶'; 22656 } 22657 return number + '-ÖÕ¤'; 22658 default: 22659 return number; 22660 } 22661 }, 22662 week: { 22663 dow: 1, // Monday is the first day of the week. 22664 doy: 7, // The week that contains Jan 7th is the first week of the year. 22665 }, 22666 }); 22667 22668 return hyAm; 22669 22670}))); 22671 22672 22673/***/ }), 22674
vendor: 3,140 bytes, lines 22675-22769
22675/***/ "./node_modules/moment/locale/id.js": 22676/*!******************************************!*\ 22677 !*** ./node_modules/moment/locale/id.js ***! 22678 \******************************************/ 22679/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 22680 22681//! moment.js locale configuration 22682//! locale : Indonesian [id] 22683//! author : Mohammad Satrio Utomo : https://github.com/tyok 22684//! reference: http://id.wikisource.org/wiki/Pedoman_Umum_Ejaan_Bahasa_Indonesia_yang_Disempurnakan 22685 22686;(function (global, factory) { 22687 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 22688 0 22689}(this, (function (moment) { 'use strict'; 22690 22691 //! moment.js locale configuration 22692 22693 var id = moment.defineLocale('id', { 22694 months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember'.split( 22695 '_' 22696 ), 22697 monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des'.split('_'), 22698 weekdays: 'Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu'.split('_'), 22699 weekdaysShort: 'Min_Sen_Sel_Rab_Kam_Jum_Sab'.split('_'), 22700 weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sb'.split('_'), 22701 longDateFormat: { 22702 LT: 'HH.mm', 22703 LTS: 'HH.mm.ss', 22704 L: 'DD/MM/YYYY', 22705 LL: 'D MMMM YYYY', 22706 LLL: 'D MMMM YYYY [pukul] HH.mm', 22707 LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm', 22708 }, 22709 meridiemParse: /pagi|siang|sore|malam/, 22710 meridiemHour: function (hour, meridiem) { 22711 if (hour === 12) { 22712 hour = 0; 22713 } 22714 if (meridiem === 'pagi') { 22715 return hour; 22716 } else if (meridiem === 'siang') { 22717 return hour >= 11 ? hour : hour + 12; 22718 } else if (meridiem === 'sore' || meridiem === 'malam') { 22719 return hour + 12; 22720 } 22721 }, 22722 meridiem: function (hours, minutes, isLower) { 22723 if (hours < 11) { 22724 return 'pagi'; 22725 } else if (hours < 15) { 22726 return 'siang'; 22727 } else if (hours < 19) { 22728 return 'sore'; 22729 } else { 22730 return 'malam'; 22731 } 22732 }, 22733 calendar: { 22734 sameDay: '[Hari ini pukul] LT', 22735 nextDay: '[Besok pukul] LT', 22736 nextWeek: 'dddd [pukul] LT', 22737 lastDay: '[Kemarin pukul] LT', 22738 lastWeek: 'dddd [lalu pukul] LT', 22739 sameElse: 'L', 22740 }, 22741 relativeTime: { 22742 future: 'dalam %s', 22743 past: '%s yang lalu', 22744 s: 'beberapa detik', 22745 ss: '%d detik', 22746 m: 'semenit', 22747 mm: '%d menit', 22748 h: 'sejam', 22749 hh: '%d jam', 22750 d: 'sehari', 22751 dd: '%d hari', 22752 M: 'sebulan', 22753 MM: '%d bulan', 22754 y: 'setahun', 22755 yy: '%d tahun', 22756 }, 22757 week: { 22758 dow: 0, // Sunday is the first day of the week. 22759 doy: 6, // The week that contains Jan 6th is the first week of the year. 22760 }, 22761 }); 22762 22763 return id; 22764 22765}))); 22766 22767 22768/***/ }), 22769
vendor: 5,479 bytes, lines 22770-22928
22770/***/ "./node_modules/moment/locale/is.js": 22771/*!******************************************!*\ 22772 !*** ./node_modules/moment/locale/is.js ***! 22773 \******************************************/ 22774/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 22775 22776//! moment.js locale configuration 22777//! locale : Icelandic [is] 22778//! author : Hinrik Ãrn Sigurðsson : https://github.com/hinrik 22779 22780;(function (global, factory) { 22781 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 22782 0 22783}(this, (function (moment) { 'use strict'; 22784 22785 //! moment.js locale configuration 22786 22787 function plural(n) { 22788 if (n % 100 === 11) { 22789 return true; 22790 } else if (n % 10 === 1) { 22791 return false; 22792 } 22793 return true; 22794 } 22795 function translate(number, withoutSuffix, key, isFuture) { 22796 var result = number + ' '; 22797 switch (key) { 22798 case 's': 22799 return withoutSuffix || isFuture 22800 ? 'nokkrar sekúndur' 22801 : 'nokkrum sekúndum'; 22802 case 'ss': 22803 if (plural(number)) { 22804 return ( 22805 result + 22806 (withoutSuffix || isFuture ? 'sekúndur' : 'sekúndum') 22807 ); 22808 } 22809 return result + 'sekúnda'; 22810 case 'm': 22811 return withoutSuffix ? 'mÃnúta' : 'mÃnútu'; 22812 case 'mm': 22813 if (plural(number)) { 22814 return ( 22815 result + (withoutSuffix || isFuture ? 'mÃnútur' : 'mÃnútum') 22816 ); 22817 } else if (withoutSuffix) { 22818 return result + 'mÃnúta'; 22819 } 22820 return result + 'mÃnútu'; 22821 case 'hh': 22822 if (plural(number)) { 22823 return ( 22824 result + 22825 (withoutSuffix || isFuture 22826 ? 'klukkustundir' 22827 : 'klukkustundum') 22828 ); 22829 } 22830 return result + 'klukkustund'; 22831 case 'd': 22832 if (withoutSuffix) { 22833 return 'dagur'; 22834 } 22835 return isFuture ? 'dag' : 'degi'; 22836 case 'dd': 22837 if (plural(number)) { 22838 if (withoutSuffix) { 22839 return result + 'dagar'; 22840 } 22841 return result + (isFuture ? 'daga' : 'dögum'); 22842 } else if (withoutSuffix) { 22843 return result + 'dagur'; 22844 } 22845 return result + (isFuture ? 'dag' : 'degi'); 22846 case 'M': 22847 if (withoutSuffix) { 22848 return 'mánuður'; 22849 } 22850 return isFuture ? 'mánuð' : 'mánuði'; 22851 case 'MM': 22852 if (plural(number)) { 22853 if (withoutSuffix) { 22854 return result + 'mánuðir'; 22855 } 22856 return result + (isFuture ? 'mánuði' : 'mánuðum'); 22857 } else if (withoutSuffix) { 22858 return result + 'mánuður'; 22859 } 22860 return result + (isFuture ? 'mánuð' : 'mánuði'); 22861 case 'y': 22862 return withoutSuffix || isFuture ? 'ár' : 'ári'; 22863 case 'yy': 22864 if (plural(number)) { 22865 return result + (withoutSuffix || isFuture ? 'ár' : 'árum'); 22866 } 22867 return result + (withoutSuffix || isFuture ? 'ár' : 'ári'); 22868 } 22869 } 22870 22871 var is = moment.defineLocale('is', { 22872 months: 'janúar_febrúar_mars_aprÃl_maÃ_júnÃ_júlÃ_ágúst_september_október_nóvember_desember'.split( 22873 '_' 22874 ), 22875 monthsShort: 'jan_feb_mar_apr_maÃ_jún_júl_ágú_sep_okt_nóv_des'.split('_'), 22876 weekdays: 22877 'sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur'.split( 22878 '_' 22879 ), 22880 weekdaysShort: 'sun_mán_þri_mið_fim_fös_lau'.split('_'), 22881 weekdaysMin: 'Su_Má_Ãr_Mi_Fi_Fö_La'.split('_'), 22882 longDateFormat: { 22883 LT: 'H:mm', 22884 LTS: 'H:mm:ss', 22885 L: 'DD.MM.YYYY', 22886 LL: 'D. MMMM YYYY', 22887 LLL: 'D. MMMM YYYY [kl.] H:mm', 22888 LLLL: 'dddd, D. MMMM YYYY [kl.] H:mm', 22889 }, 22890 calendar: { 22891 sameDay: '[à dag kl.] LT', 22892 nextDay: '[á morgun kl.] LT', 22893 nextWeek: 'dddd [kl.] LT', 22894 lastDay: '[à gær kl.] LT', 22895 lastWeek: '[sÃðasta] dddd [kl.] LT', 22896 sameElse: 'L', 22897 }, 22898 relativeTime: { 22899 future: 'eftir %s', 22900 past: 'fyrir %s sÃðan', 22901 s: translate, 22902 ss: translate, 22903 m: translate, 22904 mm: translate, 22905 h: 'klukkustund', 22906 hh: translate, 22907 d: translate, 22908 dd: translate, 22909 M: translate, 22910 MM: translate, 22911 y: translate, 22912 yy: translate, 22913 }, 22914 dayOfMonthOrdinalParse: /\d{1,2}\./, 22915 ordinal: '%d.', 22916 week: { 22917 dow: 1, // Monday is the first day of the week. 22918 doy: 4, // The week that contains Jan 4th is the first week of the year. 22919 }, 22920 }); 22921 22922 return is; 22923 22924}))); 22925 22926 22927/***/ }), 22928
vendor: 2,678 bytes, lines 22929-23011
22929/***/ "./node_modules/moment/locale/it-ch.js": 22930/*!*********************************************!*\ 22931 !*** ./node_modules/moment/locale/it-ch.js ***! 22932 \*********************************************/ 22933/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 22934 22935//! moment.js locale configuration 22936//! locale : Italian (Switzerland) [it-ch] 22937//! author : xfh : https://github.com/xfh 22938 22939;(function (global, factory) { 22940 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 22941 0 22942}(this, (function (moment) { 'use strict'; 22943 22944 //! moment.js locale configuration 22945 22946 var itCh = moment.defineLocale('it-ch', { 22947 months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split( 22948 '_' 22949 ), 22950 monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'), 22951 weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split( 22952 '_' 22953 ), 22954 weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'), 22955 weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'), 22956 longDateFormat: { 22957 LT: 'HH:mm', 22958 LTS: 'HH:mm:ss', 22959 L: 'DD.MM.YYYY', 22960 LL: 'D MMMM YYYY', 22961 LLL: 'D MMMM YYYY HH:mm', 22962 LLLL: 'dddd D MMMM YYYY HH:mm', 22963 }, 22964 calendar: { 22965 sameDay: '[Oggi alle] LT', 22966 nextDay: '[Domani alle] LT', 22967 nextWeek: 'dddd [alle] LT', 22968 lastDay: '[Ieri alle] LT', 22969 lastWeek: function () { 22970 switch (this.day()) { 22971 case 0: 22972 return '[la scorsa] dddd [alle] LT'; 22973 default: 22974 return '[lo scorso] dddd [alle] LT'; 22975 } 22976 }, 22977 sameElse: 'L', 22978 }, 22979 relativeTime: { 22980 future: function (s) { 22981 return (/^[0-9].+$/.test(s) ? 'tra' : 'in') + ' ' + s; 22982 }, 22983 past: '%s fa', 22984 s: 'alcuni secondi', 22985 ss: '%d secondi', 22986 m: 'un minuto', 22987 mm: '%d minuti', 22988 h: "un'ora", 22989 hh: '%d ore', 22990 d: 'un giorno', 22991 dd: '%d giorni', 22992 M: 'un mese', 22993 MM: '%d mesi', 22994 y: 'un anno', 22995 yy: '%d anni', 22996 }, 22997 dayOfMonthOrdinalParse: /\d{1,2}º/, 22998 ordinal: '%dº', 22999 week: { 23000 dow: 1, // Monday is the first day of the week. 23001 doy: 4, // The week that contains Jan 4th is the first week of the year. 23002 }, 23003 }); 23004 23005 return itCh; 23006 23007}))); 23008 23009 23010/***/ }), 23011
vendor: 4,140 bytes, lines 23012-23136
23012/***/ "./node_modules/moment/locale/it.js": 23013/*!******************************************!*\ 23014 !*** ./node_modules/moment/locale/it.js ***! 23015 \******************************************/ 23016/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 23017 23018//! moment.js locale configuration 23019//! locale : Italian [it] 23020//! author : Lorenzo : https://github.com/aliem 23021//! author: Mattia Larentis: https://github.com/nostalgiaz 23022//! author: Marco : https://github.com/Manfre98 23023 23024;(function (global, factory) { 23025 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 23026 0 23027}(this, (function (moment) { 'use strict'; 23028 23029 //! moment.js locale configuration 23030 23031 var it = moment.defineLocale('it', { 23032 months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split( 23033 '_' 23034 ), 23035 monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'), 23036 weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split( 23037 '_' 23038 ), 23039 weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'), 23040 weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'), 23041 longDateFormat: { 23042 LT: 'HH:mm', 23043 LTS: 'HH:mm:ss', 23044 L: 'DD/MM/YYYY', 23045 LL: 'D MMMM YYYY', 23046 LLL: 'D MMMM YYYY HH:mm', 23047 LLLL: 'dddd D MMMM YYYY HH:mm', 23048 }, 23049 calendar: { 23050 sameDay: function () { 23051 return ( 23052 '[Oggi a' + 23053 (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") + 23054 ']LT' 23055 ); 23056 }, 23057 nextDay: function () { 23058 return ( 23059 '[Domani a' + 23060 (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") + 23061 ']LT' 23062 ); 23063 }, 23064 nextWeek: function () { 23065 return ( 23066 'dddd [a' + 23067 (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") + 23068 ']LT' 23069 ); 23070 }, 23071 lastDay: function () { 23072 return ( 23073 '[Ieri a' + 23074 (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") + 23075 ']LT' 23076 ); 23077 }, 23078 lastWeek: function () { 23079 switch (this.day()) { 23080 case 0: 23081 return ( 23082 '[La scorsa] dddd [a' + 23083 (this.hours() > 1 23084 ? 'lle ' 23085 : this.hours() === 0 23086 ? ' ' 23087 : "ll'") + 23088 ']LT' 23089 ); 23090 default: 23091 return ( 23092 '[Lo scorso] dddd [a' + 23093 (this.hours() > 1 23094 ? 'lle ' 23095 : this.hours() === 0 23096 ? ' ' 23097 : "ll'") + 23098 ']LT' 23099 ); 23100 } 23101 }, 23102 sameElse: 'L', 23103 }, 23104 relativeTime: { 23105 future: 'tra %s', 23106 past: '%s fa', 23107 s: 'alcuni secondi', 23108 ss: '%d secondi', 23109 m: 'un minuto', 23110 mm: '%d minuti', 23111 h: "un'ora", 23112 hh: '%d ore', 23113 d: 'un giorno', 23114 dd: '%d giorni', 23115 w: 'una settimana', 23116 ww: '%d settimane', 23117 M: 'un mese', 23118 MM: '%d mesi', 23119 y: 'un anno', 23120 yy: '%d anni', 23121 }, 23122 dayOfMonthOrdinalParse: /\d{1,2}º/, 23123 ordinal: '%dº', 23124 week: { 23125 dow: 1, // Monday is the first day of the week. 23126 doy: 4, // The week that contains Jan 4th is the first week of the year. 23127 }, 23128 }); 23129 23130 return it; 23131 23132}))); 23133 23134 23135/***/ }), 23136
vendor: 5,012 bytes, lines 23137-23303
23137/***/ "./node_modules/moment/locale/ja.js": 23138/*!******************************************!*\ 23139 !*** ./node_modules/moment/locale/ja.js ***! 23140 \******************************************/ 23141/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 23142 23143//! moment.js locale configuration 23144//! locale : Japanese [ja] 23145//! author : LI Long : https://github.com/baryon 23146 23147;(function (global, factory) { 23148 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 23149 0 23150}(this, (function (moment) { 'use strict'; 23151 23152 //! moment.js locale configuration 23153 23154 var ja = moment.defineLocale('ja', { 23155 eras: [ 23156 { 23157 since: '2019-05-01', 23158 offset: 1, 23159 name: '令å', 23160 narrow: 'ã¿', 23161 abbr: 'R', 23162 }, 23163 { 23164 since: '1989-01-08', 23165 until: '2019-04-30', 23166 offset: 1, 23167 name: 'å¹³æ', 23168 narrow: 'ã»', 23169 abbr: 'H', 23170 }, 23171 { 23172 since: '1926-12-25', 23173 until: '1989-01-07', 23174 offset: 1, 23175 name: 'æå', 23176 narrow: 'ã¼', 23177 abbr: 'S', 23178 }, 23179 { 23180 since: '1912-07-30', 23181 until: '1926-12-24', 23182 offset: 1, 23183 name: '大æ£', 23184 narrow: 'ã½', 23185 abbr: 'T', 23186 }, 23187 { 23188 since: '1873-01-01', 23189 until: '1912-07-29', 23190 offset: 6, 23191 name: 'ææ²»', 23192 narrow: 'ã¾', 23193 abbr: 'M', 23194 }, 23195 { 23196 since: '0001-01-01', 23197 until: '1873-12-31', 23198 offset: 1, 23199 name: '西æ¦', 23200 narrow: 'AD', 23201 abbr: 'AD', 23202 }, 23203 { 23204 since: '0000-12-31', 23205 until: -Infinity, 23206 offset: 1, 23207 name: 'ç´å å', 23208 narrow: 'BC', 23209 abbr: 'BC', 23210 }, 23211 ], 23212 eraYearOrdinalRegex: /(å |\d+)å¹´/, 23213 eraYearOrdinalParse: function (input, match) { 23214 return match[1] === 'å ' ? 1 : parseInt(match[1] || input, 10); 23215 }, 23216 months: '1æ_2æ_3æ_4æ_5æ_6æ_7æ_8æ_9æ_10æ_11æ_12æ'.split('_'), 23217 monthsShort: '1æ_2æ_3æ_4æ_5æ_6æ_7æ_8æ_9æ_10æ_11æ_12æ'.split( 23218 '_' 23219 ), 23220 weekdays: 'æ¥ææ¥_æææ¥_ç«ææ¥_æ°´ææ¥_æ¨ææ¥_éææ¥_åææ¥'.split('_'), 23221 weekdaysShort: 'æ¥_æ_ç«_æ°´_æ¨_é_å'.split('_'), 23222 weekdaysMin: 'æ¥_æ_ç«_æ°´_æ¨_é_å'.split('_'), 23223 longDateFormat: { 23224 LT: 'HH:mm', 23225 LTS: 'HH:mm:ss', 23226 L: 'YYYY/MM/DD', 23227 LL: 'YYYYå¹´MæDæ¥', 23228 LLL: 'YYYYå¹´MæDæ¥ HH:mm', 23229 LLLL: 'YYYYå¹´MæDæ¥ dddd HH:mm', 23230 l: 'YYYY/MM/DD', 23231 ll: 'YYYYå¹´MæDæ¥', 23232 lll: 'YYYYå¹´MæDæ¥ HH:mm', 23233 llll: 'YYYYå¹´MæDæ¥(ddd) HH:mm', 23234 }, 23235 meridiemParse: /åå|åå¾/i, 23236 isPM: function (input) { 23237 return input === 'åå¾'; 23238 }, 23239 meridiem: function (hour, minute, isLower) { 23240 if (hour < 12) { 23241 return 'åå'; 23242 } else { 23243 return 'åå¾'; 23244 } 23245 }, 23246 calendar: { 23247 sameDay: '[仿¥] LT', 23248 nextDay: '[ææ¥] LT', 23249 nextWeek: function (now) { 23250 if (now.week() !== this.week()) { 23251 return '[æ¥é±]dddd LT'; 23252 } else { 23253 return 'dddd LT'; 23254 } 23255 }, 23256 lastDay: '[æ¨æ¥] LT', 23257 lastWeek: function (now) { 23258 if (this.week() !== now.week()) { 23259 return '[å é±]dddd LT'; 23260 } else { 23261 return 'dddd LT'; 23262 } 23263 }, 23264 sameElse: 'L', 23265 }, 23266 dayOfMonthOrdinalParse: /\d{1,2}æ¥/, 23267 ordinal: function (number, period) { 23268 switch (period) { 23269 case 'y': 23270 return number === 1 ? 'å å¹´' : number + 'å¹´'; 23271 case 'd': 23272 case 'D': 23273 case 'DDD': 23274 return number + 'æ¥'; 23275 default: 23276 return number; 23277 } 23278 }, 23279 relativeTime: { 23280 future: '%så¾', 23281 past: '%så', 23282 s: 'æ°ç§', 23283 ss: '%dç§', 23284 m: '1å', 23285 mm: '%då', 23286 h: '1æé', 23287 hh: '%dæé', 23288 d: '1æ¥', 23289 dd: '%dæ¥', 23290 M: '1ã¶æ', 23291 MM: '%dã¶æ', 23292 y: '1å¹´', 23293 yy: '%då¹´', 23294 }, 23295 }); 23296 23297 return ja; 23298 23299}))); 23300 23301 23302/***/ }), 23303
vendor: 3,149 bytes, lines 23304-23398
23304/***/ "./node_modules/moment/locale/jv.js": 23305/*!******************************************!*\ 23306 !*** ./node_modules/moment/locale/jv.js ***! 23307 \******************************************/ 23308/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 23309 23310//! moment.js locale configuration 23311//! locale : Javanese [jv] 23312//! author : Rony Lantip : https://github.com/lantip 23313//! reference: http://jv.wikipedia.org/wiki/Basa_Jawa 23314 23315;(function (global, factory) { 23316 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 23317 0 23318}(this, (function (moment) { 'use strict'; 23319 23320 //! moment.js locale configuration 23321 23322 var jv = moment.defineLocale('jv', { 23323 months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember'.split( 23324 '_' 23325 ), 23326 monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des'.split('_'), 23327 weekdays: 'Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu'.split('_'), 23328 weekdaysShort: 'Min_Sen_Sel_Reb_Kem_Jem_Sep'.split('_'), 23329 weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sp'.split('_'), 23330 longDateFormat: { 23331 LT: 'HH.mm', 23332 LTS: 'HH.mm.ss', 23333 L: 'DD/MM/YYYY', 23334 LL: 'D MMMM YYYY', 23335 LLL: 'D MMMM YYYY [pukul] HH.mm', 23336 LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm', 23337 }, 23338 meridiemParse: /enjing|siyang|sonten|ndalu/, 23339 meridiemHour: function (hour, meridiem) { 23340 if (hour === 12) { 23341 hour = 0; 23342 } 23343 if (meridiem === 'enjing') { 23344 return hour; 23345 } else if (meridiem === 'siyang') { 23346 return hour >= 11 ? hour : hour + 12; 23347 } else if (meridiem === 'sonten' || meridiem === 'ndalu') { 23348 return hour + 12; 23349 } 23350 }, 23351 meridiem: function (hours, minutes, isLower) { 23352 if (hours < 11) { 23353 return 'enjing'; 23354 } else if (hours < 15) { 23355 return 'siyang'; 23356 } else if (hours < 19) { 23357 return 'sonten'; 23358 } else { 23359 return 'ndalu'; 23360 } 23361 }, 23362 calendar: { 23363 sameDay: '[Dinten puniko pukul] LT', 23364 nextDay: '[Mbenjang pukul] LT', 23365 nextWeek: 'dddd [pukul] LT', 23366 lastDay: '[Kala wingi pukul] LT', 23367 lastWeek: 'dddd [kepengker pukul] LT', 23368 sameElse: 'L', 23369 }, 23370 relativeTime: { 23371 future: 'wonten ing %s', 23372 past: '%s ingkang kepengker', 23373 s: 'sawetawis detik', 23374 ss: '%d detik', 23375 m: 'setunggal menit', 23376 mm: '%d menit', 23377 h: 'setunggal jam', 23378 hh: '%d jam', 23379 d: 'sedinten', 23380 dd: '%d dinten', 23381 M: 'sewulan', 23382 MM: '%d wulan', 23383 y: 'setaun', 23384 yy: '%d taun', 23385 }, 23386 week: { 23387 dow: 1, // Monday is the first day of the week. 23388 doy: 7, // The week that contains Jan 7th is the first week of the year. 23389 }, 23390 }); 23391 23392 return jv; 23393 23394}))); 23395 23396 23397/***/ }), 23398
vendor: 4,337 bytes, lines 23399-23509
23399/***/ "./node_modules/moment/locale/ka.js": 23400/*!******************************************!*\ 23401 !*** ./node_modules/moment/locale/ka.js ***! 23402 \******************************************/ 23403/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 23404 23405//! moment.js locale configuration 23406//! locale : Georgian [ka] 23407//! author : Irakli Janiashvili : https://github.com/IrakliJani 23408 23409;(function (global, factory) { 23410 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 23411 0 23412}(this, (function (moment) { 'use strict'; 23413 23414 //! moment.js locale configuration 23415 23416 var ka = moment.defineLocale('ka', { 23417 months: 'áááááá á_ááááá áááá_ááá á¢á_ááá ááá_áááá¡á_ááááá¡á_ááááá¡á_ááááá¡á¢á_á¡áá¥á¢ááááá á_áá¥á¢ááááá á_ááááááá á_áááááááá á'.split( 23418 '_' 23419 ), 23420 monthsShort: 'ááá_ááá_ááá _ááá _ááá_ááá_ááá_ááá_á¡áá¥_áá¥á¢_ááá_ááá'.split('_'), 23421 weekdays: { 23422 standalone: 23423 'áááá á_áá á¨ááááá_á¡ááá¨ááááá_ááá®á¨ááááá_á®á£áá¨ááááá_ááá áá¡áááá_á¨ááááá'.split( 23424 '_' 23425 ), 23426 format: 'áááá áá¡_áá á¨ááááá¡_á¡ááá¨ááááá¡_ááá®á¨ááááá¡_á®á£áá¨ááááá¡_ááá áá¡áááá¡_á¨ááááá¡'.split( 23427 '_' 23428 ), 23429 isFormat: /(á¬ááá|á¨ááááá)/, 23430 }, 23431 weekdaysShort: 'ááá_áá á¨_á¡áá_ááá®_á®á£á_ááá _á¨áá'.split('_'), 23432 weekdaysMin: 'áá_áá _á¡á_áá_á®á£_áá_á¨á'.split('_'), 23433 longDateFormat: { 23434 LT: 'HH:mm', 23435 LTS: 'HH:mm:ss', 23436 L: 'DD/MM/YYYY', 23437 LL: 'D MMMM YYYY', 23438 LLL: 'D MMMM YYYY HH:mm', 23439 LLLL: 'dddd, D MMMM YYYY HH:mm', 23440 }, 23441 calendar: { 23442 sameDay: '[áá¦áá¡] LT[-áá]', 23443 nextDay: '[á®ááá] LT[-áá]', 23444 lastDay: '[áá£á¨áá] LT[-áá]', 23445 nextWeek: '[á¨ááááá] dddd LT[-áá]', 23446 lastWeek: '[á¬ááá] dddd LT-áá', 23447 sameElse: 'L', 23448 }, 23449 relativeTime: { 23450 future: function (s) { 23451 return s.replace( 23452 /(á¬áá|á¬á£á|á¡ááá|á¬áá|áá¦|áá)(á|á)/, 23453 function ($0, $1, $2) { 23454 return $2 === 'á' ? $1 + 'á¨á' : $1 + $2 + 'á¨á'; 23455 } 23456 ); 23457 }, 23458 past: function (s) { 23459 if (/(á¬ááá|á¬á£áá|á¡áááá|áá¦á|ááá)/.test(s)) { 23460 return s.replace(/(á|á)$/, 'áá¡ á¬áá'); 23461 } 23462 if (/á¬ááá/.test(s)) { 23463 return s.replace(/á¬ááá$/, 'á¬ááá¡ á¬áá'); 23464 } 23465 return s; 23466 }, 23467 s: 'á áááááááá á¬ááá', 23468 ss: '%d á¬ááá', 23469 m: 'á¬á£áá', 23470 mm: '%d á¬á£áá', 23471 h: 'á¡áááá', 23472 hh: '%d á¡áááá', 23473 d: 'áá¦á', 23474 dd: '%d áá¦á', 23475 M: 'ááá', 23476 MM: '%d ááá', 23477 y: 'á¬ááá', 23478 yy: '%d á¬ááá', 23479 }, 23480 dayOfMonthOrdinalParse: /0|1-áá|áá-\d{1,2}|\d{1,2}-á/, 23481 ordinal: function (number) { 23482 if (number === 0) { 23483 return number; 23484 } 23485 if (number === 1) { 23486 return number + '-áá'; 23487 } 23488 if ( 23489 number < 20 || 23490 (number <= 100 && number % 20 === 0) || 23491 number % 100 === 0 23492 ) { 23493 return 'áá-' + number; 23494 } 23495 return number + '-á'; 23496 }, 23497 week: { 23498 dow: 1, 23499 doy: 7, 23500 }, 23501 }); 23502 23503 return ka; 23504 23505}))); 23506 23507 23508/***/ }), 23509
vendor: 3,284 bytes, lines 23510-23610
23510/***/ "./node_modules/moment/locale/kk.js": 23511/*!******************************************!*\ 23512 !*** ./node_modules/moment/locale/kk.js ***! 23513 \******************************************/ 23514/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 23515 23516//! moment.js locale configuration 23517//! locale : Kazakh [kk] 23518//! authors : Nurlan Rakhimzhanov : https://github.com/nurlan 23519 23520;(function (global, factory) { 23521 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 23522 0 23523}(this, (function (moment) { 'use strict'; 23524 23525 //! moment.js locale configuration 23526 23527 var suffixes = { 23528 0: '-ÑÑ', 23529 1: '-ÑÑ', 23530 2: '-ÑÑ', 23531 3: '-ÑÑ', 23532 4: '-ÑÑ', 23533 5: '-ÑÑ', 23534 6: '-ÑÑ', 23535 7: '-ÑÑ', 23536 8: '-ÑÑ', 23537 9: '-ÑÑ', 23538 10: '-ÑÑ', 23539 20: '-ÑÑ', 23540 30: '-ÑÑ', 23541 40: '-ÑÑ', 23542 50: '-ÑÑ', 23543 60: '-ÑÑ', 23544 70: '-ÑÑ', 23545 80: '-ÑÑ', 23546 90: '-ÑÑ', 23547 100: '-ÑÑ', 23548 }; 23549 23550 var kk = moment.defineLocale('kk', { 23551 months: 'ÒаңÑаÑ_аÒпан_наÑÑÑз_ÑÓÑÑÑ_мамÑÑ_маÑÑÑм_ÑÑлде_ÑамÑз_ÒÑÑкүйек_Òазан_ÒаÑаÑа_желÑоÒÑан'.split( 23552 '_' 23553 ), 23554 monthsShort: 'Òаң_аÒп_наÑ_ÑÓÑ_мам_маÑ_ÑÑл_Ñам_ÒÑÑ_Òаз_ÒаÑ_жел'.split('_'), 23555 weekdays: 'жекÑенбÑ_дүйÑенбÑ_ÑейÑенбÑ_ÑÓÑÑенбÑ_бейÑенбÑ_жұма_ÑенбÑ'.split( 23556 '_' 23557 ), 23558 weekdaysShort: 'жек_дүй_Ñей_ÑÓÑ_бей_жұм_Ñен'.split('_'), 23559 weekdaysMin: 'жк_дй_Ñй_ÑÑ_бй_жм_Ñн'.split('_'), 23560 longDateFormat: { 23561 LT: 'HH:mm', 23562 LTS: 'HH:mm:ss', 23563 L: 'DD.MM.YYYY', 23564 LL: 'D MMMM YYYY', 23565 LLL: 'D MMMM YYYY HH:mm', 23566 LLLL: 'dddd, D MMMM YYYY HH:mm', 23567 }, 23568 calendar: { 23569 sameDay: '[ÐүгÑн ÑаÒаÑ] LT', 23570 nextDay: '[ÐÑÑең ÑаÒаÑ] LT', 23571 nextWeek: 'dddd [ÑаÒаÑ] LT', 23572 lastDay: '[ÐеÑе ÑаÒаÑ] LT', 23573 lastWeek: '[Ó¨Ñкен апÑанÑÒ£] dddd [ÑаÒаÑ] LT', 23574 sameElse: 'L', 23575 }, 23576 relativeTime: { 23577 future: '%s ÑÑÑнде', 23578 past: '%s бұÑÑн', 23579 s: 'бÑÑнеÑе ÑекÑнд', 23580 ss: '%d ÑекÑнд', 23581 m: 'бÑÑ Ð¼Ð¸Ð½ÑÑ', 23582 mm: '%d минÑÑ', 23583 h: 'бÑÑ ÑаÒаÑ', 23584 hh: '%d ÑаÒаÑ', 23585 d: 'бÑÑ ÐºÒ¯Ð½', 23586 dd: '%d күн', 23587 M: 'бÑÑ Ð°Ð¹', 23588 MM: '%d ай', 23589 y: 'бÑÑ Ð¶Ñл', 23590 yy: '%d жÑл', 23591 }, 23592 dayOfMonthOrdinalParse: /\d{1,2}-(ÑÑ|ÑÑ)/, 23593 ordinal: function (number) { 23594 var a = number % 10, 23595 b = number >= 100 ? 100 : null; 23596 return number + (suffixes[number] || suffixes[a] || suffixes[b]); 23597 }, 23598 week: { 23599 dow: 1, // Monday is the first day of the week. 23600 doy: 7, // The week that contains Jan 7th is the first week of the year. 23601 }, 23602 }); 23603 23604 return kk; 23605 23606}))); 23607 23608 23609/***/ }), 23610
vendor: 4,235 bytes, lines 23611-23732
23611/***/ "./node_modules/moment/locale/km.js": 23612/*!******************************************!*\ 23613 !*** ./node_modules/moment/locale/km.js ***! 23614 \******************************************/ 23615/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 23616 23617//! moment.js locale configuration 23618//! locale : Cambodian [km] 23619//! author : Kruy Vanna : https://github.com/kruyvanna 23620 23621;(function (global, factory) { 23622 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 23623 0 23624}(this, (function (moment) { 'use strict'; 23625 23626 //! moment.js locale configuration 23627 23628 var symbolMap = { 23629 1: 'á¡', 23630 2: 'á¢', 23631 3: 'á£', 23632 4: 'á¤', 23633 5: 'á¥', 23634 6: 'á¦', 23635 7: 'á§', 23636 8: 'á¨', 23637 9: 'á©', 23638 0: 'á ', 23639 }, 23640 numberMap = { 23641 'á¡': '1', 23642 'á¢': '2', 23643 'á£': '3', 23644 'á¤': '4', 23645 'á¥': '5', 23646 'á¦': '6', 23647 'á§': '7', 23648 'á¨': '8', 23649 'á©': '9', 23650 'á ': '0', 23651 }; 23652 23653 var km = moment.defineLocale('km', { 23654 months: 'áááá¶_áá»áááá_áá¸áá¶_áááá¶_á§ááá¶_áá·áá»áá¶_áááááá¶_áá¸á á¶_ááááá¶_áá»áá¶_áá·á ááá·áá¶_áááá¼'.split( 23655 '_' 23656 ), 23657 monthsShort: 23658 'áááá¶_áá»áááá_áá¸áá¶_áááá¶_á§ááá¶_áá·áá»áá¶_áááááá¶_áá¸á á¶_ááááá¶_áá»áá¶_áá·á ááá·áá¶_áááá¼'.split( 23659 '_' 23660 ), 23661 weekdays: 'á¢á¶áá·ááá_á áááá_á¢áááá¶á_áá»á_áááá ááááá·á_áá»ááá_áá áá'.split('_'), 23662 weekdaysShort: 'á¢á¶_á _á¢_á_ááá_áá»_á'.split('_'), 23663 weekdaysMin: 'á¢á¶_á _á¢_á_ááá_áá»_á'.split('_'), 23664 weekdaysParseExact: true, 23665 longDateFormat: { 23666 LT: 'HH:mm', 23667 LTS: 'HH:mm:ss', 23668 L: 'DD/MM/YYYY', 23669 LL: 'D MMMM YYYY', 23670 LLL: 'D MMMM YYYY HH:mm', 23671 LLLL: 'dddd, D MMMM YYYY HH:mm', 23672 }, 23673 meridiemParse: /áááá¹á|áááá¶á /, 23674 isPM: function (input) { 23675 return input === 'áááá¶á '; 23676 }, 23677 meridiem: function (hour, minute, isLower) { 23678 if (hour < 12) { 23679 return 'áááá¹á'; 23680 } else { 23681 return 'áááá¶á '; 23682 } 23683 }, 23684 calendar: { 23685 sameDay: '[ááááááá áááá] LT', 23686 nextDay: '[ááá¢áá áááá] LT', 23687 nextWeek: 'dddd [áááá] LT', 23688 lastDay: '[áááá·ááá·á áááá] LT', 23689 lastWeek: 'dddd [ááááá¶á ááá»á] [áááá] LT', 23690 sameElse: 'L', 23691 }, 23692 relativeTime: { 23693 future: '%sááá', 23694 past: '%sáá»á', 23695 s: 'ááá»áááá¶ááá·áá¶áá¸', 23696 ss: '%d áá·áá¶áá¸', 23697 m: 'áá½ááá¶áá¸', 23698 mm: '%d áá¶áá¸', 23699 h: 'áá½ááááá', 23700 hh: '%d áááá', 23701 d: 'áá½ááááá', 23702 dd: '%d áááá', 23703 M: 'áá½ááá', 23704 MM: '%d áá', 23705 y: 'áá½ááááá¶á', 23706 yy: '%d áááá¶á', 23707 }, 23708 dayOfMonthOrdinalParse: /áá¸\d{1,2}/, 23709 ordinal: 'áá¸%d', 23710 preparse: function (string) { 23711 return string.replace(/[á¡á¢á£á¤á¥á¦á§á¨á©á ]/g, function (match) { 23712 return numberMap[match]; 23713 }); 23714 }, 23715 postformat: function (string) { 23716 return string.replace(/\d/g, function (match) { 23717 return symbolMap[match]; 23718 }); 23719 }, 23720 week: { 23721 dow: 1, // Monday is the first day of the week. 23722 doy: 4, // The week that contains Jan 4th is the first week of the year. 23723 }, 23724 }); 23725 23726 return km; 23727 23728}))); 23729 23730 23731/***/ }), 23732
vendor: 5,209 bytes, lines 23733-23875
23733/***/ "./node_modules/moment/locale/kn.js": 23734/*!******************************************!*\ 23735 !*** ./node_modules/moment/locale/kn.js ***! 23736 \******************************************/ 23737/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 23738 23739//! moment.js locale configuration 23740//! locale : Kannada [kn] 23741//! author : Rajeev Naik : https://github.com/rajeevnaikte 23742 23743;(function (global, factory) { 23744 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 23745 0 23746}(this, (function (moment) { 'use strict'; 23747 23748 //! moment.js locale configuration 23749 23750 var symbolMap = { 23751 1: 'à³§', 23752 2: '೨', 23753 3: '೩', 23754 4: '೪', 23755 5: '೫', 23756 6: '೬', 23757 7: 'à³', 23758 8: 'à³®', 23759 9: '೯', 23760 0: '೦', 23761 }, 23762 numberMap = { 23763 'à³§': '1', 23764 '೨': '2', 23765 '೩': '3', 23766 '೪': '4', 23767 '೫': '5', 23768 '೬': '6', 23769 'à³': '7', 23770 'à³®': '8', 23771 '೯': '9', 23772 '೦': '0', 23773 }; 23774 23775 var kn = moment.defineLocale('kn', { 23776 months: 'à²à²¨à²µà²°à²¿_ಫà³à²¬à³à²°à²µà²°à²¿_ಮಾರà³à²à³_à²à²ªà³à²°à²¿à²²à³_ಮà³à³_à²à³à²¨à³_à²à³à²²à³à³_à²à²à²¸à³à²à³_ಸà³à²ªà³à²à³à²à²¬à²°à³_ಠà²à³à²à³à³à³à²¬à²°à³_ನವà³à²à²¬à²°à³_ಡಿಸà³à²à²¬à²°à³'.split( 23777 '_' 23778 ), 23779 monthsShort: 23780 'à²à²¨_ಫà³à²¬à³à²°_ಮಾರà³à²à³_à²à²ªà³à²°à²¿à²²à³_ಮà³à³_à²à³à²¨à³_à²à³à²²à³à³_à²à²à²¸à³à²à³_ಸà³à²ªà³à²à³à²_ಠà²à³à²à³à³à³_ನವà³à²_ಡಿಸà³à²'.split( 23781 '_' 23782 ), 23783 monthsParseExact: true, 23784 weekdays: 'à²à²¾à²¨à³à²µà²¾à²°_ಸà³à³à³à²®à²µà²¾à²°_ಮà²à²à²³à²µà²¾à²°_ಬà³à²§à²µà²¾à²°_à²à³à²°à³à²µà²¾à²°_ಶà³à²à³à²°à²µà²¾à²°_ಶನಿವಾರ'.split( 23785 '_' 23786 ), 23787 weekdaysShort: 'à²à²¾à²¨à³_ಸà³à³à³à²®_ಮà²à²à²³_ಬà³à²§_à²à³à²°à³_ಶà³à²à³à²°_ಶನಿ'.split('_'), 23788 weekdaysMin: 'à²à²¾_ಸà³à³à³_ಮà²_ಬà³_à²à³_ಶà³_ಶ'.split('_'), 23789 longDateFormat: { 23790 LT: 'A h:mm', 23791 LTS: 'A h:mm:ss', 23792 L: 'DD/MM/YYYY', 23793 LL: 'D MMMM YYYY', 23794 LLL: 'D MMMM YYYY, A h:mm', 23795 LLLL: 'dddd, D MMMM YYYY, A h:mm', 23796 }, 23797 calendar: { 23798 sameDay: '[à²à²à²¦à³] LT', 23799 nextDay: '[ನಾಳà³] LT', 23800 nextWeek: 'dddd, LT', 23801 lastDay: '[ನಿನà³à²¨à³] LT', 23802 lastWeek: '[à²à³à³à²¨à³à²¯] dddd, LT', 23803 sameElse: 'L', 23804 }, 23805 relativeTime: { 23806 future: '%s ನà²à²¤à²°', 23807 past: '%s ಹಿà²à²¦à³', 23808 s: 'à²à³à²²à²µà³ à²à³à²·à²£à²à²³à³', 23809 ss: '%d ಸà³à²à³à²à²¡à³à²à²³à³', 23810 m: 'à²à²à²¦à³ ನಿಮಿಷ', 23811 mm: '%d ನಿಮಿಷ', 23812 h: 'à²à²à²¦à³ à²à²à²à³', 23813 hh: '%d à²à²à²à³', 23814 d: 'à²à²à²¦à³ ದಿನ', 23815 dd: '%d ದಿನ', 23816 M: 'à²à²à²¦à³ ತಿà²à²à²³à³', 23817 MM: '%d ತಿà²à²à²³à³', 23818 y: 'à²à²à²¦à³ ವರà³à²·', 23819 yy: '%d ವರà³à²·', 23820 }, 23821 preparse: function (string) { 23822 return string.replace(/[೧೨೩೪೫೬à³à³®à³¯à³¦]/g, function (match) { 23823 return numberMap[match]; 23824 }); 23825 }, 23826 postformat: function (string) { 23827 return string.replace(/\d/g, function (match) { 23828 return symbolMap[match]; 23829 }); 23830 }, 23831 meridiemParse: /ರಾತà³à²°à²¿|ಬà³à²³à²¿à²à³à²à³|ಮಧà³à²¯à²¾à²¹à³à²¨|ಸà²à²à³/, 23832 meridiemHour: function (hour, meridiem) { 23833 if (hour === 12) { 23834 hour = 0; 23835 } 23836 if (meridiem === 'ರಾತà³à²°à²¿') { 23837 return hour < 4 ? hour : hour + 12; 23838 } else if (meridiem === 'ಬà³à²³à²¿à²à³à²à³') { 23839 return hour; 23840 } else if (meridiem === 'ಮಧà³à²¯à²¾à²¹à³à²¨') { 23841 return hour >= 10 ? hour : hour + 12; 23842 } else if (meridiem === 'ಸà²à²à³') { 23843 return hour + 12; 23844 } 23845 }, 23846 meridiem: function (hour, minute, isLower) { 23847 if (hour < 4) { 23848 return 'ರಾತà³à²°à²¿'; 23849 } else if (hour < 10) { 23850 return 'ಬà³à²³à²¿à²à³à²à³'; 23851 } else if (hour < 17) { 23852 return 'ಮಧà³à²¯à²¾à²¹à³à²¨'; 23853 } else if (hour < 20) { 23854 return 'ಸà²à²à³'; 23855 } else { 23856 return 'ರಾತà³à²°à²¿'; 23857 } 23858 }, 23859 dayOfMonthOrdinalParse: /\d{1,2}(ನà³à³)/, 23860 ordinal: function (number) { 23861 return number + 'ನà³à³'; 23862 }, 23863 week: { 23864 dow: 0, // Sunday is the first day of the week. 23865 doy: 6, // The week that contains Jan 6th is the first week of the year. 23866 }, 23867 }); 23868 23869 return kn; 23870 23871}))); 23872 23873 23874/***/ }), 23875
vendor: 2,984 bytes, lines 23876-23969
23876/***/ "./node_modules/moment/locale/ko.js": 23877/*!******************************************!*\ 23878 !*** ./node_modules/moment/locale/ko.js ***! 23879 \******************************************/ 23880/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 23881 23882//! moment.js locale configuration 23883//! locale : Korean [ko] 23884//! author : Kyungwook, Park : https://github.com/kyungw00k 23885//! author : Jeeeyul Lee <[email protected]> 23886 23887;(function (global, factory) { 23888 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 23889 0 23890}(this, (function (moment) { 'use strict'; 23891 23892 //! moment.js locale configuration 23893 23894 var ko = moment.defineLocale('ko', { 23895 months: '1ì_2ì_3ì_4ì_5ì_6ì_7ì_8ì_9ì_10ì_11ì_12ì'.split('_'), 23896 monthsShort: '1ì_2ì_3ì_4ì_5ì_6ì_7ì_8ì_9ì_10ì_11ì_12ì'.split( 23897 '_' 23898 ), 23899 weekdays: 'ì¼ìì¼_ììì¼_íìì¼_ììì¼_목ìì¼_ê¸ìì¼_í ìì¼'.split('_'), 23900 weekdaysShort: 'ì¼_ì_í_ì_목_ê¸_í '.split('_'), 23901 weekdaysMin: 'ì¼_ì_í_ì_목_ê¸_í '.split('_'), 23902 longDateFormat: { 23903 LT: 'A h:mm', 23904 LTS: 'A h:mm:ss', 23905 L: 'YYYY.MM.DD.', 23906 LL: 'YYYYë MMMM Dì¼', 23907 LLL: 'YYYYë MMMM Dì¼ A h:mm', 23908 LLLL: 'YYYYë MMMM Dì¼ dddd A h:mm', 23909 l: 'YYYY.MM.DD.', 23910 ll: 'YYYYë MMMM Dì¼', 23911 lll: 'YYYYë MMMM Dì¼ A h:mm', 23912 llll: 'YYYYë MMMM Dì¼ dddd A h:mm', 23913 }, 23914 calendar: { 23915 sameDay: 'ì¤ë LT', 23916 nextDay: 'ë´ì¼ LT', 23917 nextWeek: 'dddd LT', 23918 lastDay: 'ì´ì LT', 23919 lastWeek: 'ì§ë주 dddd LT', 23920 sameElse: 'L', 23921 }, 23922 relativeTime: { 23923 future: '%s í', 23924 past: '%s ì ', 23925 s: 'ëª ì´', 23926 ss: '%dì´', 23927 m: '1ë¶', 23928 mm: '%dë¶', 23929 h: 'í ìê°', 23930 hh: '%dìê°', 23931 d: 'í루', 23932 dd: '%dì¼', 23933 M: 'í ë¬', 23934 MM: '%dë¬', 23935 y: 'ì¼ ë ', 23936 yy: '%dë ', 23937 }, 23938 dayOfMonthOrdinalParse: /\d{1,2}(ì¼|ì|주)/, 23939 ordinal: function (number, period) { 23940 switch (period) { 23941 case 'd': 23942 case 'D': 23943 case 'DDD': 23944 return number + 'ì¼'; 23945 case 'M': 23946 return number + 'ì'; 23947 case 'w': 23948 case 'W': 23949 return number + '주'; 23950 default: 23951 return number; 23952 } 23953 }, 23954 meridiemParse: /ì¤ì |ì¤í/, 23955 isPM: function (token) { 23956 return token === 'ì¤í'; 23957 }, 23958 meridiem: function (hour, minute, isUpper) { 23959 return hour < 12 ? 'ì¤ì ' : 'ì¤í'; 23960 }, 23961 }); 23962 23963 return ko; 23964 23965}))); 23966 23967 23968/***/ }), 23969
vendor: 5,051 bytes, lines 23970-24102
23970/***/ "./node_modules/moment/locale/ku-kmr.js": 23971/*!**********************************************!*\ 23972 !*** ./node_modules/moment/locale/ku-kmr.js ***! 23973 \**********************************************/ 23974/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 23975 23976//! moment.js locale configuration 23977//! locale : Northern Kurdish [ku-kmr] 23978//! authors : Mazlum Ãzdogan : https://github.com/mergehez 23979 23980;(function (global, factory) { 23981 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 23982 0 23983}(this, (function (moment) { 'use strict'; 23984 23985 //! moment.js locale configuration 23986 23987 function processRelativeTime(num, withoutSuffix, key, isFuture) { 23988 var format = { 23989 s: ['çend sanîye', 'çend sanîyeyan'], 23990 ss: [num + ' sanîye', num + ' sanîyeyan'], 23991 m: ['deqîqeyek', 'deqîqeyekê'], 23992 mm: [num + ' deqîqe', num + ' deqîqeyan'], 23993 h: ['saetek', 'saetekê'], 23994 hh: [num + ' saet', num + ' saetan'], 23995 d: ['rojek', 'rojekê'], 23996 dd: [num + ' roj', num + ' rojan'], 23997 w: ['hefteyek', 'hefteyekê'], 23998 ww: [num + ' hefte', num + ' hefteyan'], 23999 M: ['mehek', 'mehekê'], 24000 MM: [num + ' meh', num + ' mehan'], 24001 y: ['salek', 'salekê'], 24002 yy: [num + ' sal', num + ' salan'], 24003 }; 24004 return withoutSuffix ? format[key][0] : format[key][1]; 24005 } 24006 // function obliqueNumSuffix(num) { 24007 // if(num.includes(':')) 24008 // num = parseInt(num.split(':')[0]); 24009 // else 24010 // num = parseInt(num); 24011 // return num == 0 || num % 10 == 1 ? 'ê' 24012 // : (num > 10 && num % 10 == 0 ? 'î' : 'an'); 24013 // } 24014 function ezafeNumSuffix(num) { 24015 num = '' + num; 24016 var l = num.substring(num.length - 1), 24017 ll = num.length > 1 ? num.substring(num.length - 2) : ''; 24018 if ( 24019 !(ll == 12 || ll == 13) && 24020 (l == '2' || l == '3' || ll == '50' || l == '70' || l == '80') 24021 ) 24022 return 'yê'; 24023 return 'ê'; 24024 } 24025 24026 var kuKmr = moment.defineLocale('ku-kmr', { 24027 // According to the spelling rules defined by the work group of Weqfa Mezopotamyayê (Mesopotamia Foundation) 24028 // this should be: 'Kanûna PaÅîn_Sibat_Adar_Nîsan_Gulan_Hezîran_Tîrmeh_Tebax_Ãlon_Ãirîya PêÅîn_Ãirîya PaÅîn_Kanûna PêÅîn' 24029 // But the names below are more well known and handy 24030 months: 'Rêbendan_Sibat_Adar_Nîsan_Gulan_Hezîran_Tîrmeh_Tebax_Ãlon_Cotmeh_Mijdar_Berfanbar'.split( 24031 '_' 24032 ), 24033 monthsShort: 'Rêb_Sib_Ada_Nîs_Gul_Hez_Tîr_Teb_Ãlo_Cot_Mij_Ber'.split('_'), 24034 monthsParseExact: true, 24035 weekdays: 'YekÅem_DuÅem_SêÅem_ÃarÅem_PêncÅem_Ãn_Åemî'.split('_'), 24036 weekdaysShort: 'Yek_Du_Sê_Ãar_Pên_Ãn_Åem'.split('_'), 24037 weekdaysMin: 'Ye_Du_Sê_Ãa_Pê_Ãn_Åe'.split('_'), 24038 meridiem: function (hours, minutes, isLower) { 24039 if (hours < 12) { 24040 return isLower ? 'bn' : 'BN'; 24041 } else { 24042 return isLower ? 'pn' : 'PN'; 24043 } 24044 }, 24045 meridiemParse: /bn|BN|pn|PN/, 24046 longDateFormat: { 24047 LT: 'HH:mm', 24048 LTS: 'HH:mm:ss', 24049 L: 'DD.MM.YYYY', 24050 LL: 'Do MMMM[a] YYYY[an]', 24051 LLL: 'Do MMMM[a] YYYY[an] HH:mm', 24052 LLLL: 'dddd, Do MMMM[a] YYYY[an] HH:mm', 24053 ll: 'Do MMM[.] YYYY[an]', 24054 lll: 'Do MMM[.] YYYY[an] HH:mm', 24055 llll: 'ddd[.], Do MMM[.] YYYY[an] HH:mm', 24056 }, 24057 calendar: { 24058 sameDay: '[Ãro di saet] LT [de]', 24059 nextDay: '[Sibê di saet] LT [de]', 24060 nextWeek: 'dddd [di saet] LT [de]', 24061 lastDay: '[Duh di saet] LT [de]', 24062 lastWeek: 'dddd[a borî di saet] LT [de]', 24063 sameElse: 'L', 24064 }, 24065 relativeTime: { 24066 future: 'di %s de', 24067 past: 'berî %s', 24068 s: processRelativeTime, 24069 ss: processRelativeTime, 24070 m: processRelativeTime, 24071 mm: processRelativeTime, 24072 h: processRelativeTime, 24073 hh: processRelativeTime, 24074 d: processRelativeTime, 24075 dd: processRelativeTime, 24076 w: processRelativeTime, 24077 ww: processRelativeTime, 24078 M: processRelativeTime, 24079 MM: processRelativeTime, 24080 y: processRelativeTime, 24081 yy: processRelativeTime, 24082 }, 24083 dayOfMonthOrdinalParse: /\d{1,2}(?:yê|ê|\.)/, 24084 ordinal: function (num, period) { 24085 var p = period.toLowerCase(); 24086 if (p.includes('w') || p.includes('m')) return num + '.'; 24087 24088 return num + ezafeNumSuffix(num); 24089 }, 24090 week: { 24091 dow: 1, // Monday is the first day of the week. 24092 doy: 4, // The week that contains Jan 4th is the first week of the year. 24093 }, 24094 }); 24095 24096 return kuKmr; 24097 24098}))); 24099 24100 24101/***/ }), 24102
vendor: 4,263 bytes, lines 24103-24239
24103/***/ "./node_modules/moment/locale/ku.js": 24104/*!******************************************!*\ 24105 !*** ./node_modules/moment/locale/ku.js ***! 24106 \******************************************/ 24107/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 24108 24109//! moment.js locale configuration 24110//! locale : Kurdish [ku] 24111//! author : Shahram Mebashar : https://github.com/ShahramMebashar 24112 24113;(function (global, factory) { 24114 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 24115 0 24116}(this, (function (moment) { 'use strict'; 24117 24118 //! moment.js locale configuration 24119 24120 var symbolMap = { 24121 1: 'Ù¡', 24122 2: 'Ù¢', 24123 3: 'Ù£', 24124 4: 'Ù¤', 24125 5: 'Ù¥', 24126 6: 'Ù¦', 24127 7: 'Ù§', 24128 8: 'Ù¨', 24129 9: 'Ù©', 24130 0: 'Ù ', 24131 }, 24132 numberMap = { 24133 'Ù¡': '1', 24134 'Ù¢': '2', 24135 'Ù£': '3', 24136 'Ù¤': '4', 24137 'Ù¥': '5', 24138 'Ù¦': '6', 24139 'Ù§': '7', 24140 'Ù¨': '8', 24141 'Ù©': '9', 24142 'Ù ': '0', 24143 }, 24144 months = [ 24145 'کاÙÙÙÛ Ø¯ÙÙÛÙ ', 24146 'Ø´ÙØ¨Ø§Øª', 24147 'ئازار', 24148 'ÙÛØ³Ø§Ù', 24149 'Ø¦Ø§ÛØ§Ø±', 24150 'ØÙزÛÛØ±Ø§Ù', 24151 'تÛÙ Ù ÙØ²', 24152 'ئاب', 24153 'ئÛÛÙÙÙÙ', 24154 'تشرÛÙÛ ÛÛÙÛÙ ', 24155 'تشرÛÙÛ Ø¯ÙÙÛÙ ', 24156 'ÙØ§ÙÙÙÛ ÛÛÚ©ÛÙ ', 24157 ]; 24158 24159 var ku = moment.defineLocale('ku', { 24160 months: months, 24161 monthsShort: months, 24162 weekdays: 24163 'ÛÙâÙØ´ÙâÙ Ù Ùâ_دÙÙØ´ÙâÙ Ù Ùâ_Ø³ÛØ´ÙâÙ Ù Ùâ_ÚÙØ§Ø±Ø´ÙâÙ Ù Ùâ_Ù¾ÛÙØ¬Ø´ÙâÙ Ù Ùâ_ÙÙâÛÙÛ_Ø´ÙâÙ Ù Ùâ'.split( 24164 '_' 24165 ), 24166 weekdaysShort: 24167 'ÛÙâÙØ´ÙâÙ _دÙÙØ´ÙâÙ _Ø³ÛØ´ÙâÙ _ÚÙØ§Ø±Ø´ÙâÙ _Ù¾ÛÙØ¬Ø´ÙâÙ _ÙÙâÛÙÛ_Ø´ÙâÙ Ù Ùâ'.split('_'), 24168 weekdaysMin: 'Û_د_س_Ú_Ù¾_Ù_Ø´'.split('_'), 24169 weekdaysParseExact: true, 24170 longDateFormat: { 24171 LT: 'HH:mm', 24172 LTS: 'HH:mm:ss', 24173 L: 'DD/MM/YYYY', 24174 LL: 'D MMMM YYYY', 24175 LLL: 'D MMMM YYYY HH:mm', 24176 LLLL: 'dddd, D MMMM YYYY HH:mm', 24177 }, 24178 meridiemParse: /ئÛÙØ§Ø±Ùâ|بÙâÛØ§ÙÛ/, 24179 isPM: function (input) { 24180 return /ئÛÙØ§Ø±Ùâ/.test(input); 24181 }, 24182 meridiem: function (hour, minute, isLower) { 24183 if (hour < 12) { 24184 return 'بÙâÛØ§ÙÛ'; 24185 } else { 24186 return 'ئÛÙØ§Ø±Ùâ'; 24187 } 24188 }, 24189 calendar: { 24190 sameDay: '[ئÙâÙ Ø±Û ÙØ§ØªÚÙ ÛØ±] LT', 24191 nextDay: '[بÙâÛØ§ÙÛ ÙØ§ØªÚÙ ÛØ±] LT', 24192 nextWeek: 'dddd [ÙØ§ØªÚÙ ÛØ±] LT', 24193 lastDay: '[دÙÛÙÛ ÙØ§ØªÚÙ ÛØ±] LT', 24194 lastWeek: 'dddd [ÙØ§ØªÚÙ ÛØ±] LT', 24195 sameElse: 'L', 24196 }, 24197 relativeTime: { 24198 future: 'ÙÙâ %s', 24199 past: '%s', 24200 s: 'ÚÙâÙØ¯ ÚØ±ÙÙâÛÙâÙ', 24201 ss: 'ÚØ±ÙÙâ %d', 24202 m: 'ÛÙâÙ Ø®ÙÙÙâÙ', 24203 mm: '%d Ø®ÙÙÙâÙ', 24204 h: 'ÛÙâÙ ÙØ§ØªÚÙ ÛØ±', 24205 hh: '%d ÙØ§ØªÚÙ ÛØ±', 24206 d: 'ÛÙâÙ ÚÛÚ', 24207 dd: '%d ÚÛÚ', 24208 M: 'ÛÙâ٠٠اÙÚ¯', 24209 MM: '%d ٠اÙÚ¯', 24210 y: 'ÛÙâ٠ساڵ', 24211 yy: '%d ساڵ', 24212 }, 24213 preparse: function (string) { 24214 return string 24215 .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) { 24216 return numberMap[match]; 24217 }) 24218 .replace(/Ø/g, ','); 24219 }, 24220 postformat: function (string) { 24221 return string 24222 .replace(/\d/g, function (match) { 24223 return symbolMap[match]; 24224 }) 24225 .replace(/,/g, 'Ø'); 24226 }, 24227 week: { 24228 dow: 6, // Saturday is the first day of the week. 24229 doy: 12, // The week that contains Jan 12th is the first week of the year. 24230 }, 24231 }); 24232 24233 return ku; 24234 24235}))); 24236 24237 24238/***/ }), 24239
vendor: 3,318 bytes, lines 24240-24342
24240/***/ "./node_modules/moment/locale/ky.js": 24241/*!******************************************!*\ 24242 !*** ./node_modules/moment/locale/ky.js ***! 24243 \******************************************/ 24244/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 24245 24246//! moment.js locale configuration 24247//! locale : Kyrgyz [ky] 24248//! author : Chyngyz Arystan uulu : https://github.com/chyngyz 24249 24250;(function (global, factory) { 24251 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 24252 0 24253}(this, (function (moment) { 'use strict'; 24254 24255 //! moment.js locale configuration 24256 24257 var suffixes = { 24258 0: '-ÑÒ¯', 24259 1: '-Ñи', 24260 2: '-Ñи', 24261 3: '-ÑÒ¯', 24262 4: '-ÑÒ¯', 24263 5: '-Ñи', 24264 6: '-ÑÑ', 24265 7: '-Ñи', 24266 8: '-Ñи', 24267 9: '-ÑÑ', 24268 10: '-ÑÑ', 24269 20: '-ÑÑ', 24270 30: '-ÑÑ', 24271 40: '-ÑÑ', 24272 50: '-ÑÒ¯', 24273 60: '-ÑÑ', 24274 70: '-Ñи', 24275 80: '-Ñи', 24276 90: '-ÑÑ', 24277 100: '-ÑÒ¯', 24278 }; 24279 24280 var ky = moment.defineLocale('ky', { 24281 months: 'ÑнваÑÑ_ÑевÑалÑ_маÑÑ_апÑелÑ_май_иÑнÑ_иÑлÑ_авгÑÑÑ_ÑенÑÑбÑÑ_окÑÑбÑÑ_ноÑбÑÑ_декабÑÑ'.split( 24282 '_' 24283 ), 24284 monthsShort: 'Ñнв_Ñев_маÑÑ_апÑ_май_иÑнÑ_иÑлÑ_авг_Ñен_окÑ_ноÑ_дек'.split( 24285 '_' 24286 ), 24287 weekdays: 'ÐекÑемби_ÐүйÑөмбү_ШейÑемби_ШаÑÑемби_ÐейÑемби_ÐÑма_ÐÑемби'.split( 24288 '_' 24289 ), 24290 weekdaysShort: 'Ðек_Ðүй_Шей_ШаÑ_Ðей_ÐÑм_ÐÑе'.split('_'), 24291 weekdaysMin: 'Ðк_Ðй_Шй_ШÑ_Ðй_Ðм_ÐÑ'.split('_'), 24292 longDateFormat: { 24293 LT: 'HH:mm', 24294 LTS: 'HH:mm:ss', 24295 L: 'DD.MM.YYYY', 24296 LL: 'D MMMM YYYY', 24297 LLL: 'D MMMM YYYY HH:mm', 24298 LLLL: 'dddd, D MMMM YYYY HH:mm', 24299 }, 24300 calendar: { 24301 sameDay: '[Ðүгүн ÑааÑ] LT', 24302 nextDay: '[ÐÑÑең ÑааÑ] LT', 24303 nextWeek: 'dddd [ÑааÑ] LT', 24304 lastDay: '[ÐеÑÑÑ ÑааÑ] LT', 24305 lastWeek: '[Ó¨Ñкөн апÑанÑн] dddd [күнү] [ÑааÑ] LT', 24306 sameElse: 'L', 24307 }, 24308 relativeTime: { 24309 future: '%s иÑинде', 24310 past: '%s мÑÑÑн', 24311 s: 'биÑнеÑе ÑекÑнд', 24312 ss: '%d ÑекÑнд', 24313 m: 'Ð±Ð¸Ñ Ð¼Ò¯Ð½Ó©Ñ', 24314 mm: '%d мүнөÑ', 24315 h: 'Ð±Ð¸Ñ ÑааÑ', 24316 hh: '%d ÑааÑ', 24317 d: 'Ð±Ð¸Ñ ÐºÒ¯Ð½', 24318 dd: '%d күн', 24319 M: 'Ð±Ð¸Ñ Ð°Ð¹', 24320 MM: '%d ай', 24321 y: 'Ð±Ð¸Ñ Ð¶Ñл', 24322 yy: '%d жÑл', 24323 }, 24324 dayOfMonthOrdinalParse: /\d{1,2}-(Ñи|ÑÑ|ÑÒ¯|ÑÑ)/, 24325 ordinal: function (number) { 24326 var a = number % 10, 24327 b = number >= 100 ? 100 : null; 24328 return number + (suffixes[number] || suffixes[a] || suffixes[b]); 24329 }, 24330 week: { 24331 dow: 1, // Monday is the first day of the week. 24332 doy: 7, // The week that contains Jan 7th is the first week of the year. 24333 }, 24334 }); 24335 24336 return ky; 24337 24338}))); 24339 24340 24341/***/ }), 24342
vendor: 5,274 bytes, lines 24343-24498
24343/***/ "./node_modules/moment/locale/lb.js": 24344/*!******************************************!*\ 24345 !*** ./node_modules/moment/locale/lb.js ***! 24346 \******************************************/ 24347/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 24348 24349//! moment.js locale configuration 24350//! locale : Luxembourgish [lb] 24351//! author : mweimerskirch : https://github.com/mweimerskirch 24352//! author : David Raison : https://github.com/kwisatz 24353 24354;(function (global, factory) { 24355 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 24356 0 24357}(this, (function (moment) { 'use strict'; 24358 24359 //! moment.js locale configuration 24360 24361 function processRelativeTime(number, withoutSuffix, key, isFuture) { 24362 var format = { 24363 m: ['eng Minutt', 'enger Minutt'], 24364 h: ['eng Stonn', 'enger Stonn'], 24365 d: ['een Dag', 'engem Dag'], 24366 M: ['ee Mount', 'engem Mount'], 24367 y: ['ee Joer', 'engem Joer'], 24368 }; 24369 return withoutSuffix ? format[key][0] : format[key][1]; 24370 } 24371 function processFutureTime(string) { 24372 var number = string.substr(0, string.indexOf(' ')); 24373 if (eifelerRegelAppliesToNumber(number)) { 24374 return 'a ' + string; 24375 } 24376 return 'an ' + string; 24377 } 24378 function processPastTime(string) { 24379 var number = string.substr(0, string.indexOf(' ')); 24380 if (eifelerRegelAppliesToNumber(number)) { 24381 return 'viru ' + string; 24382 } 24383 return 'virun ' + string; 24384 } 24385 /** 24386 * Returns true if the word before the given number loses the '-n' ending. 24387 * e.g. 'an 10 Deeg' but 'a 5 Deeg' 24388 * 24389 * @param number {integer} 24390 * @returns {boolean} 24391 */ 24392 function eifelerRegelAppliesToNumber(number) { 24393 number = parseInt(number, 10); 24394 if (isNaN(number)) { 24395 return false; 24396 } 24397 if (number < 0) { 24398 // Negative Number --> always true 24399 return true; 24400 } else if (number < 10) { 24401 // Only 1 digit 24402 if (4 <= number && number <= 7) { 24403 return true; 24404 } 24405 return false; 24406 } else if (number < 100) { 24407 // 2 digits 24408 var lastDigit = number % 10, 24409 firstDigit = number / 10; 24410 if (lastDigit === 0) { 24411 return eifelerRegelAppliesToNumber(firstDigit); 24412 } 24413 return eifelerRegelAppliesToNumber(lastDigit); 24414 } else if (number < 10000) { 24415 // 3 or 4 digits --> recursively check first digit 24416 while (number >= 10) { 24417 number = number / 10; 24418 } 24419 return eifelerRegelAppliesToNumber(number); 24420 } else { 24421 // Anything larger than 4 digits: recursively check first n-3 digits 24422 number = number / 1000; 24423 return eifelerRegelAppliesToNumber(number); 24424 } 24425 } 24426 24427 var lb = moment.defineLocale('lb', { 24428 months: 'Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember'.split( 24429 '_' 24430 ), 24431 monthsShort: 24432 'Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split( 24433 '_' 24434 ), 24435 monthsParseExact: true, 24436 weekdays: 24437 'Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg'.split( 24438 '_' 24439 ), 24440 weekdaysShort: 'So._Mé._Dë._Më._Do._Fr._Sa.'.split('_'), 24441 weekdaysMin: 'So_Mé_Dë_Më_Do_Fr_Sa'.split('_'), 24442 weekdaysParseExact: true, 24443 longDateFormat: { 24444 LT: 'H:mm [Auer]', 24445 LTS: 'H:mm:ss [Auer]', 24446 L: 'DD.MM.YYYY', 24447 LL: 'D. MMMM YYYY', 24448 LLL: 'D. MMMM YYYY H:mm [Auer]', 24449 LLLL: 'dddd, D. MMMM YYYY H:mm [Auer]', 24450 }, 24451 calendar: { 24452 sameDay: '[Haut um] LT', 24453 sameElse: 'L', 24454 nextDay: '[Muer um] LT', 24455 nextWeek: 'dddd [um] LT', 24456 lastDay: '[Gëschter um] LT', 24457 lastWeek: function () { 24458 // Different date string for 'Dënschdeg' (Tuesday) and 'Donneschdeg' (Thursday) due to phonological rule 24459 switch (this.day()) { 24460 case 2: 24461 case 4: 24462 return '[Leschten] dddd [um] LT'; 24463 default: 24464 return '[Leschte] dddd [um] LT'; 24465 } 24466 }, 24467 }, 24468 relativeTime: { 24469 future: processFutureTime, 24470 past: processPastTime, 24471 s: 'e puer Sekonnen', 24472 ss: '%d Sekonnen', 24473 m: processRelativeTime, 24474 mm: '%d Minutten', 24475 h: processRelativeTime, 24476 hh: '%d Stonnen', 24477 d: processRelativeTime, 24478 dd: '%d Deeg', 24479 M: processRelativeTime, 24480 MM: '%d Méint', 24481 y: processRelativeTime, 24482 yy: '%d Joer', 24483 }, 24484 dayOfMonthOrdinalParse: /\d{1,2}\./, 24485 ordinal: '%d.', 24486 week: { 24487 dow: 1, // Monday is the first day of the week. 24488 doy: 4, // The week that contains Jan 4th is the first week of the year. 24489 }, 24490 }); 24491 24492 return lb; 24493 24494}))); 24495 24496 24497/***/ }), 24498
vendor: 3,314 bytes, lines 24499-24583
24499/***/ "./node_modules/moment/locale/lo.js": 24500/*!******************************************!*\ 24501 !*** ./node_modules/moment/locale/lo.js ***! 24502 \******************************************/ 24503/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 24504 24505//! moment.js locale configuration 24506//! locale : Lao [lo] 24507//! author : Ryan Hart : https://github.com/ryanhart2 24508 24509;(function (global, factory) { 24510 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 24511 0 24512}(this, (function (moment) { 'use strict'; 24513 24514 //! moment.js locale configuration 24515 24516 var lo = moment.defineLocale('lo', { 24517 months: 'ມັàºàºàºàº_àºàº¸àº¡àºàº²_ມີàºàº²_à»àº¡àºªàº²_àºàº¶àºàºªàº°àºàº²_ມິàºàº¸àºàº²_àºà»àº¥àº°àºàº»àº_ສິàºàº«àº²_àºàº±àºàºàº²_àºàº¸àº¥àº²_àºàº°àºàº´àº_àºàº±àºàº§àº²'.split( 24518 '_' 24519 ), 24520 monthsShort: 24521 'ມັàºàºàºàº_àºàº¸àº¡àºàº²_ມີàºàº²_à»àº¡àºªàº²_àºàº¶àºàºªàº°àºàº²_ມິàºàº¸àºàº²_àºà»àº¥àº°àºàº»àº_ສິàºàº«àº²_àºàº±àºàºàº²_àºàº¸àº¥àº²_àºàº°àºàº´àº_àºàº±àºàº§àº²'.split( 24522 '_' 24523 ), 24524 weekdays: 'àºàº²àºàº´àº_àºàº±àº_àºàº±àºàºàº²àº_àºàº¸àº_àºàº°àº«àº±àº_ສຸàº_à»àºªàº»àº²'.split('_'), 24525 weekdaysShort: 'àºàº´àº_àºàº±àº_àºàº±àºàºàº²àº_àºàº¸àº_àºàº°àº«àº±àº_ສຸàº_à»àºªàº»àº²'.split('_'), 24526 weekdaysMin: 'àº_àº_àºàº_àº_àºàº«_ສàº_ສ'.split('_'), 24527 weekdaysParseExact: true, 24528 longDateFormat: { 24529 LT: 'HH:mm', 24530 LTS: 'HH:mm:ss', 24531 L: 'DD/MM/YYYY', 24532 LL: 'D MMMM YYYY', 24533 LLL: 'D MMMM YYYY HH:mm', 24534 LLLL: 'ວັàºdddd D MMMM YYYY HH:mm', 24535 }, 24536 meridiemParse: /àºàºàºà»àºàº»à»àº²|àºàºàºà»àº¥àº/, 24537 isPM: function (input) { 24538 return input === 'àºàºàºà»àº¥àº'; 24539 }, 24540 meridiem: function (hour, minute, isLower) { 24541 if (hour < 12) { 24542 return 'àºàºàºà»àºàº»à»àº²'; 24543 } else { 24544 return 'àºàºàºà»àº¥àº'; 24545 } 24546 }, 24547 calendar: { 24548 sameDay: '[ມືà»àºàºµà»à»àº§àº¥àº²] LT', 24549 nextDay: '[ມືà»àºàº·à»àºà»àº§àº¥àº²] LT', 24550 nextWeek: '[ວັàº]dddd[à»à»àº²à»àº§àº¥àº²] LT', 24551 lastDay: '[ມືà»àº§àº²àºàºàºµà»à»àº§àº¥àº²] LT', 24552 lastWeek: '[ວັàº]dddd[à»àº¥à»àº§àºàºµà»à»àº§àº¥àº²] LT', 24553 sameElse: 'L', 24554 }, 24555 relativeTime: { 24556 future: 'àºàºµàº %s', 24557 past: '%sàºà»àº²àºàº¡àº²', 24558 s: 'àºà»à»à»àºàº»à»àº²à»àºàº§àº´àºàº²àºàºµ', 24559 ss: '%d ວິàºàº²àºàºµ', 24560 m: '1 àºàº²àºàºµ', 24561 mm: '%d àºàº²àºàºµ', 24562 h: '1 àºàº»à»àº§à»àº¡àº', 24563 hh: '%d àºàº»à»àº§à»àº¡àº', 24564 d: '1 ມືà»', 24565 dd: '%d ມືà»', 24566 M: '1 à»àºàº·àºàº', 24567 MM: '%d à»àºàº·àºàº', 24568 y: '1 àºàºµ', 24569 yy: '%d àºàºµ', 24570 }, 24571 dayOfMonthOrdinalParse: /(àºàºµà»)\d{1,2}/, 24572 ordinal: function (number) { 24573 return 'àºàºµà»' + number; 24574 }, 24575 }); 24576 24577 return lo; 24578 24579}))); 24580 24581 24582/***/ }), 24583
vendor: 4,974 bytes, lines 24584-24727
24584/***/ "./node_modules/moment/locale/lt.js": 24585/*!******************************************!*\ 24586 !*** ./node_modules/moment/locale/lt.js ***! 24587 \******************************************/ 24588/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 24589 24590//! moment.js locale configuration 24591//! locale : Lithuanian [lt] 24592//! author : Mindaugas MozÅ«ras : https://github.com/mmozuras 24593 24594;(function (global, factory) { 24595 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 24596 0 24597}(this, (function (moment) { 'use strict'; 24598 24599 //! moment.js locale configuration 24600 24601 var units = { 24602 ss: 'sekundÄ_sekundžių_sekundes', 24603 m: 'minutÄ_minutÄs_minutÄ', 24604 mm: 'minutÄs_minuÄių_minutes', 24605 h: 'valanda_valandos_valandÄ ', 24606 hh: 'valandos_valandų_valandas', 24607 d: 'diena_dienos_dienÄ ', 24608 dd: 'dienos_dienų_dienas', 24609 M: 'mÄnuo_mÄnesio_mÄnesį', 24610 MM: 'mÄnesiai_mÄnesių_mÄnesius', 24611 y: 'metai_metų_metus', 24612 yy: 'metai_metų_metus', 24613 }; 24614 function translateSeconds(number, withoutSuffix, key, isFuture) { 24615 if (withoutSuffix) { 24616 return 'kelios sekundÄs'; 24617 } else { 24618 return isFuture ? 'kelių sekundžių' : 'kelias sekundes'; 24619 } 24620 } 24621 function translateSingular(number, withoutSuffix, key, isFuture) { 24622 return withoutSuffix 24623 ? forms(key)[0] 24624 : isFuture 24625 ? forms(key)[1] 24626 : forms(key)[2]; 24627 } 24628 function special(number) { 24629 return number % 10 === 0 || (number > 10 && number < 20); 24630 } 24631 function forms(key) { 24632 return units[key].split('_'); 24633 } 24634 function translate(number, withoutSuffix, key, isFuture) { 24635 var result = number + ' '; 24636 if (number === 1) { 24637 return ( 24638 result + translateSingular(number, withoutSuffix, key[0], isFuture) 24639 ); 24640 } else if (withoutSuffix) { 24641 return result + (special(number) ? forms(key)[1] : forms(key)[0]); 24642 } else { 24643 if (isFuture) { 24644 return result + forms(key)[1]; 24645 } else { 24646 return result + (special(number) ? forms(key)[1] : forms(key)[2]); 24647 } 24648 } 24649 } 24650 var lt = moment.defineLocale('lt', { 24651 months: { 24652 format: 'sausio_vasario_kovo_balandžio_gegužÄs_birželio_liepos_rugpjÅ«Äio_rugsÄjo_spalio_lapkriÄio_gruodžio'.split( 24653 '_' 24654 ), 24655 standalone: 24656 'sausis_vasaris_kovas_balandis_gegužÄ_birželis_liepa_rugpjÅ«tis_rugsÄjis_spalis_lapkritis_gruodis'.split( 24657 '_' 24658 ), 24659 isFormat: /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?|MMMM?(\[[^\[\]]*\]|\s)+D[oD]?/, 24660 }, 24661 monthsShort: 'sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd'.split('_'), 24662 weekdays: { 24663 format: 'sekmadienį_pirmadienį_antradienį_treÄiadienį_ketvirtadienį_penktadienį_Å¡eÅ¡tadienį'.split( 24664 '_' 24665 ), 24666 standalone: 24667 'sekmadienis_pirmadienis_antradienis_treÄiadienis_ketvirtadienis_penktadienis_Å¡eÅ¡tadienis'.split( 24668 '_' 24669 ), 24670 isFormat: /dddd HH:mm/, 24671 }, 24672 weekdaysShort: 'Sek_Pir_Ant_Tre_Ket_Pen_Å eÅ¡'.split('_'), 24673 weekdaysMin: 'S_P_A_T_K_Pn_Å '.split('_'), 24674 weekdaysParseExact: true, 24675 longDateFormat: { 24676 LT: 'HH:mm', 24677 LTS: 'HH:mm:ss', 24678 L: 'YYYY-MM-DD', 24679 LL: 'YYYY [m.] MMMM D [d.]', 24680 LLL: 'YYYY [m.] MMMM D [d.], HH:mm [val.]', 24681 LLLL: 'YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]', 24682 l: 'YYYY-MM-DD', 24683 ll: 'YYYY [m.] MMMM D [d.]', 24684 lll: 'YYYY [m.] MMMM D [d.], HH:mm [val.]', 24685 llll: 'YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]', 24686 }, 24687 calendar: { 24688 sameDay: '[Å iandien] LT', 24689 nextDay: '[Rytoj] LT', 24690 nextWeek: 'dddd LT', 24691 lastDay: '[Vakar] LT', 24692 lastWeek: '[PraÄjusį] dddd LT', 24693 sameElse: 'L', 24694 }, 24695 relativeTime: { 24696 future: 'po %s', 24697 past: 'prieÅ¡ %s', 24698 s: translateSeconds, 24699 ss: translate, 24700 m: translateSingular, 24701 mm: translate, 24702 h: translateSingular, 24703 hh: translate, 24704 d: translateSingular, 24705 dd: translate, 24706 M: translateSingular, 24707 MM: translate, 24708 y: translateSingular, 24709 yy: translate, 24710 }, 24711 dayOfMonthOrdinalParse: /\d{1,2}-oji/, 24712 ordinal: function (number) { 24713 return number + '-oji'; 24714 }, 24715 week: { 24716 dow: 1, // Monday is the first day of the week. 24717 doy: 4, // The week that contains Jan 4th is the first week of the year. 24718 }, 24719 }); 24720 24721 return lt; 24722 24723}))); 24724 24725 24726/***/ }), 24727
vendor: 4,282 bytes, lines 24728-24840
24728/***/ "./node_modules/moment/locale/lv.js": 24729/*!******************************************!*\ 24730 !*** ./node_modules/moment/locale/lv.js ***! 24731 \******************************************/ 24732/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 24733 24734//! moment.js locale configuration 24735//! locale : Latvian [lv] 24736//! author : Kristaps Karlsons : https://github.com/skakri 24737//! author : JÄnis Elmeris : https://github.com/JanisE 24738 24739;(function (global, factory) { 24740 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 24741 0 24742}(this, (function (moment) { 'use strict'; 24743 24744 //! moment.js locale configuration 24745 24746 var units = { 24747 ss: 'sekundes_sekundÄm_sekunde_sekundes'.split('_'), 24748 m: 'minÅ«tes_minÅ«tÄm_minÅ«te_minÅ«tes'.split('_'), 24749 mm: 'minÅ«tes_minÅ«tÄm_minÅ«te_minÅ«tes'.split('_'), 24750 h: 'stundas_stundÄm_stunda_stundas'.split('_'), 24751 hh: 'stundas_stundÄm_stunda_stundas'.split('_'), 24752 d: 'dienas_dienÄm_diena_dienas'.split('_'), 24753 dd: 'dienas_dienÄm_diena_dienas'.split('_'), 24754 M: 'mÄneÅ¡a_mÄneÅ¡iem_mÄnesis_mÄneÅ¡i'.split('_'), 24755 MM: 'mÄneÅ¡a_mÄneÅ¡iem_mÄnesis_mÄneÅ¡i'.split('_'), 24756 y: 'gada_gadiem_gads_gadi'.split('_'), 24757 yy: 'gada_gadiem_gads_gadi'.split('_'), 24758 }; 24759 /** 24760 * @param withoutSuffix boolean true = a length of time; false = before/after a period of time. 24761 */ 24762 function format(forms, number, withoutSuffix) { 24763 if (withoutSuffix) { 24764 // E.g. "21 minÅ«te", "3 minÅ«tes". 24765 return number % 10 === 1 && number % 100 !== 11 ? forms[2] : forms[3]; 24766 } else { 24767 // E.g. "21 minÅ«tes" as in "pÄc 21 minÅ«tes". 24768 // E.g. "3 minÅ«tÄm" as in "pÄc 3 minÅ«tÄm". 24769 return number % 10 === 1 && number % 100 !== 11 ? forms[0] : forms[1]; 24770 } 24771 } 24772 function relativeTimeWithPlural(number, withoutSuffix, key) { 24773 return number + ' ' + format(units[key], number, withoutSuffix); 24774 } 24775 function relativeTimeWithSingular(number, withoutSuffix, key) { 24776 return format(units[key], number, withoutSuffix); 24777 } 24778 function relativeSeconds(number, withoutSuffix) { 24779 return withoutSuffix ? 'dažas sekundes' : 'dažÄm sekundÄm'; 24780 } 24781 24782 var lv = moment.defineLocale('lv', { 24783 months: 'janvÄris_februÄris_marts_aprÄ«lis_maijs_jÅ«nijs_jÅ«lijs_augusts_septembris_oktobris_novembris_decembris'.split( 24784 '_' 24785 ), 24786 monthsShort: 'jan_feb_mar_apr_mai_jÅ«n_jÅ«l_aug_sep_okt_nov_dec'.split('_'), 24787 weekdays: 24788 'svÄtdiena_pirmdiena_otrdiena_treÅ¡diena_ceturtdiena_piektdiena_sestdiena'.split( 24789 '_' 24790 ), 24791 weekdaysShort: 'Sv_P_O_T_C_Pk_S'.split('_'), 24792 weekdaysMin: 'Sv_P_O_T_C_Pk_S'.split('_'), 24793 weekdaysParseExact: true, 24794 longDateFormat: { 24795 LT: 'HH:mm', 24796 LTS: 'HH:mm:ss', 24797 L: 'DD.MM.YYYY.', 24798 LL: 'YYYY. [gada] D. MMMM', 24799 LLL: 'YYYY. [gada] D. MMMM, HH:mm', 24800 LLLL: 'YYYY. [gada] D. MMMM, dddd, HH:mm', 24801 }, 24802 calendar: { 24803 sameDay: '[Å odien pulksten] LT', 24804 nextDay: '[RÄ«t pulksten] LT', 24805 nextWeek: 'dddd [pulksten] LT', 24806 lastDay: '[Vakar pulksten] LT', 24807 lastWeek: '[PagÄjuÅ¡Ä] dddd [pulksten] LT', 24808 sameElse: 'L', 24809 }, 24810 relativeTime: { 24811 future: 'pÄc %s', 24812 past: 'pirms %s', 24813 s: relativeSeconds, 24814 ss: relativeTimeWithPlural, 24815 m: relativeTimeWithSingular, 24816 mm: relativeTimeWithPlural, 24817 h: relativeTimeWithSingular, 24818 hh: relativeTimeWithPlural, 24819 d: relativeTimeWithSingular, 24820 dd: relativeTimeWithPlural, 24821 M: relativeTimeWithSingular, 24822 MM: relativeTimeWithPlural, 24823 y: relativeTimeWithSingular, 24824 yy: relativeTimeWithPlural, 24825 }, 24826 dayOfMonthOrdinalParse: /\d{1,2}\./, 24827 ordinal: '%d.', 24828 week: { 24829 dow: 1, // Monday is the first day of the week. 24830 doy: 4, // The week that contains Jan 4th is the first week of the year. 24831 }, 24832 }); 24833 24834 return lv; 24835 24836}))); 24837 24838 24839/***/ }), 24840
vendor: 4,590 bytes, lines 24841-24976
24841/***/ "./node_modules/moment/locale/me.js": 24842/*!******************************************!*\ 24843 !*** ./node_modules/moment/locale/me.js ***! 24844 \******************************************/ 24845/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 24846 24847//! moment.js locale configuration 24848//! locale : Montenegrin [me] 24849//! author : Miodrag NikaÄ <[email protected]> : https://github.com/miodragnikac 24850 24851;(function (global, factory) { 24852 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 24853 0 24854}(this, (function (moment) { 'use strict'; 24855 24856 //! moment.js locale configuration 24857 24858 var translator = { 24859 words: { 24860 //Different grammatical cases 24861 ss: ['sekund', 'sekunda', 'sekundi'], 24862 m: ['jedan minut', 'jednog minuta'], 24863 mm: ['minut', 'minuta', 'minuta'], 24864 h: ['jedan sat', 'jednog sata'], 24865 hh: ['sat', 'sata', 'sati'], 24866 dd: ['dan', 'dana', 'dana'], 24867 MM: ['mjesec', 'mjeseca', 'mjeseci'], 24868 yy: ['godina', 'godine', 'godina'], 24869 }, 24870 correctGrammaticalCase: function (number, wordKey) { 24871 return number === 1 24872 ? wordKey[0] 24873 : number >= 2 && number <= 4 24874 ? wordKey[1] 24875 : wordKey[2]; 24876 }, 24877 translate: function (number, withoutSuffix, key) { 24878 var wordKey = translator.words[key]; 24879 if (key.length === 1) { 24880 return withoutSuffix ? wordKey[0] : wordKey[1]; 24881 } else { 24882 return ( 24883 number + 24884 ' ' + 24885 translator.correctGrammaticalCase(number, wordKey) 24886 ); 24887 } 24888 }, 24889 }; 24890 24891 var me = moment.defineLocale('me', { 24892 months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split( 24893 '_' 24894 ), 24895 monthsShort: 24896 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'), 24897 monthsParseExact: true, 24898 weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_Äetvrtak_petak_subota'.split( 24899 '_' 24900 ), 24901 weekdaysShort: 'ned._pon._uto._sri._Äet._pet._sub.'.split('_'), 24902 weekdaysMin: 'ne_po_ut_sr_Äe_pe_su'.split('_'), 24903 weekdaysParseExact: true, 24904 longDateFormat: { 24905 LT: 'H:mm', 24906 LTS: 'H:mm:ss', 24907 L: 'DD.MM.YYYY', 24908 LL: 'D. MMMM YYYY', 24909 LLL: 'D. MMMM YYYY H:mm', 24910 LLLL: 'dddd, D. MMMM YYYY H:mm', 24911 }, 24912 calendar: { 24913 sameDay: '[danas u] LT', 24914 nextDay: '[sjutra u] LT', 24915 24916 nextWeek: function () { 24917 switch (this.day()) { 24918 case 0: 24919 return '[u] [nedjelju] [u] LT'; 24920 case 3: 24921 return '[u] [srijedu] [u] LT'; 24922 case 6: 24923 return '[u] [subotu] [u] LT'; 24924 case 1: 24925 case 2: 24926 case 4: 24927 case 5: 24928 return '[u] dddd [u] LT'; 24929 } 24930 }, 24931 lastDay: '[juÄe u] LT', 24932 lastWeek: function () { 24933 var lastWeekDays = [ 24934 '[proÅ¡le] [nedjelje] [u] LT', 24935 '[proÅ¡log] [ponedjeljka] [u] LT', 24936 '[proÅ¡log] [utorka] [u] LT', 24937 '[proÅ¡le] [srijede] [u] LT', 24938 '[proÅ¡log] [Äetvrtka] [u] LT', 24939 '[proÅ¡log] [petka] [u] LT', 24940 '[proÅ¡le] [subote] [u] LT', 24941 ]; 24942 return lastWeekDays[this.day()]; 24943 }, 24944 sameElse: 'L', 24945 }, 24946 relativeTime: { 24947 future: 'za %s', 24948 past: 'prije %s', 24949 s: 'nekoliko sekundi', 24950 ss: translator.translate, 24951 m: translator.translate, 24952 mm: translator.translate, 24953 h: translator.translate, 24954 hh: translator.translate, 24955 d: 'dan', 24956 dd: translator.translate, 24957 M: 'mjesec', 24958 MM: translator.translate, 24959 y: 'godinu', 24960 yy: translator.translate, 24961 }, 24962 dayOfMonthOrdinalParse: /\d{1,2}\./, 24963 ordinal: '%d.', 24964 week: { 24965 dow: 1, // Monday is the first day of the week. 24966 doy: 7, // The week that contains Jan 7th is the first week of the year. 24967 }, 24968 }); 24969 24970 return me; 24971 24972}))); 24973 24974 24975/***/ }), 24976
vendor: 2,728 bytes, lines 24977-25055
24977/***/ "./node_modules/moment/locale/mi.js": 24978/*!******************************************!*\ 24979 !*** ./node_modules/moment/locale/mi.js ***! 24980 \******************************************/ 24981/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 24982 24983//! moment.js locale configuration 24984//! locale : Maori [mi] 24985//! author : John Corrigan <[email protected]> : https://github.com/johnideal 24986 24987;(function (global, factory) { 24988 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 24989 0 24990}(this, (function (moment) { 'use strict'; 24991 24992 //! moment.js locale configuration 24993 24994 var mi = moment.defineLocale('mi', { 24995 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( 24996 '_' 24997 ), 24998 monthsShort: 24999 'Kohi_Hui_Pou_Pae_Hara_Pipi_HÅngoi_Here_Mahu_Whi-nu_Whi-ra_Haki'.split( 25000 '_' 25001 ), 25002 monthsRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i, 25003 monthsStrictRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i, 25004 monthsShortRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i, 25005 monthsShortStrictRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,2}/i, 25006 weekdays: 'RÄtapu_Mane_TÅ«rei_Wenerei_TÄite_Paraire_HÄtarei'.split('_'), 25007 weekdaysShort: 'Ta_Ma_TÅ«_We_TÄi_Pa_HÄ'.split('_'), 25008 weekdaysMin: 'Ta_Ma_TÅ«_We_TÄi_Pa_HÄ'.split('_'), 25009 longDateFormat: { 25010 LT: 'HH:mm', 25011 LTS: 'HH:mm:ss', 25012 L: 'DD/MM/YYYY', 25013 LL: 'D MMMM YYYY', 25014 LLL: 'D MMMM YYYY [i] HH:mm', 25015 LLLL: 'dddd, D MMMM YYYY [i] HH:mm', 25016 }, 25017 calendar: { 25018 sameDay: '[i teie mahana, i] LT', 25019 nextDay: '[apopo i] LT', 25020 nextWeek: 'dddd [i] LT', 25021 lastDay: '[inanahi i] LT', 25022 lastWeek: 'dddd [whakamutunga i] LT', 25023 sameElse: 'L', 25024 }, 25025 relativeTime: { 25026 future: 'i roto i %s', 25027 past: '%s i mua', 25028 s: 'te hÄkona ruarua', 25029 ss: '%d hÄkona', 25030 m: 'he meneti', 25031 mm: '%d meneti', 25032 h: 'te haora', 25033 hh: '%d haora', 25034 d: 'he ra', 25035 dd: '%d ra', 25036 M: 'he marama', 25037 MM: '%d marama', 25038 y: 'he tau', 25039 yy: '%d tau', 25040 }, 25041 dayOfMonthOrdinalParse: /\d{1,2}º/, 25042 ordinal: '%dº', 25043 week: { 25044 dow: 1, // Monday is the first day of the week. 25045 doy: 4, // The week that contains Jan 4th is the first week of the year. 25046 }, 25047 }); 25048 25049 return mi; 25050 25051}))); 25052 25053 25054/***/ }), 25055
vendor: 3,827 bytes, lines 25056-25160
25056/***/ "./node_modules/moment/locale/mk.js": 25057/*!******************************************!*\ 25058 !*** ./node_modules/moment/locale/mk.js ***! 25059 \******************************************/ 25060/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 25061 25062//! moment.js locale configuration 25063//! locale : Macedonian [mk] 25064//! author : Borislav Mickov : https://github.com/B0k0 25065//! author : Sashko Todorov : https://github.com/bkyceh 25066 25067;(function (global, factory) { 25068 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 25069 0 25070}(this, (function (moment) { 'use strict'; 25071 25072 //! moment.js locale configuration 25073 25074 var mk = moment.defineLocale('mk', { 25075 months: 'ÑанÑаÑи_ÑевÑÑаÑи_маÑÑ_апÑил_маÑ_ÑÑни_ÑÑли_авгÑÑÑ_ÑепÑемвÑи_окÑомвÑи_ноемвÑи_декемвÑи'.split( 25076 '_' 25077 ), 25078 monthsShort: 'Ñан_Ñев_маÑ_апÑ_маÑ_ÑÑн_ÑÑл_авг_Ñеп_окÑ_ное_дек'.split('_'), 25079 weekdays: 'недела_понеделник_вÑоÑник_ÑÑеда_ÑеÑвÑÑок_пеÑок_ÑабоÑа'.split( 25080 '_' 25081 ), 25082 weekdaysShort: 'нед_пон_вÑо_ÑÑе_ÑеÑ_пеÑ_Ñаб'.split('_'), 25083 weekdaysMin: 'нe_пo_вÑ_ÑÑ_Ñе_пе_Ña'.split('_'), 25084 longDateFormat: { 25085 LT: 'H:mm', 25086 LTS: 'H:mm:ss', 25087 L: 'D.MM.YYYY', 25088 LL: 'D MMMM YYYY', 25089 LLL: 'D MMMM YYYY H:mm', 25090 LLLL: 'dddd, D MMMM YYYY H:mm', 25091 }, 25092 calendar: { 25093 sameDay: '[ÐÐµÐ½ÐµÑ Ð²Ð¾] LT', 25094 nextDay: '[УÑÑе во] LT', 25095 nextWeek: '[Ðо] dddd [во] LT', 25096 lastDay: '[ÐÑеÑа во] LT', 25097 lastWeek: function () { 25098 switch (this.day()) { 25099 case 0: 25100 case 3: 25101 case 6: 25102 return '[ÐзминаÑаÑа] dddd [во] LT'; 25103 case 1: 25104 case 2: 25105 case 4: 25106 case 5: 25107 return '[ÐзминаÑиоÑ] dddd [во] LT'; 25108 } 25109 }, 25110 sameElse: 'L', 25111 }, 25112 relativeTime: { 25113 future: 'за %s', 25114 past: 'пÑед %s', 25115 s: 'Ð½ÐµÐºÐ¾Ð»ÐºÑ ÑекÑнди', 25116 ss: '%d ÑекÑнди', 25117 m: 'една минÑÑа', 25118 mm: '%d минÑÑи', 25119 h: 'еден ÑаÑ', 25120 hh: '%d ÑаÑа', 25121 d: 'еден ден', 25122 dd: '%d дена', 25123 M: 'еден меÑеÑ', 25124 MM: '%d меÑеÑи', 25125 y: 'една година', 25126 yy: '%d години', 25127 }, 25128 dayOfMonthOrdinalParse: /\d{1,2}-(ев|ен|Ñи|ви|Ñи|ми)/, 25129 ordinal: function (number) { 25130 var lastDigit = number % 10, 25131 last2Digits = number % 100; 25132 if (number === 0) { 25133 return number + '-ев'; 25134 } else if (last2Digits === 0) { 25135 return number + '-ен'; 25136 } else if (last2Digits > 10 && last2Digits < 20) { 25137 return number + '-Ñи'; 25138 } else if (lastDigit === 1) { 25139 return number + '-ви'; 25140 } else if (lastDigit === 2) { 25141 return number + '-Ñи'; 25142 } else if (lastDigit === 7 || lastDigit === 8) { 25143 return number + '-ми'; 25144 } else { 25145 return number + '-Ñи'; 25146 } 25147 }, 25148 week: { 25149 dow: 1, // Monday is the first day of the week. 25150 doy: 7, // The week that contains Jan 7th is the first week of the year. 25151 }, 25152 }); 25153 25154 return mk; 25155 25156}))); 25157 25158 25159/***/ }), 25160
vendor: 4,080 bytes, lines 25161-25261
25161/***/ "./node_modules/moment/locale/ml.js": 25162/*!******************************************!*\ 25163 !*** ./node_modules/moment/locale/ml.js ***! 25164 \******************************************/ 25165/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 25166 25167//! moment.js locale configuration 25168//! locale : Malayalam [ml] 25169//! author : Floyd Pink : https://github.com/floydpink 25170 25171;(function (global, factory) { 25172 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 25173 0 25174}(this, (function (moment) { 'use strict'; 25175 25176 //! moment.js locale configuration 25177 25178 var ml = moment.defineLocale('ml', { 25179 months: 'à´à´¨àµà´µà´°à´¿_à´«àµà´¬àµà´°àµà´µà´°à´¿_മാർà´àµà´àµ_à´à´ªàµà´°à´¿àµ½_à´®àµà´¯àµ_à´àµàµº_à´àµà´²àµ_à´à´à´¸àµà´±àµà´±àµ_à´¸àµà´ªàµà´±àµà´±à´à´¬àµ¼_à´à´àµà´àµà´¬àµ¼_നവà´à´¬àµ¼_à´¡à´¿à´¸à´à´¬àµ¼'.split( 25180 '_' 25181 ), 25182 monthsShort: 25183 'à´à´¨àµ._à´«àµà´¬àµà´°àµ._മാർ._à´à´ªàµà´°à´¿._à´®àµà´¯àµ_à´àµàµº_à´àµà´²àµ._à´à´._à´¸àµà´ªàµà´±àµà´±._à´à´àµà´àµ._നവà´._à´¡à´¿à´¸à´.'.split( 25184 '_' 25185 ), 25186 monthsParseExact: true, 25187 weekdays: 25188 'à´à´¾à´¯à´±à´¾à´´àµà´_തിà´àµà´à´³à´¾à´´àµà´_à´àµà´µàµà´µà´¾à´´àµà´_à´¬àµà´§à´¨à´¾à´´àµà´_à´µàµà´¯à´¾à´´à´¾à´´àµà´_à´µàµà´³àµà´³à´¿à´¯à´¾à´´àµà´_ശനിയാഴàµà´'.split( 25189 '_' 25190 ), 25191 weekdaysShort: 'à´à´¾à´¯àµ¼_തിà´àµà´àµ¾_à´àµà´µàµà´µ_à´¬àµà´§àµ»_à´µàµà´¯à´¾à´´à´_à´µàµà´³àµà´³à´¿_ശനി'.split('_'), 25192 weekdaysMin: 'à´à´¾_തി_à´àµ_à´¬àµ_à´µàµà´¯à´¾_à´µàµ_à´¶'.split('_'), 25193 longDateFormat: { 25194 LT: 'A h:mm -à´¨àµ', 25195 LTS: 'A h:mm:ss -à´¨àµ', 25196 L: 'DD/MM/YYYY', 25197 LL: 'D MMMM YYYY', 25198 LLL: 'D MMMM YYYY, A h:mm -à´¨àµ', 25199 LLLL: 'dddd, D MMMM YYYY, A h:mm -à´¨àµ', 25200 }, 25201 calendar: { 25202 sameDay: '[à´à´¨àµà´¨àµ] LT', 25203 nextDay: '[നാളàµ] LT', 25204 nextWeek: 'dddd, LT', 25205 lastDay: '[à´à´¨àµà´¨à´²àµ] LT', 25206 lastWeek: '[à´à´´à´¿à´àµà´] dddd, LT', 25207 sameElse: 'L', 25208 }, 25209 relativeTime: { 25210 future: '%s à´à´´à´¿à´àµà´àµ', 25211 past: '%s à´®àµàµ»à´ªàµ', 25212 s: 'ഠൽപ നിമിഷà´àµà´àµ¾', 25213 ss: '%d à´¸àµà´àµà´àµ»à´¡àµ', 25214 m: 'à´à´°àµ മിനിറàµà´±àµ', 25215 mm: '%d മിനിറàµà´±àµ', 25216 h: 'à´à´°àµ മണിà´àµà´àµàµ¼', 25217 hh: '%d മണിà´àµà´àµàµ¼', 25218 d: 'à´à´°àµ ദിവസà´', 25219 dd: '%d ദിവസà´', 25220 M: 'à´à´°àµ മാസà´', 25221 MM: '%d മാസà´', 25222 y: 'à´à´°àµ വർഷà´', 25223 yy: '%d വർഷà´', 25224 }, 25225 meridiemParse: /രാതàµà´°à´¿|രാവിലàµ|à´à´àµà´ à´à´´à´¿à´àµà´àµ|à´µàµà´àµà´¨àµà´¨àµà´°à´|രാതàµà´°à´¿/i, 25226 meridiemHour: function (hour, meridiem) { 25227 if (hour === 12) { 25228 hour = 0; 25229 } 25230 if ( 25231 (meridiem === 'രാതàµà´°à´¿' && hour >= 4) || 25232 meridiem === 'à´à´àµà´ à´à´´à´¿à´àµà´àµ' || 25233 meridiem === 'à´µàµà´àµà´¨àµà´¨àµà´°à´' 25234 ) { 25235 return hour + 12; 25236 } else { 25237 return hour; 25238 } 25239 }, 25240 meridiem: function (hour, minute, isLower) { 25241 if (hour < 4) { 25242 return 'രാതàµà´°à´¿'; 25243 } else if (hour < 12) { 25244 return 'രാവിലàµ'; 25245 } else if (hour < 17) { 25246 return 'à´à´àµà´ à´à´´à´¿à´àµà´àµ'; 25247 } else if (hour < 20) { 25248 return 'à´µàµà´àµà´¨àµà´¨àµà´°à´'; 25249 } else { 25250 return 'രാതàµà´°à´¿'; 25251 } 25252 }, 25253 }); 25254 25255 return ml; 25256 25257}))); 25258 25259 25260/***/ }), 25261
vendor: 4,275 bytes, lines 25262-25380
25262/***/ "./node_modules/moment/locale/mn.js": 25263/*!******************************************!*\ 25264 !*** ./node_modules/moment/locale/mn.js ***! 25265 \******************************************/ 25266/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 25267 25268//! moment.js locale configuration 25269//! locale : Mongolian [mn] 25270//! author : Javkhlantugs Nyamdorj : https://github.com/javkhaanj7 25271 25272;(function (global, factory) { 25273 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 25274 0 25275}(this, (function (moment) { 'use strict'; 25276 25277 //! moment.js locale configuration 25278 25279 function translate(number, withoutSuffix, key, isFuture) { 25280 switch (key) { 25281 case 's': 25282 return withoutSuffix ? 'Ñ ÑÐ´Ñ Ñн ÑекÑнд' : 'Ñ ÑÐ´Ñ Ñн ÑекÑндÑн'; 25283 case 'ss': 25284 return number + (withoutSuffix ? ' ÑекÑнд' : ' ÑекÑндÑн'); 25285 case 'm': 25286 case 'mm': 25287 return number + (withoutSuffix ? ' минÑÑ' : ' минÑÑÑн'); 25288 case 'h': 25289 case 'hh': 25290 return number + (withoutSuffix ? ' Ñаг' : ' Ñагийн'); 25291 case 'd': 25292 case 'dd': 25293 return number + (withoutSuffix ? ' өдөÑ' : ' өдÑийн'); 25294 case 'M': 25295 case 'MM': 25296 return number + (withoutSuffix ? ' ÑаÑ' : ' ÑаÑÑн'); 25297 case 'y': 25298 case 'yy': 25299 return number + (withoutSuffix ? ' жил' : ' жилийн'); 25300 default: 25301 return number; 25302 } 25303 } 25304 25305 var mn = moment.defineLocale('mn', { 25306 months: 'ÐÑгдүгÑÑÑ ÑаÑ_ХоÑÑдÑÐ³Ð°Ð°Ñ ÑаÑ_ÐÑÑавдÑÐ³Ð°Ð°Ñ ÑаÑ_ÐÓ©ÑөвдүгÑÑÑ ÑаÑ_ТавдÑÐ³Ð°Ð°Ñ ÑаÑ_ÐÑÑгадÑÐ³Ð°Ð°Ñ ÑаÑ_ÐолдÑÐ³Ð°Ð°Ñ ÑаÑ_ÐаймдÑÐ³Ð°Ð°Ñ ÑаÑ_ÐÑдүгÑÑÑ ÑаÑ_ÐÑавдÑÐ³Ð°Ð°Ñ ÑаÑ_ÐÑван нÑгдүгÑÑÑ ÑаÑ_ÐÑван Ñ Ð¾ÑÑдÑÐ³Ð°Ð°Ñ ÑаÑ'.split( 25307 '_' 25308 ), 25309 monthsShort: 25310 '1 ÑаÑ_2 ÑаÑ_3 ÑаÑ_4 ÑаÑ_5 ÑаÑ_6 ÑаÑ_7 ÑаÑ_8 ÑаÑ_9 ÑаÑ_10 ÑаÑ_11 ÑаÑ_12 ÑаÑ'.split( 25311 '_' 25312 ), 25313 monthsParseExact: true, 25314 weekdays: 'ÐÑм_Ðаваа_ÐÑгмаÑ_ÐÑ Ð°Ð³Ð²Ð°_ÐÒ¯ÑÑв_ÐааÑан_ÐÑмба'.split('_'), 25315 weekdaysShort: 'ÐÑм_Ðав_ÐÑг_ÐÑ Ð°_ÐÒ¯Ñ_Ðаа_ÐÑм'.split('_'), 25316 weekdaysMin: 'ÐÑ_Ðа_ÐÑ_ÐÑ _ÐÒ¯_Ðа_ÐÑ'.split('_'), 25317 weekdaysParseExact: true, 25318 longDateFormat: { 25319 LT: 'HH:mm', 25320 LTS: 'HH:mm:ss', 25321 L: 'YYYY-MM-DD', 25322 LL: 'YYYY Ð¾Ð½Ñ MMMMÑн D', 25323 LLL: 'YYYY Ð¾Ð½Ñ MMMMÑн D HH:mm', 25324 LLLL: 'dddd, YYYY Ð¾Ð½Ñ MMMMÑн D HH:mm', 25325 }, 25326 meridiemParse: /Ò®Ó¨|ҮХ/i, 25327 isPM: function (input) { 25328 return input === 'ҮХ'; 25329 }, 25330 meridiem: function (hour, minute, isLower) { 25331 if (hour < 12) { 25332 return 'Ò®Ó¨'; 25333 } else { 25334 return 'ҮХ'; 25335 } 25336 }, 25337 calendar: { 25338 sameDay: '[ӨнөөдөÑ] LT', 25339 nextDay: '[ÐаÑгааÑ] LT', 25340 nextWeek: '[ÐÑÑÑ ] dddd LT', 25341 lastDay: '[Ó¨ÑигдөÑ] LT', 25342 lastWeek: '[ӨнгөÑÑөн] dddd LT', 25343 sameElse: 'L', 25344 }, 25345 relativeTime: { 25346 future: '%s даÑаа', 25347 past: '%s өмнө', 25348 s: translate, 25349 ss: translate, 25350 m: translate, 25351 mm: translate, 25352 h: translate, 25353 hh: translate, 25354 d: translate, 25355 dd: translate, 25356 M: translate, 25357 MM: translate, 25358 y: translate, 25359 yy: translate, 25360 }, 25361 dayOfMonthOrdinalParse: /\d{1,2} өдөÑ/, 25362 ordinal: function (number, period) { 25363 switch (period) { 25364 case 'd': 25365 case 'D': 25366 case 'DDD': 25367 return number + ' өдөÑ'; 25368 default: 25369 return number; 25370 } 25371 }, 25372 }); 25373 25374 return mn; 25375 25376}))); 25377 25378 25379/***/ }), 25380
vendor: 7,839 bytes, lines 25381-25602
25381/***/ "./node_modules/moment/locale/mr.js": 25382/*!******************************************!*\ 25383 !*** ./node_modules/moment/locale/mr.js ***! 25384 \******************************************/ 25385/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 25386 25387//! moment.js locale configuration 25388//! locale : Marathi [mr] 25389//! author : Harshad Kale : https://github.com/kalehv 25390//! author : Vivek Athalye : https://github.com/vnathalye 25391 25392;(function (global, factory) { 25393 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 25394 0 25395}(this, (function (moment) { 'use strict'; 25396 25397 //! moment.js locale configuration 25398 25399 var symbolMap = { 25400 1: '१', 25401 2: '२', 25402 3: '३', 25403 4: '४', 25404 5: '५', 25405 6: '६', 25406 7: 'à¥', 25407 8: '८', 25408 9: '९', 25409 0: '०', 25410 }, 25411 numberMap = { 25412 '१': '1', 25413 '२': '2', 25414 '३': '3', 25415 '४': '4', 25416 '५': '5', 25417 '६': '6', 25418 'à¥': '7', 25419 '८': '8', 25420 '९': '9', 25421 '०': '0', 25422 }; 25423 25424 function relativeTimeMr(number, withoutSuffix, string, isFuture) { 25425 var output = ''; 25426 if (withoutSuffix) { 25427 switch (string) { 25428 case 's': 25429 output = 'à¤à¤¾à¤¹à¥ सà¥à¤à¤à¤¦'; 25430 break; 25431 case 'ss': 25432 output = '%d सà¥à¤à¤à¤¦'; 25433 break; 25434 case 'm': 25435 output = 'à¤à¤ मिनिà¤'; 25436 break; 25437 case 'mm': 25438 output = '%d मिनिà¤à¥'; 25439 break; 25440 case 'h': 25441 output = 'à¤à¤ तास'; 25442 break; 25443 case 'hh': 25444 output = '%d तास'; 25445 break; 25446 case 'd': 25447 output = 'à¤à¤ दिवस'; 25448 break; 25449 case 'dd': 25450 output = '%d दिवस'; 25451 break; 25452 case 'M': 25453 output = 'à¤à¤ महिना'; 25454 break; 25455 case 'MM': 25456 output = '%d महिनà¥'; 25457 break; 25458 case 'y': 25459 output = 'à¤à¤ वरà¥à¤·'; 25460 break; 25461 case 'yy': 25462 output = '%d वरà¥à¤·à¥'; 25463 break; 25464 } 25465 } else { 25466 switch (string) { 25467 case 's': 25468 output = 'à¤à¤¾à¤¹à¥ सà¥à¤à¤à¤¦à¤¾à¤'; 25469 break; 25470 case 'ss': 25471 output = '%d सà¥à¤à¤à¤¦à¤¾à¤'; 25472 break; 25473 case 'm': 25474 output = 'à¤à¤à¤¾ मिनिà¤à¤¾'; 25475 break; 25476 case 'mm': 25477 output = '%d मिनिà¤à¤¾à¤'; 25478 break; 25479 case 'h': 25480 output = 'à¤à¤à¤¾ तासा'; 25481 break; 25482 case 'hh': 25483 output = '%d तासाà¤'; 25484 break; 25485 case 'd': 25486 output = 'à¤à¤à¤¾ दिवसा'; 25487 break; 25488 case 'dd': 25489 output = '%d दिवसाà¤'; 25490 break; 25491 case 'M': 25492 output = 'à¤à¤à¤¾ महिनà¥à¤¯à¤¾'; 25493 break; 25494 case 'MM': 25495 output = '%d महिनà¥à¤¯à¤¾à¤'; 25496 break; 25497 case 'y': 25498 output = 'à¤à¤à¤¾ वरà¥à¤·à¤¾'; 25499 break; 25500 case 'yy': 25501 output = '%d वरà¥à¤·à¤¾à¤'; 25502 break; 25503 } 25504 } 25505 return output.replace(/%d/i, number); 25506 } 25507 25508 var mr = moment.defineLocale('mr', { 25509 months: 'à¤à¤¾à¤¨à¥à¤µà¤¾à¤°à¥_फà¥à¤¬à¥à¤°à¥à¤µà¤¾à¤°à¥_मारà¥à¤_à¤à¤ªà¥à¤°à¤¿à¤²_मà¥_à¤à¥à¤¨_à¤à¥à¤²à¥_à¤à¤à¤¸à¥à¤_सपà¥à¤à¥à¤à¤¬à¤°_à¤à¤à¥à¤à¥à¤¬à¤°_नà¥à¤µà¥à¤¹à¥à¤à¤¬à¤°_डिसà¥à¤à¤¬à¤°'.split( 25510 '_' 25511 ), 25512 monthsShort: 25513 'à¤à¤¾à¤¨à¥._फà¥à¤¬à¥à¤°à¥._मारà¥à¤._à¤à¤ªà¥à¤°à¤¿._मà¥._à¤à¥à¤¨._à¤à¥à¤²à¥._à¤à¤._सपà¥à¤à¥à¤._à¤à¤à¥à¤à¥._नà¥à¤µà¥à¤¹à¥à¤._डिसà¥à¤.'.split( 25514 '_' 25515 ), 25516 monthsParseExact: true, 25517 weekdays: 'रविवार_सà¥à¤®à¤µà¤¾à¤°_मà¤à¤à¤³à¤µà¤¾à¤°_बà¥à¤§à¤µà¤¾à¤°_à¤à¥à¤°à¥à¤µà¤¾à¤°_शà¥à¤à¥à¤°à¤µà¤¾à¤°_शनिवार'.split('_'), 25518 weekdaysShort: 'रवि_सà¥à¤®_मà¤à¤à¤³_बà¥à¤§_à¤à¥à¤°à¥_शà¥à¤à¥à¤°_शनि'.split('_'), 25519 weekdaysMin: 'र_सà¥_मà¤_बà¥_à¤à¥_शà¥_श'.split('_'), 25520 longDateFormat: { 25521 LT: 'A h:mm वाà¤à¤¤à¤¾', 25522 LTS: 'A h:mm:ss वाà¤à¤¤à¤¾', 25523 L: 'DD/MM/YYYY', 25524 LL: 'D MMMM YYYY', 25525 LLL: 'D MMMM YYYY, A h:mm वाà¤à¤¤à¤¾', 25526 LLLL: 'dddd, D MMMM YYYY, A h:mm वाà¤à¤¤à¤¾', 25527 }, 25528 calendar: { 25529 sameDay: '[à¤à¤] LT', 25530 nextDay: '[à¤à¤¦à¥à¤¯à¤¾] LT', 25531 nextWeek: 'dddd, LT', 25532 lastDay: '[à¤à¤¾à¤²] LT', 25533 lastWeek: '[माà¤à¥à¤²] dddd, LT', 25534 sameElse: 'L', 25535 }, 25536 relativeTime: { 25537 future: '%sमधà¥à¤¯à¥', 25538 past: '%sपà¥à¤°à¥à¤µà¥', 25539 s: relativeTimeMr, 25540 ss: relativeTimeMr, 25541 m: relativeTimeMr, 25542 mm: relativeTimeMr, 25543 h: relativeTimeMr, 25544 hh: relativeTimeMr, 25545 d: relativeTimeMr, 25546 dd: relativeTimeMr, 25547 M: relativeTimeMr, 25548 MM: relativeTimeMr, 25549 y: relativeTimeMr, 25550 yy: relativeTimeMr, 25551 }, 25552 preparse: function (string) { 25553 return string.replace(/[१२३४५६à¥à¥®à¥¯à¥¦]/g, function (match) { 25554 return numberMap[match]; 25555 }); 25556 }, 25557 postformat: function (string) { 25558 return string.replace(/\d/g, function (match) { 25559 return symbolMap[match]; 25560 }); 25561 }, 25562 meridiemParse: /पहाà¤à¥|सà¤à¤¾à¤³à¥|दà¥à¤ªà¤¾à¤°à¥|सायà¤à¤à¤¾à¤³à¥|रातà¥à¤°à¥/, 25563 meridiemHour: function (hour, meridiem) { 25564 if (hour === 12) { 25565 hour = 0; 25566 } 25567 if (meridiem === 'पहाà¤à¥' || meridiem === 'सà¤à¤¾à¤³à¥') { 25568 return hour; 25569 } else if ( 25570 meridiem === 'दà¥à¤ªà¤¾à¤°à¥' || 25571 meridiem === 'सायà¤à¤à¤¾à¤³à¥' || 25572 meridiem === 'रातà¥à¤°à¥' 25573 ) { 25574 return hour >= 12 ? hour : hour + 12; 25575 } 25576 }, 25577 meridiem: function (hour, minute, isLower) { 25578 if (hour >= 0 && hour < 6) { 25579 return 'पहाà¤à¥'; 25580 } else if (hour < 12) { 25581 return 'सà¤à¤¾à¤³à¥'; 25582 } else if (hour < 17) { 25583 return 'दà¥à¤ªà¤¾à¤°à¥'; 25584 } else if (hour < 20) { 25585 return 'सायà¤à¤à¤¾à¤³à¥'; 25586 } else { 25587 return 'रातà¥à¤°à¥'; 25588 } 25589 }, 25590 week: { 25591 dow: 0, // Sunday is the first day of the week. 25592 doy: 6, // The week that contains Jan 6th is the first week of the year. 25593 }, 25594 }); 25595 25596 return mr; 25597 25598}))); 25599 25600 25601/***/ }), 25602
vendor: 3,111 bytes, lines 25603-25697
25603/***/ "./node_modules/moment/locale/ms-my.js": 25604/*!*********************************************!*\ 25605 !*** ./node_modules/moment/locale/ms-my.js ***! 25606 \*********************************************/ 25607/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 25608 25609//! moment.js locale configuration 25610//! locale : Malay [ms-my] 25611//! note : DEPRECATED, the correct one is [ms] 25612//! author : Weldan Jamili : https://github.com/weldan 25613 25614;(function (global, factory) { 25615 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 25616 0 25617}(this, (function (moment) { 'use strict'; 25618 25619 //! moment.js locale configuration 25620 25621 var msMy = moment.defineLocale('ms-my', { 25622 months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split( 25623 '_' 25624 ), 25625 monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'), 25626 weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'), 25627 weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'), 25628 weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'), 25629 longDateFormat: { 25630 LT: 'HH.mm', 25631 LTS: 'HH.mm.ss', 25632 L: 'DD/MM/YYYY', 25633 LL: 'D MMMM YYYY', 25634 LLL: 'D MMMM YYYY [pukul] HH.mm', 25635 LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm', 25636 }, 25637 meridiemParse: /pagi|tengahari|petang|malam/, 25638 meridiemHour: function (hour, meridiem) { 25639 if (hour === 12) { 25640 hour = 0; 25641 } 25642 if (meridiem === 'pagi') { 25643 return hour; 25644 } else if (meridiem === 'tengahari') { 25645 return hour >= 11 ? hour : hour + 12; 25646 } else if (meridiem === 'petang' || meridiem === 'malam') { 25647 return hour + 12; 25648 } 25649 }, 25650 meridiem: function (hours, minutes, isLower) { 25651 if (hours < 11) { 25652 return 'pagi'; 25653 } else if (hours < 15) { 25654 return 'tengahari'; 25655 } else if (hours < 19) { 25656 return 'petang'; 25657 } else { 25658 return 'malam'; 25659 } 25660 }, 25661 calendar: { 25662 sameDay: '[Hari ini pukul] LT', 25663 nextDay: '[Esok pukul] LT', 25664 nextWeek: 'dddd [pukul] LT', 25665 lastDay: '[Kelmarin pukul] LT', 25666 lastWeek: 'dddd [lepas pukul] LT', 25667 sameElse: 'L', 25668 }, 25669 relativeTime: { 25670 future: 'dalam %s', 25671 past: '%s yang lepas', 25672 s: 'beberapa saat', 25673 ss: '%d saat', 25674 m: 'seminit', 25675 mm: '%d minit', 25676 h: 'sejam', 25677 hh: '%d jam', 25678 d: 'sehari', 25679 dd: '%d hari', 25680 M: 'sebulan', 25681 MM: '%d bulan', 25682 y: 'setahun', 25683 yy: '%d tahun', 25684 }, 25685 week: { 25686 dow: 1, // Monday is the first day of the week. 25687 doy: 7, // The week that contains Jan 7th is the first week of the year. 25688 }, 25689 }); 25690 25691 return msMy; 25692 25693}))); 25694 25695 25696/***/ }), 25697
vendor: 3,042 bytes, lines 25698-25791
25698/***/ "./node_modules/moment/locale/ms.js": 25699/*!******************************************!*\ 25700 !*** ./node_modules/moment/locale/ms.js ***! 25701 \******************************************/ 25702/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 25703 25704//! moment.js locale configuration 25705//! locale : Malay [ms] 25706//! author : Weldan Jamili : https://github.com/weldan 25707 25708;(function (global, factory) { 25709 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 25710 0 25711}(this, (function (moment) { 'use strict'; 25712 25713 //! moment.js locale configuration 25714 25715 var ms = moment.defineLocale('ms', { 25716 months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split( 25717 '_' 25718 ), 25719 monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'), 25720 weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'), 25721 weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'), 25722 weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'), 25723 longDateFormat: { 25724 LT: 'HH.mm', 25725 LTS: 'HH.mm.ss', 25726 L: 'DD/MM/YYYY', 25727 LL: 'D MMMM YYYY', 25728 LLL: 'D MMMM YYYY [pukul] HH.mm', 25729 LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm', 25730 }, 25731 meridiemParse: /pagi|tengahari|petang|malam/, 25732 meridiemHour: function (hour, meridiem) { 25733 if (hour === 12) { 25734 hour = 0; 25735 } 25736 if (meridiem === 'pagi') { 25737 return hour; 25738 } else if (meridiem === 'tengahari') { 25739 return hour >= 11 ? hour : hour + 12; 25740 } else if (meridiem === 'petang' || meridiem === 'malam') { 25741 return hour + 12; 25742 } 25743 }, 25744 meridiem: function (hours, minutes, isLower) { 25745 if (hours < 11) { 25746 return 'pagi'; 25747 } else if (hours < 15) { 25748 return 'tengahari'; 25749 } else if (hours < 19) { 25750 return 'petang'; 25751 } else { 25752 return 'malam'; 25753 } 25754 }, 25755 calendar: { 25756 sameDay: '[Hari ini pukul] LT', 25757 nextDay: '[Esok pukul] LT', 25758 nextWeek: 'dddd [pukul] LT', 25759 lastDay: '[Kelmarin pukul] LT', 25760 lastWeek: 'dddd [lepas pukul] LT', 25761 sameElse: 'L', 25762 }, 25763 relativeTime: { 25764 future: 'dalam %s', 25765 past: '%s yang lepas', 25766 s: 'beberapa saat', 25767 ss: '%d saat', 25768 m: 'seminit', 25769 mm: '%d minit', 25770 h: 'sejam', 25771 hh: '%d jam', 25772 d: 'sehari', 25773 dd: '%d hari', 25774 M: 'sebulan', 25775 MM: '%d bulan', 25776 y: 'setahun', 25777 yy: '%d tahun', 25778 }, 25779 week: { 25780 dow: 1, // Monday is the first day of the week. 25781 doy: 7, // The week that contains Jan 7th is the first week of the year. 25782 }, 25783 }); 25784 25785 return ms; 25786 25787}))); 25788 25789 25790/***/ }), 25791
vendor: 2,373 bytes, lines 25792-25866
25792/***/ "./node_modules/moment/locale/mt.js": 25793/*!******************************************!*\ 25794 !*** ./node_modules/moment/locale/mt.js ***! 25795 \******************************************/ 25796/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 25797 25798//! moment.js locale configuration 25799//! locale : Maltese (Malta) [mt] 25800//! author : Alessandro Maruccia : https://github.com/alesma 25801 25802;(function (global, factory) { 25803 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 25804 0 25805}(this, (function (moment) { 'use strict'; 25806 25807 //! moment.js locale configuration 25808 25809 var mt = moment.defineLocale('mt', { 25810 months: 'Jannar_Frar_Marzu_April_Mejju_Ä unju_Lulju_Awwissu_Settembru_Ottubru_Novembru_DiÄembru'.split( 25811 '_' 25812 ), 25813 monthsShort: 'Jan_Fra_Mar_Apr_Mej_Ä un_Lul_Aww_Set_Ott_Nov_DiÄ'.split('_'), 25814 weekdays: 25815 'Il-Ħadd_It-Tnejn_It-Tlieta_L-Erbgħa_Il-Ħamis_Il-Ä imgħa_Is-Sibt'.split( 25816 '_' 25817 ), 25818 weekdaysShort: 'Ħad_Tne_Tli_Erb_Ħam_Ä im_Sib'.split('_'), 25819 weekdaysMin: 'Ħa_Tn_Tl_Er_Ħa_Ä i_Si'.split('_'), 25820 longDateFormat: { 25821 LT: 'HH:mm', 25822 LTS: 'HH:mm:ss', 25823 L: 'DD/MM/YYYY', 25824 LL: 'D MMMM YYYY', 25825 LLL: 'D MMMM YYYY HH:mm', 25826 LLLL: 'dddd, D MMMM YYYY HH:mm', 25827 }, 25828 calendar: { 25829 sameDay: '[Illum fil-]LT', 25830 nextDay: '[Għada fil-]LT', 25831 nextWeek: 'dddd [fil-]LT', 25832 lastDay: '[Il-bieraħ fil-]LT', 25833 lastWeek: 'dddd [li għadda] [fil-]LT', 25834 sameElse: 'L', 25835 }, 25836 relativeTime: { 25837 future: 'fâ %s', 25838 past: '%s ilu', 25839 s: 'ftit sekondi', 25840 ss: '%d sekondi', 25841 m: 'minuta', 25842 mm: '%d minuti', 25843 h: 'siegħa', 25844 hh: '%d siegħat', 25845 d: 'Ä¡urnata', 25846 dd: '%d Ä¡ranet', 25847 M: 'xahar', 25848 MM: '%d xhur', 25849 y: 'sena', 25850 yy: '%d sni', 25851 }, 25852 dayOfMonthOrdinalParse: /\d{1,2}º/, 25853 ordinal: '%dº', 25854 week: { 25855 dow: 1, // Monday is the first day of the week. 25856 doy: 4, // The week that contains Jan 4th is the first week of the year. 25857 }, 25858 }); 25859 25860 return mt; 25861 25862}))); 25863 25864 25865/***/ }), 25866
vendor: 3,907 bytes, lines 25867-25976
25867/***/ "./node_modules/moment/locale/my.js": 25868/*!******************************************!*\ 25869 !*** ./node_modules/moment/locale/my.js ***! 25870 \******************************************/ 25871/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 25872 25873//! moment.js locale configuration 25874//! locale : Burmese [my] 25875//! author : Squar team, mysquar.com 25876//! author : David Rossellat : https://github.com/gholadr 25877//! author : Tin Aung Lin : https://github.com/thanyawzinmin 25878 25879;(function (global, factory) { 25880 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 25881 0 25882}(this, (function (moment) { 'use strict'; 25883 25884 //! moment.js locale configuration 25885 25886 var symbolMap = { 25887 1: 'á', 25888 2: 'á', 25889 3: 'á', 25890 4: 'á', 25891 5: 'á ', 25892 6: 'á', 25893 7: 'á', 25894 8: 'á', 25895 9: 'á', 25896 0: 'á', 25897 }, 25898 numberMap = { 25899 'á': '1', 25900 'á': '2', 25901 'á': '3', 25902 'á': '4', 25903 'á ': '5', 25904 'á': '6', 25905 'á': '7', 25906 'á': '8', 25907 'á': '9', 25908 'á': '0', 25909 }; 25910 25911 var my = moment.defineLocale('my', { 25912 months: 'áááºááá«áá®_áá±áá±á¬áºáá«áá®_áááº_á§áá¼á®_áá±_áá½ááº_áá°ááá¯ááº_áá¼áá¯ááº_á ááºáááºáá¬_á¡á±á¬ááºááá¯áá¬_ááá¯áááºáá¬_áá®áááºáá¬'.split( 25913 '_' 25914 ), 25915 monthsShort: 'áááº_áá±_áááº_áá¼á®_áá±_áá½ááº_ááá¯ááº_áá¼_á ááº_á¡á±á¬ááº_ááá¯_áá®'.split('_'), 25916 weekdays: 'ááááºá¹ááá½á±_ááááºá¹áá¬_á¡ááºá¹áá«_áá¯áá¹ááá°á¸_áá¼á¬áááá±á¸_áá±á¬áá¼á¬_á áá±'.split( 25917 '_' 25918 ), 25919 weekdaysShort: 'áá½á±_áá¬_áá«_áá°á¸_áá¼á¬_áá±á¬_áá±'.split('_'), 25920 weekdaysMin: 'áá½á±_áá¬_áá«_áá°á¸_áá¼á¬_áá±á¬_áá±'.split('_'), 25921 25922 longDateFormat: { 25923 LT: 'HH:mm', 25924 LTS: 'HH:mm:ss', 25925 L: 'DD/MM/YYYY', 25926 LL: 'D MMMM YYYY', 25927 LLL: 'D MMMM YYYY HH:mm', 25928 LLLL: 'dddd D MMMM YYYY HH:mm', 25929 }, 25930 calendar: { 25931 sameDay: '[ááá±.] LT [áá¾á¬]', 25932 nextDay: '[ááááºáá¼ááº] LT [áá¾á¬]', 25933 nextWeek: 'dddd LT [áá¾á¬]', 25934 lastDay: '[ááá±.á] LT [áá¾á¬]', 25935 lastWeek: '[áá¼á®á¸áá²á·áá±á¬] dddd LT [áá¾á¬]', 25936 sameElse: 'L', 25937 }, 25938 relativeTime: { 25939 future: 'áá¬áááºá· %s áá¾á¬', 25940 past: 'áá½ááºáá²á·áá±á¬ %s á', 25941 s: 'á áá¹áááº.á¡áááºá¸áááº', 25942 ss: '%d á áá¹ááá·áº', 25943 m: 'áá áºáááá áº', 25944 mm: '%d áááá áº', 25945 h: 'áá áºáá¬áá®', 25946 hh: '%d áá¬áá®', 25947 d: 'áá áºáááº', 25948 dd: '%d áááº', 25949 M: 'áá áºá', 25950 MM: '%d á', 25951 y: 'áá áºáá¾á áº', 25952 yy: '%d áá¾á áº', 25953 }, 25954 preparse: function (string) { 25955 return string.replace(/[ááááá ááááá]/g, function (match) { 25956 return numberMap[match]; 25957 }); 25958 }, 25959 postformat: function (string) { 25960 return string.replace(/\d/g, function (match) { 25961 return symbolMap[match]; 25962 }); 25963 }, 25964 week: { 25965 dow: 1, // Monday is the first day of the week. 25966 doy: 4, // The week that contains Jan 4th is the first week of the year. 25967 }, 25968 }); 25969 25970 return my; 25971 25972}))); 25973 25974 25975/***/ }), 25976
vendor: 2,600 bytes, lines 25977-26055
25977/***/ "./node_modules/moment/locale/nb.js": 25978/*!******************************************!*\ 25979 !*** ./node_modules/moment/locale/nb.js ***! 25980 \******************************************/ 25981/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 25982 25983//! moment.js locale configuration 25984//! locale : Norwegian Bokmål [nb] 25985//! authors : Espen Hovlandsdal : https://github.com/rexxars 25986//! Sigurd Gartmann : https://github.com/sigurdga 25987//! Stephen Ramthun : https://github.com/stephenramthun 25988 25989;(function (global, factory) { 25990 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 25991 0 25992}(this, (function (moment) { 'use strict'; 25993 25994 //! moment.js locale configuration 25995 25996 var nb = moment.defineLocale('nb', { 25997 months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split( 25998 '_' 25999 ), 26000 monthsShort: 26001 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split('_'), 26002 monthsParseExact: true, 26003 weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'), 26004 weekdaysShort: 'sø._ma._ti._on._to._fr._lø.'.split('_'), 26005 weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'), 26006 weekdaysParseExact: true, 26007 longDateFormat: { 26008 LT: 'HH:mm', 26009 LTS: 'HH:mm:ss', 26010 L: 'DD.MM.YYYY', 26011 LL: 'D. MMMM YYYY', 26012 LLL: 'D. MMMM YYYY [kl.] HH:mm', 26013 LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm', 26014 }, 26015 calendar: { 26016 sameDay: '[i dag kl.] LT', 26017 nextDay: '[i morgen kl.] LT', 26018 nextWeek: 'dddd [kl.] LT', 26019 lastDay: '[i går kl.] LT', 26020 lastWeek: '[forrige] dddd [kl.] LT', 26021 sameElse: 'L', 26022 }, 26023 relativeTime: { 26024 future: 'om %s', 26025 past: '%s siden', 26026 s: 'noen sekunder', 26027 ss: '%d sekunder', 26028 m: 'ett minutt', 26029 mm: '%d minutter', 26030 h: 'én time', 26031 hh: '%d timer', 26032 d: 'én dag', 26033 dd: '%d dager', 26034 w: 'én uke', 26035 ww: '%d uker', 26036 M: 'én måned', 26037 MM: '%d måneder', 26038 y: 'ett år', 26039 yy: '%d år', 26040 }, 26041 dayOfMonthOrdinalParse: /\d{1,2}\./, 26042 ordinal: '%d.', 26043 week: { 26044 dow: 1, // Monday is the first day of the week. 26045 doy: 4, // The week that contains Jan 4th is the first week of the year. 26046 }, 26047 }); 26048 26049 return nb; 26050 26051}))); 26052 26053 26054/***/ }), 26055
vendor: 4,976 bytes, lines 26056-26195
26056/***/ "./node_modules/moment/locale/ne.js": 26057/*!******************************************!*\ 26058 !*** ./node_modules/moment/locale/ne.js ***! 26059 \******************************************/ 26060/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 26061 26062//! moment.js locale configuration 26063//! locale : Nepalese [ne] 26064//! author : suvash : https://github.com/suvash 26065 26066;(function (global, factory) { 26067 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 26068 0 26069}(this, (function (moment) { 'use strict'; 26070 26071 //! moment.js locale configuration 26072 26073 var symbolMap = { 26074 1: '१', 26075 2: '२', 26076 3: '३', 26077 4: '४', 26078 5: '५', 26079 6: '६', 26080 7: 'à¥', 26081 8: '८', 26082 9: '९', 26083 0: '०', 26084 }, 26085 numberMap = { 26086 '१': '1', 26087 '२': '2', 26088 '३': '3', 26089 '४': '4', 26090 '५': '5', 26091 '६': '6', 26092 'à¥': '7', 26093 '८': '8', 26094 '९': '9', 26095 '०': '0', 26096 }; 26097 26098 var ne = moment.defineLocale('ne', { 26099 months: 'à¤à¤¨à¤µà¤°à¥_फà¥à¤¬à¥à¤°à¥à¤µà¤°à¥_मारà¥à¤_ठपà¥à¤°à¤¿à¤²_मà¤_à¤à¥à¤¨_à¤à¥à¤²à¤¾à¤_ठà¤à¤·à¥à¤_सà¥à¤ªà¥à¤à¥à¤®à¥à¤¬à¤°_ठà¤à¥à¤à¥à¤¬à¤°_नà¥à¤à¥à¤®à¥à¤¬à¤°_डिसà¥à¤®à¥à¤¬à¤°'.split( 26100 '_' 26101 ), 26102 monthsShort: 26103 'à¤à¤¨._फà¥à¤¬à¥à¤°à¥._मारà¥à¤_ठपà¥à¤°à¤¿._मà¤_à¤à¥à¤¨_à¤à¥à¤²à¤¾à¤._ठà¤._सà¥à¤ªà¥à¤._ठà¤à¥à¤à¥._नà¥à¤à¥._डिसà¥.'.split( 26104 '_' 26105 ), 26106 monthsParseExact: true, 26107 weekdays: 'à¤à¤à¤¤à¤¬à¤¾à¤°_सà¥à¤®à¤¬à¤¾à¤°_मà¤à¥à¤à¤²à¤¬à¤¾à¤°_बà¥à¤§à¤¬à¤¾à¤°_बिहिबार_शà¥à¤à¥à¤°à¤¬à¤¾à¤°_शनिबार'.split( 26108 '_' 26109 ), 26110 weekdaysShort: 'à¤à¤à¤¤._सà¥à¤®._मà¤à¥à¤à¤²._बà¥à¤§._बिहि._शà¥à¤à¥à¤°._शनि.'.split('_'), 26111 weekdaysMin: 'à¤._सà¥._मà¤._बà¥._बि._शà¥._श.'.split('_'), 26112 weekdaysParseExact: true, 26113 longDateFormat: { 26114 LT: 'Aà¤à¥ h:mm बà¤à¥', 26115 LTS: 'Aà¤à¥ h:mm:ss बà¤à¥', 26116 L: 'DD/MM/YYYY', 26117 LL: 'D MMMM YYYY', 26118 LLL: 'D MMMM YYYY, Aà¤à¥ h:mm बà¤à¥', 26119 LLLL: 'dddd, D MMMM YYYY, Aà¤à¥ h:mm बà¤à¥', 26120 }, 26121 preparse: function (string) { 26122 return string.replace(/[१२३४५६à¥à¥®à¥¯à¥¦]/g, function (match) { 26123 return numberMap[match]; 26124 }); 26125 }, 26126 postformat: function (string) { 26127 return string.replace(/\d/g, function (match) { 26128 return symbolMap[match]; 26129 }); 26130 }, 26131 meridiemParse: /राति|बिहान|दिà¤à¤à¤¸à¥|साà¤à¤/, 26132 meridiemHour: function (hour, meridiem) { 26133 if (hour === 12) { 26134 hour = 0; 26135 } 26136 if (meridiem === 'राति') { 26137 return hour < 4 ? hour : hour + 12; 26138 } else if (meridiem === 'बिहान') { 26139 return hour; 26140 } else if (meridiem === 'दिà¤à¤à¤¸à¥') { 26141 return hour >= 10 ? hour : hour + 12; 26142 } else if (meridiem === 'साà¤à¤') { 26143 return hour + 12; 26144 } 26145 }, 26146 meridiem: function (hour, minute, isLower) { 26147 if (hour < 3) { 26148 return 'राति'; 26149 } else if (hour < 12) { 26150 return 'बिहान'; 26151 } else if (hour < 16) { 26152 return 'दिà¤à¤à¤¸à¥'; 26153 } else if (hour < 20) { 26154 return 'साà¤à¤'; 26155 } else { 26156 return 'राति'; 26157 } 26158 }, 26159 calendar: { 26160 sameDay: '[à¤à¤] LT', 26161 nextDay: '[à¤à¥à¤²à¤¿] LT', 26162 nextWeek: '[à¤à¤à¤à¤¦à¥] dddd[,] LT', 26163 lastDay: '[हिà¤à¥] LT', 26164 lastWeek: '[à¤à¤à¤à¥] dddd[,] LT', 26165 sameElse: 'L', 26166 }, 26167 relativeTime: { 26168 future: '%sमा', 26169 past: '%s ठà¤à¤¾à¤¡à¤¿', 26170 s: 'à¤à¥à¤¹à¥ à¤à¥à¤·à¤£', 26171 ss: '%d सà¥à¤à¥à¤£à¥à¤¡', 26172 m: 'à¤à¤ मिनà¥à¤', 26173 mm: '%d मिनà¥à¤', 26174 h: 'à¤à¤ à¤à¤£à¥à¤à¤¾', 26175 hh: '%d à¤à¤£à¥à¤à¤¾', 26176 d: 'à¤à¤ दिन', 26177 dd: '%d दिन', 26178 M: 'à¤à¤ महिना', 26179 MM: '%d महिना', 26180 y: 'à¤à¤ बरà¥à¤·', 26181 yy: '%d बरà¥à¤·', 26182 }, 26183 week: { 26184 dow: 0, // Sunday is the first day of the week. 26185 doy: 6, // The week that contains Jan 6th is the first week of the year. 26186 }, 26187 }); 26188 26189 return ne; 26190 26191}))); 26192 26193 26194/***/ }), 26195
vendor: 4,041 bytes, lines 26196-26316
26196/***/ "./node_modules/moment/locale/nl-be.js": 26197/*!*********************************************!*\ 26198 !*** ./node_modules/moment/locale/nl-be.js ***! 26199 \*********************************************/ 26200/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 26201 26202//! moment.js locale configuration 26203//! locale : Dutch (Belgium) [nl-be] 26204//! author : Joris Röling : https://github.com/jorisroling 26205//! author : Jacob Middag : https://github.com/middagj 26206 26207;(function (global, factory) { 26208 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 26209 0 26210}(this, (function (moment) { 'use strict'; 26211 26212 //! moment.js locale configuration 26213 26214 var monthsShortWithDots = 26215 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'), 26216 monthsShortWithoutDots = 26217 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'), 26218 monthsParse = [ 26219 /^jan/i, 26220 /^feb/i, 26221 /^(maart|mrt\.?)$/i, 26222 /^apr/i, 26223 /^mei$/i, 26224 /^jun[i.]?$/i, 26225 /^jul[i.]?$/i, 26226 /^aug/i, 26227 /^sep/i, 26228 /^okt/i, 26229 /^nov/i, 26230 /^dec/i, 26231 ], 26232 monthsRegex = 26233 /^(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; 26234 26235 var nlBe = moment.defineLocale('nl-be', { 26236 months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split( 26237 '_' 26238 ), 26239 monthsShort: function (m, format) { 26240 if (!m) { 26241 return monthsShortWithDots; 26242 } else if (/-MMM-/.test(format)) { 26243 return monthsShortWithoutDots[m.month()]; 26244 } else { 26245 return monthsShortWithDots[m.month()]; 26246 } 26247 }, 26248 26249 monthsRegex: monthsRegex, 26250 monthsShortRegex: monthsRegex, 26251 monthsStrictRegex: 26252 /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i, 26253 monthsShortStrictRegex: 26254 /^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i, 26255 26256 monthsParse: monthsParse, 26257 longMonthsParse: monthsParse, 26258 shortMonthsParse: monthsParse, 26259 26260 weekdays: 26261 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'), 26262 weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'), 26263 weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'), 26264 weekdaysParseExact: true, 26265 longDateFormat: { 26266 LT: 'HH:mm', 26267 LTS: 'HH:mm:ss', 26268 L: 'DD/MM/YYYY', 26269 LL: 'D MMMM YYYY', 26270 LLL: 'D MMMM YYYY HH:mm', 26271 LLLL: 'dddd D MMMM YYYY HH:mm', 26272 }, 26273 calendar: { 26274 sameDay: '[vandaag om] LT', 26275 nextDay: '[morgen om] LT', 26276 nextWeek: 'dddd [om] LT', 26277 lastDay: '[gisteren om] LT', 26278 lastWeek: '[afgelopen] dddd [om] LT', 26279 sameElse: 'L', 26280 }, 26281 relativeTime: { 26282 future: 'over %s', 26283 past: '%s geleden', 26284 s: 'een paar seconden', 26285 ss: '%d seconden', 26286 m: 'één minuut', 26287 mm: '%d minuten', 26288 h: 'één uur', 26289 hh: '%d uur', 26290 d: 'één dag', 26291 dd: '%d dagen', 26292 M: 'één maand', 26293 MM: '%d maanden', 26294 y: 'één jaar', 26295 yy: '%d jaar', 26296 }, 26297 dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, 26298 ordinal: function (number) { 26299 return ( 26300 number + 26301 (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de') 26302 ); 26303 }, 26304 week: { 26305 dow: 1, // Monday is the first day of the week. 26306 doy: 4, // The week that contains Jan 4th is the first week of the year. 26307 }, 26308 }); 26309 26310 return nlBe; 26311 26312}))); 26313 26314 26315/***/ }), 26316
vendor: 4,066 bytes, lines 26317-26439
26317/***/ "./node_modules/moment/locale/nl.js": 26318/*!******************************************!*\ 26319 !*** ./node_modules/moment/locale/nl.js ***! 26320 \******************************************/ 26321/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 26322 26323//! moment.js locale configuration 26324//! locale : Dutch [nl] 26325//! author : Joris Röling : https://github.com/jorisroling 26326//! author : Jacob Middag : https://github.com/middagj 26327 26328;(function (global, factory) { 26329 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 26330 0 26331}(this, (function (moment) { 'use strict'; 26332 26333 //! moment.js locale configuration 26334 26335 var monthsShortWithDots = 26336 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'), 26337 monthsShortWithoutDots = 26338 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'), 26339 monthsParse = [ 26340 /^jan/i, 26341 /^feb/i, 26342 /^(maart|mrt\.?)$/i, 26343 /^apr/i, 26344 /^mei$/i, 26345 /^jun[i.]?$/i, 26346 /^jul[i.]?$/i, 26347 /^aug/i, 26348 /^sep/i, 26349 /^okt/i, 26350 /^nov/i, 26351 /^dec/i, 26352 ], 26353 monthsRegex = 26354 /^(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; 26355 26356 var nl = moment.defineLocale('nl', { 26357 months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split( 26358 '_' 26359 ), 26360 monthsShort: function (m, format) { 26361 if (!m) { 26362 return monthsShortWithDots; 26363 } else if (/-MMM-/.test(format)) { 26364 return monthsShortWithoutDots[m.month()]; 26365 } else { 26366 return monthsShortWithDots[m.month()]; 26367 } 26368 }, 26369 26370 monthsRegex: monthsRegex, 26371 monthsShortRegex: monthsRegex, 26372 monthsStrictRegex: 26373 /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i, 26374 monthsShortStrictRegex: 26375 /^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i, 26376 26377 monthsParse: monthsParse, 26378 longMonthsParse: monthsParse, 26379 shortMonthsParse: monthsParse, 26380 26381 weekdays: 26382 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'), 26383 weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'), 26384 weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'), 26385 weekdaysParseExact: true, 26386 longDateFormat: { 26387 LT: 'HH:mm', 26388 LTS: 'HH:mm:ss', 26389 L: 'DD-MM-YYYY', 26390 LL: 'D MMMM YYYY', 26391 LLL: 'D MMMM YYYY HH:mm', 26392 LLLL: 'dddd D MMMM YYYY HH:mm', 26393 }, 26394 calendar: { 26395 sameDay: '[vandaag om] LT', 26396 nextDay: '[morgen om] LT', 26397 nextWeek: 'dddd [om] LT', 26398 lastDay: '[gisteren om] LT', 26399 lastWeek: '[afgelopen] dddd [om] LT', 26400 sameElse: 'L', 26401 }, 26402 relativeTime: { 26403 future: 'over %s', 26404 past: '%s geleden', 26405 s: 'een paar seconden', 26406 ss: '%d seconden', 26407 m: 'één minuut', 26408 mm: '%d minuten', 26409 h: 'één uur', 26410 hh: '%d uur', 26411 d: 'één dag', 26412 dd: '%d dagen', 26413 w: 'één week', 26414 ww: '%d weken', 26415 M: 'één maand', 26416 MM: '%d maanden', 26417 y: 'één jaar', 26418 yy: '%d jaar', 26419 }, 26420 dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, 26421 ordinal: function (number) { 26422 return ( 26423 number + 26424 (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de') 26425 ); 26426 }, 26427 week: { 26428 dow: 1, // Monday is the first day of the week. 26429 doy: 4, // The week that contains Jan 4th is the first week of the year. 26430 }, 26431 }); 26432 26433 return nl; 26434 26435}))); 26436 26437 26438/***/ }), 26439
vendor: 2,525 bytes, lines 26440-26517
26440/***/ "./node_modules/moment/locale/nn.js": 26441/*!******************************************!*\ 26442 !*** ./node_modules/moment/locale/nn.js ***! 26443 \******************************************/ 26444/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 26445 26446//! moment.js locale configuration 26447//! locale : Nynorsk [nn] 26448//! authors : https://github.com/mechuwind 26449//! Stephen Ramthun : https://github.com/stephenramthun 26450 26451;(function (global, factory) { 26452 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 26453 0 26454}(this, (function (moment) { 'use strict'; 26455 26456 //! moment.js locale configuration 26457 26458 var nn = moment.defineLocale('nn', { 26459 months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split( 26460 '_' 26461 ), 26462 monthsShort: 26463 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split('_'), 26464 monthsParseExact: true, 26465 weekdays: 'sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag'.split('_'), 26466 weekdaysShort: 'su._må._ty._on._to._fr._lau.'.split('_'), 26467 weekdaysMin: 'su_må_ty_on_to_fr_la'.split('_'), 26468 weekdaysParseExact: true, 26469 longDateFormat: { 26470 LT: 'HH:mm', 26471 LTS: 'HH:mm:ss', 26472 L: 'DD.MM.YYYY', 26473 LL: 'D. MMMM YYYY', 26474 LLL: 'D. MMMM YYYY [kl.] H:mm', 26475 LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm', 26476 }, 26477 calendar: { 26478 sameDay: '[I dag klokka] LT', 26479 nextDay: '[I morgon klokka] LT', 26480 nextWeek: 'dddd [klokka] LT', 26481 lastDay: '[I går klokka] LT', 26482 lastWeek: '[Føregåande] dddd [klokka] LT', 26483 sameElse: 'L', 26484 }, 26485 relativeTime: { 26486 future: 'om %s', 26487 past: '%s sidan', 26488 s: 'nokre sekund', 26489 ss: '%d sekund', 26490 m: 'eit minutt', 26491 mm: '%d minutt', 26492 h: 'ein time', 26493 hh: '%d timar', 26494 d: 'ein dag', 26495 dd: '%d dagar', 26496 w: 'ei veke', 26497 ww: '%d veker', 26498 M: 'ein månad', 26499 MM: '%d månader', 26500 y: 'eit år', 26501 yy: '%d år', 26502 }, 26503 dayOfMonthOrdinalParse: /\d{1,2}\./, 26504 ordinal: '%d.', 26505 week: { 26506 dow: 1, // Monday is the first day of the week. 26507 doy: 4, // The week that contains Jan 4th is the first week of the year. 26508 }, 26509 }); 26510 26511 return nn; 26512 26513}))); 26514 26515 26516/***/ }), 26517
vendor: 3,323 bytes, lines 26518-26621
26518/***/ "./node_modules/moment/locale/oc-lnc.js": 26519/*!**********************************************!*\ 26520 !*** ./node_modules/moment/locale/oc-lnc.js ***! 26521 \**********************************************/ 26522/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 26523 26524//! moment.js locale configuration 26525//! locale : Occitan, lengadocian dialecte [oc-lnc] 26526//! author : Quentin PAGÃS : https://github.com/Quenty31 26527 26528;(function (global, factory) { 26529 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 26530 0 26531}(this, (function (moment) { 'use strict'; 26532 26533 //! moment.js locale configuration 26534 26535 var ocLnc = moment.defineLocale('oc-lnc', { 26536 months: { 26537 standalone: 26538 'genièr_febrièr_març_abril_mai_junh_julhet_agost_setembre_octòbre_novembre_decembre'.split( 26539 '_' 26540 ), 26541 format: "de genièr_de febrièr_de març_d'abril_de mai_de junh_de julhet_d'agost_de setembre_d'octòbre_de novembre_de decembre".split( 26542 '_' 26543 ), 26544 isFormat: /D[oD]?(\s)+MMMM/, 26545 }, 26546 monthsShort: 26547 'gen._febr._març_abr._mai_junh_julh._ago._set._oct._nov._dec.'.split( 26548 '_' 26549 ), 26550 monthsParseExact: true, 26551 weekdays: 'dimenge_diluns_dimars_dimècres_dijòus_divendres_dissabte'.split( 26552 '_' 26553 ), 26554 weekdaysShort: 'dg._dl._dm._dc._dj._dv._ds.'.split('_'), 26555 weekdaysMin: 'dg_dl_dm_dc_dj_dv_ds'.split('_'), 26556 weekdaysParseExact: true, 26557 longDateFormat: { 26558 LT: 'H:mm', 26559 LTS: 'H:mm:ss', 26560 L: 'DD/MM/YYYY', 26561 LL: 'D MMMM [de] YYYY', 26562 ll: 'D MMM YYYY', 26563 LLL: 'D MMMM [de] YYYY [a] H:mm', 26564 lll: 'D MMM YYYY, H:mm', 26565 LLLL: 'dddd D MMMM [de] YYYY [a] H:mm', 26566 llll: 'ddd D MMM YYYY, H:mm', 26567 }, 26568 calendar: { 26569 sameDay: '[uèi a] LT', 26570 nextDay: '[deman a] LT', 26571 nextWeek: 'dddd [a] LT', 26572 lastDay: '[ièr a] LT', 26573 lastWeek: 'dddd [passat a] LT', 26574 sameElse: 'L', 26575 }, 26576 relativeTime: { 26577 future: "d'aquà %s", 26578 past: 'fa %s', 26579 s: 'unas segondas', 26580 ss: '%d segondas', 26581 m: 'una minuta', 26582 mm: '%d minutas', 26583 h: 'una ora', 26584 hh: '%d oras', 26585 d: 'un jorn', 26586 dd: '%d jorns', 26587 M: 'un mes', 26588 MM: '%d meses', 26589 y: 'un an', 26590 yy: '%d ans', 26591 }, 26592 dayOfMonthOrdinalParse: /\d{1,2}(r|n|t|è|a)/, 26593 ordinal: function (number, period) { 26594 var output = 26595 number === 1 26596 ? 'r' 26597 : number === 2 26598 ? 'n' 26599 : number === 3 26600 ? 'r' 26601 : number === 4 26602 ? 't' 26603 : 'è'; 26604 if (period === 'w' || period === 'W') { 26605 output = 'a'; 26606 } 26607 return number + output; 26608 }, 26609 week: { 26610 dow: 1, // Monday is the first day of the week. 26611 doy: 4, 26612 }, 26613 }); 26614 26615 return ocLnc; 26616 26617}))); 26618 26619 26620/***/ }), 26621
vendor: 5,163 bytes, lines 26622-26762
26622/***/ "./node_modules/moment/locale/pa-in.js": 26623/*!*********************************************!*\ 26624 !*** ./node_modules/moment/locale/pa-in.js ***! 26625 \*********************************************/ 26626/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 26627 26628//! moment.js locale configuration 26629//! locale : Punjabi (India) [pa-in] 26630//! author : Harpreet Singh : https://github.com/harpreetkhalsagtbit 26631 26632;(function (global, factory) { 26633 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 26634 0 26635}(this, (function (moment) { 'use strict'; 26636 26637 //! moment.js locale configuration 26638 26639 var symbolMap = { 26640 1: 'à©§', 26641 2: '੨', 26642 3: 'à©©', 26643 4: '੪', 26644 5: 'à©«', 26645 6: '੬', 26646 7: 'à©', 26647 8: 'à©®', 26648 9: '੯', 26649 0: '੦', 26650 }, 26651 numberMap = { 26652 'à©§': '1', 26653 '੨': '2', 26654 'à©©': '3', 26655 '੪': '4', 26656 'à©«': '5', 26657 '੬': '6', 26658 'à©': '7', 26659 'à©®': '8', 26660 '੯': '9', 26661 '੦': '0', 26662 }; 26663 26664 var paIn = moment.defineLocale('pa-in', { 26665 // There are months name as per Nanakshahi Calendar but they are not used as rigidly in modern Punjabi. 26666 months: 'à¨à¨¨à¨µà¨°à©_ਫ਼ਰਵਰà©_ਮਾਰà¨_ਠਪà©à¨°à©à¨²_ਮà¨_à¨à©à¨¨_à¨à©à¨²à¨¾à¨_ਠà¨à¨¸à¨¤_ਸਤੰਬਰ_ਠà¨à¨¤à©à¨¬à¨°_ਨਵੰਬਰ_ਦਸੰਬਰ'.split( 26667 '_' 26668 ), 26669 monthsShort: 26670 'à¨à¨¨à¨µà¨°à©_ਫ਼ਰਵਰà©_ਮਾਰà¨_ਠਪà©à¨°à©à¨²_ਮà¨_à¨à©à¨¨_à¨à©à¨²à¨¾à¨_ਠà¨à¨¸à¨¤_ਸਤੰਬਰ_ਠà¨à¨¤à©à¨¬à¨°_ਨਵੰਬਰ_ਦਸੰਬਰ'.split( 26671 '_' 26672 ), 26673 weekdays: 'à¨à¨¤à¨µà¨¾à¨°_ਸà©à¨®à¨µà¨¾à¨°_ਮੰà¨à¨²à¨µà¨¾à¨°_ਬà©à¨§à¨µà¨¾à¨°_ਵà©à¨°à¨µà¨¾à¨°_ਸ਼à©à©±à¨à¨°à¨µà¨¾à¨°_ਸ਼ਨà©à¨à¨°à¨µà¨¾à¨°'.split( 26674 '_' 26675 ), 26676 weekdaysShort: 'à¨à¨¤_ਸà©à¨®_ਮੰà¨à¨²_ਬà©à¨§_ਵà©à¨°_ਸ਼à©à¨à¨°_ਸ਼ਨà©'.split('_'), 26677 weekdaysMin: 'à¨à¨¤_ਸà©à¨®_ਮੰà¨à¨²_ਬà©à¨§_ਵà©à¨°_ਸ਼à©à¨à¨°_ਸ਼ਨà©'.split('_'), 26678 longDateFormat: { 26679 LT: 'A h:mm ਵà¨à©', 26680 LTS: 'A h:mm:ss ਵà¨à©', 26681 L: 'DD/MM/YYYY', 26682 LL: 'D MMMM YYYY', 26683 LLL: 'D MMMM YYYY, A h:mm ਵà¨à©', 26684 LLLL: 'dddd, D MMMM YYYY, A h:mm ਵà¨à©', 26685 }, 26686 calendar: { 26687 sameDay: '[ਠà¨] LT', 26688 nextDay: '[à¨à¨²] LT', 26689 nextWeek: '[ਠà¨à¨²à¨¾] dddd, LT', 26690 lastDay: '[à¨à¨²] LT', 26691 lastWeek: '[ਪਿà¨à¨²à©] dddd, LT', 26692 sameElse: 'L', 26693 }, 26694 relativeTime: { 26695 future: '%s ਵਿੱà¨', 26696 past: '%s ਪਿà¨à¨²à©', 26697 s: 'à¨à©à¨ ਸà¨à¨¿à©°à¨', 26698 ss: '%d ਸà¨à¨¿à©°à¨', 26699 m: 'à¨à¨ ਮਿੰà¨', 26700 mm: '%d ਮਿੰà¨', 26701 h: 'à¨à©±à¨ à¨à©°à¨à¨¾', 26702 hh: '%d à¨à©°à¨à©', 26703 d: 'à¨à©±à¨ ਦਿਨ', 26704 dd: '%d ਦਿਨ', 26705 M: 'à¨à©±à¨ ਮਹà©à¨¨à¨¾', 26706 MM: '%d ਮਹà©à¨¨à©', 26707 y: 'à¨à©±à¨ ਸਾਲ', 26708 yy: '%d ਸਾਲ', 26709 }, 26710 preparse: function (string) { 26711 return string.replace(/[੧੨੩੪੫੬à©à©®à©¯à©¦]/g, function (match) { 26712 return numberMap[match]; 26713 }); 26714 }, 26715 postformat: function (string) { 26716 return string.replace(/\d/g, function (match) { 26717 return symbolMap[match]; 26718 }); 26719 }, 26720 // Punjabi notation for meridiems are quite fuzzy in practice. While there exists 26721 // a rigid notion of a 'Pahar' it is not used as rigidly in modern Punjabi. 26722 meridiemParse: /ਰਾਤ|ਸਵà©à¨°|ਦà©à¨ªà¨¹à¨¿à¨°|ਸ਼ਾਮ/, 26723 meridiemHour: function (hour, meridiem) { 26724 if (hour === 12) { 26725 hour = 0; 26726 } 26727 if (meridiem === 'ਰਾਤ') { 26728 return hour < 4 ? hour : hour + 12; 26729 } else if (meridiem === 'ਸਵà©à¨°') { 26730 return hour; 26731 } else if (meridiem === 'ਦà©à¨ªà¨¹à¨¿à¨°') { 26732 return hour >= 10 ? hour : hour + 12; 26733 } else if (meridiem === 'ਸ਼ਾਮ') { 26734 return hour + 12; 26735 } 26736 }, 26737 meridiem: function (hour, minute, isLower) { 26738 if (hour < 4) { 26739 return 'ਰਾਤ'; 26740 } else if (hour < 10) { 26741 return 'ਸਵà©à¨°'; 26742 } else if (hour < 17) { 26743 return 'ਦà©à¨ªà¨¹à¨¿à¨°'; 26744 } else if (hour < 20) { 26745 return 'ਸ਼ਾਮ'; 26746 } else { 26747 return 'ਰਾਤ'; 26748 } 26749 }, 26750 week: { 26751 dow: 0, // Sunday is the first day of the week. 26752 doy: 6, // The week that contains Jan 6th is the first week of the year. 26753 }, 26754 }); 26755 26756 return paIn; 26757 26758}))); 26759 26760 26761/***/ }), 26762
vendor: 5,171 bytes, lines 26763-26921
26763/***/ "./node_modules/moment/locale/pl.js": 26764/*!******************************************!*\ 26765 !*** ./node_modules/moment/locale/pl.js ***! 26766 \******************************************/ 26767/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 26768 26769//! moment.js locale configuration 26770//! locale : Polish [pl] 26771//! author : Rafal Hirsz : https://github.com/evoL 26772 26773;(function (global, factory) { 26774 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 26775 0 26776}(this, (function (moment) { 'use strict'; 26777 26778 //! moment.js locale configuration 26779 26780 var monthsNominative = 26781 'styczeÅ_luty_marzec_kwiecieÅ_maj_czerwiec_lipiec_sierpieÅ_wrzesieÅ_październik_listopad_grudzieÅ'.split( 26782 '_' 26783 ), 26784 monthsSubjective = 26785 'stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_wrzeÅnia_października_listopada_grudnia'.split( 26786 '_' 26787 ), 26788 monthsParse = [ 26789 /^sty/i, 26790 /^lut/i, 26791 /^mar/i, 26792 /^kwi/i, 26793 /^maj/i, 26794 /^cze/i, 26795 /^lip/i, 26796 /^sie/i, 26797 /^wrz/i, 26798 /^paź/i, 26799 /^lis/i, 26800 /^gru/i, 26801 ]; 26802 function plural(n) { 26803 return n % 10 < 5 && n % 10 > 1 && ~~(n / 10) % 10 !== 1; 26804 } 26805 function translate(number, withoutSuffix, key) { 26806 var result = number + ' '; 26807 switch (key) { 26808 case 'ss': 26809 return result + (plural(number) ? 'sekundy' : 'sekund'); 26810 case 'm': 26811 return withoutSuffix ? 'minuta' : 'minutÄ'; 26812 case 'mm': 26813 return result + (plural(number) ? 'minuty' : 'minut'); 26814 case 'h': 26815 return withoutSuffix ? 'godzina' : 'godzinÄ'; 26816 case 'hh': 26817 return result + (plural(number) ? 'godziny' : 'godzin'); 26818 case 'ww': 26819 return result + (plural(number) ? 'tygodnie' : 'tygodni'); 26820 case 'MM': 26821 return result + (plural(number) ? 'miesiÄ ce' : 'miesiÄcy'); 26822 case 'yy': 26823 return result + (plural(number) ? 'lata' : 'lat'); 26824 } 26825 } 26826 26827 var pl = moment.defineLocale('pl', { 26828 months: function (momentToFormat, format) { 26829 if (!momentToFormat) { 26830 return monthsNominative; 26831 } else if (/D MMMM/.test(format)) { 26832 return monthsSubjective[momentToFormat.month()]; 26833 } else { 26834 return monthsNominative[momentToFormat.month()]; 26835 } 26836 }, 26837 monthsShort: 'sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru'.split('_'), 26838 monthsParse: monthsParse, 26839 longMonthsParse: monthsParse, 26840 shortMonthsParse: monthsParse, 26841 weekdays: 26842 'niedziela_poniedziaÅek_wtorek_Åroda_czwartek_piÄ tek_sobota'.split('_'), 26843 weekdaysShort: 'ndz_pon_wt_År_czw_pt_sob'.split('_'), 26844 weekdaysMin: 'Nd_Pn_Wt_År_Cz_Pt_So'.split('_'), 26845 longDateFormat: { 26846 LT: 'HH:mm', 26847 LTS: 'HH:mm:ss', 26848 L: 'DD.MM.YYYY', 26849 LL: 'D MMMM YYYY', 26850 LLL: 'D MMMM YYYY HH:mm', 26851 LLLL: 'dddd, D MMMM YYYY HH:mm', 26852 }, 26853 calendar: { 26854 sameDay: '[DziÅ o] LT', 26855 nextDay: '[Jutro o] LT', 26856 nextWeek: function () { 26857 switch (this.day()) { 26858 case 0: 26859 return '[W niedzielÄ o] LT'; 26860 26861 case 2: 26862 return '[We wtorek o] LT'; 26863 26864 case 3: 26865 return '[W ÅrodÄ o] LT'; 26866 26867 case 6: 26868 return '[W sobotÄ o] LT'; 26869 26870 default: 26871 return '[W] dddd [o] LT'; 26872 } 26873 }, 26874 lastDay: '[Wczoraj o] LT', 26875 lastWeek: function () { 26876 switch (this.day()) { 26877 case 0: 26878 return '[W zeszÅÄ niedzielÄ o] LT'; 26879 case 3: 26880 return '[W zeszÅÄ ÅrodÄ o] LT'; 26881 case 6: 26882 return '[W zeszÅÄ sobotÄ o] LT'; 26883 default: 26884 return '[W zeszÅy] dddd [o] LT'; 26885 } 26886 }, 26887 sameElse: 'L', 26888 }, 26889 relativeTime: { 26890 future: 'za %s', 26891 past: '%s temu', 26892 s: 'kilka sekund', 26893 ss: translate, 26894 m: translate, 26895 mm: translate, 26896 h: translate, 26897 hh: translate, 26898 d: '1 dzieÅ', 26899 dd: '%d dni', 26900 w: 'tydzieÅ', 26901 ww: translate, 26902 M: 'miesiÄ c', 26903 MM: translate, 26904 y: 'rok', 26905 yy: translate, 26906 }, 26907 dayOfMonthOrdinalParse: /\d{1,2}\./, 26908 ordinal: '%d.', 26909 week: { 26910 dow: 1, // Monday is the first day of the week. 26911 doy: 4, // The week that contains Jan 4th is the first week of the year. 26912 }, 26913 }); 26914 26915 return pl; 26916 26917}))); 26918 26919 26920/***/ }), 26921
vendor: 2,567 bytes, lines 26922-26998
26922/***/ "./node_modules/moment/locale/pt-br.js": 26923/*!*********************************************!*\ 26924 !*** ./node_modules/moment/locale/pt-br.js ***! 26925 \*********************************************/ 26926/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 26927 26928//! moment.js locale configuration 26929//! locale : Portuguese (Brazil) [pt-br] 26930//! author : Caio Ribeiro Pereira : https://github.com/caio-ribeiro-pereira 26931 26932;(function (global, factory) { 26933 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 26934 0 26935}(this, (function (moment) { 'use strict'; 26936 26937 //! moment.js locale configuration 26938 26939 var ptBr = moment.defineLocale('pt-br', { 26940 months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split( 26941 '_' 26942 ), 26943 monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'), 26944 weekdays: 26945 'domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado'.split( 26946 '_' 26947 ), 26948 weekdaysShort: 'dom_seg_ter_qua_qui_sex_sáb'.split('_'), 26949 weekdaysMin: 'do_2ª_3ª_4ª_5ª_6ª_sá'.split('_'), 26950 weekdaysParseExact: true, 26951 longDateFormat: { 26952 LT: 'HH:mm', 26953 LTS: 'HH:mm:ss', 26954 L: 'DD/MM/YYYY', 26955 LL: 'D [de] MMMM [de] YYYY', 26956 LLL: 'D [de] MMMM [de] YYYY [à s] HH:mm', 26957 LLLL: 'dddd, D [de] MMMM [de] YYYY [à s] HH:mm', 26958 }, 26959 calendar: { 26960 sameDay: '[Hoje à s] LT', 26961 nextDay: '[Amanhã à s] LT', 26962 nextWeek: 'dddd [à s] LT', 26963 lastDay: '[Ontem à s] LT', 26964 lastWeek: function () { 26965 return this.day() === 0 || this.day() === 6 26966 ? '[Ãltimo] dddd [à s] LT' // Saturday + Sunday 26967 : '[Ãltima] dddd [à s] LT'; // Monday - Friday 26968 }, 26969 sameElse: 'L', 26970 }, 26971 relativeTime: { 26972 future: 'em %s', 26973 past: 'há %s', 26974 s: 'poucos segundos', 26975 ss: '%d segundos', 26976 m: 'um minuto', 26977 mm: '%d minutos', 26978 h: 'uma hora', 26979 hh: '%d horas', 26980 d: 'um dia', 26981 dd: '%d dias', 26982 M: 'um mês', 26983 MM: '%d meses', 26984 y: 'um ano', 26985 yy: '%d anos', 26986 }, 26987 dayOfMonthOrdinalParse: /\d{1,2}º/, 26988 ordinal: '%dº', 26989 invalidDate: 'Data inválida', 26990 }); 26991 26992 return ptBr; 26993 26994}))); 26995 26996 26997/***/ }), 26998
vendor: 2,685 bytes, lines 26999-27080
26999/***/ "./node_modules/moment/locale/pt.js": 27000/*!******************************************!*\ 27001 !*** ./node_modules/moment/locale/pt.js ***! 27002 \******************************************/ 27003/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 27004 27005//! moment.js locale configuration 27006//! locale : Portuguese [pt] 27007//! author : Jefferson : https://github.com/jalex79 27008 27009;(function (global, factory) { 27010 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 27011 0 27012}(this, (function (moment) { 'use strict'; 27013 27014 //! moment.js locale configuration 27015 27016 var pt = moment.defineLocale('pt', { 27017 months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split( 27018 '_' 27019 ), 27020 monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'), 27021 weekdays: 27022 'Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado'.split( 27023 '_' 27024 ), 27025 weekdaysShort: 'Dom_Seg_Ter_Qua_Qui_Sex_Sáb'.split('_'), 27026 weekdaysMin: 'Do_2ª_3ª_4ª_5ª_6ª_Sá'.split('_'), 27027 weekdaysParseExact: true, 27028 longDateFormat: { 27029 LT: 'HH:mm', 27030 LTS: 'HH:mm:ss', 27031 L: 'DD/MM/YYYY', 27032 LL: 'D [de] MMMM [de] YYYY', 27033 LLL: 'D [de] MMMM [de] YYYY HH:mm', 27034 LLLL: 'dddd, D [de] MMMM [de] YYYY HH:mm', 27035 }, 27036 calendar: { 27037 sameDay: '[Hoje à s] LT', 27038 nextDay: '[Amanhã à s] LT', 27039 nextWeek: 'dddd [à s] LT', 27040 lastDay: '[Ontem à s] LT', 27041 lastWeek: function () { 27042 return this.day() === 0 || this.day() === 6 27043 ? '[Ãltimo] dddd [à s] LT' // Saturday + Sunday 27044 : '[Ãltima] dddd [à s] LT'; // Monday - Friday 27045 }, 27046 sameElse: 'L', 27047 }, 27048 relativeTime: { 27049 future: 'em %s', 27050 past: 'há %s', 27051 s: 'segundos', 27052 ss: '%d segundos', 27053 m: 'um minuto', 27054 mm: '%d minutos', 27055 h: 'uma hora', 27056 hh: '%d horas', 27057 d: 'um dia', 27058 dd: '%d dias', 27059 w: 'uma semana', 27060 ww: '%d semanas', 27061 M: 'um mês', 27062 MM: '%d meses', 27063 y: 'um ano', 27064 yy: '%d anos', 27065 }, 27066 dayOfMonthOrdinalParse: /\d{1,2}º/, 27067 ordinal: '%dº', 27068 week: { 27069 dow: 1, // Monday is the first day of the week. 27070 doy: 4, // The week that contains Jan 4th is the first week of the year. 27071 }, 27072 }); 27073 27074 return pt; 27075 27076}))); 27077 27078 27079/***/ }), 27080
vendor: 3,076 bytes, lines 27081-27175
27081/***/ "./node_modules/moment/locale/ro.js": 27082/*!******************************************!*\ 27083 !*** ./node_modules/moment/locale/ro.js ***! 27084 \******************************************/ 27085/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 27086 27087//! moment.js locale configuration 27088//! locale : Romanian [ro] 27089//! author : Vlad Gurdiga : https://github.com/gurdiga 27090//! author : Valentin Agachi : https://github.com/avaly 27091//! author : Emanuel Cepoi : https://github.com/cepem 27092 27093;(function (global, factory) { 27094 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 27095 0 27096}(this, (function (moment) { 'use strict'; 27097 27098 //! moment.js locale configuration 27099 27100 function relativeTimeWithPlural(number, withoutSuffix, key) { 27101 var format = { 27102 ss: 'secunde', 27103 mm: 'minute', 27104 hh: 'ore', 27105 dd: 'zile', 27106 ww: 'sÄptÄmâni', 27107 MM: 'luni', 27108 yy: 'ani', 27109 }, 27110 separator = ' '; 27111 if (number % 100 >= 20 || (number >= 100 && number % 100 === 0)) { 27112 separator = ' de '; 27113 } 27114 return number + separator + format[key]; 27115 } 27116 27117 var ro = moment.defineLocale('ro', { 27118 months: 'ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie'.split( 27119 '_' 27120 ), 27121 monthsShort: 27122 'ian._feb._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split( 27123 '_' 27124 ), 27125 monthsParseExact: true, 27126 weekdays: 'duminicÄ_luni_marÈi_miercuri_joi_vineri_sâmbÄtÄ'.split('_'), 27127 weekdaysShort: 'Dum_Lun_Mar_Mie_Joi_Vin_Sâm'.split('_'), 27128 weekdaysMin: 'Du_Lu_Ma_Mi_Jo_Vi_Sâ'.split('_'), 27129 longDateFormat: { 27130 LT: 'H:mm', 27131 LTS: 'H:mm:ss', 27132 L: 'DD.MM.YYYY', 27133 LL: 'D MMMM YYYY', 27134 LLL: 'D MMMM YYYY H:mm', 27135 LLLL: 'dddd, D MMMM YYYY H:mm', 27136 }, 27137 calendar: { 27138 sameDay: '[azi la] LT', 27139 nextDay: '[mâine la] LT', 27140 nextWeek: 'dddd [la] LT', 27141 lastDay: '[ieri la] LT', 27142 lastWeek: '[fosta] dddd [la] LT', 27143 sameElse: 'L', 27144 }, 27145 relativeTime: { 27146 future: 'peste %s', 27147 past: '%s în urmÄ', 27148 s: 'câteva secunde', 27149 ss: relativeTimeWithPlural, 27150 m: 'un minut', 27151 mm: relativeTimeWithPlural, 27152 h: 'o orÄ', 27153 hh: relativeTimeWithPlural, 27154 d: 'o zi', 27155 dd: relativeTimeWithPlural, 27156 w: 'o sÄptÄmânÄ', 27157 ww: relativeTimeWithPlural, 27158 M: 'o lunÄ', 27159 MM: relativeTimeWithPlural, 27160 y: 'un an', 27161 yy: relativeTimeWithPlural, 27162 }, 27163 week: { 27164 dow: 1, // Monday is the first day of the week. 27165 doy: 7, // The week that contains Jan 7th is the first week of the year. 27166 }, 27167 }); 27168 27169 return ro; 27170 27171}))); 27172 27173 27174/***/ }), 27175
vendor: 9,711 bytes, lines 27176-27407
27176/***/ "./node_modules/moment/locale/ru.js": 27177/*!******************************************!*\ 27178 !*** ./node_modules/moment/locale/ru.js ***! 27179 \******************************************/ 27180/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 27181 27182//! moment.js locale configuration 27183//! locale : Russian [ru] 27184//! author : Viktorminator : https://github.com/Viktorminator 27185//! author : Menelion Elensúle : https://github.com/Oire 27186//! author : ÐоÑенбеÑг ÐаÑк : https://github.com/socketpair 27187 27188;(function (global, factory) { 27189 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 27190 0 27191}(this, (function (moment) { 'use strict'; 27192 27193 //! moment.js locale configuration 27194 27195 function plural(word, num) { 27196 var forms = word.split('_'); 27197 return num % 10 === 1 && num % 100 !== 11 27198 ? forms[0] 27199 : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) 27200 ? forms[1] 27201 : forms[2]; 27202 } 27203 function relativeTimeWithPlural(number, withoutSuffix, key) { 27204 var format = { 27205 ss: withoutSuffix ? 'ÑекÑнда_ÑекÑндÑ_ÑекÑнд' : 'ÑекÑндÑ_ÑекÑндÑ_ÑекÑнд', 27206 mm: withoutSuffix ? 'минÑÑа_минÑÑÑ_минÑÑ' : 'минÑÑÑ_минÑÑÑ_минÑÑ', 27207 hh: 'ÑаÑ_ÑаÑа_ÑаÑов', 27208 dd: 'денÑ_днÑ_дней', 27209 ww: 'неделÑ_недели_неделÑ', 27210 MM: 'меÑÑÑ_меÑÑÑа_меÑÑÑев', 27211 yy: 'год_года_леÑ', 27212 }; 27213 if (key === 'm') { 27214 return withoutSuffix ? 'минÑÑа' : 'минÑÑÑ'; 27215 } else { 27216 return number + ' ' + plural(format[key], +number); 27217 } 27218 } 27219 var monthsParse = [ 27220 /^Ñнв/i, 27221 /^Ñев/i, 27222 /^маÑ/i, 27223 /^апÑ/i, 27224 /^ма[йÑ]/i, 27225 /^иÑн/i, 27226 /^иÑл/i, 27227 /^авг/i, 27228 /^Ñен/i, 27229 /^окÑ/i, 27230 /^ноÑ/i, 27231 /^дек/i, 27232 ]; 27233 27234 // http://new.gramota.ru/spravka/rules/139-prop : § 103 27235 // СокÑаÑÐµÐ½Ð¸Ñ Ð¼ÐµÑÑÑев: http://new.gramota.ru/spravka/buro/search-answer?s=242637 27236 // CLDR data: http://www.unicode.org/cldr/charts/28/summary/ru.html#1753 27237 var ru = moment.defineLocale('ru', { 27238 months: { 27239 format: 'ÑнваÑÑ_ÑевÑалÑ_маÑÑа_апÑелÑ_маÑ_иÑнÑ_иÑлÑ_авгÑÑÑа_ÑенÑÑбÑÑ_окÑÑбÑÑ_ноÑбÑÑ_декабÑÑ'.split( 27240 '_' 27241 ), 27242 standalone: 27243 'ÑнваÑÑ_ÑевÑалÑ_маÑÑ_апÑелÑ_май_иÑнÑ_иÑлÑ_авгÑÑÑ_ÑенÑÑбÑÑ_окÑÑбÑÑ_ноÑбÑÑ_декабÑÑ'.split( 27244 '_' 27245 ), 27246 }, 27247 monthsShort: { 27248 // по CLDR именно "иÑл." и "иÑн.", но какой ÑмÑÑл менÑÑÑ Ð±ÑÐºÐ²Ñ Ð½Ð° ÑоÑкÑ? 27249 format: 'Ñнв._ÑевÑ._маÑ._апÑ._маÑ_иÑнÑ_иÑлÑ_авг._ÑенÑ._окÑ._ноÑб._дек.'.split( 27250 '_' 27251 ), 27252 standalone: 27253 'Ñнв._ÑевÑ._маÑÑ_апÑ._май_иÑнÑ_иÑлÑ_авг._ÑенÑ._окÑ._ноÑб._дек.'.split( 27254 '_' 27255 ), 27256 }, 27257 weekdays: { 27258 standalone: 27259 'воÑкÑеÑенÑе_понеделÑник_вÑоÑник_ÑÑеда_ÑеÑвеÑг_пÑÑниÑа_ÑÑббоÑа'.split( 27260 '_' 27261 ), 27262 format: 'воÑкÑеÑенÑе_понеделÑник_вÑоÑник_ÑÑедÑ_ÑеÑвеÑг_пÑÑниÑÑ_ÑÑббоÑÑ'.split( 27263 '_' 27264 ), 27265 isFormat: /\[ ?[Ðв] ?(?:пÑоÑлÑÑ|ÑледÑÑÑÑÑ|ÑÑÑ)? ?] ?dddd/, 27266 }, 27267 weekdaysShort: 'вÑ_пн_вÑ_ÑÑ_ÑÑ_пÑ_Ñб'.split('_'), 27268 weekdaysMin: 'вÑ_пн_вÑ_ÑÑ_ÑÑ_пÑ_Ñб'.split('_'), 27269 monthsParse: monthsParse, 27270 longMonthsParse: monthsParse, 27271 shortMonthsParse: monthsParse, 27272 27273 // полнÑе Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ñ Ñ Ð¿Ð°Ð´ÐµÐ¶Ð°Ð¼Ð¸, по ÑÑи бÑквÑ, Ð´Ð»Ñ Ð½ÐµÐºÐ¾ÑоÑÑÑ , по 4 бÑквÑ, ÑокÑаÑÐµÐ½Ð¸Ñ Ñ ÑоÑкой и без ÑоÑки 27274 monthsRegex: 27275 /^(ÑнваÑ[ÑÑ]|Ñнв\.?|ÑевÑал[ÑÑ]|ÑевÑ?\.?|маÑÑа?|маÑ\.?|апÑел[ÑÑ]|апÑ\.?|ма[йÑ]|иÑн[ÑÑ]|иÑн\.?|иÑл[ÑÑ]|иÑл\.?|авгÑÑÑа?|авг\.?|ÑенÑÑбÑ[ÑÑ]|ÑенÑ?\.?|окÑÑбÑ[ÑÑ]|окÑ\.?|ноÑбÑ[ÑÑ]|ноÑб?\.?|декабÑ[ÑÑ]|дек\.?)/i, 27276 27277 // ÐºÐ¾Ð¿Ð¸Ñ Ð¿ÑедÑдÑÑего 27278 monthsShortRegex: 27279 /^(ÑнваÑ[ÑÑ]|Ñнв\.?|ÑевÑал[ÑÑ]|ÑевÑ?\.?|маÑÑа?|маÑ\.?|апÑел[ÑÑ]|апÑ\.?|ма[йÑ]|иÑн[ÑÑ]|иÑн\.?|иÑл[ÑÑ]|иÑл\.?|авгÑÑÑа?|авг\.?|ÑенÑÑбÑ[ÑÑ]|ÑенÑ?\.?|окÑÑбÑ[ÑÑ]|окÑ\.?|ноÑбÑ[ÑÑ]|ноÑб?\.?|декабÑ[ÑÑ]|дек\.?)/i, 27280 27281 // полнÑе Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ñ Ñ Ð¿Ð°Ð´ÐµÐ¶Ð°Ð¼Ð¸ 27282 monthsStrictRegex: 27283 /^(ÑнваÑ[ÑÑ]|ÑевÑал[ÑÑ]|маÑÑа?|апÑел[ÑÑ]|ма[Ñй]|иÑн[ÑÑ]|иÑл[ÑÑ]|авгÑÑÑа?|ÑенÑÑбÑ[ÑÑ]|окÑÑбÑ[ÑÑ]|ноÑбÑ[ÑÑ]|декабÑ[ÑÑ])/i, 27284 27285 // ÐÑÑажение, коÑоÑое ÑооÑвеÑÑÑвÑÐµÑ ÑолÑко ÑокÑаÑÑннÑм ÑоÑмам 27286 monthsShortStrictRegex: 27287 /^(Ñнв\.|ÑевÑ?\.|маÑ[Ñ.]|апÑ\.|ма[Ñй]|иÑн[ÑÑ.]|иÑл[ÑÑ.]|авг\.|ÑенÑ?\.|окÑ\.|ноÑб?\.|дек\.)/i, 27288 longDateFormat: { 27289 LT: 'H:mm', 27290 LTS: 'H:mm:ss', 27291 L: 'DD.MM.YYYY', 27292 LL: 'D MMMM YYYY г.', 27293 LLL: 'D MMMM YYYY г., H:mm', 27294 LLLL: 'dddd, D MMMM YYYY г., H:mm', 27295 }, 27296 calendar: { 27297 sameDay: '[СегоднÑ, в] LT', 27298 nextDay: '[ÐавÑÑа, в] LT', 27299 lastDay: '[ÐÑеÑа, в] LT', 27300 nextWeek: function (now) { 27301 if (now.week() !== this.week()) { 27302 switch (this.day()) { 27303 case 0: 27304 return '[Ð ÑледÑÑÑее] dddd, [в] LT'; 27305 case 1: 27306 case 2: 27307 case 4: 27308 return '[Ð ÑледÑÑÑий] dddd, [в] LT'; 27309 case 3: 27310 case 5: 27311 case 6: 27312 return '[Ð ÑледÑÑÑÑÑ] dddd, [в] LT'; 27313 } 27314 } else { 27315 if (this.day() === 2) { 27316 return '[Ðо] dddd, [в] LT'; 27317 } else { 27318 return '[Ð] dddd, [в] LT'; 27319 } 27320 } 27321 }, 27322 lastWeek: function (now) { 27323 if (now.week() !== this.week()) { 27324 switch (this.day()) { 27325 case 0: 27326 return '[РпÑоÑлое] dddd, [в] LT'; 27327 case 1: 27328 case 2: 27329 case 4: 27330 return '[РпÑоÑлÑй] dddd, [в] LT'; 27331 case 3: 27332 case 5: 27333 case 6: 27334 return '[РпÑоÑлÑÑ] dddd, [в] LT'; 27335 } 27336 } else { 27337 if (this.day() === 2) { 27338 return '[Ðо] dddd, [в] LT'; 27339 } else { 27340 return '[Ð] dddd, [в] LT'; 27341 } 27342 } 27343 }, 27344 sameElse: 'L', 27345 }, 27346 relativeTime: { 27347 future: 'ÑеÑез %s', 27348 past: '%s назад', 27349 s: 'неÑколÑко ÑекÑнд', 27350 ss: relativeTimeWithPlural, 27351 m: relativeTimeWithPlural, 27352 mm: relativeTimeWithPlural, 27353 h: 'ÑаÑ', 27354 hh: relativeTimeWithPlural, 27355 d: 'денÑ', 27356 dd: relativeTimeWithPlural, 27357 w: 'неделÑ', 27358 ww: relativeTimeWithPlural, 27359 M: 'меÑÑÑ', 27360 MM: relativeTimeWithPlural, 27361 y: 'год', 27362 yy: relativeTimeWithPlural, 27363 }, 27364 meridiemParse: /ноÑи|ÑÑÑа|днÑ|веÑеÑа/i, 27365 isPM: function (input) { 27366 return /^(днÑ|веÑеÑа)$/.test(input); 27367 }, 27368 meridiem: function (hour, minute, isLower) { 27369 if (hour < 4) { 27370 return 'ноÑи'; 27371 } else if (hour < 12) { 27372 return 'ÑÑÑа'; 27373 } else if (hour < 17) { 27374 return 'днÑ'; 27375 } else { 27376 return 'веÑеÑа'; 27377 } 27378 }, 27379 dayOfMonthOrdinalParse: /\d{1,2}-(й|го|Ñ)/, 27380 ordinal: function (number, period) { 27381 switch (period) { 27382 case 'M': 27383 case 'd': 27384 case 'DDD': 27385 return number + '-й'; 27386 case 'D': 27387 return number + '-го'; 27388 case 'w': 27389 case 'W': 27390 return number + '-Ñ'; 27391 default: 27392 return number; 27393 } 27394 }, 27395 week: { 27396 dow: 1, // Monday is the first day of the week. 27397 doy: 4, // The week that contains Jan 4th is the first week of the year. 27398 }, 27399 }); 27400 27401 return ru; 27402 27403}))); 27404 27405 27406/***/ }), 27407
vendor: 2,938 bytes, lines 27408-27507
27408/***/ "./node_modules/moment/locale/sd.js": 27409/*!******************************************!*\ 27410 !*** ./node_modules/moment/locale/sd.js ***! 27411 \******************************************/ 27412/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 27413 27414//! moment.js locale configuration 27415//! locale : Sindhi [sd] 27416//! author : Narain Sagar : https://github.com/narainsagar 27417 27418;(function (global, factory) { 27419 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 27420 0 27421}(this, (function (moment) { 'use strict'; 27422 27423 //! moment.js locale configuration 27424 27425 var months = [ 27426 'جÙÙØ±Ù', 27427 'ÙÙØ¨Ø±ÙرÙ', 27428 '٠ارÚ', 27429 'اپرÙÙ', 27430 '٠ئÙ', 27431 'جÙÙ', 27432 'جÙÙØ§Ø¡Ù', 27433 'آگسٽ', 27434 'سÙپٽ٠بر', 27435 'Ø¢ÚªÙ½ÙØ¨Ø±', 27436 'ÙÙ٠بر', 27437 'ÚØ³Ù بر', 27438 ], 27439 days = ['Ø¢ÚØ±', 'سÙ٠ر', 'اڱارÙ', 'اربع', 'Ø®Ù ÙØ³', 'ج٠ع', 'ÚÙÚØ±']; 27440 27441 var sd = moment.defineLocale('sd', { 27442 months: months, 27443 monthsShort: months, 27444 weekdays: days, 27445 weekdaysShort: days, 27446 weekdaysMin: days, 27447 longDateFormat: { 27448 LT: 'HH:mm', 27449 LTS: 'HH:mm:ss', 27450 L: 'DD/MM/YYYY', 27451 LL: 'D MMMM YYYY', 27452 LLL: 'D MMMM YYYY HH:mm', 27453 LLLL: 'ddddØ D MMMM YYYY HH:mm', 27454 }, 27455 meridiemParse: /صبØ|شا٠/, 27456 isPM: function (input) { 27457 return 'شا٠' === input; 27458 }, 27459 meridiem: function (hour, minute, isLower) { 27460 if (hour < 12) { 27461 return 'صبØ'; 27462 } 27463 return 'شا٠'; 27464 }, 27465 calendar: { 27466 sameDay: '[اÚ] LT', 27467 nextDay: '[Ø³ÚØ§Ú»Ù] LT', 27468 nextWeek: 'dddd [اڳÙÙ ÙÙØªÙ تÙ] LT', 27469 lastDay: '[ڪاÙÙÙ] LT', 27470 lastWeek: '[گزرÙÙ ÙÙØªÙ] dddd [تÙ] LT', 27471 sameElse: 'L', 27472 }, 27473 relativeTime: { 27474 future: '%s Ù¾ÙØ¡', 27475 past: '%s اڳ', 27476 s: 'ÚÙØ¯ سÙÚªÙÚ', 27477 ss: '%d سÙÚªÙÚ', 27478 m: 'ÙÚª Ù ÙÙ½', 27479 mm: '%d Ù ÙÙ½', 27480 h: 'ÙÚª ÚªÙØ§Úª', 27481 hh: '%d ÚªÙØ§Úª', 27482 d: 'ÙÚª ÚÙÙÙÙ', 27483 dd: '%d ÚÙÙÙÙ', 27484 M: 'ÙÚª Ù ÙÙÙÙ', 27485 MM: '%d Ù ÙÙÙØ§', 27486 y: 'ÙÚª ساÙ', 27487 yy: '%d ساÙ', 27488 }, 27489 preparse: function (string) { 27490 return string.replace(/Ø/g, ','); 27491 }, 27492 postformat: function (string) { 27493 return string.replace(/,/g, 'Ø'); 27494 }, 27495 week: { 27496 dow: 1, // Monday is the first day of the week. 27497 doy: 4, // The week that contains Jan 4th is the first week of the year. 27498 }, 27499 }); 27500 27501 return sd; 27502 27503}))); 27504 27505 27506/***/ }), 27507
vendor: 2,542 bytes, lines 27508-27583
27508/***/ "./node_modules/moment/locale/se.js": 27509/*!******************************************!*\ 27510 !*** ./node_modules/moment/locale/se.js ***! 27511 \******************************************/ 27512/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 27513 27514//! moment.js locale configuration 27515//! locale : Northern Sami [se] 27516//! authors : BÃ¥rd Rolstad Henriksen : https://github.com/karamell 27517 27518;(function (global, factory) { 27519 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 27520 0 27521}(this, (function (moment) { 'use strict'; 27522 27523 //! moment.js locale configuration 27524 27525 var se = moment.defineLocale('se', { 27526 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( 27527 '_' 27528 ), 27529 monthsShort: 27530 'oÄÄj_guov_njuk_cuo_mies_geas_suoi_borg_ÄakÄ_golg_skáb_juov'.split('_'), 27531 weekdays: 27532 'sotnabeaivi_vuossárga_maÅÅebárga_gaskavahkku_duorastat_bearjadat_lávvardat'.split( 27533 '_' 27534 ), 27535 weekdaysShort: 'sotn_vuos_maÅ_gask_duor_bear_láv'.split('_'), 27536 weekdaysMin: 's_v_m_g_d_b_L'.split('_'), 27537 longDateFormat: { 27538 LT: 'HH:mm', 27539 LTS: 'HH:mm:ss', 27540 L: 'DD.MM.YYYY', 27541 LL: 'MMMM D. [b.] YYYY', 27542 LLL: 'MMMM D. [b.] YYYY [ti.] HH:mm', 27543 LLLL: 'dddd, MMMM D. [b.] YYYY [ti.] HH:mm', 27544 }, 27545 calendar: { 27546 sameDay: '[otne ti] LT', 27547 nextDay: '[ihttin ti] LT', 27548 nextWeek: 'dddd [ti] LT', 27549 lastDay: '[ikte ti] LT', 27550 lastWeek: '[ovddit] dddd [ti] LT', 27551 sameElse: 'L', 27552 }, 27553 relativeTime: { 27554 future: '%s geažes', 27555 past: 'maÅit %s', 27556 s: 'moadde sekunddat', 27557 ss: '%d sekunddat', 27558 m: 'okta minuhta', 27559 mm: '%d minuhtat', 27560 h: 'okta diimmu', 27561 hh: '%d diimmut', 27562 d: 'okta beaivi', 27563 dd: '%d beaivvit', 27564 M: 'okta mánnu', 27565 MM: '%d mánut', 27566 y: 'okta jahki', 27567 yy: '%d jagit', 27568 }, 27569 dayOfMonthOrdinalParse: /\d{1,2}\./, 27570 ordinal: '%d.', 27571 week: { 27572 dow: 1, // Monday is the first day of the week. 27573 doy: 4, // The week that contains Jan 4th is the first week of the year. 27574 }, 27575 }); 27576 27577 return se; 27578 27579}))); 27580 27581 27582/***/ }), 27583
vendor: 3,422 bytes, lines 27584-27671
27584/***/ "./node_modules/moment/locale/si.js": 27585/*!******************************************!*\ 27586 !*** ./node_modules/moment/locale/si.js ***! 27587 \******************************************/ 27588/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 27589 27590//! moment.js locale configuration 27591//! locale : Sinhalese [si] 27592//! author : Sampath Sitinamaluwa : https://github.com/sampathsris 27593 27594;(function (global, factory) { 27595 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 27596 0 27597}(this, (function (moment) { 'use strict'; 27598 27599 //! moment.js locale configuration 27600 27601 /*jshint -W100*/ 27602 var si = moment.defineLocale('si', { 27603 months: 'ජනà·à·à¶»à·_à¶´à·à¶¶à¶»à·à·à¶»à·_මà·à¶»à·à¶à·_à¶ à¶´à·âà¶»à·à¶½à·_මà·à¶ºà·_à¶¢à·à¶±à·_à¶¢à·à¶½à·_à¶ à¶à·à·à·à¶à·_à·à·à¶´à·à¶à·à¶¸à·à¶¶à¶»à·_à¶à¶à·à¶à·à¶¶à¶»à·_à¶±à·à·à·à¶¸à·à¶¶à¶»à·_දà·à·à·à¶¸à·à¶¶à¶»à·'.split( 27604 '_' 27605 ), 27606 monthsShort: 'ජන_à¶´à·à¶¶_මà·à¶»à·_à¶ à¶´à·_මà·à¶ºà·_à¶¢à·à¶±à·_à¶¢à·à¶½à·_à¶ à¶à·_à·à·à¶´à·_à¶à¶à·_à¶±à·à·à·_දà·à·à·'.split( 27607 '_' 27608 ), 27609 weekdays: 27610 'à¶à¶»à·à¶¯à·_à·à¶³à·à¶¯à·_à¶ à¶à·à¶»à·à·à·à¶¯à·_බදà·à¶¯à·_à¶¶à·âà¶»à·à·à·à¶´à¶à·à¶±à·à¶¯à·_à·à·à¶à·à¶»à·à¶¯à·_à·à·à¶±à·à·à¶»à·à¶¯à·'.split( 27611 '_' 27612 ), 27613 weekdaysShort: 'à¶à¶»à·_à·à¶³à·_à¶ à¶_බදà·_à¶¶à·âà¶»à·_à·à·à¶à·_à·à·à¶±'.split('_'), 27614 weekdaysMin: 'à¶_à·_à¶ _à¶¶_à¶¶à·âà¶»_à·à·_à·à·'.split('_'), 27615 weekdaysParseExact: true, 27616 longDateFormat: { 27617 LT: 'a h:mm', 27618 LTS: 'a h:mm:ss', 27619 L: 'YYYY/MM/DD', 27620 LL: 'YYYY MMMM D', 27621 LLL: 'YYYY MMMM D, a h:mm', 27622 LLLL: 'YYYY MMMM D [à·à·à¶±à·] dddd, a h:mm:ss', 27623 }, 27624 calendar: { 27625 sameDay: '[චද] LT[à¶§]', 27626 nextDay: '[à·à·à¶§] LT[à¶§]', 27627 nextWeek: 'dddd LT[à¶§]', 27628 lastDay: '[à¶à¶ºà·] LT[à¶§]', 27629 lastWeek: '[à¶´à·à·à¶à·à¶º] dddd LT[à¶§]', 27630 sameElse: 'L', 27631 }, 27632 relativeTime: { 27633 future: '%sà¶à·à¶±à·', 27634 past: '%sà¶à¶§ à¶´à·à¶»', 27635 s: 'à¶à¶à·à¶´à¶» à¶à·à·à·à¶´à¶º', 27636 ss: 'à¶à¶à·à¶´à¶» %d', 27637 m: 'මà·à¶±à·à¶à·à¶à·à·', 27638 mm: 'මà·à¶±à·à¶à·à¶à· %d', 27639 h: 'à¶´à·à¶º', 27640 hh: 'à¶´à·à¶º %d', 27641 d: 'දà·à¶±à¶º', 27642 dd: 'දà·à¶± %d', 27643 M: 'මà·à·à¶º', 27644 MM: 'මà·à· %d', 27645 y: 'à·à·à¶»', 27646 yy: 'à·à·à¶» %d', 27647 }, 27648 dayOfMonthOrdinalParse: /\d{1,2} à·à·à¶±à·/, 27649 ordinal: function (number) { 27650 return number + ' à·à·à¶±à·'; 27651 }, 27652 meridiemParse: /à¶´à·à¶» à·à¶»à·|à¶´à·à· à·à¶»à·|à¶´à·.à·|à¶´.à·./, 27653 isPM: function (input) { 27654 return input === 'à¶´.à·.' || input === 'à¶´à·à· à·à¶»à·'; 27655 }, 27656 meridiem: function (hours, minutes, isLower) { 27657 if (hours > 11) { 27658 return isLower ? 'à¶´.à·.' : 'à¶´à·à· à·à¶»à·'; 27659 } else { 27660 return isLower ? 'à¶´à·.à·.' : 'à¶´à·à¶» à·à¶»à·'; 27661 } 27662 }, 27663 }); 27664 27665 return si; 27666 27667}))); 27668 27669 27670/***/ }), 27671
vendor: 6,210 bytes, lines 27672-27835
27672/***/ "./node_modules/moment/locale/sk.js": 27673/*!******************************************!*\ 27674 !*** ./node_modules/moment/locale/sk.js ***! 27675 \******************************************/ 27676/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 27677 27678//! moment.js locale configuration 27679//! locale : Slovak [sk] 27680//! author : Martin Minka : https://github.com/k2s 27681//! based on work of petrbela : https://github.com/petrbela 27682 27683;(function (global, factory) { 27684 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 27685 0 27686}(this, (function (moment) { 'use strict'; 27687 27688 //! moment.js locale configuration 27689 27690 var months = 27691 'január_február_marec_aprÃl_máj_jún_júl_august_september_október_november_december'.split( 27692 '_' 27693 ), 27694 monthsShort = 'jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec'.split('_'); 27695 function plural(n) { 27696 return n > 1 && n < 5; 27697 } 27698 function translate(number, withoutSuffix, key, isFuture) { 27699 var result = number + ' '; 27700 switch (key) { 27701 case 's': // a few seconds / in a few seconds / a few seconds ago 27702 return withoutSuffix || isFuture ? 'pár sekúnd' : 'pár sekundami'; 27703 case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago 27704 if (withoutSuffix || isFuture) { 27705 return result + (plural(number) ? 'sekundy' : 'sekúnd'); 27706 } else { 27707 return result + 'sekundami'; 27708 } 27709 case 'm': // a minute / in a minute / a minute ago 27710 return withoutSuffix ? 'minúta' : isFuture ? 'minútu' : 'minútou'; 27711 case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago 27712 if (withoutSuffix || isFuture) { 27713 return result + (plural(number) ? 'minúty' : 'minút'); 27714 } else { 27715 return result + 'minútami'; 27716 } 27717 case 'h': // an hour / in an hour / an hour ago 27718 return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou'; 27719 case 'hh': // 9 hours / in 9 hours / 9 hours ago 27720 if (withoutSuffix || isFuture) { 27721 return result + (plural(number) ? 'hodiny' : 'hodÃn'); 27722 } else { 27723 return result + 'hodinami'; 27724 } 27725 case 'd': // a day / in a day / a day ago 27726 return withoutSuffix || isFuture ? 'deÅ' : 'dÅom'; 27727 case 'dd': // 9 days / in 9 days / 9 days ago 27728 if (withoutSuffix || isFuture) { 27729 return result + (plural(number) ? 'dni' : 'dnÃ'); 27730 } else { 27731 return result + 'dÅami'; 27732 } 27733 case 'M': // a month / in a month / a month ago 27734 return withoutSuffix || isFuture ? 'mesiac' : 'mesiacom'; 27735 case 'MM': // 9 months / in 9 months / 9 months ago 27736 if (withoutSuffix || isFuture) { 27737 return result + (plural(number) ? 'mesiace' : 'mesiacov'); 27738 } else { 27739 return result + 'mesiacmi'; 27740 } 27741 case 'y': // a year / in a year / a year ago 27742 return withoutSuffix || isFuture ? 'rok' : 'rokom'; 27743 case 'yy': // 9 years / in 9 years / 9 years ago 27744 if (withoutSuffix || isFuture) { 27745 return result + (plural(number) ? 'roky' : 'rokov'); 27746 } else { 27747 return result + 'rokmi'; 27748 } 27749 } 27750 } 27751 27752 var sk = moment.defineLocale('sk', { 27753 months: months, 27754 monthsShort: monthsShort, 27755 weekdays: 'nedeľa_pondelok_utorok_streda_Å¡tvrtok_piatok_sobota'.split('_'), 27756 weekdaysShort: 'ne_po_ut_st_Å¡t_pi_so'.split('_'), 27757 weekdaysMin: 'ne_po_ut_st_Å¡t_pi_so'.split('_'), 27758 longDateFormat: { 27759 LT: 'H:mm', 27760 LTS: 'H:mm:ss', 27761 L: 'DD.MM.YYYY', 27762 LL: 'D. MMMM YYYY', 27763 LLL: 'D. MMMM YYYY H:mm', 27764 LLLL: 'dddd D. MMMM YYYY H:mm', 27765 }, 27766 calendar: { 27767 sameDay: '[dnes o] LT', 27768 nextDay: '[zajtra o] LT', 27769 nextWeek: function () { 27770 switch (this.day()) { 27771 case 0: 27772 return '[v nedeľu o] LT'; 27773 case 1: 27774 case 2: 27775 return '[v] dddd [o] LT'; 27776 case 3: 27777 return '[v stredu o] LT'; 27778 case 4: 27779 return '[vo Å¡tvrtok o] LT'; 27780 case 5: 27781 return '[v piatok o] LT'; 27782 case 6: 27783 return '[v sobotu o] LT'; 27784 } 27785 }, 27786 lastDay: '[vÄera o] LT', 27787 lastWeek: function () { 27788 switch (this.day()) { 27789 case 0: 27790 return '[minulú nedeľu o] LT'; 27791 case 1: 27792 case 2: 27793 return '[minulý] dddd [o] LT'; 27794 case 3: 27795 return '[minulú stredu o] LT'; 27796 case 4: 27797 case 5: 27798 return '[minulý] dddd [o] LT'; 27799 case 6: 27800 return '[minulú sobotu o] LT'; 27801 } 27802 }, 27803 sameElse: 'L', 27804 }, 27805 relativeTime: { 27806 future: 'za %s', 27807 past: 'pred %s', 27808 s: translate, 27809 ss: translate, 27810 m: translate, 27811 mm: translate, 27812 h: translate, 27813 hh: translate, 27814 d: translate, 27815 dd: translate, 27816 M: translate, 27817 MM: translate, 27818 y: translate, 27819 yy: translate, 27820 }, 27821 dayOfMonthOrdinalParse: /\d{1,2}\./, 27822 ordinal: '%d.', 27823 week: { 27824 dow: 1, // Monday is the first day of the week. 27825 doy: 4, // The week that contains Jan 4th is the first week of the year. 27826 }, 27827 }); 27828 27829 return sk; 27830 27831}))); 27832 27833 27834/***/ }), 27835
vendor: 7,256 bytes, lines 27836-28025
27836/***/ "./node_modules/moment/locale/sl.js": 27837/*!******************************************!*\ 27838 !*** ./node_modules/moment/locale/sl.js ***! 27839 \******************************************/ 27840/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 27841 27842//! moment.js locale configuration 27843//! locale : Slovenian [sl] 27844//! author : Robert SedovÅ¡ek : https://github.com/sedovsek 27845 27846;(function (global, factory) { 27847 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 27848 0 27849}(this, (function (moment) { 'use strict'; 27850 27851 //! moment.js locale configuration 27852 27853 function processRelativeTime(number, withoutSuffix, key, isFuture) { 27854 var result = number + ' '; 27855 switch (key) { 27856 case 's': 27857 return withoutSuffix || isFuture 27858 ? 'nekaj sekund' 27859 : 'nekaj sekundami'; 27860 case 'ss': 27861 if (number === 1) { 27862 result += withoutSuffix ? 'sekundo' : 'sekundi'; 27863 } else if (number === 2) { 27864 result += withoutSuffix || isFuture ? 'sekundi' : 'sekundah'; 27865 } else if (number < 5) { 27866 result += withoutSuffix || isFuture ? 'sekunde' : 'sekundah'; 27867 } else { 27868 result += 'sekund'; 27869 } 27870 return result; 27871 case 'm': 27872 return withoutSuffix ? 'ena minuta' : 'eno minuto'; 27873 case 'mm': 27874 if (number === 1) { 27875 result += withoutSuffix ? 'minuta' : 'minuto'; 27876 } else if (number === 2) { 27877 result += withoutSuffix || isFuture ? 'minuti' : 'minutama'; 27878 } else if (number < 5) { 27879 result += withoutSuffix || isFuture ? 'minute' : 'minutami'; 27880 } else { 27881 result += withoutSuffix || isFuture ? 'minut' : 'minutami'; 27882 } 27883 return result; 27884 case 'h': 27885 return withoutSuffix ? 'ena ura' : 'eno uro'; 27886 case 'hh': 27887 if (number === 1) { 27888 result += withoutSuffix ? 'ura' : 'uro'; 27889 } else if (number === 2) { 27890 result += withoutSuffix || isFuture ? 'uri' : 'urama'; 27891 } else if (number < 5) { 27892 result += withoutSuffix || isFuture ? 'ure' : 'urami'; 27893 } else { 27894 result += withoutSuffix || isFuture ? 'ur' : 'urami'; 27895 } 27896 return result; 27897 case 'd': 27898 return withoutSuffix || isFuture ? 'en dan' : 'enim dnem'; 27899 case 'dd': 27900 if (number === 1) { 27901 result += withoutSuffix || isFuture ? 'dan' : 'dnem'; 27902 } else if (number === 2) { 27903 result += withoutSuffix || isFuture ? 'dni' : 'dnevoma'; 27904 } else { 27905 result += withoutSuffix || isFuture ? 'dni' : 'dnevi'; 27906 } 27907 return result; 27908 case 'M': 27909 return withoutSuffix || isFuture ? 'en mesec' : 'enim mesecem'; 27910 case 'MM': 27911 if (number === 1) { 27912 result += withoutSuffix || isFuture ? 'mesec' : 'mesecem'; 27913 } else if (number === 2) { 27914 result += withoutSuffix || isFuture ? 'meseca' : 'mesecema'; 27915 } else if (number < 5) { 27916 result += withoutSuffix || isFuture ? 'mesece' : 'meseci'; 27917 } else { 27918 result += withoutSuffix || isFuture ? 'mesecev' : 'meseci'; 27919 } 27920 return result; 27921 case 'y': 27922 return withoutSuffix || isFuture ? 'eno leto' : 'enim letom'; 27923 case 'yy': 27924 if (number === 1) { 27925 result += withoutSuffix || isFuture ? 'leto' : 'letom'; 27926 } else if (number === 2) { 27927 result += withoutSuffix || isFuture ? 'leti' : 'letoma'; 27928 } else if (number < 5) { 27929 result += withoutSuffix || isFuture ? 'leta' : 'leti'; 27930 } else { 27931 result += withoutSuffix || isFuture ? 'let' : 'leti'; 27932 } 27933 return result; 27934 } 27935 } 27936 27937 var sl = moment.defineLocale('sl', { 27938 months: 'januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december'.split( 27939 '_' 27940 ), 27941 monthsShort: 27942 'jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.'.split( 27943 '_' 27944 ), 27945 monthsParseExact: true, 27946 weekdays: 'nedelja_ponedeljek_torek_sreda_Äetrtek_petek_sobota'.split('_'), 27947 weekdaysShort: 'ned._pon._tor._sre._Äet._pet._sob.'.split('_'), 27948 weekdaysMin: 'ne_po_to_sr_Äe_pe_so'.split('_'), 27949 weekdaysParseExact: true, 27950 longDateFormat: { 27951 LT: 'H:mm', 27952 LTS: 'H:mm:ss', 27953 L: 'DD. MM. YYYY', 27954 LL: 'D. MMMM YYYY', 27955 LLL: 'D. MMMM YYYY H:mm', 27956 LLLL: 'dddd, D. MMMM YYYY H:mm', 27957 }, 27958 calendar: { 27959 sameDay: '[danes ob] LT', 27960 nextDay: '[jutri ob] LT', 27961 27962 nextWeek: function () { 27963 switch (this.day()) { 27964 case 0: 27965 return '[v] [nedeljo] [ob] LT'; 27966 case 3: 27967 return '[v] [sredo] [ob] LT'; 27968 case 6: 27969 return '[v] [soboto] [ob] LT'; 27970 case 1: 27971 case 2: 27972 case 4: 27973 case 5: 27974 return '[v] dddd [ob] LT'; 27975 } 27976 }, 27977 lastDay: '[vÄeraj ob] LT', 27978 lastWeek: function () { 27979 switch (this.day()) { 27980 case 0: 27981 return '[prejÅ¡njo] [nedeljo] [ob] LT'; 27982 case 3: 27983 return '[prejÅ¡njo] [sredo] [ob] LT'; 27984 case 6: 27985 return '[prejÅ¡njo] [soboto] [ob] LT'; 27986 case 1: 27987 case 2: 27988 case 4: 27989 case 5: 27990 return '[prejÅ¡nji] dddd [ob] LT'; 27991 } 27992 }, 27993 sameElse: 'L', 27994 }, 27995 relativeTime: { 27996 future: 'Äez %s', 27997 past: 'pred %s', 27998 s: processRelativeTime, 27999 ss: processRelativeTime, 28000 m: processRelativeTime, 28001 mm: processRelativeTime, 28002 h: processRelativeTime, 28003 hh: processRelativeTime, 28004 d: processRelativeTime, 28005 dd: processRelativeTime, 28006 M: processRelativeTime, 28007 MM: processRelativeTime, 28008 y: processRelativeTime, 28009 yy: processRelativeTime, 28010 }, 28011 dayOfMonthOrdinalParse: /\d{1,2}\./, 28012 ordinal: '%d.', 28013 week: { 28014 dow: 1, // Monday is the first day of the week. 28015 doy: 7, // The week that contains Jan 7th is the first week of the year. 28016 }, 28017 }); 28018 28019 return sl; 28020 28021}))); 28022 28023 28024/***/ }), 28025
vendor: 2,704 bytes, lines 28026-28109
28026/***/ "./node_modules/moment/locale/sq.js": 28027/*!******************************************!*\ 28028 !*** ./node_modules/moment/locale/sq.js ***! 28029 \******************************************/ 28030/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 28031 28032//! moment.js locale configuration 28033//! locale : Albanian [sq] 28034//! author : Flakërim Ismani : https://github.com/flakerimi 28035//! author : Menelion Elensúle : https://github.com/Oire 28036//! author : Oerd Cukalla : https://github.com/oerd 28037 28038;(function (global, factory) { 28039 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 28040 0 28041}(this, (function (moment) { 'use strict'; 28042 28043 //! moment.js locale configuration 28044 28045 var sq = moment.defineLocale('sq', { 28046 months: 'Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor'.split( 28047 '_' 28048 ), 28049 monthsShort: 'Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj'.split('_'), 28050 weekdays: 'E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë'.split( 28051 '_' 28052 ), 28053 weekdaysShort: 'Die_Hën_Mar_Mër_Enj_Pre_Sht'.split('_'), 28054 weekdaysMin: 'D_H_Ma_Më_E_P_Sh'.split('_'), 28055 weekdaysParseExact: true, 28056 meridiemParse: /PD|MD/, 28057 isPM: function (input) { 28058 return input.charAt(0) === 'M'; 28059 }, 28060 meridiem: function (hours, minutes, isLower) { 28061 return hours < 12 ? 'PD' : 'MD'; 28062 }, 28063 longDateFormat: { 28064 LT: 'HH:mm', 28065 LTS: 'HH:mm:ss', 28066 L: 'DD/MM/YYYY', 28067 LL: 'D MMMM YYYY', 28068 LLL: 'D MMMM YYYY HH:mm', 28069 LLLL: 'dddd, D MMMM YYYY HH:mm', 28070 }, 28071 calendar: { 28072 sameDay: '[Sot në] LT', 28073 nextDay: '[Nesër në] LT', 28074 nextWeek: 'dddd [në] LT', 28075 lastDay: '[Dje në] LT', 28076 lastWeek: 'dddd [e kaluar në] LT', 28077 sameElse: 'L', 28078 }, 28079 relativeTime: { 28080 future: 'në %s', 28081 past: '%s më parë', 28082 s: 'disa sekonda', 28083 ss: '%d sekonda', 28084 m: 'një minutë', 28085 mm: '%d minuta', 28086 h: 'një orë', 28087 hh: '%d orë', 28088 d: 'një ditë', 28089 dd: '%d ditë', 28090 M: 'një muaj', 28091 MM: '%d muaj', 28092 y: 'një vit', 28093 yy: '%d vite', 28094 }, 28095 dayOfMonthOrdinalParse: /\d{1,2}\./, 28096 ordinal: '%d.', 28097 week: { 28098 dow: 1, // Monday is the first day of the week. 28099 doy: 4, // The week that contains Jan 4th is the first week of the year. 28100 }, 28101 }); 28102 28103 return sq; 28104 28105}))); 28106 28107 28108/***/ }), 28109
vendor: 5,743 bytes, lines 28110-28255
28110/***/ "./node_modules/moment/locale/sr-cyrl.js": 28111/*!***********************************************!*\ 28112 !*** ./node_modules/moment/locale/sr-cyrl.js ***! 28113 \***********************************************/ 28114/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 28115 28116//! moment.js locale configuration 28117//! locale : Serbian Cyrillic [sr-cyrl] 28118//! author : Milan JanaÄkoviÄ<[email protected]> : https://github.com/milan-j 28119//! author : Stefan CrnjakoviÄ <[email protected]> : https://github.com/crnjakovic 28120 28121;(function (global, factory) { 28122 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 28123 0 28124}(this, (function (moment) { 'use strict'; 28125 28126 //! moment.js locale configuration 28127 28128 var translator = { 28129 words: { 28130 //Different grammatical cases 28131 ss: ['ÑекÑнда', 'ÑекÑнде', 'ÑекÑнди'], 28132 m: ['Ñедан минÑÑ', 'Ñедног минÑÑа'], 28133 mm: ['минÑÑ', 'минÑÑа', 'минÑÑа'], 28134 h: ['Ñедан ÑаÑ', 'Ñедног ÑаÑа'], 28135 hh: ['ÑаÑ', 'ÑаÑа', 'ÑаÑи'], 28136 d: ['Ñедан дан', 'Ñедног дана'], 28137 dd: ['дан', 'дана', 'дана'], 28138 M: ['Ñедан меÑеÑ', 'Ñедног меÑеÑа'], 28139 MM: ['меÑеÑ', 'меÑеÑа', 'меÑеÑи'], 28140 y: ['ÑÐµÐ´Ð½Ñ Ð³Ð¾Ð´Ð¸Ð½Ñ', 'Ñедне године'], 28141 yy: ['годинÑ', 'године', 'година'], 28142 }, 28143 correctGrammaticalCase: function (number, wordKey) { 28144 if ( 28145 number % 10 >= 1 && 28146 number % 10 <= 4 && 28147 (number % 100 < 10 || number % 100 >= 20) 28148 ) { 28149 return number % 10 === 1 ? wordKey[0] : wordKey[1]; 28150 } 28151 return wordKey[2]; 28152 }, 28153 translate: function (number, withoutSuffix, key, isFuture) { 28154 var wordKey = translator.words[key], 28155 word; 28156 28157 if (key.length === 1) { 28158 // Nominativ 28159 if (key === 'y' && withoutSuffix) return 'Ñедна година'; 28160 return isFuture || withoutSuffix ? wordKey[0] : wordKey[1]; 28161 } 28162 28163 word = translator.correctGrammaticalCase(number, wordKey); 28164 // Nominativ 28165 if (key === 'yy' && withoutSuffix && word === 'годинÑ') { 28166 return number + ' година'; 28167 } 28168 28169 return number + ' ' + word; 28170 }, 28171 }; 28172 28173 var srCyrl = moment.defineLocale('sr-cyrl', { 28174 months: 'ÑанÑаÑ_ÑебÑÑаÑ_маÑÑ_апÑил_маÑ_ÑÑн_ÑÑл_авгÑÑÑ_ÑепÑембаÑ_окÑобаÑ_новембаÑ_деÑембаÑ'.split( 28175 '_' 28176 ), 28177 monthsShort: 28178 'Ñан._Ñеб._маÑ._апÑ._маÑ_ÑÑн_ÑÑл_авг._Ñеп._окÑ._нов._деÑ.'.split('_'), 28179 monthsParseExact: true, 28180 weekdays: 'недеÑа_понедеÑак_ÑÑоÑак_ÑÑеда_ÑеÑвÑÑак_пеÑак_ÑÑбоÑа'.split('_'), 28181 weekdaysShort: 'нед._пон._ÑÑо._ÑÑе._ÑеÑ._пеÑ._ÑÑб.'.split('_'), 28182 weekdaysMin: 'не_по_ÑÑ_ÑÑ_Ñе_пе_ÑÑ'.split('_'), 28183 weekdaysParseExact: true, 28184 longDateFormat: { 28185 LT: 'H:mm', 28186 LTS: 'H:mm:ss', 28187 L: 'D. M. YYYY.', 28188 LL: 'D. MMMM YYYY.', 28189 LLL: 'D. MMMM YYYY. H:mm', 28190 LLLL: 'dddd, D. MMMM YYYY. H:mm', 28191 }, 28192 calendar: { 28193 sameDay: '[Ð´Ð°Ð½Ð°Ñ Ñ] LT', 28194 nextDay: '[ÑÑÑÑа Ñ] LT', 28195 nextWeek: function () { 28196 switch (this.day()) { 28197 case 0: 28198 return '[Ñ] [недеÑÑ] [Ñ] LT'; 28199 case 3: 28200 return '[Ñ] [ÑÑедÑ] [Ñ] LT'; 28201 case 6: 28202 return '[Ñ] [ÑÑбоÑÑ] [Ñ] LT'; 28203 case 1: 28204 case 2: 28205 case 4: 28206 case 5: 28207 return '[Ñ] dddd [Ñ] LT'; 28208 } 28209 }, 28210 lastDay: '[ÑÑÑе Ñ] LT', 28211 lastWeek: function () { 28212 var lastWeekDays = [ 28213 '[пÑоÑле] [недеÑе] [Ñ] LT', 28214 '[пÑоÑлог] [понедеÑка] [Ñ] LT', 28215 '[пÑоÑлог] [ÑÑоÑка] [Ñ] LT', 28216 '[пÑоÑле] [ÑÑеде] [Ñ] LT', 28217 '[пÑоÑлог] [ÑеÑвÑÑка] [Ñ] LT', 28218 '[пÑоÑлог] [пеÑка] [Ñ] LT', 28219 '[пÑоÑле] [ÑÑбоÑе] [Ñ] LT', 28220 ]; 28221 return lastWeekDays[this.day()]; 28222 }, 28223 sameElse: 'L', 28224 }, 28225 relativeTime: { 28226 future: 'за %s', 28227 past: 'пÑе %s', 28228 s: 'неколико ÑекÑнди', 28229 ss: translator.translate, 28230 m: translator.translate, 28231 mm: translator.translate, 28232 h: translator.translate, 28233 hh: translator.translate, 28234 d: translator.translate, 28235 dd: translator.translate, 28236 M: translator.translate, 28237 MM: translator.translate, 28238 y: translator.translate, 28239 yy: translator.translate, 28240 }, 28241 dayOfMonthOrdinalParse: /\d{1,2}\./, 28242 ordinal: '%d.', 28243 week: { 28244 dow: 1, // Monday is the first day of the week. 28245 doy: 7, // The week that contains Jan 1st is the first week of the year. 28246 }, 28247 }); 28248 28249 return srCyrl; 28250 28251}))); 28252 28253 28254/***/ }), 28255
vendor: 5,170 bytes, lines 28256-28403
28256/***/ "./node_modules/moment/locale/sr.js": 28257/*!******************************************!*\ 28258 !*** ./node_modules/moment/locale/sr.js ***! 28259 \******************************************/ 28260/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 28261 28262//! moment.js locale configuration 28263//! locale : Serbian [sr] 28264//! author : Milan JanaÄkoviÄ<[email protected]> : https://github.com/milan-j 28265//! author : Stefan CrnjakoviÄ <[email protected]> : https://github.com/crnjakovic 28266 28267;(function (global, factory) { 28268 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 28269 0 28270}(this, (function (moment) { 'use strict'; 28271 28272 //! moment.js locale configuration 28273 28274 var translator = { 28275 words: { 28276 //Different grammatical cases 28277 ss: ['sekunda', 'sekunde', 'sekundi'], 28278 m: ['jedan minut', 'jednog minuta'], 28279 mm: ['minut', 'minuta', 'minuta'], 28280 h: ['jedan sat', 'jednog sata'], 28281 hh: ['sat', 'sata', 'sati'], 28282 d: ['jedan dan', 'jednog dana'], 28283 dd: ['dan', 'dana', 'dana'], 28284 M: ['jedan mesec', 'jednog meseca'], 28285 MM: ['mesec', 'meseca', 'meseci'], 28286 y: ['jednu godinu', 'jedne godine'], 28287 yy: ['godinu', 'godine', 'godina'], 28288 }, 28289 correctGrammaticalCase: function (number, wordKey) { 28290 if ( 28291 number % 10 >= 1 && 28292 number % 10 <= 4 && 28293 (number % 100 < 10 || number % 100 >= 20) 28294 ) { 28295 return number % 10 === 1 ? wordKey[0] : wordKey[1]; 28296 } 28297 return wordKey[2]; 28298 }, 28299 translate: function (number, withoutSuffix, key, isFuture) { 28300 var wordKey = translator.words[key], 28301 word; 28302 28303 if (key.length === 1) { 28304 // Nominativ 28305 if (key === 'y' && withoutSuffix) return 'jedna godina'; 28306 return isFuture || withoutSuffix ? wordKey[0] : wordKey[1]; 28307 } 28308 28309 word = translator.correctGrammaticalCase(number, wordKey); 28310 // Nominativ 28311 if (key === 'yy' && withoutSuffix && word === 'godinu') { 28312 return number + ' godina'; 28313 } 28314 28315 return number + ' ' + word; 28316 }, 28317 }; 28318 28319 var sr = moment.defineLocale('sr', { 28320 months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split( 28321 '_' 28322 ), 28323 monthsShort: 28324 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'), 28325 monthsParseExact: true, 28326 weekdays: 'nedelja_ponedeljak_utorak_sreda_Äetvrtak_petak_subota'.split( 28327 '_' 28328 ), 28329 weekdaysShort: 'ned._pon._uto._sre._Äet._pet._sub.'.split('_'), 28330 weekdaysMin: 'ne_po_ut_sr_Äe_pe_su'.split('_'), 28331 weekdaysParseExact: true, 28332 longDateFormat: { 28333 LT: 'H:mm', 28334 LTS: 'H:mm:ss', 28335 L: 'D. M. YYYY.', 28336 LL: 'D. MMMM YYYY.', 28337 LLL: 'D. MMMM YYYY. H:mm', 28338 LLLL: 'dddd, D. MMMM YYYY. H:mm', 28339 }, 28340 calendar: { 28341 sameDay: '[danas u] LT', 28342 nextDay: '[sutra u] LT', 28343 nextWeek: function () { 28344 switch (this.day()) { 28345 case 0: 28346 return '[u] [nedelju] [u] LT'; 28347 case 3: 28348 return '[u] [sredu] [u] LT'; 28349 case 6: 28350 return '[u] [subotu] [u] LT'; 28351 case 1: 28352 case 2: 28353 case 4: 28354 case 5: 28355 return '[u] dddd [u] LT'; 28356 } 28357 }, 28358 lastDay: '[juÄe u] LT', 28359 lastWeek: function () { 28360 var lastWeekDays = [ 28361 '[proÅ¡le] [nedelje] [u] LT', 28362 '[proÅ¡log] [ponedeljka] [u] LT', 28363 '[proÅ¡log] [utorka] [u] LT', 28364 '[proÅ¡le] [srede] [u] LT', 28365 '[proÅ¡log] [Äetvrtka] [u] LT', 28366 '[proÅ¡log] [petka] [u] LT', 28367 '[proÅ¡le] [subote] [u] LT', 28368 ]; 28369 return lastWeekDays[this.day()]; 28370 }, 28371 sameElse: 'L', 28372 }, 28373 relativeTime: { 28374 future: 'za %s', 28375 past: 'pre %s', 28376 s: 'nekoliko sekundi', 28377 ss: translator.translate, 28378 m: translator.translate, 28379 mm: translator.translate, 28380 h: translator.translate, 28381 hh: translator.translate, 28382 d: translator.translate, 28383 dd: translator.translate, 28384 M: translator.translate, 28385 MM: translator.translate, 28386 y: translator.translate, 28387 yy: translator.translate, 28388 }, 28389 dayOfMonthOrdinalParse: /\d{1,2}\./, 28390 ordinal: '%d.', 28391 week: { 28392 dow: 1, // Monday is the first day of the week. 28393 doy: 7, // The week that contains Jan 7th is the first week of the year. 28394 }, 28395 }); 28396 28397 return sr; 28398 28399}))); 28400 28401 28402/***/ }), 28403
vendor: 3,373 bytes, lines 28404-28506
28404/***/ "./node_modules/moment/locale/ss.js": 28405/*!******************************************!*\ 28406 !*** ./node_modules/moment/locale/ss.js ***! 28407 \******************************************/ 28408/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 28409 28410//! moment.js locale configuration 28411//! locale : siSwati [ss] 28412//! author : Nicolai Davies<[email protected]> : https://github.com/nicolaidavies 28413 28414;(function (global, factory) { 28415 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 28416 0 28417}(this, (function (moment) { 'use strict'; 28418 28419 //! moment.js locale configuration 28420 28421 var ss = moment.defineLocale('ss', { 28422 months: "Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni".split( 28423 '_' 28424 ), 28425 monthsShort: 'Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo'.split('_'), 28426 weekdays: 28427 'Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo'.split( 28428 '_' 28429 ), 28430 weekdaysShort: 'Lis_Umb_Lsb_Les_Lsi_Lsh_Umg'.split('_'), 28431 weekdaysMin: 'Li_Us_Lb_Lt_Ls_Lh_Ug'.split('_'), 28432 weekdaysParseExact: true, 28433 longDateFormat: { 28434 LT: 'h:mm A', 28435 LTS: 'h:mm:ss A', 28436 L: 'DD/MM/YYYY', 28437 LL: 'D MMMM YYYY', 28438 LLL: 'D MMMM YYYY h:mm A', 28439 LLLL: 'dddd, D MMMM YYYY h:mm A', 28440 }, 28441 calendar: { 28442 sameDay: '[Namuhla nga] LT', 28443 nextDay: '[Kusasa nga] LT', 28444 nextWeek: 'dddd [nga] LT', 28445 lastDay: '[Itolo nga] LT', 28446 lastWeek: 'dddd [leliphelile] [nga] LT', 28447 sameElse: 'L', 28448 }, 28449 relativeTime: { 28450 future: 'nga %s', 28451 past: 'wenteka nga %s', 28452 s: 'emizuzwana lomcane', 28453 ss: '%d mzuzwana', 28454 m: 'umzuzu', 28455 mm: '%d emizuzu', 28456 h: 'lihora', 28457 hh: '%d emahora', 28458 d: 'lilanga', 28459 dd: '%d emalanga', 28460 M: 'inyanga', 28461 MM: '%d tinyanga', 28462 y: 'umnyaka', 28463 yy: '%d iminyaka', 28464 }, 28465 meridiemParse: /ekuseni|emini|entsambama|ebusuku/, 28466 meridiem: function (hours, minutes, isLower) { 28467 if (hours < 11) { 28468 return 'ekuseni'; 28469 } else if (hours < 15) { 28470 return 'emini'; 28471 } else if (hours < 19) { 28472 return 'entsambama'; 28473 } else { 28474 return 'ebusuku'; 28475 } 28476 }, 28477 meridiemHour: function (hour, meridiem) { 28478 if (hour === 12) { 28479 hour = 0; 28480 } 28481 if (meridiem === 'ekuseni') { 28482 return hour; 28483 } else if (meridiem === 'emini') { 28484 return hour >= 11 ? hour : hour + 12; 28485 } else if (meridiem === 'entsambama' || meridiem === 'ebusuku') { 28486 if (hour === 0) { 28487 return 0; 28488 } 28489 return hour + 12; 28490 } 28491 }, 28492 dayOfMonthOrdinalParse: /\d{1,2}/, 28493 ordinal: '%d', 28494 week: { 28495 dow: 1, // Monday is the first day of the week. 28496 doy: 4, // The week that contains Jan 4th is the first week of the year. 28497 }, 28498 }); 28499 28500 return ss; 28501 28502}))); 28503 28504 28505/***/ }), 28506
vendor: 2,827 bytes, lines 28507-28593
28507/***/ "./node_modules/moment/locale/sv.js": 28508/*!******************************************!*\ 28509 !*** ./node_modules/moment/locale/sv.js ***! 28510 \******************************************/ 28511/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 28512 28513//! moment.js locale configuration 28514//! locale : Swedish [sv] 28515//! author : Jens Alm : https://github.com/ulmus 28516 28517;(function (global, factory) { 28518 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 28519 0 28520}(this, (function (moment) { 'use strict'; 28521 28522 //! moment.js locale configuration 28523 28524 var sv = moment.defineLocale('sv', { 28525 months: 'januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december'.split( 28526 '_' 28527 ), 28528 monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'), 28529 weekdays: 'söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag'.split('_'), 28530 weekdaysShort: 'sön_mån_tis_ons_tor_fre_lör'.split('_'), 28531 weekdaysMin: 'sö_må_ti_on_to_fr_lö'.split('_'), 28532 longDateFormat: { 28533 LT: 'HH:mm', 28534 LTS: 'HH:mm:ss', 28535 L: 'YYYY-MM-DD', 28536 LL: 'D MMMM YYYY', 28537 LLL: 'D MMMM YYYY [kl.] HH:mm', 28538 LLLL: 'dddd D MMMM YYYY [kl.] HH:mm', 28539 lll: 'D MMM YYYY HH:mm', 28540 llll: 'ddd D MMM YYYY HH:mm', 28541 }, 28542 calendar: { 28543 sameDay: '[Idag] LT', 28544 nextDay: '[Imorgon] LT', 28545 lastDay: '[Igår] LT', 28546 nextWeek: '[På] dddd LT', 28547 lastWeek: '[I] dddd[s] LT', 28548 sameElse: 'L', 28549 }, 28550 relativeTime: { 28551 future: 'om %s', 28552 past: 'för %s sedan', 28553 s: 'några sekunder', 28554 ss: '%d sekunder', 28555 m: 'en minut', 28556 mm: '%d minuter', 28557 h: 'en timme', 28558 hh: '%d timmar', 28559 d: 'en dag', 28560 dd: '%d dagar', 28561 M: 'en månad', 28562 MM: '%d månader', 28563 y: 'ett år', 28564 yy: '%d år', 28565 }, 28566 dayOfMonthOrdinalParse: /\d{1,2}(\:e|\:a)/, 28567 ordinal: function (number) { 28568 var b = number % 10, 28569 output = 28570 ~~((number % 100) / 10) === 1 28571 ? ':e' 28572 : b === 1 28573 ? ':a' 28574 : b === 2 28575 ? ':a' 28576 : b === 3 28577 ? ':e' 28578 : ':e'; 28579 return number + output; 28580 }, 28581 week: { 28582 dow: 1, // Monday is the first day of the week. 28583 doy: 4, // The week that contains Jan 4th is the first week of the year. 28584 }, 28585 }); 28586 28587 return sv; 28588 28589}))); 28590 28591 28592/***/ }), 28593
vendor: 2,336 bytes, lines 28594-28667
28594/***/ "./node_modules/moment/locale/sw.js": 28595/*!******************************************!*\ 28596 !*** ./node_modules/moment/locale/sw.js ***! 28597 \******************************************/ 28598/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 28599 28600//! moment.js locale configuration 28601//! locale : Swahili [sw] 28602//! author : Fahad Kassim : https://github.com/fadsel 28603 28604;(function (global, factory) { 28605 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 28606 0 28607}(this, (function (moment) { 'use strict'; 28608 28609 //! moment.js locale configuration 28610 28611 var sw = moment.defineLocale('sw', { 28612 months: 'Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba'.split( 28613 '_' 28614 ), 28615 monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des'.split('_'), 28616 weekdays: 28617 'Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi'.split( 28618 '_' 28619 ), 28620 weekdaysShort: 'Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos'.split('_'), 28621 weekdaysMin: 'J2_J3_J4_J5_Al_Ij_J1'.split('_'), 28622 weekdaysParseExact: true, 28623 longDateFormat: { 28624 LT: 'hh:mm A', 28625 LTS: 'HH:mm:ss', 28626 L: 'DD.MM.YYYY', 28627 LL: 'D MMMM YYYY', 28628 LLL: 'D MMMM YYYY HH:mm', 28629 LLLL: 'dddd, D MMMM YYYY HH:mm', 28630 }, 28631 calendar: { 28632 sameDay: '[leo saa] LT', 28633 nextDay: '[kesho saa] LT', 28634 nextWeek: '[wiki ijayo] dddd [saat] LT', 28635 lastDay: '[jana] LT', 28636 lastWeek: '[wiki iliyopita] dddd [saat] LT', 28637 sameElse: 'L', 28638 }, 28639 relativeTime: { 28640 future: '%s baadaye', 28641 past: 'tokea %s', 28642 s: 'hivi punde', 28643 ss: 'sekunde %d', 28644 m: 'dakika moja', 28645 mm: 'dakika %d', 28646 h: 'saa limoja', 28647 hh: 'masaa %d', 28648 d: 'siku moja', 28649 dd: 'siku %d', 28650 M: 'mwezi mmoja', 28651 MM: 'miezi %d', 28652 y: 'mwaka mmoja', 28653 yy: 'miaka %d', 28654 }, 28655 week: { 28656 dow: 1, // Monday is the first day of the week. 28657 doy: 7, // The week that contains Jan 7th is the first week of the year. 28658 }, 28659 }); 28660 28661 return sw; 28662 28663}))); 28664 28665 28666/***/ }), 28667
vendor: 5,785 bytes, lines 28668-28817
28668/***/ "./node_modules/moment/locale/ta.js": 28669/*!******************************************!*\ 28670 !*** ./node_modules/moment/locale/ta.js ***! 28671 \******************************************/ 28672/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 28673 28674//! moment.js locale configuration 28675//! locale : Tamil [ta] 28676//! author : Arjunkumar Krishnamoorthy : https://github.com/tk120404 28677 28678;(function (global, factory) { 28679 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 28680 0 28681}(this, (function (moment) { 'use strict'; 28682 28683 //! moment.js locale configuration 28684 28685 var symbolMap = { 28686 1: '௧', 28687 2: '௨', 28688 3: '௩', 28689 4: '௪', 28690 5: '௫', 28691 6: '௬', 28692 7: 'à¯', 28693 8: '௮', 28694 9: '௯', 28695 0: '௦', 28696 }, 28697 numberMap = { 28698 '௧': '1', 28699 '௨': '2', 28700 '௩': '3', 28701 '௪': '4', 28702 '௫': '5', 28703 '௬': '6', 28704 'à¯': '7', 28705 '௮': '8', 28706 '௯': '9', 28707 '௦': '0', 28708 }; 28709 28710 var ta = moment.defineLocale('ta', { 28711 months: 'à®à®©à®µà®°à®¿_பிபà¯à®°à®µà®°à®¿_மாரà¯à®à¯_à®à®ªà¯à®°à®²à¯_à®®à¯_à®à¯à®©à¯_à®à¯à®²à¯_à®à®à®¸à¯à®à¯_à®à¯à®ªà¯à®à¯à®®à¯à®ªà®°à¯_à® à®à¯à®à¯à®¾à®ªà®°à¯_நவமà¯à®ªà®°à¯_à®à®¿à®à®®à¯à®ªà®°à¯'.split( 28712 '_' 28713 ), 28714 monthsShort: 28715 'à®à®©à®µà®°à®¿_பிபà¯à®°à®µà®°à®¿_மாரà¯à®à¯_à®à®ªà¯à®°à®²à¯_à®®à¯_à®à¯à®©à¯_à®à¯à®²à¯_à®à®à®¸à¯à®à¯_à®à¯à®ªà¯à®à¯à®®à¯à®ªà®°à¯_à® à®à¯à®à¯à®¾à®ªà®°à¯_நவமà¯à®ªà®°à¯_à®à®¿à®à®®à¯à®ªà®°à¯'.split( 28716 '_' 28717 ), 28718 weekdays: 28719 'à®à®¾à®¯à®¿à®±à¯à®±à¯à®à¯à®à®¿à®´à®®à¯_திà®à¯à®à®à¯à®à®¿à®´à®®à¯_à®à¯à®µà¯à®µà®¾à®¯à¯à®à®¿à®´à®®à¯_பà¯à®¤à®©à¯à®à®¿à®´à®®à¯_வியாழà®à¯à®à®¿à®´à®®à¯_வà¯à®³à¯à®³à®¿à®à¯à®à®¿à®´à®®à¯_à®à®©à®¿à®à¯à®à®¿à®´à®®à¯'.split( 28720 '_' 28721 ), 28722 weekdaysShort: 'à®à®¾à®¯à®¿à®±à¯_திà®à¯à®à®³à¯_à®à¯à®µà¯à®µà®¾à®¯à¯_பà¯à®¤à®©à¯_வியாழனà¯_வà¯à®³à¯à®³à®¿_à®à®©à®¿'.split( 28723 '_' 28724 ), 28725 weekdaysMin: 'à®à®¾_தி_à®à¯_பà¯_வி_வà¯_à®'.split('_'), 28726 longDateFormat: { 28727 LT: 'HH:mm', 28728 LTS: 'HH:mm:ss', 28729 L: 'DD/MM/YYYY', 28730 LL: 'D MMMM YYYY', 28731 LLL: 'D MMMM YYYY, HH:mm', 28732 LLLL: 'dddd, D MMMM YYYY, HH:mm', 28733 }, 28734 calendar: { 28735 sameDay: '[à®à®©à¯à®±à¯] LT', 28736 nextDay: '[நாளà¯] LT', 28737 nextWeek: 'dddd, LT', 28738 lastDay: '[நà¯à®±à¯à®±à¯] LT', 28739 lastWeek: '[à®à®à®¨à¯à®¤ வாரமà¯] dddd, LT', 28740 sameElse: 'L', 28741 }, 28742 relativeTime: { 28743 future: '%s à®à®²à¯', 28744 past: '%s à®®à¯à®©à¯', 28745 s: 'à®à®°à¯ à®à®¿à®² விநாà®à®¿à®à®³à¯', 28746 ss: '%d விநாà®à®¿à®à®³à¯', 28747 m: 'à®à®°à¯ நிமிà®à®®à¯', 28748 mm: '%d நிமிà®à®à¯à®à®³à¯', 28749 h: 'à®à®°à¯ மணி நà¯à®°à®®à¯', 28750 hh: '%d மணி நà¯à®°à®®à¯', 28751 d: 'à®à®°à¯ நாளà¯', 28752 dd: '%d நாà®à¯à®à®³à¯', 28753 M: 'à®à®°à¯ மாதமà¯', 28754 MM: '%d மாதà®à¯à®à®³à¯', 28755 y: 'à®à®°à¯ வரà¯à®à®®à¯', 28756 yy: '%d à®à®£à¯à®à¯à®à®³à¯', 28757 }, 28758 dayOfMonthOrdinalParse: /\d{1,2}வதà¯/, 28759 ordinal: function (number) { 28760 return number + 'வதà¯'; 28761 }, 28762 preparse: function (string) { 28763 return string.replace(/[௧௨௩௪௫௬à¯à¯®à¯¯à¯¦]/g, function (match) { 28764 return numberMap[match]; 28765 }); 28766 }, 28767 postformat: function (string) { 28768 return string.replace(/\d/g, function (match) { 28769 return symbolMap[match]; 28770 }); 28771 }, 28772 // refer http://ta.wikipedia.org/s/1er1 28773 meridiemParse: /யாமமà¯|வà¯à®à®±à¯|à®à®¾à®²à¯|நணà¯à®ªà®à®²à¯|à®à®±à¯à®ªà®¾à®à¯|மாலà¯/, 28774 meridiem: function (hour, minute, isLower) { 28775 if (hour < 2) { 28776 return ' யாமமà¯'; 28777 } else if (hour < 6) { 28778 return ' வà¯à®à®±à¯'; // வà¯à®à®±à¯ 28779 } else if (hour < 10) { 28780 return ' à®à®¾à®²à¯'; // à®à®¾à®²à¯ 28781 } else if (hour < 14) { 28782 return ' நணà¯à®ªà®à®²à¯'; // நணà¯à®ªà®à®²à¯ 28783 } else if (hour < 18) { 28784 return ' à®à®±à¯à®ªà®¾à®à¯'; // à®à®±à¯à®ªà®¾à®à¯ 28785 } else if (hour < 22) { 28786 return ' மாலà¯'; // மால௠28787 } else { 28788 return ' யாமமà¯'; 28789 } 28790 }, 28791 meridiemHour: function (hour, meridiem) { 28792 if (hour === 12) { 28793 hour = 0; 28794 } 28795 if (meridiem === 'யாமமà¯') { 28796 return hour < 2 ? hour : hour + 12; 28797 } else if (meridiem === 'வà¯à®à®±à¯' || meridiem === 'à®à®¾à®²à¯') { 28798 return hour; 28799 } else if (meridiem === 'நணà¯à®ªà®à®²à¯') { 28800 return hour >= 10 ? hour : hour + 12; 28801 } else { 28802 return hour + 12; 28803 } 28804 }, 28805 week: { 28806 dow: 0, // Sunday is the first day of the week. 28807 doy: 6, // The week that contains Jan 6th is the first week of the year. 28808 }, 28809 }); 28810 28811 return ta; 28812 28813}))); 28814 28815 28816/***/ }), 28817
vendor: 4,209 bytes, lines 28818-28924
28818/***/ "./node_modules/moment/locale/te.js": 28819/*!******************************************!*\ 28820 !*** ./node_modules/moment/locale/te.js ***! 28821 \******************************************/ 28822/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 28823 28824//! moment.js locale configuration 28825//! locale : Telugu [te] 28826//! author : Krishna Chaitanya Thota : https://github.com/kcthota 28827 28828;(function (global, factory) { 28829 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 28830 0 28831}(this, (function (moment) { 'use strict'; 28832 28833 //! moment.js locale configuration 28834 28835 var te = moment.defineLocale('te', { 28836 months: 'à°à°¨à°µà°°à°¿_à°«à°¿à°¬à±à°°à°µà°°à°¿_మారà±à°à°¿_à°à°ªà±à°°à°¿à°²à±_à°®à±_à°à±à°¨à±_à°à±à°²à±_à°à°à°¸à±à°à±_à°¸à±à°ªà±à°à±à°à°¬à°°à±_à° à°à±à°à±à°¬à°°à±_నవà°à°¬à°°à±_à°¡à°¿à°¸à±à°à°¬à°°à±'.split( 28837 '_' 28838 ), 28839 monthsShort: 28840 'à°à°¨._à°«à°¿à°¬à±à°°._మారà±à°à°¿_à°à°ªà±à°°à°¿._à°®à±_à°à±à°¨à±_à°à±à°²à±_à°à°._à°¸à±à°ªà±._à° à°à±à°à±._నవ._à°¡à°¿à°¸à±.'.split( 28841 '_' 28842 ), 28843 monthsParseExact: true, 28844 weekdays: 28845 'à°à°¦à°¿à°µà°¾à°°à°_à°¸à±à°®à°µà°¾à°°à°_à°®à°à°à°³à°µà°¾à°°à°_à°¬à±à°§à°µà°¾à°°à°_à°à±à°°à±à°µà°¾à°°à°_à°¶à±à°à±à°°à°µà°¾à°°à°_శనివారà°'.split( 28846 '_' 28847 ), 28848 weekdaysShort: 'à°à°¦à°¿_à°¸à±à°®_à°®à°à°à°³_à°¬à±à°§_à°à±à°°à±_à°¶à±à°à±à°°_శని'.split('_'), 28849 weekdaysMin: 'à°_à°¸à±_à°®à°_à°¬à±_à°à±_à°¶à±_à°¶'.split('_'), 28850 longDateFormat: { 28851 LT: 'A h:mm', 28852 LTS: 'A h:mm:ss', 28853 L: 'DD/MM/YYYY', 28854 LL: 'D MMMM YYYY', 28855 LLL: 'D MMMM YYYY, A h:mm', 28856 LLLL: 'dddd, D MMMM YYYY, A h:mm', 28857 }, 28858 calendar: { 28859 sameDay: '[à°¨à±à°¡à±] LT', 28860 nextDay: '[à°°à±à°ªà±] LT', 28861 nextWeek: 'dddd, LT', 28862 lastDay: '[నినà±à°¨] LT', 28863 lastWeek: '[à°à°¤] dddd, LT', 28864 sameElse: 'L', 28865 }, 28866 relativeTime: { 28867 future: '%s à°²à±', 28868 past: '%s à°à±à°°à°¿à°¤à°', 28869 s: 'à°à±à°¨à±à°¨à°¿ à°à±à°·à°£à°¾à°²à±', 28870 ss: '%d à°¸à±à°à°¨à±à°²à±', 28871 m: 'à°à° నిమిషà°', 28872 mm: '%d నిమిషాలà±', 28873 h: 'à°à° à°à°à°', 28874 hh: '%d à°à°à°à°²à±', 28875 d: 'à°à° à°°à±à°à±', 28876 dd: '%d à°°à±à°à±à°²à±', 28877 M: 'à°à° à°¨à±à°²', 28878 MM: '%d à°¨à±à°²à°²à±', 28879 y: 'à°à° à°¸à°à°µà°¤à±à°¸à°°à°', 28880 yy: '%d à°¸à°à°µà°¤à±à°¸à°°à°¾à°²à±', 28881 }, 28882 dayOfMonthOrdinalParse: /\d{1,2}à°µ/, 28883 ordinal: '%dà°µ', 28884 meridiemParse: /రాతà±à°°à°¿|à°à°¦à°¯à°|మధà±à°¯à°¾à°¹à±à°¨à°|సాయà°à°¤à±à°°à°/, 28885 meridiemHour: function (hour, meridiem) { 28886 if (hour === 12) { 28887 hour = 0; 28888 } 28889 if (meridiem === 'రాతà±à°°à°¿') { 28890 return hour < 4 ? hour : hour + 12; 28891 } else if (meridiem === 'à°à°¦à°¯à°') { 28892 return hour; 28893 } else if (meridiem === 'మధà±à°¯à°¾à°¹à±à°¨à°') { 28894 return hour >= 10 ? hour : hour + 12; 28895 } else if (meridiem === 'సాయà°à°¤à±à°°à°') { 28896 return hour + 12; 28897 } 28898 }, 28899 meridiem: function (hour, minute, isLower) { 28900 if (hour < 4) { 28901 return 'రాతà±à°°à°¿'; 28902 } else if (hour < 10) { 28903 return 'à°à°¦à°¯à°'; 28904 } else if (hour < 17) { 28905 return 'మధà±à°¯à°¾à°¹à±à°¨à°'; 28906 } else if (hour < 20) { 28907 return 'సాయà°à°¤à±à°°à°'; 28908 } else { 28909 return 'రాతà±à°°à°¿'; 28910 } 28911 }, 28912 week: { 28913 dow: 0, // Sunday is the first day of the week. 28914 doy: 6, // The week that contains Jan 6th is the first week of the year. 28915 }, 28916 }); 28917 28918 return te; 28919 28920}))); 28921 28922 28923/***/ }), 28924
vendor: 2,914 bytes, lines 28925-29011
28925/***/ "./node_modules/moment/locale/tet.js": 28926/*!*******************************************!*\ 28927 !*** ./node_modules/moment/locale/tet.js ***! 28928 \*******************************************/ 28929/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 28930 28931//! moment.js locale configuration 28932//! locale : Tetun Dili (East Timor) [tet] 28933//! author : Joshua Brooks : https://github.com/joshbrooks 28934//! author : Onorio De J. Afonso : https://github.com/marobo 28935//! author : Sonia Simoes : https://github.com/soniasimoes 28936 28937;(function (global, factory) { 28938 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 28939 0 28940}(this, (function (moment) { 'use strict'; 28941 28942 //! moment.js locale configuration 28943 28944 var tet = moment.defineLocale('tet', { 28945 months: 'Janeiru_Fevereiru_Marsu_Abril_Maiu_Juñu_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru'.split( 28946 '_' 28947 ), 28948 monthsShort: 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'), 28949 weekdays: 'Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu'.split('_'), 28950 weekdaysShort: 'Dom_Seg_Ters_Kua_Kint_Sest_Sab'.split('_'), 28951 weekdaysMin: 'Do_Seg_Te_Ku_Ki_Ses_Sa'.split('_'), 28952 longDateFormat: { 28953 LT: 'HH:mm', 28954 LTS: 'HH:mm:ss', 28955 L: 'DD/MM/YYYY', 28956 LL: 'D MMMM YYYY', 28957 LLL: 'D MMMM YYYY HH:mm', 28958 LLLL: 'dddd, D MMMM YYYY HH:mm', 28959 }, 28960 calendar: { 28961 sameDay: '[Ohin iha] LT', 28962 nextDay: '[Aban iha] LT', 28963 nextWeek: 'dddd [iha] LT', 28964 lastDay: '[Horiseik iha] LT', 28965 lastWeek: 'dddd [semana kotuk] [iha] LT', 28966 sameElse: 'L', 28967 }, 28968 relativeTime: { 28969 future: 'iha %s', 28970 past: '%s liuba', 28971 s: 'segundu balun', 28972 ss: 'segundu %d', 28973 m: 'minutu ida', 28974 mm: 'minutu %d', 28975 h: 'oras ida', 28976 hh: 'oras %d', 28977 d: 'loron ida', 28978 dd: 'loron %d', 28979 M: 'fulan ida', 28980 MM: 'fulan %d', 28981 y: 'tinan ida', 28982 yy: 'tinan %d', 28983 }, 28984 dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, 28985 ordinal: function (number) { 28986 var b = number % 10, 28987 output = 28988 ~~((number % 100) / 10) === 1 28989 ? 'th' 28990 : b === 1 28991 ? 'st' 28992 : b === 2 28993 ? 'nd' 28994 : b === 3 28995 ? 'rd' 28996 : 'th'; 28997 return number + output; 28998 }, 28999 week: { 29000 dow: 1, // Monday is the first day of the week. 29001 doy: 4, // The week that contains Jan 4th is the first week of the year. 29002 }, 29003 }); 29004 29005 return tet; 29006 29007}))); 29008 29009 29010/***/ }), 29011
vendor: 4,533 bytes, lines 29012-29147
29012/***/ "./node_modules/moment/locale/tg.js": 29013/*!******************************************!*\ 29014 !*** ./node_modules/moment/locale/tg.js ***! 29015 \******************************************/ 29016/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 29017 29018//! moment.js locale configuration 29019//! locale : Tajik [tg] 29020//! author : Orif N. Jr. : https://github.com/orif-jr 29021 29022;(function (global, factory) { 29023 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 29024 0 29025}(this, (function (moment) { 'use strict'; 29026 29027 //! moment.js locale configuration 29028 29029 var suffixes = { 29030 0: '-Ñм', 29031 1: '-Ñм', 29032 2: '-Ñм', 29033 3: '-Ñм', 29034 4: '-Ñм', 29035 5: '-Ñм', 29036 6: '-Ñм', 29037 7: '-Ñм', 29038 8: '-Ñм', 29039 9: '-Ñм', 29040 10: '-Ñм', 29041 12: '-Ñм', 29042 13: '-Ñм', 29043 20: '-Ñм', 29044 30: '-Ñм', 29045 40: '-Ñм', 29046 50: '-Ñм', 29047 60: '-Ñм', 29048 70: '-Ñм', 29049 80: '-Ñм', 29050 90: '-Ñм', 29051 100: '-Ñм', 29052 }; 29053 29054 var tg = moment.defineLocale('tg', { 29055 months: { 29056 format: 'ÑнваÑи_ÑевÑали_маÑÑи_апÑели_майи_иÑни_иÑли_авгÑÑÑи_ÑенÑÑбÑи_окÑÑбÑи_ноÑбÑи_декабÑи'.split( 29057 '_' 29058 ), 29059 standalone: 29060 'ÑнваÑ_ÑевÑал_маÑÑ_апÑел_май_иÑн_иÑл_авгÑÑÑ_ÑенÑÑбÑ_окÑÑбÑ_ноÑбÑ_декабÑ'.split( 29061 '_' 29062 ), 29063 }, 29064 monthsShort: 'Ñнв_Ñев_маÑ_апÑ_май_иÑн_иÑл_авг_Ñен_окÑ_ноÑ_дек'.split('_'), 29065 weekdays: 'ÑкÑанбе_дÑÑанбе_ÑеÑанбе_ÑоÑÑанбе_панҷÑанбе_Ò·ÑмÑа_Ñанбе'.split( 29066 '_' 29067 ), 29068 weekdaysShort: 'ÑÑб_дÑб_ÑÑб_ÑÑб_пÑб_Ò·Ñм_Ñнб'.split('_'), 29069 weekdaysMin: 'ÑÑ_дÑ_ÑÑ_ÑÑ_пÑ_ҷм_Ñб'.split('_'), 29070 longDateFormat: { 29071 LT: 'HH:mm', 29072 LTS: 'HH:mm:ss', 29073 L: 'DD.MM.YYYY', 29074 LL: 'D MMMM YYYY', 29075 LLL: 'D MMMM YYYY HH:mm', 29076 LLLL: 'dddd, D MMMM YYYY HH:mm', 29077 }, 29078 calendar: { 29079 sameDay: '[ÐмÑӯз ÑоаÑи] LT', 29080 nextDay: '[ФаÑдо ÑоаÑи] LT', 29081 lastDay: '[ÐиÑӯз ÑоаÑи] LT', 29082 nextWeek: 'dddd[и] [ҳаÑÑаи оÑнда ÑоаÑи] LT', 29083 lastWeek: 'dddd[и] [ҳаÑÑаи гÑзаÑÑа ÑоаÑи] LT', 29084 sameElse: 'L', 29085 }, 29086 relativeTime: { 29087 future: 'баÑди %s', 29088 past: '%s пеÑ', 29089 s: 'ÑкÑанд ÑониÑ', 29090 m: 'Ñк даÒиÒа', 29091 mm: '%d даÒиÒа', 29092 h: 'Ñк ÑоаÑ', 29093 hh: '%d ÑоаÑ', 29094 d: 'Ñк Ñӯз', 29095 dd: '%d Ñӯз', 29096 M: 'Ñк моҳ', 29097 MM: '%d моҳ', 29098 y: 'Ñк Ñол', 29099 yy: '%d Ñол', 29100 }, 29101 meridiemParse: /Ñаб|ÑÑбҳ|Ñӯз|бегоҳ/, 29102 meridiemHour: function (hour, meridiem) { 29103 if (hour === 12) { 29104 hour = 0; 29105 } 29106 if (meridiem === 'Ñаб') { 29107 return hour < 4 ? hour : hour + 12; 29108 } else if (meridiem === 'ÑÑбҳ') { 29109 return hour; 29110 } else if (meridiem === 'Ñӯз') { 29111 return hour >= 11 ? hour : hour + 12; 29112 } else if (meridiem === 'бегоҳ') { 29113 return hour + 12; 29114 } 29115 }, 29116 meridiem: function (hour, minute, isLower) { 29117 if (hour < 4) { 29118 return 'Ñаб'; 29119 } else if (hour < 11) { 29120 return 'ÑÑбҳ'; 29121 } else if (hour < 16) { 29122 return 'Ñӯз'; 29123 } else if (hour < 19) { 29124 return 'бегоҳ'; 29125 } else { 29126 return 'Ñаб'; 29127 } 29128 }, 29129 dayOfMonthOrdinalParse: /\d{1,2}-(Ñм|Ñм)/, 29130 ordinal: function (number) { 29131 var a = number % 10, 29132 b = number >= 100 ? 100 : null; 29133 return number + (suffixes[number] || suffixes[a] || suffixes[b]); 29134 }, 29135 week: { 29136 dow: 1, // Monday is the first day of the week. 29137 doy: 7, // The week that contains Jan 1th is the first week of the year. 29138 }, 29139 }); 29140 29141 return tg; 29142 29143}))); 29144 29145 29146/***/ }), 29147
vendor: 3,461 bytes, lines 29148-29231
29148/***/ "./node_modules/moment/locale/th.js": 29149/*!******************************************!*\ 29150 !*** ./node_modules/moment/locale/th.js ***! 29151 \******************************************/ 29152/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 29153 29154//! moment.js locale configuration 29155//! locale : Thai [th] 29156//! author : Kridsada Thanabulpong : https://github.com/sirn 29157 29158;(function (global, factory) { 29159 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 29160 0 29161}(this, (function (moment) { 'use strict'; 29162 29163 //! moment.js locale configuration 29164 29165 var th = moment.defineLocale('th', { 29166 months: 'มà¸à¸£à¸²à¸à¸¡_à¸à¸¸à¸¡à¸ าà¸à¸±à¸à¸à¹_มีà¸à¸²à¸à¸¡_à¹à¸¡à¸©à¸²à¸¢à¸_à¸à¸¤à¸©à¸ าà¸à¸¡_มิà¸à¸¸à¸à¸²à¸¢à¸_à¸à¸£à¸à¸à¸²à¸à¸¡_สิà¸à¸«à¸²à¸à¸¡_à¸à¸±à¸à¸¢à¸²à¸¢à¸_à¸à¸¸à¸¥à¸²à¸à¸¡_à¸à¸¤à¸¨à¸à¸´à¸à¸²à¸¢à¸_à¸à¸±à¸à¸§à¸²à¸à¸¡'.split( 29167 '_' 29168 ), 29169 monthsShort: 29170 'ม.à¸._à¸.à¸._มี.à¸._à¹à¸¡.ย._à¸.à¸._มิ.ย._à¸.à¸._ส.à¸._à¸.ย._à¸.à¸._à¸.ย._à¸.à¸.'.split( 29171 '_' 29172 ), 29173 monthsParseExact: true, 29174 weekdays: 'à¸à¸²à¸à¸´à¸à¸¢à¹_à¸à¸±à¸à¸à¸£à¹_à¸à¸±à¸à¸à¸²à¸£_à¸à¸¸à¸_à¸à¸¤à¸«à¸±à¸ªà¸à¸à¸µ_ศุà¸à¸£à¹_à¹à¸ªà¸²à¸£à¹'.split('_'), 29175 weekdaysShort: 'à¸à¸²à¸à¸´à¸à¸¢à¹_à¸à¸±à¸à¸à¸£à¹_à¸à¸±à¸à¸à¸²à¸£_à¸à¸¸à¸_à¸à¸¤à¸«à¸±à¸ª_ศุà¸à¸£à¹_à¹à¸ªà¸²à¸£à¹'.split('_'), // yes, three characters difference 29176 weekdaysMin: 'à¸à¸²._à¸._à¸._à¸._à¸à¸¤._ศ._ส.'.split('_'), 29177 weekdaysParseExact: true, 29178 longDateFormat: { 29179 LT: 'H:mm', 29180 LTS: 'H:mm:ss', 29181 L: 'DD/MM/YYYY', 29182 LL: 'D MMMM YYYY', 29183 LLL: 'D MMMM YYYY à¹à¸§à¸¥à¸² H:mm', 29184 LLLL: 'วัà¸ddddà¸à¸µà¹ D MMMM YYYY à¹à¸§à¸¥à¸² H:mm', 29185 }, 29186 meridiemParse: /à¸à¹à¸à¸à¹à¸à¸µà¹à¸¢à¸|หลัà¸à¹à¸à¸µà¹à¸¢à¸/, 29187 isPM: function (input) { 29188 return input === 'หลัà¸à¹à¸à¸µà¹à¸¢à¸'; 29189 }, 29190 meridiem: function (hour, minute, isLower) { 29191 if (hour < 12) { 29192 return 'à¸à¹à¸à¸à¹à¸à¸µà¹à¸¢à¸'; 29193 } else { 29194 return 'หลัà¸à¹à¸à¸µà¹à¸¢à¸'; 29195 } 29196 }, 29197 calendar: { 29198 sameDay: '[วัà¸à¸à¸µà¹ à¹à¸§à¸¥à¸²] LT', 29199 nextDay: '[à¸à¸£à¸¸à¹à¸à¸à¸µà¹ à¹à¸§à¸¥à¸²] LT', 29200 nextWeek: 'dddd[หà¸à¹à¸² à¹à¸§à¸¥à¸²] LT', 29201 lastDay: '[à¹à¸¡à¸·à¹à¸à¸§à¸²à¸à¸à¸µà¹ à¹à¸§à¸¥à¸²] LT', 29202 lastWeek: '[วัà¸]dddd[à¸à¸µà¹à¹à¸¥à¹à¸§ à¹à¸§à¸¥à¸²] LT', 29203 sameElse: 'L', 29204 }, 29205 relativeTime: { 29206 future: 'à¸à¸µà¸ %s', 29207 past: '%sà¸à¸µà¹à¹à¸¥à¹à¸§', 29208 s: 'à¹à¸¡à¹à¸à¸µà¹à¸§à¸´à¸à¸²à¸à¸µ', 29209 ss: '%d วิà¸à¸²à¸à¸µ', 29210 m: '1 à¸à¸²à¸à¸µ', 29211 mm: '%d à¸à¸²à¸à¸µ', 29212 h: '1 à¸à¸±à¹à¸§à¹à¸¡à¸', 29213 hh: '%d à¸à¸±à¹à¸§à¹à¸¡à¸', 29214 d: '1 วัà¸', 29215 dd: '%d วัà¸', 29216 w: '1 สัà¸à¸à¸²à¸«à¹', 29217 ww: '%d สัà¸à¸à¸²à¸«à¹', 29218 M: '1 à¹à¸à¸·à¸à¸', 29219 MM: '%d à¹à¸à¸·à¸à¸', 29220 y: '1 à¸à¸µ', 29221 yy: '%d à¸à¸µ', 29222 }, 29223 }); 29224 29225 return th; 29226 29227}))); 29228 29229 29230/***/ }), 29231
vendor: 3,313 bytes, lines 29232-29341
29232/***/ "./node_modules/moment/locale/tk.js": 29233/*!******************************************!*\ 29234 !*** ./node_modules/moment/locale/tk.js ***! 29235 \******************************************/ 29236/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 29237 29238//! moment.js locale configuration 29239//! locale : Turkmen [tk] 29240//! author : Atamyrat Abdyrahmanov : https://github.com/atamyratabdy 29241 29242;(function (global, factory) { 29243 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 29244 0 29245}(this, (function (moment) { 'use strict'; 29246 29247 //! moment.js locale configuration 29248 29249 var suffixes = { 29250 1: "'inji", 29251 5: "'inji", 29252 8: "'inji", 29253 70: "'inji", 29254 80: "'inji", 29255 2: "'nji", 29256 7: "'nji", 29257 20: "'nji", 29258 50: "'nji", 29259 3: "'ünji", 29260 4: "'ünji", 29261 100: "'ünji", 29262 6: "'njy", 29263 9: "'unjy", 29264 10: "'unjy", 29265 30: "'unjy", 29266 60: "'ynjy", 29267 90: "'ynjy", 29268 }; 29269 29270 var tk = moment.defineLocale('tk', { 29271 months: 'Ãanwar_Fewral_Mart_Aprel_Maý_Iýun_Iýul_Awgust_Sentýabr_Oktýabr_Noýabr_Dekabr'.split( 29272 '_' 29273 ), 29274 monthsShort: 'Ãan_Few_Mar_Apr_Maý_Iýn_Iýl_Awg_Sen_Okt_Noý_Dek'.split('_'), 29275 weekdays: 'ÃekÅenbe_DuÅenbe_SiÅenbe_ÃarÅenbe_PenÅenbe_Anna_Åenbe'.split( 29276 '_' 29277 ), 29278 weekdaysShort: 'Ãek_DuÅ_SiÅ_Ãar_Pen_Ann_Åen'.split('_'), 29279 weekdaysMin: 'Ãk_DÅ_SÅ_Ãr_Pn_An_Ån'.split('_'), 29280 longDateFormat: { 29281 LT: 'HH:mm', 29282 LTS: 'HH:mm:ss', 29283 L: 'DD.MM.YYYY', 29284 LL: 'D MMMM YYYY', 29285 LLL: 'D MMMM YYYY HH:mm', 29286 LLLL: 'dddd, D MMMM YYYY HH:mm', 29287 }, 29288 calendar: { 29289 sameDay: '[bugün sagat] LT', 29290 nextDay: '[ertir sagat] LT', 29291 nextWeek: '[indiki] dddd [sagat] LT', 29292 lastDay: '[düýn] LT', 29293 lastWeek: '[geçen] dddd [sagat] LT', 29294 sameElse: 'L', 29295 }, 29296 relativeTime: { 29297 future: '%s soÅ', 29298 past: '%s öÅ', 29299 s: 'birnäçe sekunt', 29300 m: 'bir minut', 29301 mm: '%d minut', 29302 h: 'bir sagat', 29303 hh: '%d sagat', 29304 d: 'bir gün', 29305 dd: '%d gün', 29306 M: 'bir aý', 29307 MM: '%d aý', 29308 y: 'bir ýyl', 29309 yy: '%d ýyl', 29310 }, 29311 ordinal: function (number, period) { 29312 switch (period) { 29313 case 'd': 29314 case 'D': 29315 case 'Do': 29316 case 'DD': 29317 return number; 29318 default: 29319 if (number === 0) { 29320 // special case for zero 29321 return number + "'unjy"; 29322 } 29323 var a = number % 10, 29324 b = (number % 100) - a, 29325 c = number >= 100 ? 100 : null; 29326 return number + (suffixes[a] || suffixes[b] || suffixes[c]); 29327 } 29328 }, 29329 week: { 29330 dow: 1, // Monday is the first day of the week. 29331 doy: 7, // The week that contains Jan 7th is the first week of the year. 29332 }, 29333 }); 29334 29335 return tk; 29336 29337}))); 29338 29339 29340/***/ }), 29341
vendor: 2,444 bytes, lines 29342-29417
29342/***/ "./node_modules/moment/locale/tl-ph.js": 29343/*!*********************************************!*\ 29344 !*** ./node_modules/moment/locale/tl-ph.js ***! 29345 \*********************************************/ 29346/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 29347 29348//! moment.js locale configuration 29349//! locale : Tagalog (Philippines) [tl-ph] 29350//! author : Dan Hagman : https://github.com/hagmandan 29351 29352;(function (global, factory) { 29353 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 29354 0 29355}(this, (function (moment) { 'use strict'; 29356 29357 //! moment.js locale configuration 29358 29359 var tlPh = moment.defineLocale('tl-ph', { 29360 months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split( 29361 '_' 29362 ), 29363 monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'), 29364 weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split( 29365 '_' 29366 ), 29367 weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'), 29368 weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'), 29369 longDateFormat: { 29370 LT: 'HH:mm', 29371 LTS: 'HH:mm:ss', 29372 L: 'MM/D/YYYY', 29373 LL: 'MMMM D, YYYY', 29374 LLL: 'MMMM D, YYYY HH:mm', 29375 LLLL: 'dddd, MMMM DD, YYYY HH:mm', 29376 }, 29377 calendar: { 29378 sameDay: 'LT [ngayong araw]', 29379 nextDay: '[Bukas ng] LT', 29380 nextWeek: 'LT [sa susunod na] dddd', 29381 lastDay: 'LT [kahapon]', 29382 lastWeek: 'LT [noong nakaraang] dddd', 29383 sameElse: 'L', 29384 }, 29385 relativeTime: { 29386 future: 'sa loob ng %s', 29387 past: '%s ang nakalipas', 29388 s: 'ilang segundo', 29389 ss: '%d segundo', 29390 m: 'isang minuto', 29391 mm: '%d minuto', 29392 h: 'isang oras', 29393 hh: '%d oras', 29394 d: 'isang araw', 29395 dd: '%d araw', 29396 M: 'isang buwan', 29397 MM: '%d buwan', 29398 y: 'isang taon', 29399 yy: '%d taon', 29400 }, 29401 dayOfMonthOrdinalParse: /\d{1,2}/, 29402 ordinal: function (number) { 29403 return number; 29404 }, 29405 week: { 29406 dow: 1, // Monday is the first day of the week. 29407 doy: 4, // The week that contains Jan 4th is the first week of the year. 29408 }, 29409 }); 29410 29411 return tlPh; 29412 29413}))); 29414 29415 29416/***/ }), 29417
vendor: 4,726 bytes, lines 29418-29560
29418/***/ "./node_modules/moment/locale/tlh.js": 29419/*!*******************************************!*\ 29420 !*** ./node_modules/moment/locale/tlh.js ***! 29421 \*******************************************/ 29422/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 29423 29424//! moment.js locale configuration 29425//! locale : Klingon [tlh] 29426//! author : Dominika Kruk : https://github.com/amaranthrose 29427 29428;(function (global, factory) { 29429 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 29430 0 29431}(this, (function (moment) { 'use strict'; 29432 29433 //! moment.js locale configuration 29434 29435 var numbersNouns = 'pagh_waâ_chaâ_wej_loS_vagh_jav_Soch_chorgh_Hut'.split('_'); 29436 29437 function translateFuture(output) { 29438 var time = output; 29439 time = 29440 output.indexOf('jaj') !== -1 29441 ? time.slice(0, -3) + 'leS' 29442 : output.indexOf('jar') !== -1 29443 ? time.slice(0, -3) + 'waQ' 29444 : output.indexOf('DIS') !== -1 29445 ? time.slice(0, -3) + 'nem' 29446 : time + ' pIq'; 29447 return time; 29448 } 29449 29450 function translatePast(output) { 29451 var time = output; 29452 time = 29453 output.indexOf('jaj') !== -1 29454 ? time.slice(0, -3) + 'Huâ' 29455 : output.indexOf('jar') !== -1 29456 ? time.slice(0, -3) + 'wen' 29457 : output.indexOf('DIS') !== -1 29458 ? time.slice(0, -3) + 'ben' 29459 : time + ' ret'; 29460 return time; 29461 } 29462 29463 function translate(number, withoutSuffix, string, isFuture) { 29464 var numberNoun = numberAsNoun(number); 29465 switch (string) { 29466 case 'ss': 29467 return numberNoun + ' lup'; 29468 case 'mm': 29469 return numberNoun + ' tup'; 29470 case 'hh': 29471 return numberNoun + ' rep'; 29472 case 'dd': 29473 return numberNoun + ' jaj'; 29474 case 'MM': 29475 return numberNoun + ' jar'; 29476 case 'yy': 29477 return numberNoun + ' DIS'; 29478 } 29479 } 29480 29481 function numberAsNoun(number) { 29482 var hundred = Math.floor((number % 1000) / 100), 29483 ten = Math.floor((number % 100) / 10), 29484 one = number % 10, 29485 word = ''; 29486 if (hundred > 0) { 29487 word += numbersNouns[hundred] + 'vatlh'; 29488 } 29489 if (ten > 0) { 29490 word += (word !== '' ? ' ' : '') + numbersNouns[ten] + 'maH'; 29491 } 29492 if (one > 0) { 29493 word += (word !== '' ? ' ' : '') + numbersNouns[one]; 29494 } 29495 return word === '' ? 'pagh' : word; 29496 } 29497 29498 var tlh = moment.defineLocale('tlh', { 29499 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( 29500 '_' 29501 ), 29502 monthsShort: 29503 '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( 29504 '_' 29505 ), 29506 monthsParseExact: true, 29507 weekdays: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split( 29508 '_' 29509 ), 29510 weekdaysShort: 29511 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'), 29512 weekdaysMin: 29513 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'), 29514 longDateFormat: { 29515 LT: 'HH:mm', 29516 LTS: 'HH:mm:ss', 29517 L: 'DD.MM.YYYY', 29518 LL: 'D MMMM YYYY', 29519 LLL: 'D MMMM YYYY HH:mm', 29520 LLLL: 'dddd, D MMMM YYYY HH:mm', 29521 }, 29522 calendar: { 29523 sameDay: '[DaHjaj] LT', 29524 nextDay: '[waâleS] LT', 29525 nextWeek: 'LLL', 29526 lastDay: '[waâHuâ] LT', 29527 lastWeek: 'LLL', 29528 sameElse: 'L', 29529 }, 29530 relativeTime: { 29531 future: translateFuture, 29532 past: translatePast, 29533 s: 'puS lup', 29534 ss: translate, 29535 m: 'waâ tup', 29536 mm: translate, 29537 h: 'waâ rep', 29538 hh: translate, 29539 d: 'waâ jaj', 29540 dd: translate, 29541 M: 'waâ jar', 29542 MM: translate, 29543 y: 'waâ DIS', 29544 yy: translate, 29545 }, 29546 dayOfMonthOrdinalParse: /\d{1,2}\./, 29547 ordinal: '%d.', 29548 week: { 29549 dow: 1, // Monday is the first day of the week. 29550 doy: 4, // The week that contains Jan 4th is the first week of the year. 29551 }, 29552 }); 29553 29554 return tlh; 29555 29556}))); 29557 29558 29559/***/ }), 29560
vendor: 3,808 bytes, lines 29561-29685
29561/***/ "./node_modules/moment/locale/tr.js": 29562/*!******************************************!*\ 29563 !*** ./node_modules/moment/locale/tr.js ***! 29564 \******************************************/ 29565/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 29566 29567//! moment.js locale configuration 29568//! locale : Turkish [tr] 29569//! authors : Erhan Gundogan : https://github.com/erhangundogan, 29570//! Burak YiÄit Kaya: https://github.com/BYK 29571 29572;(function (global, factory) { 29573 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 29574 0 29575}(this, (function (moment) { 'use strict'; 29576 29577 //! moment.js locale configuration 29578 29579 var suffixes = { 29580 1: "'inci", 29581 5: "'inci", 29582 8: "'inci", 29583 70: "'inci", 29584 80: "'inci", 29585 2: "'nci", 29586 7: "'nci", 29587 20: "'nci", 29588 50: "'nci", 29589 3: "'üncü", 29590 4: "'üncü", 29591 100: "'üncü", 29592 6: "'ncı", 29593 9: "'uncu", 29594 10: "'uncu", 29595 30: "'uncu", 29596 60: "'ıncı", 29597 90: "'ıncı", 29598 }; 29599 29600 var tr = moment.defineLocale('tr', { 29601 months: 'Ocak_Åubat_Mart_Nisan_Mayıs_Haziran_Temmuz_AÄustos_Eylül_Ekim_Kasım_Aralık'.split( 29602 '_' 29603 ), 29604 monthsShort: 'Oca_Åub_Mar_Nis_May_Haz_Tem_AÄu_Eyl_Eki_Kas_Ara'.split('_'), 29605 weekdays: 'Pazar_Pazartesi_Salı_ÃarÅamba_PerÅembe_Cuma_Cumartesi'.split( 29606 '_' 29607 ), 29608 weekdaysShort: 'Paz_Pzt_Sal_Ãar_Per_Cum_Cmt'.split('_'), 29609 weekdaysMin: 'Pz_Pt_Sa_Ãa_Pe_Cu_Ct'.split('_'), 29610 meridiem: function (hours, minutes, isLower) { 29611 if (hours < 12) { 29612 return isLower ? 'öö' : 'ÃÃ'; 29613 } else { 29614 return isLower ? 'ös' : 'ÃS'; 29615 } 29616 }, 29617 meridiemParse: /öö|ÃÃ|ös|ÃS/, 29618 isPM: function (input) { 29619 return input === 'ös' || input === 'ÃS'; 29620 }, 29621 longDateFormat: { 29622 LT: 'HH:mm', 29623 LTS: 'HH:mm:ss', 29624 L: 'DD.MM.YYYY', 29625 LL: 'D MMMM YYYY', 29626 LLL: 'D MMMM YYYY HH:mm', 29627 LLLL: 'dddd, D MMMM YYYY HH:mm', 29628 }, 29629 calendar: { 29630 sameDay: '[bugün saat] LT', 29631 nextDay: '[yarın saat] LT', 29632 nextWeek: '[gelecek] dddd [saat] LT', 29633 lastDay: '[dün] LT', 29634 lastWeek: '[geçen] dddd [saat] LT', 29635 sameElse: 'L', 29636 }, 29637 relativeTime: { 29638 future: '%s sonra', 29639 past: '%s önce', 29640 s: 'birkaç saniye', 29641 ss: '%d saniye', 29642 m: 'bir dakika', 29643 mm: '%d dakika', 29644 h: 'bir saat', 29645 hh: '%d saat', 29646 d: 'bir gün', 29647 dd: '%d gün', 29648 w: 'bir hafta', 29649 ww: '%d hafta', 29650 M: 'bir ay', 29651 MM: '%d ay', 29652 y: 'bir yıl', 29653 yy: '%d yıl', 29654 }, 29655 ordinal: function (number, period) { 29656 switch (period) { 29657 case 'd': 29658 case 'D': 29659 case 'Do': 29660 case 'DD': 29661 return number; 29662 default: 29663 if (number === 0) { 29664 // special case for zero 29665 return number + "'ıncı"; 29666 } 29667 var a = number % 10, 29668 b = (number % 100) - a, 29669 c = number >= 100 ? 100 : null; 29670 return number + (suffixes[a] || suffixes[b] || suffixes[c]); 29671 } 29672 }, 29673 week: { 29674 dow: 1, // Monday is the first day of the week. 29675 doy: 7, // The week that contains Jan 7th is the first week of the year. 29676 }, 29677 }); 29678 29679 return tr; 29680 29681}))); 29682 29683 29684/***/ }), 29685
vendor: 3,932 bytes, lines 29686-29793
29686/***/ "./node_modules/moment/locale/tzl.js": 29687/*!*******************************************!*\ 29688 !*** ./node_modules/moment/locale/tzl.js ***! 29689 \*******************************************/ 29690/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 29691 29692//! moment.js locale configuration 29693//! locale : Talossan [tzl] 29694//! author : Robin van der Vliet : https://github.com/robin0van0der0v 29695//! author : Iustì Canun 29696 29697;(function (global, factory) { 29698 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 29699 0 29700}(this, (function (moment) { 'use strict'; 29701 29702 //! moment.js locale configuration 29703 29704 // After the year there should be a slash and the amount of years since December 26, 1979 in Roman numerals. 29705 // This is currently too difficult (maybe even impossible) to add. 29706 var tzl = moment.defineLocale('tzl', { 29707 months: 'Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar'.split( 29708 '_' 29709 ), 29710 monthsShort: 'Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec'.split('_'), 29711 weekdays: 'Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi'.split('_'), 29712 weekdaysShort: 'Súl_Lún_Mai_Már_Xhú_Vié_Sát'.split('_'), 29713 weekdaysMin: 'Sú_Lú_Ma_Má_Xh_Vi_Sá'.split('_'), 29714 longDateFormat: { 29715 LT: 'HH.mm', 29716 LTS: 'HH.mm.ss', 29717 L: 'DD.MM.YYYY', 29718 LL: 'D. MMMM [dallas] YYYY', 29719 LLL: 'D. MMMM [dallas] YYYY HH.mm', 29720 LLLL: 'dddd, [li] D. MMMM [dallas] YYYY HH.mm', 29721 }, 29722 meridiemParse: /d\'o|d\'a/i, 29723 isPM: function (input) { 29724 return "d'o" === input.toLowerCase(); 29725 }, 29726 meridiem: function (hours, minutes, isLower) { 29727 if (hours > 11) { 29728 return isLower ? "d'o" : "D'O"; 29729 } else { 29730 return isLower ? "d'a" : "D'A"; 29731 } 29732 }, 29733 calendar: { 29734 sameDay: '[oxhi à ] LT', 29735 nextDay: '[demà à ] LT', 29736 nextWeek: 'dddd [à ] LT', 29737 lastDay: '[ieiri à ] LT', 29738 lastWeek: '[sür el] dddd [lasteu à ] LT', 29739 sameElse: 'L', 29740 }, 29741 relativeTime: { 29742 future: 'osprei %s', 29743 past: 'ja%s', 29744 s: processRelativeTime, 29745 ss: processRelativeTime, 29746 m: processRelativeTime, 29747 mm: processRelativeTime, 29748 h: processRelativeTime, 29749 hh: processRelativeTime, 29750 d: processRelativeTime, 29751 dd: processRelativeTime, 29752 M: processRelativeTime, 29753 MM: processRelativeTime, 29754 y: processRelativeTime, 29755 yy: processRelativeTime, 29756 }, 29757 dayOfMonthOrdinalParse: /\d{1,2}\./, 29758 ordinal: '%d.', 29759 week: { 29760 dow: 1, // Monday is the first day of the week. 29761 doy: 4, // The week that contains Jan 4th is the first week of the year. 29762 }, 29763 }); 29764 29765 function processRelativeTime(number, withoutSuffix, key, isFuture) { 29766 var format = { 29767 s: ['viensas secunds', "'iensas secunds"], 29768 ss: [number + ' secunds', '' + number + ' secunds'], 29769 m: ["'n mÃut", "'iens mÃut"], 29770 mm: [number + ' mÃuts', '' + number + ' mÃuts'], 29771 h: ["'n þora", "'iensa þora"], 29772 hh: [number + ' þoras', '' + number + ' þoras'], 29773 d: ["'n ziua", "'iensa ziua"], 29774 dd: [number + ' ziuas', '' + number + ' ziuas'], 29775 M: ["'n mes", "'iens mes"], 29776 MM: [number + ' mesen', '' + number + ' mesen'], 29777 y: ["'n ar", "'iens ar"], 29778 yy: [number + ' ars', '' + number + ' ars'], 29779 }; 29780 return isFuture 29781 ? format[key][0] 29782 : withoutSuffix 29783 ? format[key][0] 29784 : format[key][1]; 29785 } 29786 29787 return tzl; 29788 29789}))); 29790 29791 29792/***/ }), 29793
vendor: 2,406 bytes, lines 29794-29866
29794/***/ "./node_modules/moment/locale/tzm-latn.js": 29795/*!************************************************!*\ 29796 !*** ./node_modules/moment/locale/tzm-latn.js ***! 29797 \************************************************/ 29798/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 29799 29800//! moment.js locale configuration 29801//! locale : Central Atlas Tamazight Latin [tzm-latn] 29802//! author : Abdel Said : https://github.com/abdelsaid 29803 29804;(function (global, factory) { 29805 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 29806 0 29807}(this, (function (moment) { 'use strict'; 29808 29809 //! moment.js locale configuration 29810 29811 var tzmLatn = moment.defineLocale('tzm-latn', { 29812 months: 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_É£wÅ¡t_Å¡wtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split( 29813 '_' 29814 ), 29815 monthsShort: 29816 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_É£wÅ¡t_Å¡wtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split( 29817 '_' 29818 ), 29819 weekdays: 'asamas_aynas_asinas_akras_akwas_asimwas_asiá¸yas'.split('_'), 29820 weekdaysShort: 'asamas_aynas_asinas_akras_akwas_asimwas_asiá¸yas'.split('_'), 29821 weekdaysMin: 'asamas_aynas_asinas_akras_akwas_asimwas_asiá¸yas'.split('_'), 29822 longDateFormat: { 29823 LT: 'HH:mm', 29824 LTS: 'HH:mm:ss', 29825 L: 'DD/MM/YYYY', 29826 LL: 'D MMMM YYYY', 29827 LLL: 'D MMMM YYYY HH:mm', 29828 LLLL: 'dddd D MMMM YYYY HH:mm', 29829 }, 29830 calendar: { 29831 sameDay: '[asdkh g] LT', 29832 nextDay: '[aska g] LT', 29833 nextWeek: 'dddd [g] LT', 29834 lastDay: '[assant g] LT', 29835 lastWeek: 'dddd [g] LT', 29836 sameElse: 'L', 29837 }, 29838 relativeTime: { 29839 future: 'dadkh s yan %s', 29840 past: 'yan %s', 29841 s: 'imik', 29842 ss: '%d imik', 29843 m: 'minuá¸', 29844 mm: '%d minuá¸', 29845 h: 'saÉa', 29846 hh: '%d tassaÉin', 29847 d: 'ass', 29848 dd: '%d ossan', 29849 M: 'ayowr', 29850 MM: '%d iyyirn', 29851 y: 'asgas', 29852 yy: '%d isgasn', 29853 }, 29854 week: { 29855 dow: 6, // Saturday is the first day of the week. 29856 doy: 12, // The week that contains Jan 12th is the first week of the year. 29857 }, 29858 }); 29859 29860 return tzmLatn; 29861 29862}))); 29863 29864 29865/***/ }), 29866
vendor: 3,009 bytes, lines 29867-29939
29867/***/ "./node_modules/moment/locale/tzm.js": 29868/*!*******************************************!*\ 29869 !*** ./node_modules/moment/locale/tzm.js ***! 29870 \*******************************************/ 29871/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 29872 29873//! moment.js locale configuration 29874//! locale : Central Atlas Tamazight [tzm] 29875//! author : Abdel Said : https://github.com/abdelsaid 29876 29877;(function (global, factory) { 29878 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 29879 0 29880}(this, (function (moment) { 'use strict'; 29881 29882 //! moment.js locale configuration 29883 29884 var tzm = moment.defineLocale('tzm', { 29885 months: 'âµâµâµâ´°âµ¢âµ_â´±âµâ´°âµ¢âµ_âµâ´°âµâµ_âµâ´±âµâµâµ_âµâ´°âµ¢âµ¢âµ_âµ¢âµâµâµ¢âµ_âµ¢âµâµâµ¢âµâµ£_âµâµâµâµ_âµâµâµâ´°âµâ´±âµâµ_â´½âµâµâ´±âµ_âµâµâµ¡â´°âµâ´±âµâµ_â´·âµâµâµâ´±âµâµ'.split( 29886 '_' 29887 ), 29888 monthsShort: 29889 'âµâµâµâ´°âµ¢âµ_â´±âµâ´°âµ¢âµ_âµâ´°âµâµ_âµâ´±âµâµâµ_âµâ´°âµ¢âµ¢âµ_âµ¢âµâµâµ¢âµ_âµ¢âµâµâµ¢âµâµ£_âµâµâµâµ_âµâµâµâ´°âµâ´±âµâµ_â´½âµâµâ´±âµ_âµâµâµ¡â´°âµâ´±âµâµ_â´·âµâµâµâ´±âµâµ'.split( 29890 '_' 29891 ), 29892 weekdays: 'â´°âµâ´°âµâ´°âµ_â´°âµ¢âµâ´°âµ_â´°âµâµâµâ´°âµ_â´°â´½âµâ´°âµ_ⴰⴽⵡⴰâµ_â´°âµâµâµâµ¡â´°âµ_â´°âµâµâ´¹âµ¢â´°âµ'.split('_'), 29893 weekdaysShort: 'â´°âµâ´°âµâ´°âµ_â´°âµ¢âµâ´°âµ_â´°âµâµâµâ´°âµ_â´°â´½âµâ´°âµ_ⴰⴽⵡⴰâµ_â´°âµâµâµâµ¡â´°âµ_â´°âµâµâ´¹âµ¢â´°âµ'.split('_'), 29894 weekdaysMin: 'â´°âµâ´°âµâ´°âµ_â´°âµ¢âµâ´°âµ_â´°âµâµâµâ´°âµ_â´°â´½âµâ´°âµ_ⴰⴽⵡⴰâµ_â´°âµâµâµâµ¡â´°âµ_â´°âµâµâ´¹âµ¢â´°âµ'.split('_'), 29895 longDateFormat: { 29896 LT: 'HH:mm', 29897 LTS: 'HH:mm:ss', 29898 L: 'DD/MM/YYYY', 29899 LL: 'D MMMM YYYY', 29900 LLL: 'D MMMM YYYY HH:mm', 29901 LLLL: 'dddd D MMMM YYYY HH:mm', 29902 }, 29903 calendar: { 29904 sameDay: '[â´°âµâ´·âµ â´´] LT', 29905 nextDay: '[â´°âµâ´½â´° â´´] LT', 29906 nextWeek: 'dddd [â´´] LT', 29907 lastDay: '[â´°âµâ´°âµâµ â´´] LT', 29908 lastWeek: 'dddd [â´´] LT', 29909 sameElse: 'L', 29910 }, 29911 relativeTime: { 29912 future: 'ⴷⴰⴷⵠⵠⵢⴰⵠ%s', 29913 past: 'ⵢⴰⵠ%s', 29914 s: 'âµâµâµâ´½', 29915 ss: '%d âµâµâµâ´½', 29916 m: 'âµâµâµâµâ´º', 29917 mm: '%d âµâµâµâµâ´º', 29918 h: 'âµâ´°âµâ´°', 29919 hh: '%d âµâ´°âµâµâ´°âµâµâµ', 29920 d: 'â´°âµâµ', 29921 dd: '%d oâµâµâ´°âµ', 29922 M: 'â´°âµ¢oâµâµ', 29923 MM: '%d âµâµ¢âµ¢âµâµâµ', 29924 y: 'â´°âµâ´³â´°âµ', 29925 yy: '%d âµâµâ´³â´°âµâµ', 29926 }, 29927 week: { 29928 dow: 6, // Saturday is the first day of the week. 29929 doy: 12, // The week that contains Jan 12th is the first week of the year. 29930 }, 29931 }); 29932 29933 return tzm; 29934 29935}))); 29936 29937 29938/***/ }), 29939
vendor: 4,801 bytes, lines 29940-30069
29940/***/ "./node_modules/moment/locale/ug-cn.js": 29941/*!*********************************************!*\ 29942 !*** ./node_modules/moment/locale/ug-cn.js ***! 29943 \*********************************************/ 29944/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 29945 29946//! moment.js locale configuration 29947//! locale : Uyghur (China) [ug-cn] 29948//! author: boyaq : https://github.com/boyaq 29949 29950;(function (global, factory) { 29951 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 29952 0 29953}(this, (function (moment) { 'use strict'; 29954 29955 //! moment.js locale configuration 29956 29957 var ugCn = moment.defineLocale('ug-cn', { 29958 months: 'ÙØ§ÙÛØ§Ø±_ÙÛÛØ±Ø§Ù_٠ارت_ئاپرÛÙ_٠اÙ_ئÙÙÛÙ_ئÙÙÛÙ_Ø¦Ø§ÛØºÛست_سÛÙØªÛØ¨ÙØ±_ئÛÙØªÛØ¨ÙØ±_ÙÙÙØ§Ø¨Ùر_دÛÙØ§Ø¨Ùر'.split( 29959 '_' 29960 ), 29961 monthsShort: 29962 'ÙØ§ÙÛØ§Ø±_ÙÛÛØ±Ø§Ù_٠ارت_ئاپرÛÙ_٠اÙ_ئÙÙÛÙ_ئÙÙÛÙ_Ø¦Ø§ÛØºÛست_سÛÙØªÛØ¨ÙØ±_ئÛÙØªÛØ¨ÙØ±_ÙÙÙØ§Ø¨Ùر_دÛÙØ§Ø¨Ùر'.split( 29963 '_' 29964 ), 29965 weekdays: 'ÙÛÙØ´ÛÙØ¨Û_Ø¯ÛØ´ÛÙØ¨Û_سÛÙØ´ÛÙØ¨Û_ÚØ§Ø±Ø´ÛÙØ¨Û_Ù¾ÛÙØ´ÛÙØ¨Û_جÛÙ Û_Ø´ÛÙØ¨Û'.split( 29966 '_' 29967 ), 29968 weekdaysShort: 'ÙÛ_دÛ_سÛ_ÚØ§_Ù¾Û_جÛ_Ø´Û'.split('_'), 29969 weekdaysMin: 'ÙÛ_دÛ_سÛ_ÚØ§_Ù¾Û_جÛ_Ø´Û'.split('_'), 29970 longDateFormat: { 29971 LT: 'HH:mm', 29972 LTS: 'HH:mm:ss', 29973 L: 'YYYY-MM-DD', 29974 LL: 'YYYY-ÙÙÙÙM-ئاÙÙÙÚD-ÙÛÙÙ', 29975 LLL: 'YYYY-ÙÙÙÙM-ئاÙÙÙÚD-ÙÛÙÙØ HH:mm', 29976 LLLL: 'ddddØ YYYY-ÙÙÙÙM-ئاÙÙÙÚD-ÙÛÙÙØ HH:mm', 29977 }, 29978 meridiemParse: /ÙÛØ±ÙÙ ÙÛÚÛ|سÛÚ¾ÛØ±|ÚÛØ´ØªÙÙ Ø¨ÛØ±ÛÙ|ÚÛØ´|ÚÛØ´ØªÙÙ ÙÛÙÙÙ|ÙÛÚ/, 29979 meridiemHour: function (hour, meridiem) { 29980 if (hour === 12) { 29981 hour = 0; 29982 } 29983 if ( 29984 meridiem === 'ÙÛØ±ÙÙ ÙÛÚÛ' || 29985 meridiem === 'سÛÚ¾ÛØ±' || 29986 meridiem === 'ÚÛØ´ØªÙÙ Ø¨ÛØ±ÛÙ' 29987 ) { 29988 return hour; 29989 } else if (meridiem === 'ÚÛØ´ØªÙÙ ÙÛÙÙÙ' || meridiem === 'ÙÛÚ') { 29990 return hour + 12; 29991 } else { 29992 return hour >= 11 ? hour : hour + 12; 29993 } 29994 }, 29995 meridiem: function (hour, minute, isLower) { 29996 var hm = hour * 100 + minute; 29997 if (hm < 600) { 29998 return 'ÙÛØ±ÙÙ ÙÛÚÛ'; 29999 } else if (hm < 900) { 30000 return 'سÛÚ¾ÛØ±'; 30001 } else if (hm < 1130) { 30002 return 'ÚÛØ´ØªÙÙ Ø¨ÛØ±ÛÙ'; 30003 } else if (hm < 1230) { 30004 return 'ÚÛØ´'; 30005 } else if (hm < 1800) { 30006 return 'ÚÛØ´ØªÙÙ ÙÛÙÙÙ'; 30007 } else { 30008 return 'ÙÛÚ'; 30009 } 30010 }, 30011 calendar: { 30012 sameDay: '[بÛÚ¯ÛÙ Ø³Ø§Ø¦ÛØª] LT', 30013 nextDay: '[Ø¦ÛØªÛ Ø³Ø§Ø¦ÛØª] LT', 30014 nextWeek: '[ÙÛÙÛØ±ÙÙ] dddd [Ø³Ø§Ø¦ÛØª] LT', 30015 lastDay: '[تÛÙÛÚ¯ÛÙ] LT', 30016 lastWeek: '[Ø¦Ø§ÙØ¯ÙÙÙÙ] dddd [Ø³Ø§Ø¦ÛØª] LT', 30017 sameElse: 'L', 30018 }, 30019 relativeTime: { 30020 future: '%s ÙÛÙÙÙ', 30021 past: '%s Ø¨ÛØ±ÛÙ', 30022 s: 'ÙÛÚÚÛ Ø³ÛÙÙÙØª', 30023 ss: '%d سÛÙÙÙØª', 30024 m: 'Ø¨ÙØ± Ù ÙÙÛØª', 30025 mm: '%d Ù ÙÙÛØª', 30026 h: 'Ø¨ÙØ± Ø³Ø§Ø¦ÛØª', 30027 hh: '%d Ø³Ø§Ø¦ÛØª', 30028 d: 'Ø¨ÙØ± ÙÛÙ', 30029 dd: '%d ÙÛÙ', 30030 M: 'Ø¨ÙØ± ئاÙ', 30031 MM: '%d ئاÙ', 30032 y: 'Ø¨ÙØ± ÙÙÙ', 30033 yy: '%d ÙÙÙ', 30034 }, 30035 30036 dayOfMonthOrdinalParse: /\d{1,2}(-ÙÛÙÙ|-ئاÙ|-Ú¾ÛپتÛ)/, 30037 ordinal: function (number, period) { 30038 switch (period) { 30039 case 'd': 30040 case 'D': 30041 case 'DDD': 30042 return number + '-ÙÛÙÙ'; 30043 case 'w': 30044 case 'W': 30045 return number + '-Ú¾ÛپتÛ'; 30046 default: 30047 return number; 30048 } 30049 }, 30050 preparse: function (string) { 30051 return string.replace(/Ø/g, ','); 30052 }, 30053 postformat: function (string) { 30054 return string.replace(/,/g, 'Ø'); 30055 }, 30056 week: { 30057 // GB/T 7408-1994ãæ°æ®å åäº¤æ¢æ ¼å¼Â·ä¿¡æ¯äº¤æ¢Â·æ¥æåæ¶é´è¡¨ç¤ºæ³ãä¸ISO 8601:1988çæ 30058 dow: 1, // Monday is the first day of the week. 30059 doy: 7, // The week that contains Jan 1st is the first week of the year. 30060 }, 30061 }); 30062 30063 return ugCn; 30064 30065}))); 30066 30067 30068/***/ }), 30069
vendor: 7,080 bytes, lines 30070-30255
30070/***/ "./node_modules/moment/locale/uk.js": 30071/*!******************************************!*\ 30072 !*** ./node_modules/moment/locale/uk.js ***! 30073 \******************************************/ 30074/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 30075 30076//! moment.js locale configuration 30077//! locale : Ukrainian [uk] 30078//! author : zemlanin : https://github.com/zemlanin 30079//! Author : Menelion Elensúle : https://github.com/Oire 30080 30081;(function (global, factory) { 30082 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 30083 0 30084}(this, (function (moment) { 'use strict'; 30085 30086 //! moment.js locale configuration 30087 30088 function plural(word, num) { 30089 var forms = word.split('_'); 30090 return num % 10 === 1 && num % 100 !== 11 30091 ? forms[0] 30092 : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) 30093 ? forms[1] 30094 : forms[2]; 30095 } 30096 function relativeTimeWithPlural(number, withoutSuffix, key) { 30097 var format = { 30098 ss: withoutSuffix ? 'ÑекÑнда_ÑекÑнди_ÑекÑнд' : 'ÑекÑндÑ_ÑекÑнди_ÑекÑнд', 30099 mm: withoutSuffix ? 'Ñ Ð²Ð¸Ð»Ð¸Ð½Ð°_Ñ Ð²Ð¸Ð»Ð¸Ð½Ð¸_Ñ Ð²Ð¸Ð»Ð¸Ð½' : 'Ñ Ð²Ð¸Ð»Ð¸Ð½Ñ_Ñ Ð²Ð¸Ð»Ð¸Ð½Ð¸_Ñ Ð²Ð¸Ð»Ð¸Ð½', 30100 hh: withoutSuffix ? 'година_години_годин' : 'годинÑ_години_годин', 30101 dd: 'денÑ_днÑ_днÑв', 30102 MM: 'мÑÑÑÑÑ_мÑÑÑÑÑ_мÑÑÑÑÑв', 30103 yy: 'ÑÑк_Ñоки_ÑокÑв', 30104 }; 30105 if (key === 'm') { 30106 return withoutSuffix ? 'Ñ Ð²Ð¸Ð»Ð¸Ð½Ð°' : 'Ñ Ð²Ð¸Ð»Ð¸Ð½Ñ'; 30107 } else if (key === 'h') { 30108 return withoutSuffix ? 'година' : 'годинÑ'; 30109 } else { 30110 return number + ' ' + plural(format[key], +number); 30111 } 30112 } 30113 function weekdaysCaseReplace(m, format) { 30114 var weekdays = { 30115 nominative: 30116 'недÑлÑ_понедÑлок_вÑвÑоÑок_ÑеÑеда_ÑеÑвеÑ_пâÑÑниÑÑ_ÑÑбоÑа'.split( 30117 '_' 30118 ), 30119 accusative: 30120 'недÑлÑ_понедÑлок_вÑвÑоÑок_ÑеÑедÑ_ÑеÑвеÑ_пâÑÑниÑÑ_ÑÑбоÑÑ'.split( 30121 '_' 30122 ), 30123 genitive: 30124 'недÑлÑ_понедÑлка_вÑвÑоÑка_ÑеÑеди_ÑеÑвеÑга_пâÑÑниÑÑ_ÑÑбоÑи'.split( 30125 '_' 30126 ), 30127 }, 30128 nounCase; 30129 30130 if (m === true) { 30131 return weekdays['nominative'] 30132 .slice(1, 7) 30133 .concat(weekdays['nominative'].slice(0, 1)); 30134 } 30135 if (!m) { 30136 return weekdays['nominative']; 30137 } 30138 30139 nounCase = /(\[[ÐвУÑ]\]) ?dddd/.test(format) 30140 ? 'accusative' 30141 : /\[?(?:минÑлоÑ|наÑÑÑпноÑ)? ?\] ?dddd/.test(format) 30142 ? 'genitive' 30143 : 'nominative'; 30144 return weekdays[nounCase][m.day()]; 30145 } 30146 function processHoursFunction(str) { 30147 return function () { 30148 return str + 'о' + (this.hours() === 11 ? 'б' : '') + '] LT'; 30149 }; 30150 } 30151 30152 var uk = moment.defineLocale('uk', { 30153 months: { 30154 format: 'ÑÑÑнÑ_лÑÑого_беÑезнÑ_квÑÑнÑ_ÑÑавнÑ_ÑеÑвнÑ_липнÑ_ÑеÑпнÑ_веÑеÑнÑ_жовÑнÑ_лиÑÑопада_гÑÑднÑ'.split( 30155 '_' 30156 ), 30157 standalone: 30158 'ÑÑÑенÑ_лÑÑий_беÑезенÑ_квÑÑенÑ_ÑÑавенÑ_ÑеÑвенÑ_липенÑ_ÑеÑпенÑ_веÑеÑенÑ_жовÑенÑ_лиÑÑопад_гÑÑденÑ'.split( 30159 '_' 30160 ), 30161 }, 30162 monthsShort: 'ÑÑÑ_лÑÑ_беÑ_квÑÑ_ÑÑав_ÑеÑв_лип_ÑеÑп_веÑ_жовÑ_лиÑÑ_гÑÑд'.split( 30163 '_' 30164 ), 30165 weekdays: weekdaysCaseReplace, 30166 weekdaysShort: 'нд_пн_вÑ_ÑÑ_ÑÑ_пÑ_Ñб'.split('_'), 30167 weekdaysMin: 'нд_пн_вÑ_ÑÑ_ÑÑ_пÑ_Ñб'.split('_'), 30168 longDateFormat: { 30169 LT: 'HH:mm', 30170 LTS: 'HH:mm:ss', 30171 L: 'DD.MM.YYYY', 30172 LL: 'D MMMM YYYY Ñ.', 30173 LLL: 'D MMMM YYYY Ñ., HH:mm', 30174 LLLL: 'dddd, D MMMM YYYY Ñ., HH:mm', 30175 }, 30176 calendar: { 30177 sameDay: processHoursFunction('[СÑÐ¾Ð³Ð¾Ð´Ð½Ñ '), 30178 nextDay: processHoursFunction('[ÐавÑÑа '), 30179 lastDay: processHoursFunction('[ÐÑоÑа '), 30180 nextWeek: processHoursFunction('[У] dddd ['), 30181 lastWeek: function () { 30182 switch (this.day()) { 30183 case 0: 30184 case 3: 30185 case 5: 30186 case 6: 30187 return processHoursFunction('[ÐинÑлоÑ] dddd [').call(this); 30188 case 1: 30189 case 2: 30190 case 4: 30191 return processHoursFunction('[ÐинÑлого] dddd [').call(this); 30192 } 30193 }, 30194 sameElse: 'L', 30195 }, 30196 relativeTime: { 30197 future: 'за %s', 30198 past: '%s ÑомÑ', 30199 s: 'декÑлÑка ÑекÑнд', 30200 ss: relativeTimeWithPlural, 30201 m: relativeTimeWithPlural, 30202 mm: relativeTimeWithPlural, 30203 h: 'годинÑ', 30204 hh: relativeTimeWithPlural, 30205 d: 'денÑ', 30206 dd: relativeTimeWithPlural, 30207 M: 'мÑÑÑÑÑ', 30208 MM: relativeTimeWithPlural, 30209 y: 'ÑÑк', 30210 yy: relativeTimeWithPlural, 30211 }, 30212 // M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason 30213 meridiemParse: /ноÑÑ|ÑанкÑ|днÑ|веÑоÑа/, 30214 isPM: function (input) { 30215 return /^(днÑ|веÑоÑа)$/.test(input); 30216 }, 30217 meridiem: function (hour, minute, isLower) { 30218 if (hour < 4) { 30219 return 'ноÑÑ'; 30220 } else if (hour < 12) { 30221 return 'ÑанкÑ'; 30222 } else if (hour < 17) { 30223 return 'днÑ'; 30224 } else { 30225 return 'веÑоÑа'; 30226 } 30227 }, 30228 dayOfMonthOrdinalParse: /\d{1,2}-(й|го)/, 30229 ordinal: function (number, period) { 30230 switch (period) { 30231 case 'M': 30232 case 'd': 30233 case 'DDD': 30234 case 'w': 30235 case 'W': 30236 return number + '-й'; 30237 case 'D': 30238 return number + '-го'; 30239 default: 30240 return number; 30241 } 30242 }, 30243 week: { 30244 dow: 1, // Monday is the first day of the week. 30245 doy: 7, // The week that contains Jan 7th is the first week of the year. 30246 }, 30247 }); 30248 30249 return uk; 30250 30251}))); 30252 30253 30254/***/ }), 30255
vendor: 2,985 bytes, lines 30256-30356
30256/***/ "./node_modules/moment/locale/ur.js": 30257/*!******************************************!*\ 30258 !*** ./node_modules/moment/locale/ur.js ***! 30259 \******************************************/ 30260/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 30261 30262//! moment.js locale configuration 30263//! locale : Urdu [ur] 30264//! author : Sawood Alam : https://github.com/ibnesayeed 30265//! author : Zack : https://github.com/ZackVision 30266 30267;(function (global, factory) { 30268 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 30269 0 30270}(this, (function (moment) { 'use strict'; 30271 30272 //! moment.js locale configuration 30273 30274 var months = [ 30275 'جÙÙØ±Û', 30276 'ÙØ±ÙرÛ', 30277 '٠ارÚ', 30278 'اپرÛÙ', 30279 '٠ئÛ', 30280 'جÙÙ', 30281 'جÙÙØ§Ø¦Û', 30282 'اگست', 30283 'ست٠بر', 30284 'Ø§Ú©ØªÙØ¨Ø±', 30285 'ÙÙ٠بر', 30286 'دس٠بر', 30287 ], 30288 days = ['Ø§ØªÙØ§Ø±', 'Ù¾ÛØ±', 'Ù ÙÚ¯Ù', 'بدھ', 'ج٠عرات', 'ج٠عÛ', 'ÛÙØªÛ']; 30289 30290 var ur = moment.defineLocale('ur', { 30291 months: months, 30292 monthsShort: months, 30293 weekdays: days, 30294 weekdaysShort: days, 30295 weekdaysMin: days, 30296 longDateFormat: { 30297 LT: 'HH:mm', 30298 LTS: 'HH:mm:ss', 30299 L: 'DD/MM/YYYY', 30300 LL: 'D MMMM YYYY', 30301 LLL: 'D MMMM YYYY HH:mm', 30302 LLLL: 'ddddØ D MMMM YYYY HH:mm', 30303 }, 30304 meridiemParse: /صبØ|شا٠/, 30305 isPM: function (input) { 30306 return 'شا٠' === input; 30307 }, 30308 meridiem: function (hour, minute, isLower) { 30309 if (hour < 12) { 30310 return 'صبØ'; 30311 } 30312 return 'شا٠'; 30313 }, 30314 calendar: { 30315 sameDay: '[آج بÙÙØª] LT', 30316 nextDay: '[ک٠بÙÙØª] LT', 30317 nextWeek: 'dddd [بÙÙØª] LT', 30318 lastDay: '[Ú¯Ø°Ø´ØªÛ Ø±ÙØ² بÙÙØª] LT', 30319 lastWeek: '[گذشتÛ] dddd [بÙÙØª] LT', 30320 sameElse: 'L', 30321 }, 30322 relativeTime: { 30323 future: '%s بعد', 30324 past: '%s ÙØ¨Ù', 30325 s: 'ÚÙØ¯ سÛÚ©ÙÚ', 30326 ss: '%d سÛÚ©ÙÚ', 30327 m: 'اÛÚ© Ù ÙÙ¹', 30328 mm: '%d Ù ÙÙ¹', 30329 h: 'اÛÚ© Ú¯Ú¾ÙÙ¹Û', 30330 hh: '%d Ú¯Ú¾ÙÙ¹Û', 30331 d: 'اÛÚ© دÙ', 30332 dd: '%d دÙ', 30333 M: 'اÛÚ© ٠اÛ', 30334 MM: '%d ٠اÛ', 30335 y: 'اÛÚ© ساÙ', 30336 yy: '%d ساÙ', 30337 }, 30338 preparse: function (string) { 30339 return string.replace(/Ø/g, ','); 30340 }, 30341 postformat: function (string) { 30342 return string.replace(/,/g, 'Ø'); 30343 }, 30344 week: { 30345 dow: 1, // Monday is the first day of the week. 30346 doy: 4, // The week that contains Jan 4th is the first week of the year. 30347 }, 30348 }); 30349 30350 return ur; 30351 30352}))); 30353 30354 30355/***/ }), 30356
vendor: 2,348 bytes, lines 30357-30429
30357/***/ "./node_modules/moment/locale/uz-latn.js": 30358/*!***********************************************!*\ 30359 !*** ./node_modules/moment/locale/uz-latn.js ***! 30360 \***********************************************/ 30361/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 30362 30363//! moment.js locale configuration 30364//! locale : Uzbek Latin [uz-latn] 30365//! author : Rasulbek Mirzayev : github.com/Rasulbeeek 30366 30367;(function (global, factory) { 30368 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 30369 0 30370}(this, (function (moment) { 'use strict'; 30371 30372 //! moment.js locale configuration 30373 30374 var uzLatn = moment.defineLocale('uz-latn', { 30375 months: 'Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr'.split( 30376 '_' 30377 ), 30378 monthsShort: 'Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek'.split('_'), 30379 weekdays: 30380 'Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba'.split( 30381 '_' 30382 ), 30383 weekdaysShort: 'Yak_Dush_Sesh_Chor_Pay_Jum_Shan'.split('_'), 30384 weekdaysMin: 'Ya_Du_Se_Cho_Pa_Ju_Sha'.split('_'), 30385 longDateFormat: { 30386 LT: 'HH:mm', 30387 LTS: 'HH:mm:ss', 30388 L: 'DD/MM/YYYY', 30389 LL: 'D MMMM YYYY', 30390 LLL: 'D MMMM YYYY HH:mm', 30391 LLLL: 'D MMMM YYYY, dddd HH:mm', 30392 }, 30393 calendar: { 30394 sameDay: '[Bugun soat] LT [da]', 30395 nextDay: '[Ertaga] LT [da]', 30396 nextWeek: 'dddd [kuni soat] LT [da]', 30397 lastDay: '[Kecha soat] LT [da]', 30398 lastWeek: "[O'tgan] dddd [kuni soat] LT [da]", 30399 sameElse: 'L', 30400 }, 30401 relativeTime: { 30402 future: 'Yaqin %s ichida', 30403 past: 'Bir necha %s oldin', 30404 s: 'soniya', 30405 ss: '%d soniya', 30406 m: 'bir daqiqa', 30407 mm: '%d daqiqa', 30408 h: 'bir soat', 30409 hh: '%d soat', 30410 d: 'bir kun', 30411 dd: '%d kun', 30412 M: 'bir oy', 30413 MM: '%d oy', 30414 y: 'bir yil', 30415 yy: '%d yil', 30416 }, 30417 week: { 30418 dow: 1, // Monday is the first day of the week. 30419 doy: 7, // The week that contains Jan 7th is the first week of the year. 30420 }, 30421 }); 30422 30423 return uzLatn; 30424 30425}))); 30426 30427 30428/***/ }), 30429
vendor: 2,554 bytes, lines 30430-30499
30430/***/ "./node_modules/moment/locale/uz.js": 30431/*!******************************************!*\ 30432 !*** ./node_modules/moment/locale/uz.js ***! 30433 \******************************************/ 30434/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 30435 30436//! moment.js locale configuration 30437//! locale : Uzbek [uz] 30438//! author : Sardor Muminov : https://github.com/muminoff 30439 30440;(function (global, factory) { 30441 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 30442 0 30443}(this, (function (moment) { 'use strict'; 30444 30445 //! moment.js locale configuration 30446 30447 var uz = moment.defineLocale('uz', { 30448 months: 'ÑнваÑ_ÑевÑал_маÑÑ_апÑел_май_иÑн_иÑл_авгÑÑÑ_ÑенÑÑбÑ_окÑÑбÑ_ноÑбÑ_декабÑ'.split( 30449 '_' 30450 ), 30451 monthsShort: 'Ñнв_Ñев_маÑ_апÑ_май_иÑн_иÑл_авг_Ñен_окÑ_ноÑ_дек'.split('_'), 30452 weekdays: 'ЯкÑанба_ÐÑÑанба_СеÑанба_ЧоÑÑанба_ÐайÑанба_ÐÑма_Шанба'.split('_'), 30453 weekdaysShort: 'ЯкÑ_ÐÑÑ_СеÑ_ЧоÑ_Ðай_ÐÑм_Шан'.split('_'), 30454 weekdaysMin: 'Як_ÐÑ_Се_Чо_Ðа_ÐÑ_Ша'.split('_'), 30455 longDateFormat: { 30456 LT: 'HH:mm', 30457 LTS: 'HH:mm:ss', 30458 L: 'DD/MM/YYYY', 30459 LL: 'D MMMM YYYY', 30460 LLL: 'D MMMM YYYY HH:mm', 30461 LLLL: 'D MMMM YYYY, dddd HH:mm', 30462 }, 30463 calendar: { 30464 sameDay: '[ÐÑгÑн ÑоаÑ] LT [да]', 30465 nextDay: '[ÐÑÑага] LT [да]', 30466 nextWeek: 'dddd [кÑни ÑоаÑ] LT [да]', 30467 lastDay: '[ÐеÑа ÑоаÑ] LT [да]', 30468 lastWeek: '[УÑган] dddd [кÑни ÑоаÑ] LT [да]', 30469 sameElse: 'L', 30470 }, 30471 relativeTime: { 30472 future: 'Якин %s иÑида', 30473 past: 'ÐÐ¸Ñ Ð½ÐµÑа %s олдин', 30474 s: 'ÑÑÑÑаÑ', 30475 ss: '%d ÑÑÑÑаÑ', 30476 m: 'Ð±Ð¸Ñ Ð´Ð°ÐºÐ¸ÐºÐ°', 30477 mm: '%d дакика', 30478 h: 'Ð±Ð¸Ñ ÑоаÑ', 30479 hh: '%d ÑоаÑ', 30480 d: 'Ð±Ð¸Ñ ÐºÑн', 30481 dd: '%d кÑн', 30482 M: 'Ð±Ð¸Ñ Ð¾Ð¹', 30483 MM: '%d ой', 30484 y: 'Ð±Ð¸Ñ Ð¹Ð¸Ð»', 30485 yy: '%d йил', 30486 }, 30487 week: { 30488 dow: 1, // Monday is the first day of the week. 30489 doy: 7, // The week that contains Jan 4th is the first week of the year. 30490 }, 30491 }); 30492 30493 return uz; 30494 30495}))); 30496 30497 30498/***/ }), 30499
vendor: 3,211 bytes, lines 30500-30598
30500/***/ "./node_modules/moment/locale/vi.js": 30501/*!******************************************!*\ 30502 !*** ./node_modules/moment/locale/vi.js ***! 30503 \******************************************/ 30504/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 30505 30506//! moment.js locale configuration 30507//! locale : Vietnamese [vi] 30508//! author : Bang Nguyen : https://github.com/bangnk 30509//! author : Chien Kira : https://github.com/chienkira 30510 30511;(function (global, factory) { 30512 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 30513 0 30514}(this, (function (moment) { 'use strict'; 30515 30516 //! moment.js locale configuration 30517 30518 var vi = moment.defineLocale('vi', { 30519 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( 30520 '_' 30521 ), 30522 monthsShort: 30523 'Thg 01_Thg 02_Thg 03_Thg 04_Thg 05_Thg 06_Thg 07_Thg 08_Thg 09_Thg 10_Thg 11_Thg 12'.split( 30524 '_' 30525 ), 30526 monthsParseExact: true, 30527 weekdays: 'chá»§ nháºt_thứ hai_thứ ba_thứ tư_thứ nÄm_thứ sáu_thứ bảy'.split( 30528 '_' 30529 ), 30530 weekdaysShort: 'CN_T2_T3_T4_T5_T6_T7'.split('_'), 30531 weekdaysMin: 'CN_T2_T3_T4_T5_T6_T7'.split('_'), 30532 weekdaysParseExact: true, 30533 meridiemParse: /sa|ch/i, 30534 isPM: function (input) { 30535 return /^ch$/i.test(input); 30536 }, 30537 meridiem: function (hours, minutes, isLower) { 30538 if (hours < 12) { 30539 return isLower ? 'sa' : 'SA'; 30540 } else { 30541 return isLower ? 'ch' : 'CH'; 30542 } 30543 }, 30544 longDateFormat: { 30545 LT: 'HH:mm', 30546 LTS: 'HH:mm:ss', 30547 L: 'DD/MM/YYYY', 30548 LL: 'D MMMM [nÄm] YYYY', 30549 LLL: 'D MMMM [nÄm] YYYY HH:mm', 30550 LLLL: 'dddd, D MMMM [nÄm] YYYY HH:mm', 30551 l: 'DD/M/YYYY', 30552 ll: 'D MMM YYYY', 30553 lll: 'D MMM YYYY HH:mm', 30554 llll: 'ddd, D MMM YYYY HH:mm', 30555 }, 30556 calendar: { 30557 sameDay: '[Hôm nay lúc] LT', 30558 nextDay: '[Ngà y mai lúc] LT', 30559 nextWeek: 'dddd [tuần tá»i lúc] LT', 30560 lastDay: '[Hôm qua lúc] LT', 30561 lastWeek: 'dddd [tuần trưá»c lúc] LT', 30562 sameElse: 'L', 30563 }, 30564 relativeTime: { 30565 future: '%s tá»i', 30566 past: '%s trưá»c', 30567 s: 'và i giây', 30568 ss: '%d giây', 30569 m: 'má»t phút', 30570 mm: '%d phút', 30571 h: 'má»t giá»', 30572 hh: '%d giá»', 30573 d: 'má»t ngà y', 30574 dd: '%d ngà y', 30575 w: 'má»t tuần', 30576 ww: '%d tuần', 30577 M: 'má»t tháng', 30578 MM: '%d tháng', 30579 y: 'má»t nÄm', 30580 yy: '%d nÄm', 30581 }, 30582 dayOfMonthOrdinalParse: /\d{1,2}/, 30583 ordinal: function (number) { 30584 return number; 30585 }, 30586 week: { 30587 dow: 1, // Monday is the first day of the week. 30588 doy: 4, // The week that contains Jan 4th is the first week of the year. 30589 }, 30590 }); 30591 30592 return vi; 30593 30594}))); 30595 30596 30597/***/ }), 30598
vendor: 3,163 bytes, lines 30599-30690
30599/***/ "./node_modules/moment/locale/x-pseudo.js": 30600/*!************************************************!*\ 30601 !*** ./node_modules/moment/locale/x-pseudo.js ***! 30602 \************************************************/ 30603/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 30604 30605//! moment.js locale configuration 30606//! locale : Pseudo [x-pseudo] 30607//! author : Andrew Hood : https://github.com/andrewhood125 30608 30609;(function (global, factory) { 30610 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 30611 0 30612}(this, (function (moment) { 'use strict'; 30613 30614 //! moment.js locale configuration 30615 30616 var xPseudo = moment.defineLocale('x-pseudo', { 30617 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( 30618 '_' 30619 ), 30620 monthsShort: 30621 'J~áñ_~Féb_~Már_~Ãpr_~Máý_~Júñ_~Júl_~Ãúg_~Sép_~Ãct_~Ãóv_~Déc'.split( 30622 '_' 30623 ), 30624 monthsParseExact: true, 30625 weekdays: 30626 'S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~FrÃd~áý_S~átúr~dáý'.split( 30627 '_' 30628 ), 30629 weekdaysShort: 'S~úñ_~Móñ_~Túé_~Wéd_~Thú_~FrÃ_~Sát'.split('_'), 30630 weekdaysMin: 'S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá'.split('_'), 30631 weekdaysParseExact: true, 30632 longDateFormat: { 30633 LT: 'HH:mm', 30634 L: 'DD/MM/YYYY', 30635 LL: 'D MMMM YYYY', 30636 LLL: 'D MMMM YYYY HH:mm', 30637 LLLL: 'dddd, D MMMM YYYY HH:mm', 30638 }, 30639 calendar: { 30640 sameDay: '[T~ódá~ý át] LT', 30641 nextDay: '[T~ómó~rró~w át] LT', 30642 nextWeek: 'dddd [át] LT', 30643 lastDay: '[Ã~ést~érdá~ý át] LT', 30644 lastWeek: '[L~ást] dddd [át] LT', 30645 sameElse: 'L', 30646 }, 30647 relativeTime: { 30648 future: 'Ã~ñ %s', 30649 past: '%s á~gó', 30650 s: 'á ~féw ~sécó~ñds', 30651 ss: '%d s~écóñ~ds', 30652 m: 'á ~mÃñ~úté', 30653 mm: '%d m~Ãñú~tés', 30654 h: 'á~ñ hó~úr', 30655 hh: '%d h~óúrs', 30656 d: 'á ~dáý', 30657 dd: '%d d~áýs', 30658 M: 'á ~móñ~th', 30659 MM: '%d m~óñt~hs', 30660 y: 'á ~ýéár', 30661 yy: '%d ý~éárs', 30662 }, 30663 dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/, 30664 ordinal: function (number) { 30665 var b = number % 10, 30666 output = 30667 ~~((number % 100) / 10) === 1 30668 ? 'th' 30669 : b === 1 30670 ? 'st' 30671 : b === 2 30672 ? 'nd' 30673 : b === 3 30674 ? 'rd' 30675 : 'th'; 30676 return number + output; 30677 }, 30678 week: { 30679 dow: 1, // Monday is the first day of the week. 30680 doy: 4, // The week that contains Jan 4th is the first week of the year. 30681 }, 30682 }); 30683 30684 return xPseudo; 30685 30686}))); 30687 30688 30689/***/ }), 30690
vendor: 2,564 bytes, lines 30691-30762
30691/***/ "./node_modules/moment/locale/yo.js": 30692/*!******************************************!*\ 30693 !*** ./node_modules/moment/locale/yo.js ***! 30694 \******************************************/ 30695/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 30696 30697//! moment.js locale configuration 30698//! locale : Yoruba Nigeria [yo] 30699//! author : Atolagbe Abisoye : https://github.com/andela-batolagbe 30700 30701;(function (global, factory) { 30702 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 30703 0 30704}(this, (function (moment) { 'use strict'; 30705 30706 //! moment.js locale configuration 30707 30708 var yo = moment.defineLocale('yo', { 30709 months: 'SẹÌrẹÌ_EÌreÌleÌ_ẸrẹÌnaÌ_IÌgbeÌ_EÌbibi_OÌkuÌdu_Agẹmo_OÌguÌn_Owewe_á»ÌwaÌraÌ_BeÌluÌ_á»ÌpẹÌÌ'.split( 30710 '_' 30711 ), 30712 monthsShort: 'SẹÌr_EÌrl_Ẹrn_IÌgb_EÌbi_OÌkuÌ_Agẹ_OÌguÌ_Owe_á»ÌwaÌ_BeÌl_á»ÌpẹÌÌ'.split('_'), 30713 weekdays: 'AÌiÌkuÌ_AjeÌ_IÌsẹÌgun_á»já»ÌruÌ_á»já»Ìbá»_ẸtiÌ_AÌbaÌmẹÌta'.split('_'), 30714 weekdaysShort: 'AÌiÌk_AjeÌ_IÌsẹÌ_á»jr_á»jb_ẸtiÌ_AÌbaÌ'.split('_'), 30715 weekdaysMin: 'AÌiÌ_Aj_IÌs_á»r_á»b_Ẹt_AÌb'.split('_'), 30716 longDateFormat: { 30717 LT: 'h:mm A', 30718 LTS: 'h:mm:ss A', 30719 L: 'DD/MM/YYYY', 30720 LL: 'D MMMM YYYY', 30721 LLL: 'D MMMM YYYY h:mm A', 30722 LLLL: 'dddd, D MMMM YYYY h:mm A', 30723 }, 30724 calendar: { 30725 sameDay: '[OÌniÌ ni] LT', 30726 nextDay: '[á»Ìla ni] LT', 30727 nextWeek: "dddd [á»sáº¹Ì toÌn'bá»] [ni] LT", 30728 lastDay: '[AÌna ni] LT', 30729 lastWeek: 'dddd [á»sáº¹Ì toÌlá»Ì] [ni] LT', 30730 sameElse: 'L', 30731 }, 30732 relativeTime: { 30733 future: 'niÌ %s', 30734 past: '%s ká»jaÌ', 30735 s: 'iÌsẹjuÌ aayaÌ die', 30736 ss: 'aayaÌ %d', 30737 m: 'iÌsẹjuÌ kan', 30738 mm: 'iÌsẹjuÌ %d', 30739 h: 'waÌkati kan', 30740 hh: 'waÌkati %d', 30741 d: 'á»já»Ì kan', 30742 dd: 'á»já»Ì %d', 30743 M: 'osuÌ kan', 30744 MM: 'osuÌ %d', 30745 y: 'á»duÌn kan', 30746 yy: 'á»duÌn %d', 30747 }, 30748 dayOfMonthOrdinalParse: /á»já»Ì\s\d{1,2}/, 30749 ordinal: 'á»já»Ì %d', 30750 week: { 30751 dow: 1, // Monday is the first day of the week. 30752 doy: 4, // The week that contains Jan 4th is the first week of the year. 30753 }, 30754 }); 30755 30756 return yo; 30757 30758}))); 30759 30760 30761/***/ }), 30762
vendor: 4,664 bytes, lines 30763-30901
30763/***/ "./node_modules/moment/locale/zh-cn.js": 30764/*!*********************************************!*\ 30765 !*** ./node_modules/moment/locale/zh-cn.js ***! 30766 \*********************************************/ 30767/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 30768 30769//! moment.js locale configuration 30770//! locale : Chinese (China) [zh-cn] 30771//! author : suupic : https://github.com/suupic 30772//! author : Zeno Zeng : https://github.com/zenozeng 30773//! author : uu109 : https://github.com/uu109 30774 30775;(function (global, factory) { 30776 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 30777 0 30778}(this, (function (moment) { 'use strict'; 30779 30780 //! moment.js locale configuration 30781 30782 var zhCn = moment.defineLocale('zh-cn', { 30783 months: '䏿_äºæ_䏿_åæ_äºæ_å æ_䏿_å «æ_乿_åæ_å䏿_åäºæ'.split( 30784 '_' 30785 ), 30786 monthsShort: '1æ_2æ_3æ_4æ_5æ_6æ_7æ_8æ_9æ_10æ_11æ_12æ'.split( 30787 '_' 30788 ), 30789 weekdays: 'æææ¥_ææä¸_ææäº_ææä¸_ææå_ææäº_ææå '.split('_'), 30790 weekdaysShort: '卿¥_å¨ä¸_å¨äº_å¨ä¸_å¨å_å¨äº_å¨å '.split('_'), 30791 weekdaysMin: 'æ¥_ä¸_äº_ä¸_å_äº_å '.split('_'), 30792 longDateFormat: { 30793 LT: 'HH:mm', 30794 LTS: 'HH:mm:ss', 30795 L: 'YYYY/MM/DD', 30796 LL: 'YYYYå¹´MæDæ¥', 30797 LLL: 'YYYYå¹´MæDæ¥Ahç¹mmå', 30798 LLLL: 'YYYYå¹´MæDæ¥ddddAhç¹mmå', 30799 l: 'YYYY/M/D', 30800 ll: 'YYYYå¹´MæDæ¥', 30801 lll: 'YYYYå¹´MæDæ¥ HH:mm', 30802 llll: 'YYYYå¹´MæDæ¥dddd HH:mm', 30803 }, 30804 meridiemParse: /忍|æ©ä¸|ä¸å|ä¸å|ä¸å|æä¸/, 30805 meridiemHour: function (hour, meridiem) { 30806 if (hour === 12) { 30807 hour = 0; 30808 } 30809 if (meridiem === '忍' || meridiem === 'æ©ä¸' || meridiem === 'ä¸å') { 30810 return hour; 30811 } else if (meridiem === 'ä¸å' || meridiem === 'æä¸') { 30812 return hour + 12; 30813 } else { 30814 // 'ä¸å' 30815 return hour >= 11 ? hour : hour + 12; 30816 } 30817 }, 30818 meridiem: function (hour, minute, isLower) { 30819 var hm = hour * 100 + minute; 30820 if (hm < 600) { 30821 return '忍'; 30822 } else if (hm < 900) { 30823 return 'æ©ä¸'; 30824 } else if (hm < 1130) { 30825 return 'ä¸å'; 30826 } else if (hm < 1230) { 30827 return 'ä¸å'; 30828 } else if (hm < 1800) { 30829 return 'ä¸å'; 30830 } else { 30831 return 'æä¸'; 30832 } 30833 }, 30834 calendar: { 30835 sameDay: '[ä»å¤©]LT', 30836 nextDay: '[æå¤©]LT', 30837 nextWeek: function (now) { 30838 if (now.week() !== this.week()) { 30839 return '[ä¸]dddLT'; 30840 } else { 30841 return '[æ¬]dddLT'; 30842 } 30843 }, 30844 lastDay: '[æ¨å¤©]LT', 30845 lastWeek: function (now) { 30846 if (this.week() !== now.week()) { 30847 return '[ä¸]dddLT'; 30848 } else { 30849 return '[æ¬]dddLT'; 30850 } 30851 }, 30852 sameElse: 'L', 30853 }, 30854 dayOfMonthOrdinalParse: /\d{1,2}(æ¥|æ|å¨)/, 30855 ordinal: function (number, period) { 30856 switch (period) { 30857 case 'd': 30858 case 'D': 30859 case 'DDD': 30860 return number + 'æ¥'; 30861 case 'M': 30862 return number + 'æ'; 30863 case 'w': 30864 case 'W': 30865 return number + 'å¨'; 30866 default: 30867 return number; 30868 } 30869 }, 30870 relativeTime: { 30871 future: '%så', 30872 past: '%så', 30873 s: 'å ç§', 30874 ss: '%d ç§', 30875 m: '1 åé', 30876 mm: '%d åé', 30877 h: '1 å°æ¶', 30878 hh: '%d å°æ¶', 30879 d: '1 天', 30880 dd: '%d 天', 30881 w: '1 å¨', 30882 ww: '%d å¨', 30883 M: '1 个æ', 30884 MM: '%d 个æ', 30885 y: '1 å¹´', 30886 yy: '%d å¹´', 30887 }, 30888 week: { 30889 // GB/T 7408-1994ãæ°æ®å åäº¤æ¢æ ¼å¼Â·ä¿¡æ¯äº¤æ¢Â·æ¥æåæ¶é´è¡¨ç¤ºæ³ãä¸ISO 8601:1988çæ 30890 dow: 1, // Monday is the first day of the week. 30891 doy: 4, // The week that contains Jan 4th is the first week of the year. 30892 }, 30893 }); 30894 30895 return zhCn; 30896 30897}))); 30898 30899 30900/***/ }), 30901
vendor: 3,989 bytes, lines 30902-31021
30902/***/ "./node_modules/moment/locale/zh-hk.js": 30903/*!*********************************************!*\ 30904 !*** ./node_modules/moment/locale/zh-hk.js ***! 30905 \*********************************************/ 30906/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 30907 30908//! moment.js locale configuration 30909//! locale : Chinese (Hong Kong) [zh-hk] 30910//! author : Ben : https://github.com/ben-lin 30911//! author : Chris Lam : https://github.com/hehachris 30912//! author : Konstantin : https://github.com/skfd 30913//! author : Anthony : https://github.com/anthonylau 30914 30915;(function (global, factory) { 30916 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 30917 0 30918}(this, (function (moment) { 'use strict'; 30919 30920 //! moment.js locale configuration 30921 30922 var zhHk = moment.defineLocale('zh-hk', { 30923 months: '䏿_äºæ_䏿_åæ_äºæ_å æ_䏿_å «æ_乿_åæ_å䏿_åäºæ'.split( 30924 '_' 30925 ), 30926 monthsShort: '1æ_2æ_3æ_4æ_5æ_6æ_7æ_8æ_9æ_10æ_11æ_12æ'.split( 30927 '_' 30928 ), 30929 weekdays: 'æææ¥_ææä¸_ææäº_ææä¸_ææå_ææäº_ææå '.split('_'), 30930 weekdaysShort: '鱿¥_é±ä¸_é±äº_é±ä¸_é±å_é±äº_é±å '.split('_'), 30931 weekdaysMin: 'æ¥_ä¸_äº_ä¸_å_äº_å '.split('_'), 30932 longDateFormat: { 30933 LT: 'HH:mm', 30934 LTS: 'HH:mm:ss', 30935 L: 'YYYY/MM/DD', 30936 LL: 'YYYYå¹´MæDæ¥', 30937 LLL: 'YYYYå¹´MæDæ¥ HH:mm', 30938 LLLL: 'YYYYå¹´MæDæ¥dddd HH:mm', 30939 l: 'YYYY/M/D', 30940 ll: 'YYYYå¹´MæDæ¥', 30941 lll: 'YYYYå¹´MæDæ¥ HH:mm', 30942 llll: 'YYYYå¹´MæDæ¥dddd HH:mm', 30943 }, 30944 meridiemParse: /忍|æ©ä¸|ä¸å|ä¸å|ä¸å|æä¸/, 30945 meridiemHour: function (hour, meridiem) { 30946 if (hour === 12) { 30947 hour = 0; 30948 } 30949 if (meridiem === '忍' || meridiem === 'æ©ä¸' || meridiem === 'ä¸å') { 30950 return hour; 30951 } else if (meridiem === 'ä¸å') { 30952 return hour >= 11 ? hour : hour + 12; 30953 } else if (meridiem === 'ä¸å' || meridiem === 'æä¸') { 30954 return hour + 12; 30955 } 30956 }, 30957 meridiem: function (hour, minute, isLower) { 30958 var hm = hour * 100 + minute; 30959 if (hm < 600) { 30960 return '忍'; 30961 } else if (hm < 900) { 30962 return 'æ©ä¸'; 30963 } else if (hm < 1200) { 30964 return 'ä¸å'; 30965 } else if (hm === 1200) { 30966 return 'ä¸å'; 30967 } else if (hm < 1800) { 30968 return 'ä¸å'; 30969 } else { 30970 return 'æä¸'; 30971 } 30972 }, 30973 calendar: { 30974 sameDay: '[ä»å¤©]LT', 30975 nextDay: '[æå¤©]LT', 30976 nextWeek: '[ä¸]ddddLT', 30977 lastDay: '[æ¨å¤©]LT', 30978 lastWeek: '[ä¸]ddddLT', 30979 sameElse: 'L', 30980 }, 30981 dayOfMonthOrdinalParse: /\d{1,2}(æ¥|æ|é±)/, 30982 ordinal: function (number, period) { 30983 switch (period) { 30984 case 'd': 30985 case 'D': 30986 case 'DDD': 30987 return number + 'æ¥'; 30988 case 'M': 30989 return number + 'æ'; 30990 case 'w': 30991 case 'W': 30992 return number + 'é±'; 30993 default: 30994 return number; 30995 } 30996 }, 30997 relativeTime: { 30998 future: '%så¾', 30999 past: '%så', 31000 s: 'å¹¾ç§', 31001 ss: '%d ç§', 31002 m: '1 åé', 31003 mm: '%d åé', 31004 h: '1 å°æ', 31005 hh: '%d å°æ', 31006 d: '1 天', 31007 dd: '%d 天', 31008 M: '1 åæ', 31009 MM: '%d åæ', 31010 y: '1 å¹´', 31011 yy: '%d å¹´', 31012 }, 31013 }); 31014 31015 return zhHk; 31016 31017}))); 31018 31019 31020/***/ }), 31021
vendor: 3,939 bytes, lines 31022-31140
31022/***/ "./node_modules/moment/locale/zh-mo.js": 31023/*!*********************************************!*\ 31024 !*** ./node_modules/moment/locale/zh-mo.js ***! 31025 \*********************************************/ 31026/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 31027 31028//! moment.js locale configuration 31029//! locale : Chinese (Macau) [zh-mo] 31030//! author : Ben : https://github.com/ben-lin 31031//! author : Chris Lam : https://github.com/hehachris 31032//! author : Tan Yuanhong : https://github.com/le0tan 31033 31034;(function (global, factory) { 31035 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 31036 0 31037}(this, (function (moment) { 'use strict'; 31038 31039 //! moment.js locale configuration 31040 31041 var zhMo = moment.defineLocale('zh-mo', { 31042 months: '䏿_äºæ_䏿_åæ_äºæ_å æ_䏿_å «æ_乿_åæ_å䏿_åäºæ'.split( 31043 '_' 31044 ), 31045 monthsShort: '1æ_2æ_3æ_4æ_5æ_6æ_7æ_8æ_9æ_10æ_11æ_12æ'.split( 31046 '_' 31047 ), 31048 weekdays: 'æææ¥_ææä¸_ææäº_ææä¸_ææå_ææäº_ææå '.split('_'), 31049 weekdaysShort: '鱿¥_é±ä¸_é±äº_é±ä¸_é±å_é±äº_é±å '.split('_'), 31050 weekdaysMin: 'æ¥_ä¸_äº_ä¸_å_äº_å '.split('_'), 31051 longDateFormat: { 31052 LT: 'HH:mm', 31053 LTS: 'HH:mm:ss', 31054 L: 'DD/MM/YYYY', 31055 LL: 'YYYYå¹´MæDæ¥', 31056 LLL: 'YYYYå¹´MæDæ¥ HH:mm', 31057 LLLL: 'YYYYå¹´MæDæ¥dddd HH:mm', 31058 l: 'D/M/YYYY', 31059 ll: 'YYYYå¹´MæDæ¥', 31060 lll: 'YYYYå¹´MæDæ¥ HH:mm', 31061 llll: 'YYYYå¹´MæDæ¥dddd HH:mm', 31062 }, 31063 meridiemParse: /忍|æ©ä¸|ä¸å|ä¸å|ä¸å|æä¸/, 31064 meridiemHour: function (hour, meridiem) { 31065 if (hour === 12) { 31066 hour = 0; 31067 } 31068 if (meridiem === '忍' || meridiem === 'æ©ä¸' || meridiem === 'ä¸å') { 31069 return hour; 31070 } else if (meridiem === 'ä¸å') { 31071 return hour >= 11 ? hour : hour + 12; 31072 } else if (meridiem === 'ä¸å' || meridiem === 'æä¸') { 31073 return hour + 12; 31074 } 31075 }, 31076 meridiem: function (hour, minute, isLower) { 31077 var hm = hour * 100 + minute; 31078 if (hm < 600) { 31079 return '忍'; 31080 } else if (hm < 900) { 31081 return 'æ©ä¸'; 31082 } else if (hm < 1130) { 31083 return 'ä¸å'; 31084 } else if (hm < 1230) { 31085 return 'ä¸å'; 31086 } else if (hm < 1800) { 31087 return 'ä¸å'; 31088 } else { 31089 return 'æä¸'; 31090 } 31091 }, 31092 calendar: { 31093 sameDay: '[ä»å¤©] LT', 31094 nextDay: '[æå¤©] LT', 31095 nextWeek: '[ä¸]dddd LT', 31096 lastDay: '[æ¨å¤©] LT', 31097 lastWeek: '[ä¸]dddd LT', 31098 sameElse: 'L', 31099 }, 31100 dayOfMonthOrdinalParse: /\d{1,2}(æ¥|æ|é±)/, 31101 ordinal: function (number, period) { 31102 switch (period) { 31103 case 'd': 31104 case 'D': 31105 case 'DDD': 31106 return number + 'æ¥'; 31107 case 'M': 31108 return number + 'æ'; 31109 case 'w': 31110 case 'W': 31111 return number + 'é±'; 31112 default: 31113 return number; 31114 } 31115 }, 31116 relativeTime: { 31117 future: '%så §', 31118 past: '%så', 31119 s: 'å¹¾ç§', 31120 ss: '%d ç§', 31121 m: '1 åé', 31122 mm: '%d åé', 31123 h: '1 å°æ', 31124 hh: '%d å°æ', 31125 d: '1 天', 31126 dd: '%d 天', 31127 M: '1 åæ', 31128 MM: '%d åæ', 31129 y: '1 å¹´', 31130 yy: '%d å¹´', 31131 }, 31132 }); 31133 31134 return zhMo; 31135 31136}))); 31137 31138 31139/***/ }), 31140
vendor: 3,886 bytes, lines 31141-31258
31141/***/ "./node_modules/moment/locale/zh-tw.js": 31142/*!*********************************************!*\ 31143 !*** ./node_modules/moment/locale/zh-tw.js ***! 31144 \*********************************************/ 31145/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 31146 31147//! moment.js locale configuration 31148//! locale : Chinese (Taiwan) [zh-tw] 31149//! author : Ben : https://github.com/ben-lin 31150//! author : Chris Lam : https://github.com/hehachris 31151 31152;(function (global, factory) { 31153 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 31154 0 31155}(this, (function (moment) { 'use strict'; 31156 31157 //! moment.js locale configuration 31158 31159 var zhTw = moment.defineLocale('zh-tw', { 31160 months: '䏿_äºæ_䏿_åæ_äºæ_å æ_䏿_å «æ_乿_åæ_å䏿_åäºæ'.split( 31161 '_' 31162 ), 31163 monthsShort: '1æ_2æ_3æ_4æ_5æ_6æ_7æ_8æ_9æ_10æ_11æ_12æ'.split( 31164 '_' 31165 ), 31166 weekdays: 'æææ¥_ææä¸_ææäº_ææä¸_ææå_ææäº_ææå '.split('_'), 31167 weekdaysShort: '鱿¥_é±ä¸_é±äº_é±ä¸_é±å_é±äº_é±å '.split('_'), 31168 weekdaysMin: 'æ¥_ä¸_äº_ä¸_å_äº_å '.split('_'), 31169 longDateFormat: { 31170 LT: 'HH:mm', 31171 LTS: 'HH:mm:ss', 31172 L: 'YYYY/MM/DD', 31173 LL: 'YYYYå¹´MæDæ¥', 31174 LLL: 'YYYYå¹´MæDæ¥ HH:mm', 31175 LLLL: 'YYYYå¹´MæDæ¥dddd HH:mm', 31176 l: 'YYYY/M/D', 31177 ll: 'YYYYå¹´MæDæ¥', 31178 lll: 'YYYYå¹´MæDæ¥ HH:mm', 31179 llll: 'YYYYå¹´MæDæ¥dddd HH:mm', 31180 }, 31181 meridiemParse: /忍|æ©ä¸|ä¸å|ä¸å|ä¸å|æä¸/, 31182 meridiemHour: function (hour, meridiem) { 31183 if (hour === 12) { 31184 hour = 0; 31185 } 31186 if (meridiem === '忍' || meridiem === 'æ©ä¸' || meridiem === 'ä¸å') { 31187 return hour; 31188 } else if (meridiem === 'ä¸å') { 31189 return hour >= 11 ? hour : hour + 12; 31190 } else if (meridiem === 'ä¸å' || meridiem === 'æä¸') { 31191 return hour + 12; 31192 } 31193 }, 31194 meridiem: function (hour, minute, isLower) { 31195 var hm = hour * 100 + minute; 31196 if (hm < 600) { 31197 return '忍'; 31198 } else if (hm < 900) { 31199 return 'æ©ä¸'; 31200 } else if (hm < 1130) { 31201 return 'ä¸å'; 31202 } else if (hm < 1230) { 31203 return 'ä¸å'; 31204 } else if (hm < 1800) { 31205 return 'ä¸å'; 31206 } else { 31207 return 'æä¸'; 31208 } 31209 }, 31210 calendar: { 31211 sameDay: '[ä»å¤©] LT', 31212 nextDay: '[æå¤©] LT', 31213 nextWeek: '[ä¸]dddd LT', 31214 lastDay: '[æ¨å¤©] LT', 31215 lastWeek: '[ä¸]dddd LT', 31216 sameElse: 'L', 31217 }, 31218 dayOfMonthOrdinalParse: /\d{1,2}(æ¥|æ|é±)/, 31219 ordinal: function (number, period) { 31220 switch (period) { 31221 case 'd': 31222 case 'D': 31223 case 'DDD': 31224 return number + 'æ¥'; 31225 case 'M': 31226 return number + 'æ'; 31227 case 'w': 31228 case 'W': 31229 return number + 'é±'; 31230 default: 31231 return number; 31232 } 31233 }, 31234 relativeTime: { 31235 future: '%så¾', 31236 past: '%så', 31237 s: 'å¹¾ç§', 31238 ss: '%d ç§', 31239 m: '1 åé', 31240 mm: '%d åé', 31241 h: '1 å°æ', 31242 hh: '%d å°æ', 31243 d: '1 天', 31244 dd: '%d 天', 31245 M: '1 åæ', 31246 MM: '%d åæ', 31247 y: '1 å¹´', 31248 yy: '%d å¹´', 31249 }, 31250 }); 31251 31252 return zhTw; 31253 31254}))); 31255 31256 31257/***/ }), 31258
vendor: 176,669 bytes, lines 31259-36956
31259/***/ "./node_modules/moment/moment.js": 31260/*!***************************************!*\ 31261 !*** ./node_modules/moment/moment.js ***! 31262 \***************************************/ 31263/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 31264 31265/* module decorator */ module = __webpack_require__.nmd(module); 31266//! moment.js 31267//! version : 2.30.1 31268//! authors : Tim Wood, Iskren Chernev, Moment.js contributors 31269//! license : MIT 31270//! momentjs.com 31271 31272;(function (global, factory) { 31273 true ? module.exports = factory() : 31274 0 31275}(this, (function () { 'use strict'; 31276 31277 var hookCallback; 31278 31279 function hooks() { 31280 return hookCallback.apply(null, arguments); 31281 } 31282 31283 // This is done to register the method called with moment() 31284 // without creating circular dependencies. 31285 function setHookCallback(callback) { 31286 hookCallback = callback; 31287 } 31288 31289 function isArray(input) { 31290 return ( 31291 input instanceof Array || 31292 Object.prototype.toString.call(input) === '[object Array]' 31293 ); 31294 } 31295 31296 function isObject(input) { 31297 // IE8 will treat undefined and null as object if it wasn't for 31298 // input != null 31299 return ( 31300 input != null && 31301 Object.prototype.toString.call(input) === '[object Object]' 31302 ); 31303 } 31304 31305 function hasOwnProp(a, b) { 31306 return Object.prototype.hasOwnProperty.call(a, b); 31307 } 31308 31309 function isObjectEmpty(obj) { 31310 if (Object.getOwnPropertyNames) { 31311 return Object.getOwnPropertyNames(obj).length === 0; 31312 } else { 31313 var k; 31314 for (k in obj) { 31315 if (hasOwnProp(obj, k)) { 31316 return false; 31317 } 31318 } 31319 return true; 31320 } 31321 } 31322 31323 function isUndefined(input) { 31324 return input === void 0; 31325 } 31326 31327 function isNumber(input) { 31328 return ( 31329 typeof input === 'number' || 31330 Object.prototype.toString.call(input) === '[object Number]' 31331 ); 31332 } 31333 31334 function isDate(input) { 31335 return ( 31336 input instanceof Date || 31337 Object.prototype.toString.call(input) === '[object Date]' 31338 ); 31339 } 31340 31341 function map(arr, fn) { 31342 var res = [], 31343 i, 31344 arrLen = arr.length; 31345 for (i = 0; i < arrLen; ++i) { 31346 res.push(fn(arr[i], i)); 31347 } 31348 return res; 31349 } 31350 31351 function extend(a, b) { 31352 for (var i in b) { 31353 if (hasOwnProp(b, i)) { 31354 a[i] = b[i]; 31355 } 31356 } 31357 31358 if (hasOwnProp(b, 'toString')) { 31359 a.toString = b.toString; 31360 } 31361 31362 if (hasOwnProp(b, 'valueOf')) { 31363 a.valueOf = b.valueOf; 31364 } 31365 31366 return a; 31367 } 31368 31369 function createUTC(input, format, locale, strict) { 31370 return createLocalOrUTC(input, format, locale, strict, true).utc(); 31371 } 31372 31373 function defaultParsingFlags() { 31374 // We need to deep clone this object. 31375 return { 31376 empty: false, 31377 unusedTokens: [], 31378 unusedInput: [], 31379 overflow: -2, 31380 charsLeftOver: 0, 31381 nullInput: false, 31382 invalidEra: null, 31383 invalidMonth: null, 31384 invalidFormat: false, 31385 userInvalidated: false, 31386 iso: false, 31387 parsedDateParts: [], 31388 era: null, 31389 meridiem: null, 31390 rfc2822: false, 31391 weekdayMismatch: false, 31392 }; 31393 } 31394 31395 function getParsingFlags(m) { 31396 if (m._pf == null) { 31397 m._pf = defaultParsingFlags(); 31398 } 31399 return m._pf; 31400 } 31401 31402 var some; 31403 if (Array.prototype.some) { 31404 some = Array.prototype.some; 31405 } else { 31406 some = function (fun) { 31407 var t = Object(this), 31408 len = t.length >>> 0, 31409 i; 31410 31411 for (i = 0; i < len; i++) { 31412 if (i in t && fun.call(this, t[i], i, t)) { 31413 return true; 31414 } 31415 } 31416 31417 return false; 31418 }; 31419 } 31420 31421 function isValid(m) { 31422 var flags = null, 31423 parsedParts = false, 31424 isNowValid = m._d && !isNaN(m._d.getTime()); 31425 if (isNowValid) { 31426 flags = getParsingFlags(m); 31427 parsedParts = some.call(flags.parsedDateParts, function (i) { 31428 return i != null; 31429 }); 31430 isNowValid = 31431 flags.overflow < 0 && 31432 !flags.empty && 31433 !flags.invalidEra && 31434 !flags.invalidMonth && 31435 !flags.invalidWeekday && 31436 !flags.weekdayMismatch && 31437 !flags.nullInput && 31438 !flags.invalidFormat && 31439 !flags.userInvalidated && 31440 (!flags.meridiem || (flags.meridiem && parsedParts)); 31441 if (m._strict) { 31442 isNowValid = 31443 isNowValid && 31444 flags.charsLeftOver === 0 && 31445 flags.unusedTokens.length === 0 && 31446 flags.bigHour === undefined; 31447 } 31448 } 31449 if (Object.isFrozen == null || !Object.isFrozen(m)) { 31450 m._isValid = isNowValid; 31451 } else { 31452 return isNowValid; 31453 } 31454 return m._isValid; 31455 } 31456 31457 function createInvalid(flags) { 31458 var m = createUTC(NaN); 31459 if (flags != null) { 31460 extend(getParsingFlags(m), flags); 31461 } else { 31462 getParsingFlags(m).userInvalidated = true; 31463 } 31464 31465 return m; 31466 } 31467 31468 // Plugins that add properties should also add the key here (null value), 31469 // so we can properly clone ourselves. 31470 var momentProperties = (hooks.momentProperties = []), 31471 updateInProgress = false; 31472 31473 function copyConfig(to, from) { 31474 var i, 31475 prop, 31476 val, 31477 momentPropertiesLen = momentProperties.length; 31478 31479 if (!isUndefined(from._isAMomentObject)) { 31480 to._isAMomentObject = from._isAMomentObject; 31481 } 31482 if (!isUndefined(from._i)) { 31483 to._i = from._i; 31484 } 31485 if (!isUndefined(from._f)) { 31486 to._f = from._f; 31487 } 31488 if (!isUndefined(from._l)) { 31489 to._l = from._l; 31490 } 31491 if (!isUndefined(from._strict)) { 31492 to._strict = from._strict; 31493 } 31494 if (!isUndefined(from._tzm)) { 31495 to._tzm = from._tzm; 31496 } 31497 if (!isUndefined(from._isUTC)) { 31498 to._isUTC = from._isUTC; 31499 } 31500 if (!isUndefined(from._offset)) { 31501 to._offset = from._offset; 31502 } 31503 if (!isUndefined(from._pf)) { 31504 to._pf = getParsingFlags(from); 31505 } 31506 if (!isUndefined(from._locale)) { 31507 to._locale = from._locale; 31508 } 31509 31510 if (momentPropertiesLen > 0) { 31511 for (i = 0; i < momentPropertiesLen; i++) { 31512 prop = momentProperties[i]; 31513 val = from[prop]; 31514 if (!isUndefined(val)) { 31515 to[prop] = val; 31516 } 31517 } 31518 } 31519 31520 return to; 31521 } 31522 31523 // Moment prototype object 31524 function Moment(config) { 31525 copyConfig(this, config); 31526 this._d = new Date(config._d != null ? config._d.getTime() : NaN); 31527 if (!this.isValid()) { 31528 this._d = new Date(NaN); 31529 } 31530 // Prevent infinite loop in case updateOffset creates new moment 31531 // objects. 31532 if (updateInProgress === false) { 31533 updateInProgress = true; 31534 hooks.updateOffset(this); 31535 updateInProgress = false; 31536 } 31537 } 31538 31539 function isMoment(obj) { 31540 return ( 31541 obj instanceof Moment || (obj != null && obj._isAMomentObject != null) 31542 ); 31543 } 31544 31545 function warn(msg) { 31546 if ( 31547 hooks.suppressDeprecationWarnings === false && 31548 typeof console !== 'undefined' && 31549 console.warn 31550 ) { 31551 console.warn('Deprecation warning: ' + msg); 31552 } 31553 } 31554 31555 function deprecate(msg, fn) { 31556 var firstTime = true; 31557 31558 return extend(function () { 31559 if (hooks.deprecationHandler != null) { 31560 hooks.deprecationHandler(null, msg); 31561 } 31562 if (firstTime) { 31563 var args = [], 31564 arg, 31565 i, 31566 key, 31567 argLen = arguments.length; 31568 for (i = 0; i < argLen; i++) { 31569 arg = ''; 31570 if (typeof arguments[i] === 'object') { 31571 arg += '\n[' + i + '] '; 31572 for (key in arguments[0]) { 31573 if (hasOwnProp(arguments[0], key)) { 31574 arg += key + ': ' + arguments[0][key] + ', '; 31575 } 31576 } 31577 arg = arg.slice(0, -2); // Remove trailing comma and space 31578 } else { 31579 arg = arguments[i]; 31580 } 31581 args.push(arg); 31582 } 31583 warn( 31584 msg + 31585 '\nArguments: ' + 31586 Array.prototype.slice.call(args).join('') + 31587 '\n' + 31588 new Error().stack 31589 ); 31590 firstTime = false; 31591 } 31592 return fn.apply(this, arguments); 31593 }, fn); 31594 } 31595 31596 var deprecations = {}; 31597 31598 function deprecateSimple(name, msg) { 31599 if (hooks.deprecationHandler != null) { 31600 hooks.deprecationHandler(name, msg); 31601 } 31602 if (!deprecations[name]) { 31603 warn(msg); 31604 deprecations[name] = true; 31605 } 31606 } 31607 31608 hooks.suppressDeprecationWarnings = false; 31609 hooks.deprecationHandler = null; 31610 31611 function isFunction(input) { 31612 return ( 31613 (typeof Function !== 'undefined' && input instanceof Function) || 31614 Object.prototype.toString.call(input) === '[object Function]' 31615 ); 31616 } 31617 31618 function set(config) { 31619 var prop, i; 31620 for (i in config) { 31621 if (hasOwnProp(config, i)) { 31622 prop = config[i]; 31623 if (isFunction(prop)) { 31624 this[i] = prop; 31625 } else { 31626 this['_' + i] = prop; 31627 } 31628 } 31629 } 31630 this._config = config; 31631 // Lenient ordinal parsing accepts just a number in addition to 31632 // number + (possibly) stuff coming from _dayOfMonthOrdinalParse. 31633 // TODO: Remove "ordinalParse" fallback in next major release. 31634 this._dayOfMonthOrdinalParseLenient = new RegExp( 31635 (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) + 31636 '|' + 31637 /\d{1,2}/.source 31638 ); 31639 } 31640 31641 function mergeConfigs(parentConfig, childConfig) { 31642 var res = extend({}, parentConfig), 31643 prop; 31644 for (prop in childConfig) { 31645 if (hasOwnProp(childConfig, prop)) { 31646 if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) { 31647 res[prop] = {}; 31648 extend(res[prop], parentConfig[prop]); 31649 extend(res[prop], childConfig[prop]); 31650 } else if (childConfig[prop] != null) { 31651 res[prop] = childConfig[prop]; 31652 } else { 31653 delete res[prop]; 31654 } 31655 } 31656 } 31657 for (prop in parentConfig) { 31658 if ( 31659 hasOwnProp(parentConfig, prop) && 31660 !hasOwnProp(childConfig, prop) && 31661 isObject(parentConfig[prop]) 31662 ) { 31663 // make sure changes to properties don't modify parent config 31664 res[prop] = extend({}, res[prop]); 31665 } 31666 } 31667 return res; 31668 } 31669 31670 function Locale(config) { 31671 if (config != null) { 31672 this.set(config); 31673 } 31674 } 31675 31676 var keys; 31677 31678 if (Object.keys) { 31679 keys = Object.keys; 31680 } else { 31681 keys = function (obj) { 31682 var i, 31683 res = []; 31684 for (i in obj) { 31685 if (hasOwnProp(obj, i)) { 31686 res.push(i); 31687 } 31688 } 31689 return res; 31690 }; 31691 } 31692 31693 var defaultCalendar = { 31694 sameDay: '[Today at] LT', 31695 nextDay: '[Tomorrow at] LT', 31696 nextWeek: 'dddd [at] LT', 31697 lastDay: '[Yesterday at] LT', 31698 lastWeek: '[Last] dddd [at] LT', 31699 sameElse: 'L', 31700 }; 31701 31702 function calendar(key, mom, now) { 31703 var output = this._calendar[key] || this._calendar['sameElse']; 31704 return isFunction(output) ? output.call(mom, now) : output; 31705 } 31706 31707 function zeroFill(number, targetLength, forceSign) { 31708 var absNumber = '' + Math.abs(number), 31709 zerosToFill = targetLength - absNumber.length, 31710 sign = number >= 0; 31711 return ( 31712 (sign ? (forceSign ? '+' : '') : '-') + 31713 Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + 31714 absNumber 31715 ); 31716 } 31717 31718 var formattingTokens = 31719 /(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g, 31720 localFormattingTokens = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g, 31721 formatFunctions = {}, 31722 formatTokenFunctions = {}; 31723 31724 // token: 'M' 31725 // padded: ['MM', 2] 31726 // ordinal: 'Mo' 31727 // callback: function () { this.month() + 1 } 31728 function addFormatToken(token, padded, ordinal, callback) { 31729 var func = callback; 31730 if (typeof callback === 'string') { 31731 func = function () { 31732 return this[callback](); 31733 }; 31734 } 31735 if (token) { 31736 formatTokenFunctions[token] = func; 31737 } 31738 if (padded) { 31739 formatTokenFunctions[padded[0]] = function () { 31740 return zeroFill(func.apply(this, arguments), padded[1], padded[2]); 31741 }; 31742 } 31743 if (ordinal) { 31744 formatTokenFunctions[ordinal] = function () { 31745 return this.localeData().ordinal( 31746 func.apply(this, arguments), 31747 token 31748 ); 31749 }; 31750 } 31751 } 31752 31753 function removeFormattingTokens(input) { 31754 if (input.match(/\[[\s\S]/)) { 31755 return input.replace(/^\[|\]$/g, ''); 31756 } 31757 return input.replace(/\\/g, ''); 31758 } 31759 31760 function makeFormatFunction(format) { 31761 var array = format.match(formattingTokens), 31762 i, 31763 length; 31764 31765 for (i = 0, length = array.length; i < length; i++) { 31766 if (formatTokenFunctions[array[i]]) { 31767 array[i] = formatTokenFunctions[array[i]]; 31768 } else { 31769 array[i] = removeFormattingTokens(array[i]); 31770 } 31771 } 31772 31773 return function (mom) { 31774 var output = '', 31775 i; 31776 for (i = 0; i < length; i++) { 31777 output += isFunction(array[i]) 31778 ? array[i].call(mom, format) 31779 : array[i]; 31780 } 31781 return output; 31782 }; 31783 } 31784 31785 // format date using native date object 31786 function formatMoment(m, format) { 31787 if (!m.isValid()) { 31788 return m.localeData().invalidDate(); 31789 } 31790 31791 format = expandFormat(format, m.localeData()); 31792 formatFunctions[format] = 31793 formatFunctions[format] || makeFormatFunction(format); 31794 31795 return formatFunctions[format](m); 31796 } 31797 31798 function expandFormat(format, locale) { 31799 var i = 5; 31800 31801 function replaceLongDateFormatTokens(input) { 31802 return locale.longDateFormat(input) || input; 31803 } 31804 31805 localFormattingTokens.lastIndex = 0; 31806 while (i >= 0 && localFormattingTokens.test(format)) { 31807 format = format.replace( 31808 localFormattingTokens, 31809 replaceLongDateFormatTokens 31810 ); 31811 localFormattingTokens.lastIndex = 0; 31812 i -= 1; 31813 } 31814 31815 return format; 31816 } 31817 31818 var defaultLongDateFormat = { 31819 LTS: 'h:mm:ss A', 31820 LT: 'h:mm A', 31821 L: 'MM/DD/YYYY', 31822 LL: 'MMMM D, YYYY', 31823 LLL: 'MMMM D, YYYY h:mm A', 31824 LLLL: 'dddd, MMMM D, YYYY h:mm A', 31825 }; 31826 31827 function longDateFormat(key) { 31828 var format = this._longDateFormat[key], 31829 formatUpper = this._longDateFormat[key.toUpperCase()]; 31830 31831 if (format || !formatUpper) { 31832 return format; 31833 } 31834 31835 this._longDateFormat[key] = formatUpper 31836 .match(formattingTokens) 31837 .map(function (tok) { 31838 if ( 31839 tok === 'MMMM' || 31840 tok === 'MM' || 31841 tok === 'DD' || 31842 tok === 'dddd' 31843 ) { 31844 return tok.slice(1); 31845 } 31846 return tok; 31847 }) 31848 .join(''); 31849 31850 return this._longDateFormat[key]; 31851 } 31852 31853 var defaultInvalidDate = 'Invalid date'; 31854 31855 function invalidDate() { 31856 return this._invalidDate; 31857 } 31858 31859 var defaultOrdinal = '%d', 31860 defaultDayOfMonthOrdinalParse = /\d{1,2}/; 31861 31862 function ordinal(number) { 31863 return this._ordinal.replace('%d', number); 31864 } 31865 31866 var defaultRelativeTime = { 31867 future: 'in %s', 31868 past: '%s ago', 31869 s: 'a few seconds', 31870 ss: '%d seconds', 31871 m: 'a minute', 31872 mm: '%d minutes', 31873 h: 'an hour', 31874 hh: '%d hours', 31875 d: 'a day', 31876 dd: '%d days', 31877 w: 'a week', 31878 ww: '%d weeks', 31879 M: 'a month', 31880 MM: '%d months', 31881 y: 'a year', 31882 yy: '%d years', 31883 }; 31884 31885 function relativeTime(number, withoutSuffix, string, isFuture) { 31886 var output = this._relativeTime[string]; 31887 return isFunction(output) 31888 ? output(number, withoutSuffix, string, isFuture) 31889 : output.replace(/%d/i, number); 31890 } 31891 31892 function pastFuture(diff, output) { 31893 var format = this._relativeTime[diff > 0 ? 'future' : 'past']; 31894 return isFunction(format) ? format(output) : format.replace(/%s/i, output); 31895 } 31896 31897 var aliases = { 31898 D: 'date', 31899 dates: 'date', 31900 date: 'date', 31901 d: 'day', 31902 days: 'day', 31903 day: 'day', 31904 e: 'weekday', 31905 weekdays: 'weekday', 31906 weekday: 'weekday', 31907 E: 'isoWeekday', 31908 isoweekdays: 'isoWeekday', 31909 isoweekday: 'isoWeekday', 31910 DDD: 'dayOfYear', 31911 dayofyears: 'dayOfYear', 31912 dayofyear: 'dayOfYear', 31913 h: 'hour', 31914 hours: 'hour', 31915 hour: 'hour', 31916 ms: 'millisecond', 31917 milliseconds: 'millisecond', 31918 millisecond: 'millisecond', 31919 m: 'minute', 31920 minutes: 'minute', 31921 minute: 'minute', 31922 M: 'month', 31923 months: 'month', 31924 month: 'month', 31925 Q: 'quarter', 31926 quarters: 'quarter', 31927 quarter: 'quarter', 31928 s: 'second', 31929 seconds: 'second', 31930 second: 'second', 31931 gg: 'weekYear', 31932 weekyears: 'weekYear', 31933 weekyear: 'weekYear', 31934 GG: 'isoWeekYear', 31935 isoweekyears: 'isoWeekYear', 31936 isoweekyear: 'isoWeekYear', 31937 w: 'week', 31938 weeks: 'week', 31939 week: 'week', 31940 W: 'isoWeek', 31941 isoweeks: 'isoWeek', 31942 isoweek: 'isoWeek', 31943 y: 'year', 31944 years: 'year', 31945 year: 'year', 31946 }; 31947 31948 function normalizeUnits(units) { 31949 return typeof units === 'string' 31950 ? aliases[units] || aliases[units.toLowerCase()] 31951 : undefined; 31952 } 31953 31954 function normalizeObjectUnits(inputObject) { 31955 var normalizedInput = {}, 31956 normalizedProp, 31957 prop; 31958 31959 for (prop in inputObject) { 31960 if (hasOwnProp(inputObject, prop)) { 31961 normalizedProp = normalizeUnits(prop); 31962 if (normalizedProp) { 31963 normalizedInput[normalizedProp] = inputObject[prop]; 31964 } 31965 } 31966 } 31967 31968 return normalizedInput; 31969 } 31970 31971 var priorities = { 31972 date: 9, 31973 day: 11, 31974 weekday: 11, 31975 isoWeekday: 11, 31976 dayOfYear: 4, 31977 hour: 13, 31978 millisecond: 16, 31979 minute: 14, 31980 month: 8, 31981 quarter: 7, 31982 second: 15, 31983 weekYear: 1, 31984 isoWeekYear: 1, 31985 week: 5, 31986 isoWeek: 5, 31987 year: 1, 31988 }; 31989 31990 function getPrioritizedUnits(unitsObj) { 31991 var units = [], 31992 u; 31993 for (u in unitsObj) { 31994 if (hasOwnProp(unitsObj, u)) { 31995 units.push({ unit: u, priority: priorities[u] }); 31996 } 31997 } 31998 units.sort(function (a, b) { 31999 return a.priority - b.priority; 32000 }); 32001 return units; 32002 } 32003 32004 var match1 = /\d/, // 0 - 9 32005 match2 = /\d\d/, // 00 - 99 32006 match3 = /\d{3}/, // 000 - 999 32007 match4 = /\d{4}/, // 0000 - 9999 32008 match6 = /[+-]?\d{6}/, // -999999 - 999999 32009 match1to2 = /\d\d?/, // 0 - 99 32010 match3to4 = /\d\d\d\d?/, // 999 - 9999 32011 match5to6 = /\d\d\d\d\d\d?/, // 99999 - 999999 32012 match1to3 = /\d{1,3}/, // 0 - 999 32013 match1to4 = /\d{1,4}/, // 0 - 9999 32014 match1to6 = /[+-]?\d{1,6}/, // -999999 - 999999 32015 matchUnsigned = /\d+/, // 0 - inf 32016 matchSigned = /[+-]?\d+/, // -inf - inf 32017 matchOffset = /Z|[+-]\d\d:?\d\d/gi, // +00:00 -00:00 +0000 -0000 or Z 32018 matchShortOffset = /Z|[+-]\d\d(?::?\d\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z 32019 matchTimestamp = /[+-]?\d+(\.\d{1,3})?/, // 123456789 123456789.123 32020 // any word (or two) characters or numbers including two/three word month in arabic. 32021 // includes scottish gaelic two word and hyphenated months 32022 matchWord = 32023 /[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, 32024 match1to2NoLeadingZero = /^[1-9]\d?/, // 1-99 32025 match1to2HasZero = /^([1-9]\d|\d)/, // 0-99 32026 regexes; 32027 32028 regexes = {}; 32029 32030 function addRegexToken(token, regex, strictRegex) { 32031 regexes[token] = isFunction(regex) 32032 ? regex 32033 : function (isStrict, localeData) { 32034 return isStrict && strictRegex ? strictRegex : regex; 32035 }; 32036 } 32037 32038 function getParseRegexForToken(token, config) { 32039 if (!hasOwnProp(regexes, token)) { 32040 return new RegExp(unescapeFormat(token)); 32041 } 32042 32043 return regexes[token](config._strict, config._locale); 32044 } 32045 32046 // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript 32047 function unescapeFormat(s) { 32048 return regexEscape( 32049 s 32050 .replace('\\', '') 32051 .replace( 32052 /\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, 32053 function (matched, p1, p2, p3, p4) { 32054 return p1 || p2 || p3 || p4; 32055 } 32056 ) 32057 ); 32058 } 32059 32060 function regexEscape(s) { 32061 return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&'); 32062 } 32063 32064 function absFloor(number) { 32065 if (number < 0) { 32066 // -0 -> 0 32067 return Math.ceil(number) || 0; 32068 } else { 32069 return Math.floor(number); 32070 } 32071 } 32072 32073 function toInt(argumentForCoercion) { 32074 var coercedNumber = +argumentForCoercion, 32075 value = 0; 32076 32077 if (coercedNumber !== 0 && isFinite(coercedNumber)) { 32078 value = absFloor(coercedNumber); 32079 } 32080 32081 return value; 32082 } 32083 32084 var tokens = {}; 32085 32086 function addParseToken(token, callback) { 32087 var i, 32088 func = callback, 32089 tokenLen; 32090 if (typeof token === 'string') { 32091 token = [token]; 32092 } 32093 if (isNumber(callback)) { 32094 func = function (input, array) { 32095 array[callback] = toInt(input); 32096 }; 32097 } 32098 tokenLen = token.length; 32099 for (i = 0; i < tokenLen; i++) { 32100 tokens[token[i]] = func; 32101 } 32102 } 32103 32104 function addWeekParseToken(token, callback) { 32105 addParseToken(token, function (input, array, config, token) { 32106 config._w = config._w || {}; 32107 callback(input, config._w, config, token); 32108 }); 32109 } 32110 32111 function addTimeToArrayFromToken(token, input, config) { 32112 if (input != null && hasOwnProp(tokens, token)) { 32113 tokens[token](input, config._a, config, token); 32114 } 32115 } 32116 32117 function isLeapYear(year) { 32118 return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0; 32119 } 32120 32121 var YEAR = 0, 32122 MONTH = 1, 32123 DATE = 2, 32124 HOUR = 3, 32125 MINUTE = 4, 32126 SECOND = 5, 32127 MILLISECOND = 6, 32128 WEEK = 7, 32129 WEEKDAY = 8; 32130 32131 // FORMATTING 32132 32133 addFormatToken('Y', 0, 0, function () { 32134 var y = this.year(); 32135 return y <= 9999 ? zeroFill(y, 4) : '+' + y; 32136 }); 32137 32138 addFormatToken(0, ['YY', 2], 0, function () { 32139 return this.year() % 100; 32140 }); 32141 32142 addFormatToken(0, ['YYYY', 4], 0, 'year'); 32143 addFormatToken(0, ['YYYYY', 5], 0, 'year'); 32144 addFormatToken(0, ['YYYYYY', 6, true], 0, 'year'); 32145 32146 // PARSING 32147 32148 addRegexToken('Y', matchSigned); 32149 addRegexToken('YY', match1to2, match2); 32150 addRegexToken('YYYY', match1to4, match4); 32151 addRegexToken('YYYYY', match1to6, match6); 32152 addRegexToken('YYYYYY', match1to6, match6); 32153 32154 addParseToken(['YYYYY', 'YYYYYY'], YEAR); 32155 addParseToken('YYYY', function (input, array) { 32156 array[YEAR] = 32157 input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input); 32158 }); 32159 addParseToken('YY', function (input, array) { 32160 array[YEAR] = hooks.parseTwoDigitYear(input); 32161 }); 32162 addParseToken('Y', function (input, array) { 32163 array[YEAR] = parseInt(input, 10); 32164 }); 32165 32166 // HELPERS 32167 32168 function daysInYear(year) { 32169 return isLeapYear(year) ? 366 : 365; 32170 } 32171 32172 // HOOKS 32173 32174 hooks.parseTwoDigitYear = function (input) { 32175 return toInt(input) + (toInt(input) > 68 ? 1900 : 2000); 32176 }; 32177 32178 // MOMENTS 32179 32180 var getSetYear = makeGetSet('FullYear', true); 32181 32182 function getIsLeapYear() { 32183 return isLeapYear(this.year()); 32184 } 32185 32186 function makeGetSet(unit, keepTime) { 32187 return function (value) { 32188 if (value != null) { 32189 set$1(this, unit, value); 32190 hooks.updateOffset(this, keepTime); 32191 return this; 32192 } else { 32193 return get(this, unit); 32194 } 32195 }; 32196 } 32197 32198 function get(mom, unit) { 32199 if (!mom.isValid()) { 32200 return NaN; 32201 } 32202 32203 var d = mom._d, 32204 isUTC = mom._isUTC; 32205 32206 switch (unit) { 32207 case 'Milliseconds': 32208 return isUTC ? d.getUTCMilliseconds() : d.getMilliseconds(); 32209 case 'Seconds': 32210 return isUTC ? d.getUTCSeconds() : d.getSeconds(); 32211 case 'Minutes': 32212 return isUTC ? d.getUTCMinutes() : d.getMinutes(); 32213 case 'Hours': 32214 return isUTC ? d.getUTCHours() : d.getHours(); 32215 case 'Date': 32216 return isUTC ? d.getUTCDate() : d.getDate(); 32217 case 'Day': 32218 return isUTC ? d.getUTCDay() : d.getDay(); 32219 case 'Month': 32220 return isUTC ? d.getUTCMonth() : d.getMonth(); 32221 case 'FullYear': 32222 return isUTC ? d.getUTCFullYear() : d.getFullYear(); 32223 default: 32224 return NaN; // Just in case 32225 } 32226 } 32227 32228 function set$1(mom, unit, value) { 32229 var d, isUTC, year, month, date; 32230 32231 if (!mom.isValid() || isNaN(value)) { 32232 return; 32233 } 32234 32235 d = mom._d; 32236 isUTC = mom._isUTC; 32237 32238 switch (unit) { 32239 case 'Milliseconds': 32240 return void (isUTC 32241 ? d.setUTCMilliseconds(value) 32242 : d.setMilliseconds(value)); 32243 case 'Seconds': 32244 return void (isUTC ? d.setUTCSeconds(value) : d.setSeconds(value)); 32245 case 'Minutes': 32246 return void (isUTC ? d.setUTCMinutes(value) : d.setMinutes(value)); 32247 case 'Hours': 32248 return void (isUTC ? d.setUTCHours(value) : d.setHours(value)); 32249 case 'Date': 32250 return void (isUTC ? d.setUTCDate(value) : d.setDate(value)); 32251 // case 'Day': // Not real 32252 // return void (isUTC ? d.setUTCDay(value) : d.setDay(value)); 32253 // case 'Month': // Not used because we need to pass two variables 32254 // return void (isUTC ? d.setUTCMonth(value) : d.setMonth(value)); 32255 case 'FullYear': 32256 break; // See below ... 32257 default: 32258 return; // Just in case 32259 } 32260 32261 year = value; 32262 month = mom.month(); 32263 date = mom.date(); 32264 date = date === 29 && month === 1 && !isLeapYear(year) ? 28 : date; 32265 void (isUTC 32266 ? d.setUTCFullYear(year, month, date) 32267 : d.setFullYear(year, month, date)); 32268 } 32269 32270 // MOMENTS 32271 32272 function stringGet(units) { 32273 units = normalizeUnits(units); 32274 if (isFunction(this[units])) { 32275 return this[units](); 32276 } 32277 return this; 32278 } 32279 32280 function stringSet(units, value) { 32281 if (typeof units === 'object') { 32282 units = normalizeObjectUnits(units); 32283 var prioritized = getPrioritizedUnits(units), 32284 i, 32285 prioritizedLen = prioritized.length; 32286 for (i = 0; i < prioritizedLen; i++) { 32287 this[prioritized[i].unit](units[prioritized[i].unit]); 32288 } 32289 } else { 32290 units = normalizeUnits(units); 32291 if (isFunction(this[units])) { 32292 return this[units](value); 32293 } 32294 } 32295 return this; 32296 } 32297 32298 function mod(n, x) { 32299 return ((n % x) + x) % x; 32300 } 32301 32302 var indexOf; 32303 32304 if (Array.prototype.indexOf) { 32305 indexOf = Array.prototype.indexOf; 32306 } else { 32307 indexOf = function (o) { 32308 // I know 32309 var i; 32310 for (i = 0; i < this.length; ++i) { 32311 if (this[i] === o) { 32312 return i; 32313 } 32314 } 32315 return -1; 32316 }; 32317 } 32318 32319 function daysInMonth(year, month) { 32320 if (isNaN(year) || isNaN(month)) { 32321 return NaN; 32322 } 32323 var modMonth = mod(month, 12); 32324 year += (month - modMonth) / 12; 32325 return modMonth === 1 32326 ? isLeapYear(year) 32327 ? 29 32328 : 28 32329 : 31 - ((modMonth % 7) % 2); 32330 } 32331 32332 // FORMATTING 32333 32334 addFormatToken('M', ['MM', 2], 'Mo', function () { 32335 return this.month() + 1; 32336 }); 32337 32338 addFormatToken('MMM', 0, 0, function (format) { 32339 return this.localeData().monthsShort(this, format); 32340 }); 32341 32342 addFormatToken('MMMM', 0, 0, function (format) { 32343 return this.localeData().months(this, format); 32344 }); 32345 32346 // PARSING 32347 32348 addRegexToken('M', match1to2, match1to2NoLeadingZero); 32349 addRegexToken('MM', match1to2, match2); 32350 addRegexToken('MMM', function (isStrict, locale) { 32351 return locale.monthsShortRegex(isStrict); 32352 }); 32353 addRegexToken('MMMM', function (isStrict, locale) { 32354 return locale.monthsRegex(isStrict); 32355 }); 32356 32357 addParseToken(['M', 'MM'], function (input, array) { 32358 array[MONTH] = toInt(input) - 1; 32359 }); 32360 32361 addParseToken(['MMM', 'MMMM'], function (input, array, config, token) { 32362 var month = config._locale.monthsParse(input, token, config._strict); 32363 // if we didn't find a month name, mark the date as invalid. 32364 if (month != null) { 32365 array[MONTH] = month; 32366 } else { 32367 getParsingFlags(config).invalidMonth = input; 32368 } 32369 }); 32370 32371 // LOCALES 32372 32373 var defaultLocaleMonths = 32374 'January_February_March_April_May_June_July_August_September_October_November_December'.split( 32375 '_' 32376 ), 32377 defaultLocaleMonthsShort = 32378 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), 32379 MONTHS_IN_FORMAT = /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/, 32380 defaultMonthsShortRegex = matchWord, 32381 defaultMonthsRegex = matchWord; 32382 32383 function localeMonths(m, format) { 32384 if (!m) { 32385 return isArray(this._months) 32386 ? this._months 32387 : this._months['standalone']; 32388 } 32389 return isArray(this._months) 32390 ? this._months[m.month()] 32391 : this._months[ 32392 (this._months.isFormat || MONTHS_IN_FORMAT).test(format) 32393 ? 'format' 32394 : 'standalone' 32395 ][m.month()]; 32396 } 32397 32398 function localeMonthsShort(m, format) { 32399 if (!m) { 32400 return isArray(this._monthsShort) 32401 ? this._monthsShort 32402 : this._monthsShort['standalone']; 32403 } 32404 return isArray(this._monthsShort) 32405 ? this._monthsShort[m.month()] 32406 : this._monthsShort[ 32407 MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone' 32408 ][m.month()]; 32409 } 32410 32411 function handleStrictParse(monthName, format, strict) { 32412 var i, 32413 ii, 32414 mom, 32415 llc = monthName.toLocaleLowerCase(); 32416 if (!this._monthsParse) { 32417 // this is not used 32418 this._monthsParse = []; 32419 this._longMonthsParse = []; 32420 this._shortMonthsParse = []; 32421 for (i = 0; i < 12; ++i) { 32422 mom = createUTC([2000, i]); 32423 this._shortMonthsParse[i] = this.monthsShort( 32424 mom, 32425 '' 32426 ).toLocaleLowerCase(); 32427 this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase(); 32428 } 32429 } 32430 32431 if (strict) { 32432 if (format === 'MMM') { 32433 ii = indexOf.call(this._shortMonthsParse, llc); 32434 return ii !== -1 ? ii : null; 32435 } else { 32436 ii = indexOf.call(this._longMonthsParse, llc); 32437 return ii !== -1 ? ii : null; 32438 } 32439 } else { 32440 if (format === 'MMM') { 32441 ii = indexOf.call(this._shortMonthsParse, llc); 32442 if (ii !== -1) { 32443 return ii; 32444 } 32445 ii = indexOf.call(this._longMonthsParse, llc); 32446 return ii !== -1 ? ii : null; 32447 } else { 32448 ii = indexOf.call(this._longMonthsParse, llc); 32449 if (ii !== -1) { 32450 return ii; 32451 } 32452 ii = indexOf.call(this._shortMonthsParse, llc); 32453 return ii !== -1 ? ii : null; 32454 } 32455 } 32456 } 32457 32458 function localeMonthsParse(monthName, format, strict) { 32459 var i, mom, regex; 32460 32461 if (this._monthsParseExact) { 32462 return handleStrictParse.call(this, monthName, format, strict); 32463 } 32464 32465 if (!this._monthsParse) { 32466 this._monthsParse = []; 32467 this._longMonthsParse = []; 32468 this._shortMonthsParse = []; 32469 } 32470 32471 // TODO: add sorting 32472 // Sorting makes sure if one month (or abbr) is a prefix of another 32473 // see sorting in computeMonthsParse 32474 for (i = 0; i < 12; i++) { 32475 // make the regex if we don't have it already 32476 mom = createUTC([2000, i]); 32477 if (strict && !this._longMonthsParse[i]) { 32478 this._longMonthsParse[i] = new RegExp( 32479 '^' + this.months(mom, '').replace('.', '') + '$', 32480 'i' 32481 ); 32482 this._shortMonthsParse[i] = new RegExp( 32483 '^' + this.monthsShort(mom, '').replace('.', '') + '$', 32484 'i' 32485 ); 32486 } 32487 if (!strict && !this._monthsParse[i]) { 32488 regex = 32489 '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, ''); 32490 this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i'); 32491 } 32492 // test the regex 32493 if ( 32494 strict && 32495 format === 'MMMM' && 32496 this._longMonthsParse[i].test(monthName) 32497 ) { 32498 return i; 32499 } else if ( 32500 strict && 32501 format === 'MMM' && 32502 this._shortMonthsParse[i].test(monthName) 32503 ) { 32504 return i; 32505 } else if (!strict && this._monthsParse[i].test(monthName)) { 32506 return i; 32507 } 32508 } 32509 } 32510 32511 // MOMENTS 32512 32513 function setMonth(mom, value) { 32514 if (!mom.isValid()) { 32515 // No op 32516 return mom; 32517 } 32518 32519 if (typeof value === 'string') { 32520 if (/^\d+$/.test(value)) { 32521 value = toInt(value); 32522 } else { 32523 value = mom.localeData().monthsParse(value); 32524 // TODO: Another silent failure? 32525 if (!isNumber(value)) { 32526 return mom; 32527 } 32528 } 32529 } 32530 32531 var month = value, 32532 date = mom.date(); 32533 32534 date = date < 29 ? date : Math.min(date, daysInMonth(mom.year(), month)); 32535 void (mom._isUTC 32536 ? mom._d.setUTCMonth(month, date) 32537 : mom._d.setMonth(month, date)); 32538 return mom; 32539 } 32540 32541 function getSetMonth(value) { 32542 if (value != null) { 32543 setMonth(this, value); 32544 hooks.updateOffset(this, true); 32545 return this; 32546 } else { 32547 return get(this, 'Month'); 32548 } 32549 } 32550 32551 function getDaysInMonth() { 32552 return daysInMonth(this.year(), this.month()); 32553 } 32554 32555 function monthsShortRegex(isStrict) { 32556 if (this._monthsParseExact) { 32557 if (!hasOwnProp(this, '_monthsRegex')) { 32558 computeMonthsParse.call(this); 32559 } 32560 if (isStrict) { 32561 return this._monthsShortStrictRegex; 32562 } else { 32563 return this._monthsShortRegex; 32564 } 32565 } else { 32566 if (!hasOwnProp(this, '_monthsShortRegex')) { 32567 this._monthsShortRegex = defaultMonthsShortRegex; 32568 } 32569 return this._monthsShortStrictRegex && isStrict 32570 ? this._monthsShortStrictRegex 32571 : this._monthsShortRegex; 32572 } 32573 } 32574 32575 function monthsRegex(isStrict) { 32576 if (this._monthsParseExact) { 32577 if (!hasOwnProp(this, '_monthsRegex')) { 32578 computeMonthsParse.call(this); 32579 } 32580 if (isStrict) { 32581 return this._monthsStrictRegex; 32582 } else { 32583 return this._monthsRegex; 32584 } 32585 } else { 32586 if (!hasOwnProp(this, '_monthsRegex')) { 32587 this._monthsRegex = defaultMonthsRegex; 32588 } 32589 return this._monthsStrictRegex && isStrict 32590 ? this._monthsStrictRegex 32591 : this._monthsRegex; 32592 } 32593 } 32594 32595 function computeMonthsParse() { 32596 function cmpLenRev(a, b) { 32597 return b.length - a.length; 32598 } 32599 32600 var shortPieces = [], 32601 longPieces = [], 32602 mixedPieces = [], 32603 i, 32604 mom, 32605 shortP, 32606 longP; 32607 for (i = 0; i < 12; i++) { 32608 // make the regex if we don't have it already 32609 mom = createUTC([2000, i]); 32610 shortP = regexEscape(this.monthsShort(mom, '')); 32611 longP = regexEscape(this.months(mom, '')); 32612 shortPieces.push(shortP); 32613 longPieces.push(longP); 32614 mixedPieces.push(longP); 32615 mixedPieces.push(shortP); 32616 } 32617 // Sorting makes sure if one month (or abbr) is a prefix of another it 32618 // will match the longer piece. 32619 shortPieces.sort(cmpLenRev); 32620 longPieces.sort(cmpLenRev); 32621 mixedPieces.sort(cmpLenRev); 32622 32623 this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i'); 32624 this._monthsShortRegex = this._monthsRegex; 32625 this._monthsStrictRegex = new RegExp( 32626 '^(' + longPieces.join('|') + ')', 32627 'i' 32628 ); 32629 this._monthsShortStrictRegex = new RegExp( 32630 '^(' + shortPieces.join('|') + ')', 32631 'i' 32632 ); 32633 } 32634 32635 function createDate(y, m, d, h, M, s, ms) { 32636 // can't just apply() to create a date: 32637 // https://stackoverflow.com/q/181348 32638 var date; 32639 // the date constructor remaps years 0-99 to 1900-1999 32640 if (y < 100 && y >= 0) { 32641 // preserve leap years using a full 400 year cycle, then reset 32642 date = new Date(y + 400, m, d, h, M, s, ms); 32643 if (isFinite(date.getFullYear())) { 32644 date.setFullYear(y); 32645 } 32646 } else { 32647 date = new Date(y, m, d, h, M, s, ms); 32648 } 32649 32650 return date; 32651 } 32652 32653 function createUTCDate(y) { 32654 var date, args; 32655 // the Date.UTC function remaps years 0-99 to 1900-1999 32656 if (y < 100 && y >= 0) { 32657 args = Array.prototype.slice.call(arguments); 32658 // preserve leap years using a full 400 year cycle, then reset 32659 args[0] = y + 400; 32660 date = new Date(Date.UTC.apply(null, args)); 32661 if (isFinite(date.getUTCFullYear())) { 32662 date.setUTCFullYear(y); 32663 } 32664 } else { 32665 date = new Date(Date.UTC.apply(null, arguments)); 32666 } 32667 32668 return date; 32669 } 32670 32671 // start-of-first-week - start-of-year 32672 function firstWeekOffset(year, dow, doy) { 32673 var // first-week day -- which january is always in the first week (4 for iso, 1 for other) 32674 fwd = 7 + dow - doy, 32675 // first-week day local weekday -- which local weekday is fwd 32676 fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7; 32677 32678 return -fwdlw + fwd - 1; 32679 } 32680 32681 // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday 32682 function dayOfYearFromWeeks(year, week, weekday, dow, doy) { 32683 var localWeekday = (7 + weekday - dow) % 7, 32684 weekOffset = firstWeekOffset(year, dow, doy), 32685 dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset, 32686 resYear, 32687 resDayOfYear; 32688 32689 if (dayOfYear <= 0) { 32690 resYear = year - 1; 32691 resDayOfYear = daysInYear(resYear) + dayOfYear; 32692 } else if (dayOfYear > daysInYear(year)) { 32693 resYear = year + 1; 32694 resDayOfYear = dayOfYear - daysInYear(year); 32695 } else { 32696 resYear = year; 32697 resDayOfYear = dayOfYear; 32698 } 32699 32700 return { 32701 year: resYear, 32702 dayOfYear: resDayOfYear, 32703 }; 32704 } 32705 32706 function weekOfYear(mom, dow, doy) { 32707 var weekOffset = firstWeekOffset(mom.year(), dow, doy), 32708 week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1, 32709 resWeek, 32710 resYear; 32711 32712 if (week < 1) { 32713 resYear = mom.year() - 1; 32714 resWeek = week + weeksInYear(resYear, dow, doy); 32715 } else if (week > weeksInYear(mom.year(), dow, doy)) { 32716 resWeek = week - weeksInYear(mom.year(), dow, doy); 32717 resYear = mom.year() + 1; 32718 } else { 32719 resYear = mom.year(); 32720 resWeek = week; 32721 } 32722 32723 return { 32724 week: resWeek, 32725 year: resYear, 32726 }; 32727 } 32728 32729 function weeksInYear(year, dow, doy) { 32730 var weekOffset = firstWeekOffset(year, dow, doy), 32731 weekOffsetNext = firstWeekOffset(year + 1, dow, doy); 32732 return (daysInYear(year) - weekOffset + weekOffsetNext) / 7; 32733 } 32734 32735 // FORMATTING 32736 32737 addFormatToken('w', ['ww', 2], 'wo', 'week'); 32738 addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek'); 32739 32740 // PARSING 32741 32742 addRegexToken('w', match1to2, match1to2NoLeadingZero); 32743 addRegexToken('ww', match1to2, match2); 32744 addRegexToken('W', match1to2, match1to2NoLeadingZero); 32745 addRegexToken('WW', match1to2, match2); 32746 32747 addWeekParseToken( 32748 ['w', 'ww', 'W', 'WW'], 32749 function (input, week, config, token) { 32750 week[token.substr(0, 1)] = toInt(input); 32751 } 32752 ); 32753 32754 // HELPERS 32755 32756 // LOCALES 32757 32758 function localeWeek(mom) { 32759 return weekOfYear(mom, this._week.dow, this._week.doy).week; 32760 } 32761 32762 var defaultLocaleWeek = { 32763 dow: 0, // Sunday is the first day of the week. 32764 doy: 6, // The week that contains Jan 6th is the first week of the year. 32765 }; 32766 32767 function localeFirstDayOfWeek() { 32768 return this._week.dow; 32769 } 32770 32771 function localeFirstDayOfYear() { 32772 return this._week.doy; 32773 } 32774 32775 // MOMENTS 32776 32777 function getSetWeek(input) { 32778 var week = this.localeData().week(this); 32779 return input == null ? week : this.add((input - week) * 7, 'd'); 32780 } 32781 32782 function getSetISOWeek(input) { 32783 var week = weekOfYear(this, 1, 4).week; 32784 return input == null ? week : this.add((input - week) * 7, 'd'); 32785 } 32786 32787 // FORMATTING 32788 32789 addFormatToken('d', 0, 'do', 'day'); 32790 32791 addFormatToken('dd', 0, 0, function (format) { 32792 return this.localeData().weekdaysMin(this, format); 32793 }); 32794 32795 addFormatToken('ddd', 0, 0, function (format) { 32796 return this.localeData().weekdaysShort(this, format); 32797 }); 32798 32799 addFormatToken('dddd', 0, 0, function (format) { 32800 return this.localeData().weekdays(this, format); 32801 }); 32802 32803 addFormatToken('e', 0, 0, 'weekday'); 32804 addFormatToken('E', 0, 0, 'isoWeekday'); 32805 32806 // PARSING 32807 32808 addRegexToken('d', match1to2); 32809 addRegexToken('e', match1to2); 32810 addRegexToken('E', match1to2); 32811 addRegexToken('dd', function (isStrict, locale) { 32812 return locale.weekdaysMinRegex(isStrict); 32813 }); 32814 addRegexToken('ddd', function (isStrict, locale) { 32815 return locale.weekdaysShortRegex(isStrict); 32816 }); 32817 addRegexToken('dddd', function (isStrict, locale) { 32818 return locale.weekdaysRegex(isStrict); 32819 }); 32820 32821 addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) { 32822 var weekday = config._locale.weekdaysParse(input, token, config._strict); 32823 // if we didn't get a weekday name, mark the date as invalid 32824 if (weekday != null) { 32825 week.d = weekday; 32826 } else { 32827 getParsingFlags(config).invalidWeekday = input; 32828 } 32829 }); 32830 32831 addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) { 32832 week[token] = toInt(input); 32833 }); 32834 32835 // HELPERS 32836 32837 function parseWeekday(input, locale) { 32838 if (typeof input !== 'string') { 32839 return input; 32840 } 32841 32842 if (!isNaN(input)) { 32843 return parseInt(input, 10); 32844 } 32845 32846 input = locale.weekdaysParse(input); 32847 if (typeof input === 'number') { 32848 return input; 32849 } 32850 32851 return null; 32852 } 32853 32854 function parseIsoWeekday(input, locale) { 32855 if (typeof input === 'string') { 32856 return locale.weekdaysParse(input) % 7 || 7; 32857 } 32858 return isNaN(input) ? null : input; 32859 } 32860 32861 // LOCALES 32862 function shiftWeekdays(ws, n) { 32863 return ws.slice(n, 7).concat(ws.slice(0, n)); 32864 } 32865 32866 var defaultLocaleWeekdays = 32867 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'), 32868 defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), 32869 defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), 32870 defaultWeekdaysRegex = matchWord, 32871 defaultWeekdaysShortRegex = matchWord, 32872 defaultWeekdaysMinRegex = matchWord; 32873 32874 function localeWeekdays(m, format) { 32875 var weekdays = isArray(this._weekdays) 32876 ? this._weekdays 32877 : this._weekdays[ 32878 m && m !== true && this._weekdays.isFormat.test(format) 32879 ? 'format' 32880 : 'standalone' 32881 ]; 32882 return m === true 32883 ? shiftWeekdays(weekdays, this._week.dow) 32884 : m 32885 ? weekdays[m.day()] 32886 : weekdays; 32887 } 32888 32889 function localeWeekdaysShort(m) { 32890 return m === true 32891 ? shiftWeekdays(this._weekdaysShort, this._week.dow) 32892 : m 32893 ? this._weekdaysShort[m.day()] 32894 : this._weekdaysShort; 32895 } 32896 32897 function localeWeekdaysMin(m) { 32898 return m === true 32899 ? shiftWeekdays(this._weekdaysMin, this._week.dow) 32900 : m 32901 ? this._weekdaysMin[m.day()] 32902 : this._weekdaysMin; 32903 } 32904 32905 function handleStrictParse$1(weekdayName, format, strict) { 32906 var i, 32907 ii, 32908 mom, 32909 llc = weekdayName.toLocaleLowerCase(); 32910 if (!this._weekdaysParse) { 32911 this._weekdaysParse = []; 32912 this._shortWeekdaysParse = []; 32913 this._minWeekdaysParse = []; 32914 32915 for (i = 0; i < 7; ++i) { 32916 mom = createUTC([2000, 1]).day(i); 32917 this._minWeekdaysParse[i] = this.weekdaysMin( 32918 mom, 32919 '' 32920 ).toLocaleLowerCase(); 32921 this._shortWeekdaysParse[i] = this.weekdaysShort( 32922 mom, 32923 '' 32924 ).toLocaleLowerCase(); 32925 this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase(); 32926 } 32927 } 32928 32929 if (strict) { 32930 if (format === 'dddd') { 32931 ii = indexOf.call(this._weekdaysParse, llc); 32932 return ii !== -1 ? ii : null; 32933 } else if (format === 'ddd') { 32934 ii = indexOf.call(this._shortWeekdaysParse, llc); 32935 return ii !== -1 ? ii : null; 32936 } else { 32937 ii = indexOf.call(this._minWeekdaysParse, llc); 32938 return ii !== -1 ? ii : null; 32939 } 32940 } else { 32941 if (format === 'dddd') { 32942 ii = indexOf.call(this._weekdaysParse, llc); 32943 if (ii !== -1) { 32944 return ii; 32945 } 32946 ii = indexOf.call(this._shortWeekdaysParse, llc); 32947 if (ii !== -1) { 32948 return ii; 32949 } 32950 ii = indexOf.call(this._minWeekdaysParse, llc); 32951 return ii !== -1 ? ii : null; 32952 } else if (format === 'ddd') { 32953 ii = indexOf.call(this._shortWeekdaysParse, llc); 32954 if (ii !== -1) { 32955 return ii; 32956 } 32957 ii = indexOf.call(this._weekdaysParse, llc); 32958 if (ii !== -1) { 32959 return ii; 32960 } 32961 ii = indexOf.call(this._minWeekdaysParse, llc); 32962 return ii !== -1 ? ii : null; 32963 } else { 32964 ii = indexOf.call(this._minWeekdaysParse, llc); 32965 if (ii !== -1) { 32966 return ii; 32967 } 32968 ii = indexOf.call(this._weekdaysParse, llc); 32969 if (ii !== -1) { 32970 return ii; 32971 } 32972 ii = indexOf.call(this._shortWeekdaysParse, llc); 32973 return ii !== -1 ? ii : null; 32974 } 32975 } 32976 } 32977 32978 function localeWeekdaysParse(weekdayName, format, strict) { 32979 var i, mom, regex; 32980 32981 if (this._weekdaysParseExact) { 32982 return handleStrictParse$1.call(this, weekdayName, format, strict); 32983 } 32984 32985 if (!this._weekdaysParse) { 32986 this._weekdaysParse = []; 32987 this._minWeekdaysParse = []; 32988 this._shortWeekdaysParse = []; 32989 this._fullWeekdaysParse = []; 32990 } 32991 32992 for (i = 0; i < 7; i++) { 32993 // make the regex if we don't have it already 32994 32995 mom = createUTC([2000, 1]).day(i); 32996 if (strict && !this._fullWeekdaysParse[i]) { 32997 this._fullWeekdaysParse[i] = new RegExp( 32998 '^' + this.weekdays(mom, '').replace('.', '\\.?') + '$', 32999 'i' 33000 ); 33001 this._shortWeekdaysParse[i] = new RegExp( 33002 '^' + this.weekdaysShort(mom, '').replace('.', '\\.?') + '$', 33003 'i' 33004 ); 33005 this._minWeekdaysParse[i] = new RegExp( 33006 '^' + this.weekdaysMin(mom, '').replace('.', '\\.?') + '$', 33007 'i' 33008 ); 33009 } 33010 if (!this._weekdaysParse[i]) { 33011 regex = 33012 '^' + 33013 this.weekdays(mom, '') + 33014 '|^' + 33015 this.weekdaysShort(mom, '') + 33016 '|^' + 33017 this.weekdaysMin(mom, ''); 33018 this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i'); 33019 } 33020 // test the regex 33021 if ( 33022 strict && 33023 format === 'dddd' && 33024 this._fullWeekdaysParse[i].test(weekdayName) 33025 ) { 33026 return i; 33027 } else if ( 33028 strict && 33029 format === 'ddd' && 33030 this._shortWeekdaysParse[i].test(weekdayName) 33031 ) { 33032 return i; 33033 } else if ( 33034 strict && 33035 format === 'dd' && 33036 this._minWeekdaysParse[i].test(weekdayName) 33037 ) { 33038 return i; 33039 } else if (!strict && this._weekdaysParse[i].test(weekdayName)) { 33040 return i; 33041 } 33042 } 33043 } 33044 33045 // MOMENTS 33046 33047 function getSetDayOfWeek(input) { 33048 if (!this.isValid()) { 33049 return input != null ? this : NaN; 33050 } 33051 33052 var day = get(this, 'Day'); 33053 if (input != null) { 33054 input = parseWeekday(input, this.localeData()); 33055 return this.add(input - day, 'd'); 33056 } else { 33057 return day; 33058 } 33059 } 33060 33061 function getSetLocaleDayOfWeek(input) { 33062 if (!this.isValid()) { 33063 return input != null ? this : NaN; 33064 } 33065 var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7; 33066 return input == null ? weekday : this.add(input - weekday, 'd'); 33067 } 33068 33069 function getSetISODayOfWeek(input) { 33070 if (!this.isValid()) { 33071 return input != null ? this : NaN; 33072 } 33073 33074 // behaves the same as moment#day except 33075 // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6) 33076 // as a setter, sunday should belong to the previous week. 33077 33078 if (input != null) { 33079 var weekday = parseIsoWeekday(input, this.localeData()); 33080 return this.day(this.day() % 7 ? weekday : weekday - 7); 33081 } else { 33082 return this.day() || 7; 33083 } 33084 } 33085 33086 function weekdaysRegex(isStrict) { 33087 if (this._weekdaysParseExact) { 33088 if (!hasOwnProp(this, '_weekdaysRegex')) { 33089 computeWeekdaysParse.call(this); 33090 } 33091 if (isStrict) { 33092 return this._weekdaysStrictRegex; 33093 } else { 33094 return this._weekdaysRegex; 33095 } 33096 } else { 33097 if (!hasOwnProp(this, '_weekdaysRegex')) { 33098 this._weekdaysRegex = defaultWeekdaysRegex; 33099 } 33100 return this._weekdaysStrictRegex && isStrict 33101 ? this._weekdaysStrictRegex 33102 : this._weekdaysRegex; 33103 } 33104 } 33105 33106 function weekdaysShortRegex(isStrict) { 33107 if (this._weekdaysParseExact) { 33108 if (!hasOwnProp(this, '_weekdaysRegex')) { 33109 computeWeekdaysParse.call(this); 33110 } 33111 if (isStrict) { 33112 return this._weekdaysShortStrictRegex; 33113 } else { 33114 return this._weekdaysShortRegex; 33115 } 33116 } else { 33117 if (!hasOwnProp(this, '_weekdaysShortRegex')) { 33118 this._weekdaysShortRegex = defaultWeekdaysShortRegex; 33119 } 33120 return this._weekdaysShortStrictRegex && isStrict 33121 ? this._weekdaysShortStrictRegex 33122 : this._weekdaysShortRegex; 33123 } 33124 } 33125 33126 function weekdaysMinRegex(isStrict) { 33127 if (this._weekdaysParseExact) { 33128 if (!hasOwnProp(this, '_weekdaysRegex')) { 33129 computeWeekdaysParse.call(this); 33130 } 33131 if (isStrict) { 33132 return this._weekdaysMinStrictRegex; 33133 } else { 33134 return this._weekdaysMinRegex; 33135 } 33136 } else { 33137 if (!hasOwnProp(this, '_weekdaysMinRegex')) { 33138 this._weekdaysMinRegex = defaultWeekdaysMinRegex; 33139 } 33140 return this._weekdaysMinStrictRegex && isStrict 33141 ? this._weekdaysMinStrictRegex 33142 : this._weekdaysMinRegex; 33143 } 33144 } 33145 33146 function computeWeekdaysParse() { 33147 function cmpLenRev(a, b) { 33148 return b.length - a.length; 33149 } 33150 33151 var minPieces = [], 33152 shortPieces = [], 33153 longPieces = [], 33154 mixedPieces = [], 33155 i, 33156 mom, 33157 minp, 33158 shortp, 33159 longp; 33160 for (i = 0; i < 7; i++) { 33161 // make the regex if we don't have it already 33162 mom = createUTC([2000, 1]).day(i); 33163 minp = regexEscape(this.weekdaysMin(mom, '')); 33164 shortp = regexEscape(this.weekdaysShort(mom, '')); 33165 longp = regexEscape(this.weekdays(mom, '')); 33166 minPieces.push(minp); 33167 shortPieces.push(shortp); 33168 longPieces.push(longp); 33169 mixedPieces.push(minp); 33170 mixedPieces.push(shortp); 33171 mixedPieces.push(longp); 33172 } 33173 // Sorting makes sure if one weekday (or abbr) is a prefix of another it 33174 // will match the longer piece. 33175 minPieces.sort(cmpLenRev); 33176 shortPieces.sort(cmpLenRev); 33177 longPieces.sort(cmpLenRev); 33178 mixedPieces.sort(cmpLenRev); 33179 33180 this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i'); 33181 this._weekdaysShortRegex = this._weekdaysRegex; 33182 this._weekdaysMinRegex = this._weekdaysRegex; 33183 33184 this._weekdaysStrictRegex = new RegExp( 33185 '^(' + longPieces.join('|') + ')', 33186 'i' 33187 ); 33188 this._weekdaysShortStrictRegex = new RegExp( 33189 '^(' + shortPieces.join('|') + ')', 33190 'i' 33191 ); 33192 this._weekdaysMinStrictRegex = new RegExp( 33193 '^(' + minPieces.join('|') + ')', 33194 'i' 33195 ); 33196 } 33197 33198 // FORMATTING 33199 33200 function hFormat() { 33201 return this.hours() % 12 || 12; 33202 } 33203 33204 function kFormat() { 33205 return this.hours() || 24; 33206 } 33207 33208 addFormatToken('H', ['HH', 2], 0, 'hour'); 33209 addFormatToken('h', ['hh', 2], 0, hFormat); 33210 addFormatToken('k', ['kk', 2], 0, kFormat); 33211 33212 addFormatToken('hmm', 0, 0, function () { 33213 return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2); 33214 }); 33215 33216 addFormatToken('hmmss', 0, 0, function () { 33217 return ( 33218 '' + 33219 hFormat.apply(this) + 33220 zeroFill(this.minutes(), 2) + 33221 zeroFill(this.seconds(), 2) 33222 ); 33223 }); 33224 33225 addFormatToken('Hmm', 0, 0, function () { 33226 return '' + this.hours() + zeroFill(this.minutes(), 2); 33227 }); 33228 33229 addFormatToken('Hmmss', 0, 0, function () { 33230 return ( 33231 '' + 33232 this.hours() + 33233 zeroFill(this.minutes(), 2) + 33234 zeroFill(this.seconds(), 2) 33235 ); 33236 }); 33237 33238 function meridiem(token, lowercase) { 33239 addFormatToken(token, 0, 0, function () { 33240 return this.localeData().meridiem( 33241 this.hours(), 33242 this.minutes(), 33243 lowercase 33244 ); 33245 }); 33246 } 33247 33248 meridiem('a', true); 33249 meridiem('A', false); 33250 33251 // PARSING 33252 33253 function matchMeridiem(isStrict, locale) { 33254 return locale._meridiemParse; 33255 } 33256 33257 addRegexToken('a', matchMeridiem); 33258 addRegexToken('A', matchMeridiem); 33259 addRegexToken('H', match1to2, match1to2HasZero); 33260 addRegexToken('h', match1to2, match1to2NoLeadingZero); 33261 addRegexToken('k', match1to2, match1to2NoLeadingZero); 33262 addRegexToken('HH', match1to2, match2); 33263 addRegexToken('hh', match1to2, match2); 33264 addRegexToken('kk', match1to2, match2); 33265 33266 addRegexToken('hmm', match3to4); 33267 addRegexToken('hmmss', match5to6); 33268 addRegexToken('Hmm', match3to4); 33269 addRegexToken('Hmmss', match5to6); 33270 33271 addParseToken(['H', 'HH'], HOUR); 33272 addParseToken(['k', 'kk'], function (input, array, config) { 33273 var kInput = toInt(input); 33274 array[HOUR] = kInput === 24 ? 0 : kInput; 33275 }); 33276 addParseToken(['a', 'A'], function (input, array, config) { 33277 config._isPm = config._locale.isPM(input); 33278 config._meridiem = input; 33279 }); 33280 addParseToken(['h', 'hh'], function (input, array, config) { 33281 array[HOUR] = toInt(input); 33282 getParsingFlags(config).bigHour = true; 33283 }); 33284 addParseToken('hmm', function (input, array, config) { 33285 var pos = input.length - 2; 33286 array[HOUR] = toInt(input.substr(0, pos)); 33287 array[MINUTE] = toInt(input.substr(pos)); 33288 getParsingFlags(config).bigHour = true; 33289 }); 33290 addParseToken('hmmss', function (input, array, config) { 33291 var pos1 = input.length - 4, 33292 pos2 = input.length - 2; 33293 array[HOUR] = toInt(input.substr(0, pos1)); 33294 array[MINUTE] = toInt(input.substr(pos1, 2)); 33295 array[SECOND] = toInt(input.substr(pos2)); 33296 getParsingFlags(config).bigHour = true; 33297 }); 33298 addParseToken('Hmm', function (input, array, config) { 33299 var pos = input.length - 2; 33300 array[HOUR] = toInt(input.substr(0, pos)); 33301 array[MINUTE] = toInt(input.substr(pos)); 33302 }); 33303 addParseToken('Hmmss', function (input, array, config) { 33304 var pos1 = input.length - 4, 33305 pos2 = input.length - 2; 33306 array[HOUR] = toInt(input.substr(0, pos1)); 33307 array[MINUTE] = toInt(input.substr(pos1, 2)); 33308 array[SECOND] = toInt(input.substr(pos2)); 33309 }); 33310 33311 // LOCALES 33312 33313 function localeIsPM(input) { 33314 // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays 33315 // Using charAt should be more compatible. 33316 return (input + '').toLowerCase().charAt(0) === 'p'; 33317 } 33318 33319 var defaultLocaleMeridiemParse = /[ap]\.?m?\.?/i, 33320 // Setting the hour should keep the time, because the user explicitly 33321 // specified which hour they want. So trying to maintain the same hour (in 33322 // a new timezone) makes sense. Adding/subtracting hours does not follow 33323 // this rule. 33324 getSetHour = makeGetSet('Hours', true); 33325 33326 function localeMeridiem(hours, minutes, isLower) { 33327 if (hours > 11) { 33328 return isLower ? 'pm' : 'PM'; 33329 } else { 33330 return isLower ? 'am' : 'AM'; 33331 } 33332 } 33333 33334 var baseConfig = { 33335 calendar: defaultCalendar, 33336 longDateFormat: defaultLongDateFormat, 33337 invalidDate: defaultInvalidDate, 33338 ordinal: defaultOrdinal, 33339 dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse, 33340 relativeTime: defaultRelativeTime, 33341 33342 months: defaultLocaleMonths, 33343 monthsShort: defaultLocaleMonthsShort, 33344 33345 week: defaultLocaleWeek, 33346 33347 weekdays: defaultLocaleWeekdays, 33348 weekdaysMin: defaultLocaleWeekdaysMin, 33349 weekdaysShort: defaultLocaleWeekdaysShort, 33350 33351 meridiemParse: defaultLocaleMeridiemParse, 33352 }; 33353 33354 // internal storage for locale config files 33355 var locales = {}, 33356 localeFamilies = {}, 33357 globalLocale; 33358 33359 function commonPrefix(arr1, arr2) { 33360 var i, 33361 minl = Math.min(arr1.length, arr2.length); 33362 for (i = 0; i < minl; i += 1) { 33363 if (arr1[i] !== arr2[i]) { 33364 return i; 33365 } 33366 } 33367 return minl; 33368 } 33369 33370 function normalizeLocale(key) { 33371 return key ? key.toLowerCase().replace('_', '-') : key; 33372 } 33373 33374 // pick the locale from the array 33375 // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each 33376 // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root 33377 function chooseLocale(names) { 33378 var i = 0, 33379 j, 33380 next, 33381 locale, 33382 split; 33383 33384 while (i < names.length) { 33385 split = normalizeLocale(names[i]).split('-'); 33386 j = split.length; 33387 next = normalizeLocale(names[i + 1]); 33388 next = next ? next.split('-') : null; 33389 while (j > 0) { 33390 locale = loadLocale(split.slice(0, j).join('-')); 33391 if (locale) { 33392 return locale; 33393 } 33394 if ( 33395 next && 33396 next.length >= j && 33397 commonPrefix(split, next) >= j - 1 33398 ) { 33399 //the next array item is better than a shallower substring of this one 33400 break; 33401 } 33402 j--; 33403 } 33404 i++; 33405 } 33406 return globalLocale; 33407 } 33408 33409 function isLocaleNameSane(name) { 33410 // Prevent names that look like filesystem paths, i.e contain '/' or '\' 33411 // Ensure name is available and function returns boolean 33412 return !!(name && name.match('^[^/\\\\]*$')); 33413 } 33414 33415 function loadLocale(name) { 33416 var oldLocale = null, 33417 aliasedRequire; 33418 // TODO: Find a better way to register and load all the locales in Node 33419 if ( 33420 locales[name] === undefined && 33421 "object" !== 'undefined' && 33422 module && 33423 module.exports && 33424 isLocaleNameSane(name) 33425 ) { 33426 try { 33427 oldLocale = globalLocale._abbr; 33428 aliasedRequire = undefined; 33429 __webpack_require__("./node_modules/moment/locale sync recursive ^\\.\\/.*$")("./" + name); 33430 getSetGlobalLocale(oldLocale); 33431 } catch (e) { 33432 // mark as not found to avoid repeating expensive file require call causing high CPU 33433 // when trying to find en-US, en_US, en-us for every format call 33434 locales[name] = null; // null means not found 33435 } 33436 } 33437 return locales[name]; 33438 } 33439 33440 // This function will load locale and then set the global locale. If 33441 // no arguments are passed in, it will simply return the current global 33442 // locale key. 33443 function getSetGlobalLocale(key, values) { 33444 var data; 33445 if (key) { 33446 if (isUndefined(values)) { 33447 data = getLocale(key); 33448 } else { 33449 data = defineLocale(key, values); 33450 } 33451 33452 if (data) { 33453 // moment.duration._locale = moment._locale = data; 33454 globalLocale = data; 33455 } else { 33456 if (typeof console !== 'undefined' && console.warn) { 33457 //warn user if arguments are passed but the locale could not be set 33458 console.warn( 33459 'Locale ' + key + ' not found. Did you forget to load it?' 33460 ); 33461 } 33462 } 33463 } 33464 33465 return globalLocale._abbr; 33466 } 33467 33468 function defineLocale(name, config) { 33469 if (config !== null) { 33470 var locale, 33471 parentConfig = baseConfig; 33472 config.abbr = name; 33473 if (locales[name] != null) { 33474 deprecateSimple( 33475 'defineLocaleOverride', 33476 'use moment.updateLocale(localeName, config) to change ' + 33477 'an existing locale. moment.defineLocale(localeName, ' + 33478 'config) should only be used for creating a new locale ' + 33479 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.' 33480 ); 33481 parentConfig = locales[name]._config; 33482 } else if (config.parentLocale != null) { 33483 if (locales[config.parentLocale] != null) { 33484 parentConfig = locales[config.parentLocale]._config; 33485 } else { 33486 locale = loadLocale(config.parentLocale); 33487 if (locale != null) { 33488 parentConfig = locale._config; 33489 } else { 33490 if (!localeFamilies[config.parentLocale]) { 33491 localeFamilies[config.parentLocale] = []; 33492 } 33493 localeFamilies[config.parentLocale].push({ 33494 name: name, 33495 config: config, 33496 }); 33497 return null; 33498 } 33499 } 33500 } 33501 locales[name] = new Locale(mergeConfigs(parentConfig, config)); 33502 33503 if (localeFamilies[name]) { 33504 localeFamilies[name].forEach(function (x) { 33505 defineLocale(x.name, x.config); 33506 }); 33507 } 33508 33509 // backwards compat for now: also set the locale 33510 // make sure we set the locale AFTER all child locales have been 33511 // created, so we won't end up with the child locale set. 33512 getSetGlobalLocale(name); 33513 33514 return locales[name]; 33515 } else { 33516 // useful for testing 33517 delete locales[name]; 33518 return null; 33519 } 33520 } 33521 33522 function updateLocale(name, config) { 33523 if (config != null) { 33524 var locale, 33525 tmpLocale, 33526 parentConfig = baseConfig; 33527 33528 if (locales[name] != null && locales[name].parentLocale != null) { 33529 // Update existing child locale in-place to avoid memory-leaks 33530 locales[name].set(mergeConfigs(locales[name]._config, config)); 33531 } else { 33532 // MERGE 33533 tmpLocale = loadLocale(name); 33534 if (tmpLocale != null) { 33535 parentConfig = tmpLocale._config; 33536 } 33537 config = mergeConfigs(parentConfig, config); 33538 if (tmpLocale == null) { 33539 // updateLocale is called for creating a new locale 33540 // Set abbr so it will have a name (getters return 33541 // undefined otherwise). 33542 config.abbr = name; 33543 } 33544 locale = new Locale(config); 33545 locale.parentLocale = locales[name]; 33546 locales[name] = locale; 33547 } 33548 33549 // backwards compat for now: also set the locale 33550 getSetGlobalLocale(name); 33551 } else { 33552 // pass null for config to unupdate, useful for tests 33553 if (locales[name] != null) { 33554 if (locales[name].parentLocale != null) { 33555 locales[name] = locales[name].parentLocale; 33556 if (name === getSetGlobalLocale()) { 33557 getSetGlobalLocale(name); 33558 } 33559 } else if (locales[name] != null) { 33560 delete locales[name]; 33561 } 33562 } 33563 } 33564 return locales[name]; 33565 } 33566 33567 // returns locale data 33568 function getLocale(key) { 33569 var locale; 33570 33571 if (key && key._locale && key._locale._abbr) { 33572 key = key._locale._abbr; 33573 } 33574 33575 if (!key) { 33576 return globalLocale; 33577 } 33578 33579 if (!isArray(key)) { 33580 //short-circuit everything else 33581 locale = loadLocale(key); 33582 if (locale) { 33583 return locale; 33584 } 33585 key = [key]; 33586 } 33587 33588 return chooseLocale(key); 33589 } 33590 33591 function listLocales() { 33592 return keys(locales); 33593 } 33594 33595 function checkOverflow(m) { 33596 var overflow, 33597 a = m._a; 33598 33599 if (a && getParsingFlags(m).overflow === -2) { 33600 overflow = 33601 a[MONTH] < 0 || a[MONTH] > 11 33602 ? MONTH 33603 : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) 33604 ? DATE 33605 : a[HOUR] < 0 || 33606 a[HOUR] > 24 || 33607 (a[HOUR] === 24 && 33608 (a[MINUTE] !== 0 || 33609 a[SECOND] !== 0 || 33610 a[MILLISECOND] !== 0)) 33611 ? HOUR 33612 : a[MINUTE] < 0 || a[MINUTE] > 59 33613 ? MINUTE 33614 : a[SECOND] < 0 || a[SECOND] > 59 33615 ? SECOND 33616 : a[MILLISECOND] < 0 || a[MILLISECOND] > 999 33617 ? MILLISECOND 33618 : -1; 33619 33620 if ( 33621 getParsingFlags(m)._overflowDayOfYear && 33622 (overflow < YEAR || overflow > DATE) 33623 ) { 33624 overflow = DATE; 33625 } 33626 if (getParsingFlags(m)._overflowWeeks && overflow === -1) { 33627 overflow = WEEK; 33628 } 33629 if (getParsingFlags(m)._overflowWeekday && overflow === -1) { 33630 overflow = WEEKDAY; 33631 } 33632 33633 getParsingFlags(m).overflow = overflow; 33634 } 33635 33636 return m; 33637 } 33638 33639 // iso 8601 regex 33640 // 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) 33641 var extendedIsoRegex = 33642 /^\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)?)?$/, 33643 basicIsoRegex = 33644 /^\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)?)?$/, 33645 tzRegex = /Z|[+-]\d\d(?::?\d\d)?/, 33646 isoDates = [ 33647 ['YYYYYY-MM-DD', /[+-]\d{6}-\d\d-\d\d/], 33648 ['YYYY-MM-DD', /\d{4}-\d\d-\d\d/], 33649 ['GGGG-[W]WW-E', /\d{4}-W\d\d-\d/], 33650 ['GGGG-[W]WW', /\d{4}-W\d\d/, false], 33651 ['YYYY-DDD', /\d{4}-\d{3}/], 33652 ['YYYY-MM', /\d{4}-\d\d/, false], 33653 ['YYYYYYMMDD', /[+-]\d{10}/], 33654 ['YYYYMMDD', /\d{8}/], 33655 ['GGGG[W]WWE', /\d{4}W\d{3}/], 33656 ['GGGG[W]WW', /\d{4}W\d{2}/, false], 33657 ['YYYYDDD', /\d{7}/], 33658 ['YYYYMM', /\d{6}/, false], 33659 ['YYYY', /\d{4}/, false], 33660 ], 33661 // iso time formats and regexes 33662 isoTimes = [ 33663 ['HH:mm:ss.SSSS', /\d\d:\d\d:\d\d\.\d+/], 33664 ['HH:mm:ss,SSSS', /\d\d:\d\d:\d\d,\d+/], 33665 ['HH:mm:ss', /\d\d:\d\d:\d\d/], 33666 ['HH:mm', /\d\d:\d\d/], 33667 ['HHmmss.SSSS', /\d\d\d\d\d\d\.\d+/], 33668 ['HHmmss,SSSS', /\d\d\d\d\d\d,\d+/], 33669 ['HHmmss', /\d\d\d\d\d\d/], 33670 ['HHmm', /\d\d\d\d/], 33671 ['HH', /\d\d/], 33672 ], 33673 aspNetJsonRegex = /^\/?Date\((-?\d+)/i, 33674 // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3 33675 rfc2822 = 33676 /^(?:(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}))$/, 33677 obsOffsets = { 33678 UT: 0, 33679 GMT: 0, 33680 EDT: -4 * 60, 33681 EST: -5 * 60, 33682 CDT: -5 * 60, 33683 CST: -6 * 60, 33684 MDT: -6 * 60, 33685 MST: -7 * 60, 33686 PDT: -7 * 60, 33687 PST: -8 * 60, 33688 }; 33689 33690 // date from iso format 33691 function configFromISO(config) { 33692 var i, 33693 l, 33694 string = config._i, 33695 match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string), 33696 allowTime, 33697 dateFormat, 33698 timeFormat, 33699 tzFormat, 33700 isoDatesLen = isoDates.length, 33701 isoTimesLen = isoTimes.length; 33702 33703 if (match) { 33704 getParsingFlags(config).iso = true; 33705 for (i = 0, l = isoDatesLen; i < l; i++) { 33706 if (isoDates[i][1].exec(match[1])) { 33707 dateFormat = isoDates[i][0]; 33708 allowTime = isoDates[i][2] !== false; 33709 break; 33710 } 33711 } 33712 if (dateFormat == null) { 33713 config._isValid = false; 33714 return; 33715 } 33716 if (match[3]) { 33717 for (i = 0, l = isoTimesLen; i < l; i++) { 33718 if (isoTimes[i][1].exec(match[3])) { 33719 // match[2] should be 'T' or space 33720 timeFormat = (match[2] || ' ') + isoTimes[i][0]; 33721 break; 33722 } 33723 } 33724 if (timeFormat == null) { 33725 config._isValid = false; 33726 return; 33727 } 33728 } 33729 if (!allowTime && timeFormat != null) { 33730 config._isValid = false; 33731 return; 33732 } 33733 if (match[4]) { 33734 if (tzRegex.exec(match[4])) { 33735 tzFormat = 'Z'; 33736 } else { 33737 config._isValid = false; 33738 return; 33739 } 33740 } 33741 config._f = dateFormat + (timeFormat || '') + (tzFormat || ''); 33742 configFromStringAndFormat(config); 33743 } else { 33744 config._isValid = false; 33745 } 33746 } 33747 33748 function extractFromRFC2822Strings( 33749 yearStr, 33750 monthStr, 33751 dayStr, 33752 hourStr, 33753 minuteStr, 33754 secondStr 33755 ) { 33756 var result = [ 33757 untruncateYear(yearStr), 33758 defaultLocaleMonthsShort.indexOf(monthStr), 33759 parseInt(dayStr, 10), 33760 parseInt(hourStr, 10), 33761 parseInt(minuteStr, 10), 33762 ]; 33763 33764 if (secondStr) { 33765 result.push(parseInt(secondStr, 10)); 33766 } 33767 33768 return result; 33769 } 33770 33771 function untruncateYear(yearStr) { 33772 var year = parseInt(yearStr, 10); 33773 if (year <= 49) { 33774 return 2000 + year; 33775 } else if (year <= 999) { 33776 return 1900 + year; 33777 } 33778 return year; 33779 } 33780 33781 function preprocessRFC2822(s) { 33782 // Remove comments and folding whitespace and replace multiple-spaces with a single space 33783 return s 33784 .replace(/\([^()]*\)|[\n\t]/g, ' ') 33785 .replace(/(\s\s+)/g, ' ') 33786 .replace(/^\s\s*/, '') 33787 .replace(/\s\s*$/, ''); 33788 } 33789 33790 function checkWeekday(weekdayStr, parsedInput, config) { 33791 if (weekdayStr) { 33792 // TODO: Replace the vanilla JS Date object with an independent day-of-week check. 33793 var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr), 33794 weekdayActual = new Date( 33795 parsedInput[0], 33796 parsedInput[1], 33797 parsedInput[2] 33798 ).getDay(); 33799 if (weekdayProvided !== weekdayActual) { 33800 getParsingFlags(config).weekdayMismatch = true; 33801 config._isValid = false; 33802 return false; 33803 } 33804 } 33805 return true; 33806 } 33807 33808 function calculateOffset(obsOffset, militaryOffset, numOffset) { 33809 if (obsOffset) { 33810 return obsOffsets[obsOffset]; 33811 } else if (militaryOffset) { 33812 // the only allowed military tz is Z 33813 return 0; 33814 } else { 33815 var hm = parseInt(numOffset, 10), 33816 m = hm % 100, 33817 h = (hm - m) / 100; 33818 return h * 60 + m; 33819 } 33820 } 33821 33822 // date and time from ref 2822 format 33823 function configFromRFC2822(config) { 33824 var match = rfc2822.exec(preprocessRFC2822(config._i)), 33825 parsedArray; 33826 if (match) { 33827 parsedArray = extractFromRFC2822Strings( 33828 match[4], 33829 match[3], 33830 match[2], 33831 match[5], 33832 match[6], 33833 match[7] 33834 ); 33835 if (!checkWeekday(match[1], parsedArray, config)) { 33836 return; 33837 } 33838 33839 config._a = parsedArray; 33840 config._tzm = calculateOffset(match[8], match[9], match[10]); 33841 33842 config._d = createUTCDate.apply(null, config._a); 33843 config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm); 33844 33845 getParsingFlags(config).rfc2822 = true; 33846 } else { 33847 config._isValid = false; 33848 } 33849 } 33850 33851 // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict 33852 function configFromString(config) { 33853 var matched = aspNetJsonRegex.exec(config._i); 33854 if (matched !== null) { 33855 config._d = new Date(+matched[1]); 33856 return; 33857 } 33858 33859 configFromISO(config); 33860 if (config._isValid === false) { 33861 delete config._isValid; 33862 } else { 33863 return; 33864 } 33865 33866 configFromRFC2822(config); 33867 if (config._isValid === false) { 33868 delete config._isValid; 33869 } else { 33870 return; 33871 } 33872 33873 if (config._strict) { 33874 config._isValid = false; 33875 } else { 33876 // Final attempt, use Input Fallback 33877 hooks.createFromInputFallback(config); 33878 } 33879 } 33880 33881 hooks.createFromInputFallback = deprecate( 33882 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' + 33883 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' + 33884 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.', 33885 function (config) { 33886 config._d = new Date(config._i + (config._useUTC ? ' UTC' : '')); 33887 } 33888 ); 33889 33890 // Pick the first defined of two or three arguments. 33891 function defaults(a, b, c) { 33892 if (a != null) { 33893 return a; 33894 } 33895 if (b != null) { 33896 return b; 33897 } 33898 return c; 33899 } 33900 33901 function currentDateArray(config) { 33902 // hooks is actually the exported moment object 33903 var nowValue = new Date(hooks.now()); 33904 if (config._useUTC) { 33905 return [ 33906 nowValue.getUTCFullYear(), 33907 nowValue.getUTCMonth(), 33908 nowValue.getUTCDate(), 33909 ]; 33910 } 33911 return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()]; 33912 } 33913 33914 // convert an array to a date. 33915 // the array should mirror the parameters below 33916 // note: all values past the year are optional and will default to the lowest possible value. 33917 // [year, month, day , hour, minute, second, millisecond] 33918 function configFromArray(config) { 33919 var i, 33920 date, 33921 input = [], 33922 currentDate, 33923 expectedWeekday, 33924 yearToUse; 33925 33926 if (config._d) { 33927 return; 33928 } 33929 33930 currentDate = currentDateArray(config); 33931 33932 //compute day of the year from weeks and weekdays 33933 if (config._w && config._a[DATE] == null && config._a[MONTH] == null) { 33934 dayOfYearFromWeekInfo(config); 33935 } 33936 33937 //if the day of the year is set, figure out what it is 33938 if (config._dayOfYear != null) { 33939 yearToUse = defaults(config._a[YEAR], currentDate[YEAR]); 33940 33941 if ( 33942 config._dayOfYear > daysInYear(yearToUse) || 33943 config._dayOfYear === 0 33944 ) { 33945 getParsingFlags(config)._overflowDayOfYear = true; 33946 } 33947 33948 date = createUTCDate(yearToUse, 0, config._dayOfYear); 33949 config._a[MONTH] = date.getUTCMonth(); 33950 config._a[DATE] = date.getUTCDate(); 33951 } 33952 33953 // Default to current date. 33954 // * if no year, month, day of month are given, default to today 33955 // * if day of month is given, default month and year 33956 // * if month is given, default only year 33957 // * if year is given, don't default anything 33958 for (i = 0; i < 3 && config._a[i] == null; ++i) { 33959 config._a[i] = input[i] = currentDate[i]; 33960 } 33961 33962 // Zero out whatever was not defaulted, including time 33963 for (; i < 7; i++) { 33964 config._a[i] = input[i] = 33965 config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i]; 33966 } 33967 33968 // Check for 24:00:00.000 33969 if ( 33970 config._a[HOUR] === 24 && 33971 config._a[MINUTE] === 0 && 33972 config._a[SECOND] === 0 && 33973 config._a[MILLISECOND] === 0 33974 ) { 33975 config._nextDay = true; 33976 config._a[HOUR] = 0; 33977 } 33978 33979 config._d = (config._useUTC ? createUTCDate : createDate).apply( 33980 null, 33981 input 33982 ); 33983 expectedWeekday = config._useUTC 33984 ? config._d.getUTCDay() 33985 : config._d.getDay(); 33986 33987 // Apply timezone offset from input. The actual utcOffset can be changed 33988 // with parseZone. 33989 if (config._tzm != null) { 33990 config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm); 33991 } 33992 33993 if (config._nextDay) { 33994 config._a[HOUR] = 24; 33995 } 33996 33997 // check for mismatching day of week 33998 if ( 33999 config._w && 34000 typeof config._w.d !== 'undefined' && 34001 config._w.d !== expectedWeekday 34002 ) { 34003 getParsingFlags(config).weekdayMismatch = true; 34004 } 34005 } 34006 34007 function dayOfYearFromWeekInfo(config) { 34008 var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek; 34009 34010 w = config._w; 34011 if (w.GG != null || w.W != null || w.E != null) { 34012 dow = 1; 34013 doy = 4; 34014 34015 // TODO: We need to take the current isoWeekYear, but that depends on 34016 // how we interpret now (local, utc, fixed offset). So create 34017 // a now version of current config (take local/utc/offset flags, and 34018 // create now). 34019 weekYear = defaults( 34020 w.GG, 34021 config._a[YEAR], 34022 weekOfYear(createLocal(), 1, 4).year 34023 ); 34024 week = defaults(w.W, 1); 34025 weekday = defaults(w.E, 1); 34026 if (weekday < 1 || weekday > 7) { 34027 weekdayOverflow = true; 34028 } 34029 } else { 34030 dow = config._locale._week.dow; 34031 doy = config._locale._week.doy; 34032 34033 curWeek = weekOfYear(createLocal(), dow, doy); 34034 34035 weekYear = defaults(w.gg, config._a[YEAR], curWeek.year); 34036 34037 // Default to current week. 34038 week = defaults(w.w, curWeek.week); 34039 34040 if (w.d != null) { 34041 // weekday -- low day numbers are considered next week 34042 weekday = w.d; 34043 if (weekday < 0 || weekday > 6) { 34044 weekdayOverflow = true; 34045 } 34046 } else if (w.e != null) { 34047 // local weekday -- counting starts from beginning of week 34048 weekday = w.e + dow; 34049 if (w.e < 0 || w.e > 6) { 34050 weekdayOverflow = true; 34051 } 34052 } else { 34053 // default to beginning of week 34054 weekday = dow; 34055 } 34056 } 34057 if (week < 1 || week > weeksInYear(weekYear, dow, doy)) { 34058 getParsingFlags(config)._overflowWeeks = true; 34059 } else if (weekdayOverflow != null) { 34060 getParsingFlags(config)._overflowWeekday = true; 34061 } else { 34062 temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy); 34063 config._a[YEAR] = temp.year; 34064 config._dayOfYear = temp.dayOfYear; 34065 } 34066 } 34067 34068 // constant that refers to the ISO standard 34069 hooks.ISO_8601 = function () {}; 34070 34071 // constant that refers to the RFC 2822 form 34072 hooks.RFC_2822 = function () {}; 34073 34074 // date from string and format string 34075 function configFromStringAndFormat(config) { 34076 // TODO: Move this to another part of the creation flow to prevent circular deps 34077 if (config._f === hooks.ISO_8601) { 34078 configFromISO(config); 34079 return; 34080 } 34081 if (config._f === hooks.RFC_2822) { 34082 configFromRFC2822(config); 34083 return; 34084 } 34085 config._a = []; 34086 getParsingFlags(config).empty = true; 34087 34088 // This array is used to make a Date, either with `new Date` or `Date.UTC` 34089 var string = '' + config._i, 34090 i, 34091 parsedInput, 34092 tokens, 34093 token, 34094 skipped, 34095 stringLength = string.length, 34096 totalParsedInputLength = 0, 34097 era, 34098 tokenLen; 34099 34100 tokens = 34101 expandFormat(config._f, config._locale).match(formattingTokens) || []; 34102 tokenLen = tokens.length; 34103 for (i = 0; i < tokenLen; i++) { 34104 token = tokens[i]; 34105 parsedInput = (string.match(getParseRegexForToken(token, config)) || 34106 [])[0]; 34107 if (parsedInput) { 34108 skipped = string.substr(0, string.indexOf(parsedInput)); 34109 if (skipped.length > 0) { 34110 getParsingFlags(config).unusedInput.push(skipped); 34111 } 34112 string = string.slice( 34113 string.indexOf(parsedInput) + parsedInput.length 34114 ); 34115 totalParsedInputLength += parsedInput.length; 34116 } 34117 // don't parse if it's not a known token 34118 if (formatTokenFunctions[token]) { 34119 if (parsedInput) { 34120 getParsingFlags(config).empty = false; 34121 } else { 34122 getParsingFlags(config).unusedTokens.push(token); 34123 } 34124 addTimeToArrayFromToken(token, parsedInput, config); 34125 } else if (config._strict && !parsedInput) { 34126 getParsingFlags(config).unusedTokens.push(token); 34127 } 34128 } 34129 34130 // add remaining unparsed input length to the string 34131 getParsingFlags(config).charsLeftOver = 34132 stringLength - totalParsedInputLength; 34133 if (string.length > 0) { 34134 getParsingFlags(config).unusedInput.push(string); 34135 } 34136 34137 // clear _12h flag if hour is <= 12 34138 if ( 34139 config._a[HOUR] <= 12 && 34140 getParsingFlags(config).bigHour === true && 34141 config._a[HOUR] > 0 34142 ) { 34143 getParsingFlags(config).bigHour = undefined; 34144 } 34145 34146 getParsingFlags(config).parsedDateParts = config._a.slice(0); 34147 getParsingFlags(config).meridiem = config._meridiem; 34148 // handle meridiem 34149 config._a[HOUR] = meridiemFixWrap( 34150 config._locale, 34151 config._a[HOUR], 34152 config._meridiem 34153 ); 34154 34155 // handle era 34156 era = getParsingFlags(config).era; 34157 if (era !== null) { 34158 config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]); 34159 } 34160 34161 configFromArray(config); 34162 checkOverflow(config); 34163 } 34164 34165 function meridiemFixWrap(locale, hour, meridiem) { 34166 var isPm; 34167 34168 if (meridiem == null) { 34169 // nothing to do 34170 return hour; 34171 } 34172 if (locale.meridiemHour != null) { 34173 return locale.meridiemHour(hour, meridiem); 34174 } else if (locale.isPM != null) { 34175 // Fallback 34176 isPm = locale.isPM(meridiem); 34177 if (isPm && hour < 12) { 34178 hour += 12; 34179 } 34180 if (!isPm && hour === 12) { 34181 hour = 0; 34182 } 34183 return hour; 34184 } else { 34185 // this is not supposed to happen 34186 return hour; 34187 } 34188 } 34189 34190 // date from string and array of format strings 34191 function configFromStringAndArray(config) { 34192 var tempConfig, 34193 bestMoment, 34194 scoreToBeat, 34195 i, 34196 currentScore, 34197 validFormatFound, 34198 bestFormatIsValid = false, 34199 configfLen = config._f.length; 34200 34201 if (configfLen === 0) { 34202 getParsingFlags(config).invalidFormat = true; 34203 config._d = new Date(NaN); 34204 return; 34205 } 34206 34207 for (i = 0; i < configfLen; i++) { 34208 currentScore = 0; 34209 validFormatFound = false; 34210 tempConfig = copyConfig({}, config); 34211 if (config._useUTC != null) { 34212 tempConfig._useUTC = config._useUTC; 34213 } 34214 tempConfig._f = config._f[i]; 34215 configFromStringAndFormat(tempConfig); 34216 34217 if (isValid(tempConfig)) { 34218 validFormatFound = true; 34219 } 34220 34221 // if there is any input that was not parsed add a penalty for that format 34222 currentScore += getParsingFlags(tempConfig).charsLeftOver; 34223 34224 //or tokens 34225 currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10; 34226 34227 getParsingFlags(tempConfig).score = currentScore; 34228 34229 if (!bestFormatIsValid) { 34230 if ( 34231 scoreToBeat == null || 34232 currentScore < scoreToBeat || 34233 validFormatFound 34234 ) { 34235 scoreToBeat = currentScore; 34236 bestMoment = tempConfig; 34237 if (validFormatFound) { 34238 bestFormatIsValid = true; 34239 } 34240 } 34241 } else { 34242 if (currentScore < scoreToBeat) { 34243 scoreToBeat = currentScore; 34244 bestMoment = tempConfig; 34245 } 34246 } 34247 } 34248 34249 extend(config, bestMoment || tempConfig); 34250 } 34251 34252 function configFromObject(config) { 34253 if (config._d) { 34254 return; 34255 } 34256 34257 var i = normalizeObjectUnits(config._i), 34258 dayOrDate = i.day === undefined ? i.date : i.day; 34259 config._a = map( 34260 [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond], 34261 function (obj) { 34262 return obj && parseInt(obj, 10); 34263 } 34264 ); 34265 34266 configFromArray(config); 34267 } 34268 34269 function createFromConfig(config) { 34270 var res = new Moment(checkOverflow(prepareConfig(config))); 34271 if (res._nextDay) { 34272 // Adding is smart enough around DST 34273 res.add(1, 'd'); 34274 res._nextDay = undefined; 34275 } 34276 34277 return res; 34278 } 34279 34280 function prepareConfig(config) { 34281 var input = config._i, 34282 format = config._f; 34283 34284 config._locale = config._locale || getLocale(config._l); 34285 34286 if (input === null || (format === undefined && input === '')) { 34287 return createInvalid({ nullInput: true }); 34288 } 34289 34290 if (typeof input === 'string') { 34291 config._i = input = config._locale.preparse(input); 34292 } 34293 34294 if (isMoment(input)) { 34295 return new Moment(checkOverflow(input)); 34296 } else if (isDate(input)) { 34297 config._d = input; 34298 } else if (isArray(format)) { 34299 configFromStringAndArray(config); 34300 } else if (format) { 34301 configFromStringAndFormat(config); 34302 } else { 34303 configFromInput(config); 34304 } 34305 34306 if (!isValid(config)) { 34307 config._d = null; 34308 } 34309 34310 return config; 34311 } 34312 34313 function configFromInput(config) { 34314 var input = config._i; 34315 if (isUndefined(input)) { 34316 config._d = new Date(hooks.now()); 34317 } else if (isDate(input)) { 34318 config._d = new Date(input.valueOf()); 34319 } else if (typeof input === 'string') { 34320 configFromString(config); 34321 } else if (isArray(input)) { 34322 config._a = map(input.slice(0), function (obj) { 34323 return parseInt(obj, 10); 34324 }); 34325 configFromArray(config); 34326 } else if (isObject(input)) { 34327 configFromObject(config); 34328 } else if (isNumber(input)) { 34329 // from milliseconds 34330 config._d = new Date(input); 34331 } else { 34332 hooks.createFromInputFallback(config); 34333 } 34334 } 34335 34336 function createLocalOrUTC(input, format, locale, strict, isUTC) { 34337 var c = {}; 34338 34339 if (format === true || format === false) { 34340 strict = format; 34341 format = undefined; 34342 } 34343 34344 if (locale === true || locale === false) { 34345 strict = locale; 34346 locale = undefined; 34347 } 34348 34349 if ( 34350 (isObject(input) && isObjectEmpty(input)) || 34351 (isArray(input) && input.length === 0) 34352 ) { 34353 input = undefined; 34354 } 34355 // object construction must be done this way. 34356 // https://github.com/moment/moment/issues/1423 34357 c._isAMomentObject = true; 34358 c._useUTC = c._isUTC = isUTC; 34359 c._l = locale; 34360 c._i = input; 34361 c._f = format; 34362 c._strict = strict; 34363 34364 return createFromConfig(c); 34365 } 34366 34367 function createLocal(input, format, locale, strict) { 34368 return createLocalOrUTC(input, format, locale, strict, false); 34369 } 34370 34371 var prototypeMin = deprecate( 34372 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/', 34373 function () { 34374 var other = createLocal.apply(null, arguments); 34375 if (this.isValid() && other.isValid()) { 34376 return other < this ? this : other; 34377 } else { 34378 return createInvalid(); 34379 } 34380 } 34381 ), 34382 prototypeMax = deprecate( 34383 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/', 34384 function () { 34385 var other = createLocal.apply(null, arguments); 34386 if (this.isValid() && other.isValid()) { 34387 return other > this ? this : other; 34388 } else { 34389 return createInvalid(); 34390 } 34391 } 34392 ); 34393 34394 // Pick a moment m from moments so that m[fn](other) is true for all 34395 // other. This relies on the function fn to be transitive. 34396 // 34397 // moments should either be an array of moment objects or an array, whose 34398 // first element is an array of moment objects. 34399 function pickBy(fn, moments) { 34400 var res, i; 34401 if (moments.length === 1 && isArray(moments[0])) { 34402 moments = moments[0]; 34403 } 34404 if (!moments.length) { 34405 return createLocal(); 34406 } 34407 res = moments[0]; 34408 for (i = 1; i < moments.length; ++i) { 34409 if (!moments[i].isValid() || moments[i][fn](res)) { 34410 res = moments[i]; 34411 } 34412 } 34413 return res; 34414 } 34415 34416 // TODO: Use [].sort instead? 34417 function min() { 34418 var args = [].slice.call(arguments, 0); 34419 34420 return pickBy('isBefore', args); 34421 } 34422 34423 function max() { 34424 var args = [].slice.call(arguments, 0); 34425 34426 return pickBy('isAfter', args); 34427 } 34428 34429 var now = function () { 34430 return Date.now ? Date.now() : +new Date(); 34431 }; 34432 34433 var ordering = [ 34434 'year', 34435 'quarter', 34436 'month', 34437 'week', 34438 'day', 34439 'hour', 34440 'minute', 34441 'second', 34442 'millisecond', 34443 ]; 34444 34445 function isDurationValid(m) { 34446 var key, 34447 unitHasDecimal = false, 34448 i, 34449 orderLen = ordering.length; 34450 for (key in m) { 34451 if ( 34452 hasOwnProp(m, key) && 34453 !( 34454 indexOf.call(ordering, key) !== -1 && 34455 (m[key] == null || !isNaN(m[key])) 34456 ) 34457 ) { 34458 return false; 34459 } 34460 } 34461 34462 for (i = 0; i < orderLen; ++i) { 34463 if (m[ordering[i]]) { 34464 if (unitHasDecimal) { 34465 return false; // only allow non-integers for smallest unit 34466 } 34467 if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) { 34468 unitHasDecimal = true; 34469 } 34470 } 34471 } 34472 34473 return true; 34474 } 34475 34476 function isValid$1() { 34477 return this._isValid; 34478 } 34479 34480 function createInvalid$1() { 34481 return createDuration(NaN); 34482 } 34483 34484 function Duration(duration) { 34485 var normalizedInput = normalizeObjectUnits(duration), 34486 years = normalizedInput.year || 0, 34487 quarters = normalizedInput.quarter || 0, 34488 months = normalizedInput.month || 0, 34489 weeks = normalizedInput.week || normalizedInput.isoWeek || 0, 34490 days = normalizedInput.day || 0, 34491 hours = normalizedInput.hour || 0, 34492 minutes = normalizedInput.minute || 0, 34493 seconds = normalizedInput.second || 0, 34494 milliseconds = normalizedInput.millisecond || 0; 34495 34496 this._isValid = isDurationValid(normalizedInput); 34497 34498 // representation for dateAddRemove 34499 this._milliseconds = 34500 +milliseconds + 34501 seconds * 1e3 + // 1000 34502 minutes * 6e4 + // 1000 * 60 34503 hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978 34504 // Because of dateAddRemove treats 24 hours as different from a 34505 // day when working around DST, we need to store them separately 34506 this._days = +days + weeks * 7; 34507 // It is impossible to translate months into days without knowing 34508 // which months you are are talking about, so we have to store 34509 // it separately. 34510 this._months = +months + quarters * 3 + years * 12; 34511 34512 this._data = {}; 34513 34514 this._locale = getLocale(); 34515 34516 this._bubble(); 34517 } 34518 34519 function isDuration(obj) { 34520 return obj instanceof Duration; 34521 } 34522 34523 function absRound(number) { 34524 if (number < 0) { 34525 return Math.round(-1 * number) * -1; 34526 } else { 34527 return Math.round(number); 34528 } 34529 } 34530 34531 // compare two arrays, return the number of differences 34532 function compareArrays(array1, array2, dontConvert) { 34533 var len = Math.min(array1.length, array2.length), 34534 lengthDiff = Math.abs(array1.length - array2.length), 34535 diffs = 0, 34536 i; 34537 for (i = 0; i < len; i++) { 34538 if ( 34539 (dontConvert && array1[i] !== array2[i]) || 34540 (!dontConvert && toInt(array1[i]) !== toInt(array2[i])) 34541 ) { 34542 diffs++; 34543 } 34544 } 34545 return diffs + lengthDiff; 34546 } 34547 34548 // FORMATTING 34549 34550 function offset(token, separator) { 34551 addFormatToken(token, 0, 0, function () { 34552 var offset = this.utcOffset(), 34553 sign = '+'; 34554 if (offset < 0) { 34555 offset = -offset; 34556 sign = '-'; 34557 } 34558 return ( 34559 sign + 34560 zeroFill(~~(offset / 60), 2) + 34561 separator + 34562 zeroFill(~~offset % 60, 2) 34563 ); 34564 }); 34565 } 34566 34567 offset('Z', ':'); 34568 offset('ZZ', ''); 34569 34570 // PARSING 34571 34572 addRegexToken('Z', matchShortOffset); 34573 addRegexToken('ZZ', matchShortOffset); 34574 addParseToken(['Z', 'ZZ'], function (input, array, config) { 34575 config._useUTC = true; 34576 config._tzm = offsetFromString(matchShortOffset, input); 34577 }); 34578 34579 // HELPERS 34580 34581 // timezone chunker 34582 // '+10:00' > ['10', '00'] 34583 // '-1530' > ['-15', '30'] 34584 var chunkOffset = /([\+\-]|\d\d)/gi; 34585 34586 function offsetFromString(matcher, string) { 34587 var matches = (string || '').match(matcher), 34588 chunk, 34589 parts, 34590 minutes; 34591 34592 if (matches === null) { 34593 return null; 34594 } 34595 34596 chunk = matches[matches.length - 1] || []; 34597 parts = (chunk + '').match(chunkOffset) || ['-', 0, 0]; 34598 minutes = +(parts[1] * 60) + toInt(parts[2]); 34599 34600 return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes; 34601 } 34602 34603 // Return a moment from input, that is local/utc/zone equivalent to model. 34604 function cloneWithOffset(input, model) { 34605 var res, diff; 34606 if (model._isUTC) { 34607 res = model.clone(); 34608 diff = 34609 (isMoment(input) || isDate(input) 34610 ? input.valueOf() 34611 : createLocal(input).valueOf()) - res.valueOf(); 34612 // Use low-level api, because this fn is low-level api. 34613 res._d.setTime(res._d.valueOf() + diff); 34614 hooks.updateOffset(res, false); 34615 return res; 34616 } else { 34617 return createLocal(input).local(); 34618 } 34619 } 34620 34621 function getDateOffset(m) { 34622 // On Firefox.24 Date#getTimezoneOffset returns a floating point. 34623 // https://github.com/moment/moment/pull/1871 34624 return -Math.round(m._d.getTimezoneOffset()); 34625 } 34626 34627 // HOOKS 34628 34629 // This function will be called whenever a moment is mutated. 34630 // It is intended to keep the offset in sync with the timezone. 34631 hooks.updateOffset = function () {}; 34632 34633 // MOMENTS 34634 34635 // keepLocalTime = true means only change the timezone, without 34636 // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]--> 34637 // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset 34638 // +0200, so we adjust the time as needed, to be valid. 34639 // 34640 // Keeping the time actually adds/subtracts (one hour) 34641 // from the actual represented time. That is why we call updateOffset 34642 // a second time. In case it wants us to change the offset again 34643 // _changeInProgress == true case, then we have to adjust, because 34644 // there is no such time in the given timezone. 34645 function getSetOffset(input, keepLocalTime, keepMinutes) { 34646 var offset = this._offset || 0, 34647 localAdjust; 34648 if (!this.isValid()) { 34649 return input != null ? this : NaN; 34650 } 34651 if (input != null) { 34652 if (typeof input === 'string') { 34653 input = offsetFromString(matchShortOffset, input); 34654 if (input === null) { 34655 return this; 34656 } 34657 } else if (Math.abs(input) < 16 && !keepMinutes) { 34658 input = input * 60; 34659 } 34660 if (!this._isUTC && keepLocalTime) { 34661 localAdjust = getDateOffset(this); 34662 } 34663 this._offset = input; 34664 this._isUTC = true; 34665 if (localAdjust != null) { 34666 this.add(localAdjust, 'm'); 34667 } 34668 if (offset !== input) { 34669 if (!keepLocalTime || this._changeInProgress) { 34670 addSubtract( 34671 this, 34672 createDuration(input - offset, 'm'), 34673 1, 34674 false 34675 ); 34676 } else if (!this._changeInProgress) { 34677 this._changeInProgress = true; 34678 hooks.updateOffset(this, true); 34679 this._changeInProgress = null; 34680 } 34681 } 34682 return this; 34683 } else { 34684 return this._isUTC ? offset : getDateOffset(this); 34685 } 34686 } 34687 34688 function getSetZone(input, keepLocalTime) { 34689 if (input != null) { 34690 if (typeof input !== 'string') { 34691 input = -input; 34692 } 34693 34694 this.utcOffset(input, keepLocalTime); 34695 34696 return this; 34697 } else { 34698 return -this.utcOffset(); 34699 } 34700 } 34701 34702 function setOffsetToUTC(keepLocalTime) { 34703 return this.utcOffset(0, keepLocalTime); 34704 } 34705 34706 function setOffsetToLocal(keepLocalTime) { 34707 if (this._isUTC) { 34708 this.utcOffset(0, keepLocalTime); 34709 this._isUTC = false; 34710 34711 if (keepLocalTime) { 34712 this.subtract(getDateOffset(this), 'm'); 34713 } 34714 } 34715 return this; 34716 } 34717 34718 function setOffsetToParsedOffset() { 34719 if (this._tzm != null) { 34720 this.utcOffset(this._tzm, false, true); 34721 } else if (typeof this._i === 'string') { 34722 var tZone = offsetFromString(matchOffset, this._i); 34723 if (tZone != null) { 34724 this.utcOffset(tZone); 34725 } else { 34726 this.utcOffset(0, true); 34727 } 34728 } 34729 return this; 34730 } 34731 34732 function hasAlignedHourOffset(input) { 34733 if (!this.isValid()) { 34734 return false; 34735 } 34736 input = input ? createLocal(input).utcOffset() : 0; 34737 34738 return (this.utcOffset() - input) % 60 === 0; 34739 } 34740 34741 function isDaylightSavingTime() { 34742 return ( 34743 this.utcOffset() > this.clone().month(0).utcOffset() || 34744 this.utcOffset() > this.clone().month(5).utcOffset() 34745 ); 34746 } 34747 34748 function isDaylightSavingTimeShifted() { 34749 if (!isUndefined(this._isDSTShifted)) { 34750 return this._isDSTShifted; 34751 } 34752 34753 var c = {}, 34754 other; 34755 34756 copyConfig(c, this); 34757 c = prepareConfig(c); 34758 34759 if (c._a) { 34760 other = c._isUTC ? createUTC(c._a) : createLocal(c._a); 34761 this._isDSTShifted = 34762 this.isValid() && compareArrays(c._a, other.toArray()) > 0; 34763 } else { 34764 this._isDSTShifted = false; 34765 } 34766 34767 return this._isDSTShifted; 34768 } 34769 34770 function isLocal() { 34771 return this.isValid() ? !this._isUTC : false; 34772 } 34773 34774 function isUtcOffset() { 34775 return this.isValid() ? this._isUTC : false; 34776 } 34777 34778 function isUtc() { 34779 return this.isValid() ? this._isUTC && this._offset === 0 : false; 34780 } 34781 34782 // ASP.NET json date format regex 34783 var aspNetRegex = /^(-|\+)?(?:(\d*)[. ])?(\d+):(\d+)(?::(\d+)(\.\d*)?)?$/, 34784 // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html 34785 // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere 34786 // and further modified to allow for strings containing both week and day 34787 isoRegex = 34788 /^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/; 34789 34790 function createDuration(input, key) { 34791 var duration = input, 34792 // matching against regexp is expensive, do it on demand 34793 match = null, 34794 sign, 34795 ret, 34796 diffRes; 34797 34798 if (isDuration(input)) { 34799 duration = { 34800 ms: input._milliseconds, 34801 d: input._days, 34802 M: input._months, 34803 }; 34804 } else if (isNumber(input) || !isNaN(+input)) { 34805 duration = {}; 34806 if (key) { 34807 duration[key] = +input; 34808 } else { 34809 duration.milliseconds = +input; 34810 } 34811 } else if ((match = aspNetRegex.exec(input))) { 34812 sign = match[1] === '-' ? -1 : 1; 34813 duration = { 34814 y: 0, 34815 d: toInt(match[DATE]) * sign, 34816 h: toInt(match[HOUR]) * sign, 34817 m: toInt(match[MINUTE]) * sign, 34818 s: toInt(match[SECOND]) * sign, 34819 ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match 34820 }; 34821 } else if ((match = isoRegex.exec(input))) { 34822 sign = match[1] === '-' ? -1 : 1; 34823 duration = { 34824 y: parseIso(match[2], sign), 34825 M: parseIso(match[3], sign), 34826 w: parseIso(match[4], sign), 34827 d: parseIso(match[5], sign), 34828 h: parseIso(match[6], sign), 34829 m: parseIso(match[7], sign), 34830 s: parseIso(match[8], sign), 34831 }; 34832 } else if (duration == null) { 34833 // checks for null or undefined 34834 duration = {}; 34835 } else if ( 34836 typeof duration === 'object' && 34837 ('from' in duration || 'to' in duration) 34838 ) { 34839 diffRes = momentsDifference( 34840 createLocal(duration.from), 34841 createLocal(duration.to) 34842 ); 34843 34844 duration = {}; 34845 duration.ms = diffRes.milliseconds; 34846 duration.M = diffRes.months; 34847 } 34848 34849 ret = new Duration(duration); 34850 34851 if (isDuration(input) && hasOwnProp(input, '_locale')) { 34852 ret._locale = input._locale; 34853 } 34854 34855 if (isDuration(input) && hasOwnProp(input, '_isValid')) { 34856 ret._isValid = input._isValid; 34857 } 34858 34859 return ret; 34860 } 34861 34862 createDuration.fn = Duration.prototype; 34863 createDuration.invalid = createInvalid$1; 34864 34865 function parseIso(inp, sign) { 34866 // We'd normally use ~~inp for this, but unfortunately it also 34867 // converts floats to ints. 34868 // inp may be undefined, so careful calling replace on it. 34869 var res = inp && parseFloat(inp.replace(',', '.')); 34870 // apply sign while we're at it 34871 return (isNaN(res) ? 0 : res) * sign; 34872 } 34873 34874 function positiveMomentsDifference(base, other) { 34875 var res = {}; 34876 34877 res.months = 34878 other.month() - base.month() + (other.year() - base.year()) * 12; 34879 if (base.clone().add(res.months, 'M').isAfter(other)) { 34880 --res.months; 34881 } 34882 34883 res.milliseconds = +other - +base.clone().add(res.months, 'M'); 34884 34885 return res; 34886 } 34887 34888 function momentsDifference(base, other) { 34889 var res; 34890 if (!(base.isValid() && other.isValid())) { 34891 return { milliseconds: 0, months: 0 }; 34892 } 34893 34894 other = cloneWithOffset(other, base); 34895 if (base.isBefore(other)) { 34896 res = positiveMomentsDifference(base, other); 34897 } else { 34898 res = positiveMomentsDifference(other, base); 34899 res.milliseconds = -res.milliseconds; 34900 res.months = -res.months; 34901 } 34902 34903 return res; 34904 } 34905 34906 // TODO: remove 'name' arg after deprecation is removed 34907 function createAdder(direction, name) { 34908 return function (val, period) { 34909 var dur, tmp; 34910 //invert the arguments, but complain about it 34911 if (period !== null && !isNaN(+period)) { 34912 deprecateSimple( 34913 name, 34914 'moment().' + 34915 name + 34916 '(period, number) is deprecated. Please use moment().' + 34917 name + 34918 '(number, period). ' + 34919 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.' 34920 ); 34921 tmp = val; 34922 val = period; 34923 period = tmp; 34924 } 34925 34926 dur = createDuration(val, period); 34927 addSubtract(this, dur, direction); 34928 return this; 34929 }; 34930 } 34931 34932 function addSubtract(mom, duration, isAdding, updateOffset) { 34933 var milliseconds = duration._milliseconds, 34934 days = absRound(duration._days), 34935 months = absRound(duration._months); 34936 34937 if (!mom.isValid()) { 34938 // No op 34939 return; 34940 } 34941 34942 updateOffset = updateOffset == null ? true : updateOffset; 34943 34944 if (months) { 34945 setMonth(mom, get(mom, 'Month') + months * isAdding); 34946 } 34947 if (days) { 34948 set$1(mom, 'Date', get(mom, 'Date') + days * isAdding); 34949 } 34950 if (milliseconds) { 34951 mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding); 34952 } 34953 if (updateOffset) { 34954 hooks.updateOffset(mom, days || months); 34955 } 34956 } 34957 34958 var add = createAdder(1, 'add'), 34959 subtract = createAdder(-1, 'subtract'); 34960 34961 function isString(input) { 34962 return typeof input === 'string' || input instanceof String; 34963 } 34964 34965 // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined 34966 function isMomentInput(input) { 34967 return ( 34968 isMoment(input) || 34969 isDate(input) || 34970 isString(input) || 34971 isNumber(input) || 34972 isNumberOrStringArray(input) || 34973 isMomentInputObject(input) || 34974 input === null || 34975 input === undefined 34976 ); 34977 } 34978 34979 function isMomentInputObject(input) { 34980 var objectTest = isObject(input) && !isObjectEmpty(input), 34981 propertyTest = false, 34982 properties = [ 34983 'years', 34984 'year', 34985 'y', 34986 'months', 34987 'month', 34988 'M', 34989 'days', 34990 'day', 34991 'd', 34992 'dates', 34993 'date', 34994 'D', 34995 'hours', 34996 'hour', 34997 'h', 34998 'minutes', 34999 'minute', 35000 'm', 35001 'seconds', 35002 'second', 35003 's', 35004 'milliseconds', 35005 'millisecond', 35006 'ms', 35007 ], 35008 i, 35009 property, 35010 propertyLen = properties.length; 35011 35012 for (i = 0; i < propertyLen; i += 1) { 35013 property = properties[i]; 35014 propertyTest = propertyTest || hasOwnProp(input, property); 35015 } 35016 35017 return objectTest && propertyTest; 35018 } 35019 35020 function isNumberOrStringArray(input) { 35021 var arrayTest = isArray(input), 35022 dataTypeTest = false; 35023 if (arrayTest) { 35024 dataTypeTest = 35025 input.filter(function (item) { 35026 return !isNumber(item) && isString(input); 35027 }).length === 0; 35028 } 35029 return arrayTest && dataTypeTest; 35030 } 35031 35032 function isCalendarSpec(input) { 35033 var objectTest = isObject(input) && !isObjectEmpty(input), 35034 propertyTest = false, 35035 properties = [ 35036 'sameDay', 35037 'nextDay', 35038 'lastDay', 35039 'nextWeek', 35040 'lastWeek', 35041 'sameElse', 35042 ], 35043 i, 35044 property; 35045 35046 for (i = 0; i < properties.length; i += 1) { 35047 property = properties[i]; 35048 propertyTest = propertyTest || hasOwnProp(input, property); 35049 } 35050 35051 return objectTest && propertyTest; 35052 } 35053 35054 function getCalendarFormat(myMoment, now) { 35055 var diff = myMoment.diff(now, 'days', true); 35056 return diff < -6 35057 ? 'sameElse' 35058 : diff < -1 35059 ? 'lastWeek' 35060 : diff < 0 35061 ? 'lastDay' 35062 : diff < 1 35063 ? 'sameDay' 35064 : diff < 2 35065 ? 'nextDay' 35066 : diff < 7 35067 ? 'nextWeek' 35068 : 'sameElse'; 35069 } 35070 35071 function calendar$1(time, formats) { 35072 // Support for single parameter, formats only overload to the calendar function 35073 if (arguments.length === 1) { 35074 if (!arguments[0]) { 35075 time = undefined; 35076 formats = undefined; 35077 } else if (isMomentInput(arguments[0])) { 35078 time = arguments[0]; 35079 formats = undefined; 35080 } else if (isCalendarSpec(arguments[0])) { 35081 formats = arguments[0]; 35082 time = undefined; 35083 } 35084 } 35085 // We want to compare the start of today, vs this. 35086 // Getting start-of-today depends on whether we're local/utc/offset or not. 35087 var now = time || createLocal(), 35088 sod = cloneWithOffset(now, this).startOf('day'), 35089 format = hooks.calendarFormat(this, sod) || 'sameElse', 35090 output = 35091 formats && 35092 (isFunction(formats[format]) 35093 ? formats[format].call(this, now) 35094 : formats[format]); 35095 35096 return this.format( 35097 output || this.localeData().calendar(format, this, createLocal(now)) 35098 ); 35099 } 35100 35101 function clone() { 35102 return new Moment(this); 35103 } 35104 35105 function isAfter(input, units) { 35106 var localInput = isMoment(input) ? input : createLocal(input); 35107 if (!(this.isValid() && localInput.isValid())) { 35108 return false; 35109 } 35110 units = normalizeUnits(units) || 'millisecond'; 35111 if (units === 'millisecond') { 35112 return this.valueOf() > localInput.valueOf(); 35113 } else { 35114 return localInput.valueOf() < this.clone().startOf(units).valueOf(); 35115 } 35116 } 35117 35118 function isBefore(input, units) { 35119 var localInput = isMoment(input) ? input : createLocal(input); 35120 if (!(this.isValid() && localInput.isValid())) { 35121 return false; 35122 } 35123 units = normalizeUnits(units) || 'millisecond'; 35124 if (units === 'millisecond') { 35125 return this.valueOf() < localInput.valueOf(); 35126 } else { 35127 return this.clone().endOf(units).valueOf() < localInput.valueOf(); 35128 } 35129 } 35130 35131 function isBetween(from, to, units, inclusivity) { 35132 var localFrom = isMoment(from) ? from : createLocal(from), 35133 localTo = isMoment(to) ? to : createLocal(to); 35134 if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) { 35135 return false; 35136 } 35137 inclusivity = inclusivity || '()'; 35138 return ( 35139 (inclusivity[0] === '(' 35140 ? this.isAfter(localFrom, units) 35141 : !this.isBefore(localFrom, units)) && 35142 (inclusivity[1] === ')' 35143 ? this.isBefore(localTo, units) 35144 : !this.isAfter(localTo, units)) 35145 ); 35146 } 35147 35148 function isSame(input, units) { 35149 var localInput = isMoment(input) ? input : createLocal(input), 35150 inputMs; 35151 if (!(this.isValid() && localInput.isValid())) { 35152 return false; 35153 } 35154 units = normalizeUnits(units) || 'millisecond'; 35155 if (units === 'millisecond') { 35156 return this.valueOf() === localInput.valueOf(); 35157 } else { 35158 inputMs = localInput.valueOf(); 35159 return ( 35160 this.clone().startOf(units).valueOf() <= inputMs && 35161 inputMs <= this.clone().endOf(units).valueOf() 35162 ); 35163 } 35164 } 35165 35166 function isSameOrAfter(input, units) { 35167 return this.isSame(input, units) || this.isAfter(input, units); 35168 } 35169 35170 function isSameOrBefore(input, units) { 35171 return this.isSame(input, units) || this.isBefore(input, units); 35172 } 35173 35174 function diff(input, units, asFloat) { 35175 var that, zoneDelta, output; 35176 35177 if (!this.isValid()) { 35178 return NaN; 35179 } 35180 35181 that = cloneWithOffset(input, this); 35182 35183 if (!that.isValid()) { 35184 return NaN; 35185 } 35186 35187 zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4; 35188 35189 units = normalizeUnits(units); 35190 35191 switch (units) { 35192 case 'year': 35193 output = monthDiff(this, that) / 12; 35194 break; 35195 case 'month': 35196 output = monthDiff(this, that); 35197 break; 35198 case 'quarter': 35199 output = monthDiff(this, that) / 3; 35200 break; 35201 case 'second': 35202 output = (this - that) / 1e3; 35203 break; // 1000 35204 case 'minute': 35205 output = (this - that) / 6e4; 35206 break; // 1000 * 60 35207 case 'hour': 35208 output = (this - that) / 36e5; 35209 break; // 1000 * 60 * 60 35210 case 'day': 35211 output = (this - that - zoneDelta) / 864e5; 35212 break; // 1000 * 60 * 60 * 24, negate dst 35213 case 'week': 35214 output = (this - that - zoneDelta) / 6048e5; 35215 break; // 1000 * 60 * 60 * 24 * 7, negate dst 35216 default: 35217 output = this - that; 35218 } 35219 35220 return asFloat ? output : absFloor(output); 35221 } 35222 35223 function monthDiff(a, b) { 35224 if (a.date() < b.date()) { 35225 // end-of-month calculations work correct when the start month has more 35226 // days than the end month. 35227 return -monthDiff(b, a); 35228 } 35229 // difference in months 35230 var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()), 35231 // b is in (anchor - 1 month, anchor + 1 month) 35232 anchor = a.clone().add(wholeMonthDiff, 'months'), 35233 anchor2, 35234 adjust; 35235 35236 if (b - anchor < 0) { 35237 anchor2 = a.clone().add(wholeMonthDiff - 1, 'months'); 35238 // linear across the month 35239 adjust = (b - anchor) / (anchor - anchor2); 35240 } else { 35241 anchor2 = a.clone().add(wholeMonthDiff + 1, 'months'); 35242 // linear across the month 35243 adjust = (b - anchor) / (anchor2 - anchor); 35244 } 35245 35246 //check for negative zero, return zero if negative zero 35247 return -(wholeMonthDiff + adjust) || 0; 35248 } 35249 35250 hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ'; 35251 hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]'; 35252 35253 function toString() { 35254 return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ'); 35255 } 35256 35257 function toISOString(keepOffset) { 35258 if (!this.isValid()) { 35259 return null; 35260 } 35261 var utc = keepOffset !== true, 35262 m = utc ? this.clone().utc() : this; 35263 if (m.year() < 0 || m.year() > 9999) { 35264 return formatMoment( 35265 m, 35266 utc 35267 ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]' 35268 : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ' 35269 ); 35270 } 35271 if (isFunction(Date.prototype.toISOString)) { 35272 // native implementation is ~50x faster, use it when we can 35273 if (utc) { 35274 return this.toDate().toISOString(); 35275 } else { 35276 return new Date(this.valueOf() + this.utcOffset() * 60 * 1000) 35277 .toISOString() 35278 .replace('Z', formatMoment(m, 'Z')); 35279 } 35280 } 35281 return formatMoment( 35282 m, 35283 utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ' 35284 ); 35285 } 35286 35287 /** 35288 * Return a human readable representation of a moment that can 35289 * also be evaluated to get a new moment which is the same 35290 * 35291 * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects 35292 */ 35293 function inspect() { 35294 if (!this.isValid()) { 35295 return 'moment.invalid(/* ' + this._i + ' */)'; 35296 } 35297 var func = 'moment', 35298 zone = '', 35299 prefix, 35300 year, 35301 datetime, 35302 suffix; 35303 if (!this.isLocal()) { 35304 func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone'; 35305 zone = 'Z'; 35306 } 35307 prefix = '[' + func + '("]'; 35308 year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY'; 35309 datetime = '-MM-DD[T]HH:mm:ss.SSS'; 35310 suffix = zone + '[")]'; 35311 35312 return this.format(prefix + year + datetime + suffix); 35313 } 35314 35315 function format(inputString) { 35316 if (!inputString) { 35317 inputString = this.isUtc() 35318 ? hooks.defaultFormatUtc 35319 : hooks.defaultFormat; 35320 } 35321 var output = formatMoment(this, inputString); 35322 return this.localeData().postformat(output); 35323 } 35324 35325 function from(time, withoutSuffix) { 35326 if ( 35327 this.isValid() && 35328 ((isMoment(time) && time.isValid()) || createLocal(time).isValid()) 35329 ) { 35330 return createDuration({ to: this, from: time }) 35331 .locale(this.locale()) 35332 .humanize(!withoutSuffix); 35333 } else { 35334 return this.localeData().invalidDate(); 35335 } 35336 } 35337 35338 function fromNow(withoutSuffix) { 35339 return this.from(createLocal(), withoutSuffix); 35340 } 35341 35342 function to(time, withoutSuffix) { 35343 if ( 35344 this.isValid() && 35345 ((isMoment(time) && time.isValid()) || createLocal(time).isValid()) 35346 ) { 35347 return createDuration({ from: this, to: time }) 35348 .locale(this.locale()) 35349 .humanize(!withoutSuffix); 35350 } else { 35351 return this.localeData().invalidDate(); 35352 } 35353 } 35354 35355 function toNow(withoutSuffix) { 35356 return this.to(createLocal(), withoutSuffix); 35357 } 35358 35359 // If passed a locale key, it will set the locale for this 35360 // instance. Otherwise, it will return the locale configuration 35361 // variables for this instance. 35362 function locale(key) { 35363 var newLocaleData; 35364 35365 if (key === undefined) { 35366 return this._locale._abbr; 35367 } else { 35368 newLocaleData = getLocale(key); 35369 if (newLocaleData != null) { 35370 this._locale = newLocaleData; 35371 } 35372 return this; 35373 } 35374 } 35375 35376 var lang = deprecate( 35377 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.', 35378 function (key) { 35379 if (key === undefined) { 35380 return this.localeData(); 35381 } else { 35382 return this.locale(key); 35383 } 35384 } 35385 ); 35386 35387 function localeData() { 35388 return this._locale; 35389 } 35390 35391 var MS_PER_SECOND = 1000, 35392 MS_PER_MINUTE = 60 * MS_PER_SECOND, 35393 MS_PER_HOUR = 60 * MS_PER_MINUTE, 35394 MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR; 35395 35396 // actual modulo - handles negative numbers (for dates before 1970): 35397 function mod$1(dividend, divisor) { 35398 return ((dividend % divisor) + divisor) % divisor; 35399 } 35400 35401 function localStartOfDate(y, m, d) { 35402 // the date constructor remaps years 0-99 to 1900-1999 35403 if (y < 100 && y >= 0) { 35404 // preserve leap years using a full 400 year cycle, then reset 35405 return new Date(y + 400, m, d) - MS_PER_400_YEARS; 35406 } else { 35407 return new Date(y, m, d).valueOf(); 35408 } 35409 } 35410 35411 function utcStartOfDate(y, m, d) { 35412 // Date.UTC remaps years 0-99 to 1900-1999 35413 if (y < 100 && y >= 0) { 35414 // preserve leap years using a full 400 year cycle, then reset 35415 return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS; 35416 } else { 35417 return Date.UTC(y, m, d); 35418 } 35419 } 35420 35421 function startOf(units) { 35422 var time, startOfDate; 35423 units = normalizeUnits(units); 35424 if (units === undefined || units === 'millisecond' || !this.isValid()) { 35425 return this; 35426 } 35427 35428 startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate; 35429 35430 switch (units) { 35431 case 'year': 35432 time = startOfDate(this.year(), 0, 1); 35433 break; 35434 case 'quarter': 35435 time = startOfDate( 35436 this.year(), 35437 this.month() - (this.month() % 3), 35438 1 35439 ); 35440 break; 35441 case 'month': 35442 time = startOfDate(this.year(), this.month(), 1); 35443 break; 35444 case 'week': 35445 time = startOfDate( 35446 this.year(), 35447 this.month(), 35448 this.date() - this.weekday() 35449 ); 35450 break; 35451 case 'isoWeek': 35452 time = startOfDate( 35453 this.year(), 35454 this.month(), 35455 this.date() - (this.isoWeekday() - 1) 35456 ); 35457 break; 35458 case 'day': 35459 case 'date': 35460 time = startOfDate(this.year(), this.month(), this.date()); 35461 break; 35462 case 'hour': 35463 time = this._d.valueOf(); 35464 time -= mod$1( 35465 time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), 35466 MS_PER_HOUR 35467 ); 35468 break; 35469 case 'minute': 35470 time = this._d.valueOf(); 35471 time -= mod$1(time, MS_PER_MINUTE); 35472 break; 35473 case 'second': 35474 time = this._d.valueOf(); 35475 time -= mod$1(time, MS_PER_SECOND); 35476 break; 35477 } 35478 35479 this._d.setTime(time); 35480 hooks.updateOffset(this, true); 35481 return this; 35482 } 35483 35484 function endOf(units) { 35485 var time, startOfDate; 35486 units = normalizeUnits(units); 35487 if (units === undefined || units === 'millisecond' || !this.isValid()) { 35488 return this; 35489 } 35490 35491 startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate; 35492 35493 switch (units) { 35494 case 'year': 35495 time = startOfDate(this.year() + 1, 0, 1) - 1; 35496 break; 35497 case 'quarter': 35498 time = 35499 startOfDate( 35500 this.year(), 35501 this.month() - (this.month() % 3) + 3, 35502 1 35503 ) - 1; 35504 break; 35505 case 'month': 35506 time = startOfDate(this.year(), this.month() + 1, 1) - 1; 35507 break; 35508 case 'week': 35509 time = 35510 startOfDate( 35511 this.year(), 35512 this.month(), 35513 this.date() - this.weekday() + 7 35514 ) - 1; 35515 break; 35516 case 'isoWeek': 35517 time = 35518 startOfDate( 35519 this.year(), 35520 this.month(), 35521 this.date() - (this.isoWeekday() - 1) + 7 35522 ) - 1; 35523 break; 35524 case 'day': 35525 case 'date': 35526 time = startOfDate(this.year(), this.month(), this.date() + 1) - 1; 35527 break; 35528 case 'hour': 35529 time = this._d.valueOf(); 35530 time += 35531 MS_PER_HOUR - 35532 mod$1( 35533 time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), 35534 MS_PER_HOUR 35535 ) - 35536 1; 35537 break; 35538 case 'minute': 35539 time = this._d.valueOf(); 35540 time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1; 35541 break; 35542 case 'second': 35543 time = this._d.valueOf(); 35544 time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1; 35545 break; 35546 } 35547 35548 this._d.setTime(time); 35549 hooks.updateOffset(this, true); 35550 return this; 35551 } 35552 35553 function valueOf() { 35554 return this._d.valueOf() - (this._offset || 0) * 60000; 35555 } 35556 35557 function unix() { 35558 return Math.floor(this.valueOf() / 1000); 35559 } 35560 35561 function toDate() { 35562 return new Date(this.valueOf()); 35563 } 35564 35565 function toArray() { 35566 var m = this; 35567 return [ 35568 m.year(), 35569 m.month(), 35570 m.date(), 35571 m.hour(), 35572 m.minute(), 35573 m.second(), 35574 m.millisecond(), 35575 ]; 35576 } 35577 35578 function toObject() { 35579 var m = this; 35580 return { 35581 years: m.year(), 35582 months: m.month(), 35583 date: m.date(), 35584 hours: m.hours(), 35585 minutes: m.minutes(), 35586 seconds: m.seconds(), 35587 milliseconds: m.milliseconds(), 35588 }; 35589 } 35590 35591 function toJSON() { 35592 // new Date(NaN).toJSON() === null 35593 return this.isValid() ? this.toISOString() : null; 35594 } 35595 35596 function isValid$2() { 35597 return isValid(this); 35598 } 35599 35600 function parsingFlags() { 35601 return extend({}, getParsingFlags(this)); 35602 } 35603 35604 function invalidAt() { 35605 return getParsingFlags(this).overflow; 35606 } 35607 35608 function creationData() { 35609 return { 35610 input: this._i, 35611 format: this._f, 35612 locale: this._locale, 35613 isUTC: this._isUTC, 35614 strict: this._strict, 35615 }; 35616 } 35617 35618 addFormatToken('N', 0, 0, 'eraAbbr'); 35619 addFormatToken('NN', 0, 0, 'eraAbbr'); 35620 addFormatToken('NNN', 0, 0, 'eraAbbr'); 35621 addFormatToken('NNNN', 0, 0, 'eraName'); 35622 addFormatToken('NNNNN', 0, 0, 'eraNarrow'); 35623 35624 addFormatToken('y', ['y', 1], 'yo', 'eraYear'); 35625 addFormatToken('y', ['yy', 2], 0, 'eraYear'); 35626 addFormatToken('y', ['yyy', 3], 0, 'eraYear'); 35627 addFormatToken('y', ['yyyy', 4], 0, 'eraYear'); 35628 35629 addRegexToken('N', matchEraAbbr); 35630 addRegexToken('NN', matchEraAbbr); 35631 addRegexToken('NNN', matchEraAbbr); 35632 addRegexToken('NNNN', matchEraName); 35633 addRegexToken('NNNNN', matchEraNarrow); 35634 35635 addParseToken( 35636 ['N', 'NN', 'NNN', 'NNNN', 'NNNNN'], 35637 function (input, array, config, token) { 35638 var era = config._locale.erasParse(input, token, config._strict); 35639 if (era) { 35640 getParsingFlags(config).era = era; 35641 } else { 35642 getParsingFlags(config).invalidEra = input; 35643 } 35644 } 35645 ); 35646 35647 addRegexToken('y', matchUnsigned); 35648 addRegexToken('yy', matchUnsigned); 35649 addRegexToken('yyy', matchUnsigned); 35650 addRegexToken('yyyy', matchUnsigned); 35651 addRegexToken('yo', matchEraYearOrdinal); 35652 35653 addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR); 35654 addParseToken(['yo'], function (input, array, config, token) { 35655 var match; 35656 if (config._locale._eraYearOrdinalRegex) { 35657 match = input.match(config._locale._eraYearOrdinalRegex); 35658 } 35659 35660 if (config._locale.eraYearOrdinalParse) { 35661 array[YEAR] = config._locale.eraYearOrdinalParse(input, match); 35662 } else { 35663 array[YEAR] = parseInt(input, 10); 35664 } 35665 }); 35666 35667 function localeEras(m, format) { 35668 var i, 35669 l, 35670 date, 35671 eras = this._eras || getLocale('en')._eras; 35672 for (i = 0, l = eras.length; i < l; ++i) { 35673 switch (typeof eras[i].since) { 35674 case 'string': 35675 // truncate time 35676 date = hooks(eras[i].since).startOf('day'); 35677 eras[i].since = date.valueOf(); 35678 break; 35679 } 35680 35681 switch (typeof eras[i].until) { 35682 case 'undefined': 35683 eras[i].until = +Infinity; 35684 break; 35685 case 'string': 35686 // truncate time 35687 date = hooks(eras[i].until).startOf('day').valueOf(); 35688 eras[i].until = date.valueOf(); 35689 break; 35690 } 35691 } 35692 return eras; 35693 } 35694 35695 function localeErasParse(eraName, format, strict) { 35696 var i, 35697 l, 35698 eras = this.eras(), 35699 name, 35700 abbr, 35701 narrow; 35702 eraName = eraName.toUpperCase(); 35703 35704 for (i = 0, l = eras.length; i < l; ++i) { 35705 name = eras[i].name.toUpperCase(); 35706 abbr = eras[i].abbr.toUpperCase(); 35707 narrow = eras[i].narrow.toUpperCase(); 35708 35709 if (strict) { 35710 switch (format) { 35711 case 'N': 35712 case 'NN': 35713 case 'NNN': 35714 if (abbr === eraName) { 35715 return eras[i]; 35716 } 35717 break; 35718 35719 case 'NNNN': 35720 if (name === eraName) { 35721 return eras[i]; 35722 } 35723 break; 35724 35725 case 'NNNNN': 35726 if (narrow === eraName) { 35727 return eras[i]; 35728 } 35729 break; 35730 } 35731 } else if ([name, abbr, narrow].indexOf(eraName) >= 0) { 35732 return eras[i]; 35733 } 35734 } 35735 } 35736 35737 function localeErasConvertYear(era, year) { 35738 var dir = era.since <= era.until ? +1 : -1; 35739 if (year === undefined) { 35740 return hooks(era.since).year(); 35741 } else { 35742 return hooks(era.since).year() + (year - era.offset) * dir; 35743 } 35744 } 35745 35746 function getEraName() { 35747 var i, 35748 l, 35749 val, 35750 eras = this.localeData().eras(); 35751 for (i = 0, l = eras.length; i < l; ++i) { 35752 // truncate time 35753 val = this.clone().startOf('day').valueOf(); 35754 35755 if (eras[i].since <= val && val <= eras[i].until) { 35756 return eras[i].name; 35757 } 35758 if (eras[i].until <= val && val <= eras[i].since) { 35759 return eras[i].name; 35760 } 35761 } 35762 35763 return ''; 35764 } 35765 35766 function getEraNarrow() { 35767 var i, 35768 l, 35769 val, 35770 eras = this.localeData().eras(); 35771 for (i = 0, l = eras.length; i < l; ++i) { 35772 // truncate time 35773 val = this.clone().startOf('day').valueOf(); 35774 35775 if (eras[i].since <= val && val <= eras[i].until) { 35776 return eras[i].narrow; 35777 } 35778 if (eras[i].until <= val && val <= eras[i].since) { 35779 return eras[i].narrow; 35780 } 35781 } 35782 35783 return ''; 35784 } 35785 35786 function getEraAbbr() { 35787 var i, 35788 l, 35789 val, 35790 eras = this.localeData().eras(); 35791 for (i = 0, l = eras.length; i < l; ++i) { 35792 // truncate time 35793 val = this.clone().startOf('day').valueOf(); 35794 35795 if (eras[i].since <= val && val <= eras[i].until) { 35796 return eras[i].abbr; 35797 } 35798 if (eras[i].until <= val && val <= eras[i].since) { 35799 return eras[i].abbr; 35800 } 35801 } 35802 35803 return ''; 35804 } 35805 35806 function getEraYear() { 35807 var i, 35808 l, 35809 dir, 35810 val, 35811 eras = this.localeData().eras(); 35812 for (i = 0, l = eras.length; i < l; ++i) { 35813 dir = eras[i].since <= eras[i].until ? +1 : -1; 35814 35815 // truncate time 35816 val = this.clone().startOf('day').valueOf(); 35817 35818 if ( 35819 (eras[i].since <= val && val <= eras[i].until) || 35820 (eras[i].until <= val && val <= eras[i].since) 35821 ) { 35822 return ( 35823 (this.year() - hooks(eras[i].since).year()) * dir + 35824 eras[i].offset 35825 ); 35826 } 35827 } 35828 35829 return this.year(); 35830 } 35831 35832 function erasNameRegex(isStrict) { 35833 if (!hasOwnProp(this, '_erasNameRegex')) { 35834 computeErasParse.call(this); 35835 } 35836 return isStrict ? this._erasNameRegex : this._erasRegex; 35837 } 35838 35839 function erasAbbrRegex(isStrict) { 35840 if (!hasOwnProp(this, '_erasAbbrRegex')) { 35841 computeErasParse.call(this); 35842 } 35843 return isStrict ? this._erasAbbrRegex : this._erasRegex; 35844 } 35845 35846 function erasNarrowRegex(isStrict) { 35847 if (!hasOwnProp(this, '_erasNarrowRegex')) { 35848 computeErasParse.call(this); 35849 } 35850 return isStrict ? this._erasNarrowRegex : this._erasRegex; 35851 } 35852 35853 function matchEraAbbr(isStrict, locale) { 35854 return locale.erasAbbrRegex(isStrict); 35855 } 35856 35857 function matchEraName(isStrict, locale) { 35858 return locale.erasNameRegex(isStrict); 35859 } 35860 35861 function matchEraNarrow(isStrict, locale) { 35862 return locale.erasNarrowRegex(isStrict); 35863 } 35864 35865 function matchEraYearOrdinal(isStrict, locale) { 35866 return locale._eraYearOrdinalRegex || matchUnsigned; 35867 } 35868 35869 function computeErasParse() { 35870 var abbrPieces = [], 35871 namePieces = [], 35872 narrowPieces = [], 35873 mixedPieces = [], 35874 i, 35875 l, 35876 erasName, 35877 erasAbbr, 35878 erasNarrow, 35879 eras = this.eras(); 35880 35881 for (i = 0, l = eras.length; i < l; ++i) { 35882 erasName = regexEscape(eras[i].name); 35883 erasAbbr = regexEscape(eras[i].abbr); 35884 erasNarrow = regexEscape(eras[i].narrow); 35885 35886 namePieces.push(erasName); 35887 abbrPieces.push(erasAbbr); 35888 narrowPieces.push(erasNarrow); 35889 mixedPieces.push(erasName); 35890 mixedPieces.push(erasAbbr); 35891 mixedPieces.push(erasNarrow); 35892 } 35893 35894 this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i'); 35895 this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i'); 35896 this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i'); 35897 this._erasNarrowRegex = new RegExp( 35898 '^(' + narrowPieces.join('|') + ')', 35899 'i' 35900 ); 35901 } 35902 35903 // FORMATTING 35904 35905 addFormatToken(0, ['gg', 2], 0, function () { 35906 return this.weekYear() % 100; 35907 }); 35908 35909 addFormatToken(0, ['GG', 2], 0, function () { 35910 return this.isoWeekYear() % 100; 35911 }); 35912 35913 function addWeekYearFormatToken(token, getter) { 35914 addFormatToken(0, [token, token.length], 0, getter); 35915 } 35916 35917 addWeekYearFormatToken('gggg', 'weekYear'); 35918 addWeekYearFormatToken('ggggg', 'weekYear'); 35919 addWeekYearFormatToken('GGGG', 'isoWeekYear'); 35920 addWeekYearFormatToken('GGGGG', 'isoWeekYear'); 35921 35922 // ALIASES 35923 35924 // PARSING 35925 35926 addRegexToken('G', matchSigned); 35927 addRegexToken('g', matchSigned); 35928 addRegexToken('GG', match1to2, match2); 35929 addRegexToken('gg', match1to2, match2); 35930 addRegexToken('GGGG', match1to4, match4); 35931 addRegexToken('gggg', match1to4, match4); 35932 addRegexToken('GGGGG', match1to6, match6); 35933 addRegexToken('ggggg', match1to6, match6); 35934 35935 addWeekParseToken( 35936 ['gggg', 'ggggg', 'GGGG', 'GGGGG'], 35937 function (input, week, config, token) { 35938 week[token.substr(0, 2)] = toInt(input); 35939 } 35940 ); 35941 35942 addWeekParseToken(['gg', 'GG'], function (input, week, config, token) { 35943 week[token] = hooks.parseTwoDigitYear(input); 35944 }); 35945 35946 // MOMENTS 35947 35948 function getSetWeekYear(input) { 35949 return getSetWeekYearHelper.call( 35950 this, 35951 input, 35952 this.week(), 35953 this.weekday() + this.localeData()._week.dow, 35954 this.localeData()._week.dow, 35955 this.localeData()._week.doy 35956 ); 35957 } 35958 35959 function getSetISOWeekYear(input) { 35960 return getSetWeekYearHelper.call( 35961 this, 35962 input, 35963 this.isoWeek(), 35964 this.isoWeekday(), 35965 1, 35966 4 35967 ); 35968 } 35969 35970 function getISOWeeksInYear() { 35971 return weeksInYear(this.year(), 1, 4); 35972 } 35973 35974 function getISOWeeksInISOWeekYear() { 35975 return weeksInYear(this.isoWeekYear(), 1, 4); 35976 } 35977 35978 function getWeeksInYear() { 35979 var weekInfo = this.localeData()._week; 35980 return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy); 35981 } 35982 35983 function getWeeksInWeekYear() { 35984 var weekInfo = this.localeData()._week; 35985 return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy); 35986 } 35987 35988 function getSetWeekYearHelper(input, week, weekday, dow, doy) { 35989 var weeksTarget; 35990 if (input == null) { 35991 return weekOfYear(this, dow, doy).year; 35992 } else { 35993 weeksTarget = weeksInYear(input, dow, doy); 35994 if (week > weeksTarget) { 35995 week = weeksTarget; 35996 } 35997 return setWeekAll.call(this, input, week, weekday, dow, doy); 35998 } 35999 } 36000 36001 function setWeekAll(weekYear, week, weekday, dow, doy) { 36002 var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy), 36003 date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear); 36004 36005 this.year(date.getUTCFullYear()); 36006 this.month(date.getUTCMonth()); 36007 this.date(date.getUTCDate()); 36008 return this; 36009 } 36010 36011 // FORMATTING 36012 36013 addFormatToken('Q', 0, 'Qo', 'quarter'); 36014 36015 // PARSING 36016 36017 addRegexToken('Q', match1); 36018 addParseToken('Q', function (input, array) { 36019 array[MONTH] = (toInt(input) - 1) * 3; 36020 }); 36021 36022 // MOMENTS 36023 36024 function getSetQuarter(input) { 36025 return input == null 36026 ? Math.ceil((this.month() + 1) / 3) 36027 : this.month((input - 1) * 3 + (this.month() % 3)); 36028 } 36029 36030 // FORMATTING 36031 36032 addFormatToken('D', ['DD', 2], 'Do', 'date'); 36033 36034 // PARSING 36035 36036 addRegexToken('D', match1to2, match1to2NoLeadingZero); 36037 addRegexToken('DD', match1to2, match2); 36038 addRegexToken('Do', function (isStrict, locale) { 36039 // TODO: Remove "ordinalParse" fallback in next major release. 36040 return isStrict 36041 ? locale._dayOfMonthOrdinalParse || locale._ordinalParse 36042 : locale._dayOfMonthOrdinalParseLenient; 36043 }); 36044 36045 addParseToken(['D', 'DD'], DATE); 36046 addParseToken('Do', function (input, array) { 36047 array[DATE] = toInt(input.match(match1to2)[0]); 36048 }); 36049 36050 // MOMENTS 36051 36052 var getSetDayOfMonth = makeGetSet('Date', true); 36053 36054 // FORMATTING 36055 36056 addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear'); 36057 36058 // PARSING 36059 36060 addRegexToken('DDD', match1to3); 36061 addRegexToken('DDDD', match3); 36062 addParseToken(['DDD', 'DDDD'], function (input, array, config) { 36063 config._dayOfYear = toInt(input); 36064 }); 36065 36066 // HELPERS 36067 36068 // MOMENTS 36069 36070 function getSetDayOfYear(input) { 36071 var dayOfYear = 36072 Math.round( 36073 (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5 36074 ) + 1; 36075 return input == null ? dayOfYear : this.add(input - dayOfYear, 'd'); 36076 } 36077 36078 // FORMATTING 36079 36080 addFormatToken('m', ['mm', 2], 0, 'minute'); 36081 36082 // PARSING 36083 36084 addRegexToken('m', match1to2, match1to2HasZero); 36085 addRegexToken('mm', match1to2, match2); 36086 addParseToken(['m', 'mm'], MINUTE); 36087 36088 // MOMENTS 36089 36090 var getSetMinute = makeGetSet('Minutes', false); 36091 36092 // FORMATTING 36093 36094 addFormatToken('s', ['ss', 2], 0, 'second'); 36095 36096 // PARSING 36097 36098 addRegexToken('s', match1to2, match1to2HasZero); 36099 addRegexToken('ss', match1to2, match2); 36100 addParseToken(['s', 'ss'], SECOND); 36101 36102 // MOMENTS 36103 36104 var getSetSecond = makeGetSet('Seconds', false); 36105 36106 // FORMATTING 36107 36108 addFormatToken('S', 0, 0, function () { 36109 return ~~(this.millisecond() / 100); 36110 }); 36111 36112 addFormatToken(0, ['SS', 2], 0, function () { 36113 return ~~(this.millisecond() / 10); 36114 }); 36115 36116 addFormatToken(0, ['SSS', 3], 0, 'millisecond'); 36117 addFormatToken(0, ['SSSS', 4], 0, function () { 36118 return this.millisecond() * 10; 36119 }); 36120 addFormatToken(0, ['SSSSS', 5], 0, function () { 36121 return this.millisecond() * 100; 36122 }); 36123 addFormatToken(0, ['SSSSSS', 6], 0, function () { 36124 return this.millisecond() * 1000; 36125 }); 36126 addFormatToken(0, ['SSSSSSS', 7], 0, function () { 36127 return this.millisecond() * 10000; 36128 }); 36129 addFormatToken(0, ['SSSSSSSS', 8], 0, function () { 36130 return this.millisecond() * 100000; 36131 }); 36132 addFormatToken(0, ['SSSSSSSSS', 9], 0, function () { 36133 return this.millisecond() * 1000000; 36134 }); 36135 36136 // PARSING 36137 36138 addRegexToken('S', match1to3, match1); 36139 addRegexToken('SS', match1to3, match2); 36140 addRegexToken('SSS', match1to3, match3); 36141 36142 var token, getSetMillisecond; 36143 for (token = 'SSSS'; token.length <= 9; token += 'S') { 36144 addRegexToken(token, matchUnsigned); 36145 } 36146 36147 function parseMs(input, array) { 36148 array[MILLISECOND] = toInt(('0.' + input) * 1000); 36149 } 36150 36151 for (token = 'S'; token.length <= 9; token += 'S') { 36152 addParseToken(token, parseMs); 36153 } 36154 36155 getSetMillisecond = makeGetSet('Milliseconds', false); 36156 36157 // FORMATTING 36158 36159 addFormatToken('z', 0, 0, 'zoneAbbr'); 36160 addFormatToken('zz', 0, 0, 'zoneName'); 36161 36162 // MOMENTS 36163 36164 function getZoneAbbr() { 36165 return this._isUTC ? 'UTC' : ''; 36166 } 36167 36168 function getZoneName() { 36169 return this._isUTC ? 'Coordinated Universal Time' : ''; 36170 } 36171 36172 var proto = Moment.prototype; 36173 36174 proto.add = add; 36175 proto.calendar = calendar$1; 36176 proto.clone = clone; 36177 proto.diff = diff; 36178 proto.endOf = endOf; 36179 proto.format = format; 36180 proto.from = from; 36181 proto.fromNow = fromNow; 36182 proto.to = to; 36183 proto.toNow = toNow; 36184 proto.get = stringGet; 36185 proto.invalidAt = invalidAt; 36186 proto.isAfter = isAfter; 36187 proto.isBefore = isBefore; 36188 proto.isBetween = isBetween; 36189 proto.isSame = isSame; 36190 proto.isSameOrAfter = isSameOrAfter; 36191 proto.isSameOrBefore = isSameOrBefore; 36192 proto.isValid = isValid$2; 36193 proto.lang = lang; 36194 proto.locale = locale; 36195 proto.localeData = localeData; 36196 proto.max = prototypeMax; 36197 proto.min = prototypeMin; 36198 proto.parsingFlags = parsingFlags; 36199 proto.set = stringSet; 36200 proto.startOf = startOf; 36201 proto.subtract = subtract; 36202 proto.toArray = toArray; 36203 proto.toObject = toObject; 36204 proto.toDate = toDate; 36205 proto.toISOString = toISOString; 36206 proto.inspect = inspect; 36207 if (typeof Symbol !== 'undefined' && Symbol.for != null) { 36208 proto[Symbol.for('nodejs.util.inspect.custom')] = function () { 36209 return 'Moment<' + this.format() + '>'; 36210 }; 36211 } 36212 proto.toJSON = toJSON; 36213 proto.toString = toString; 36214 proto.unix = unix; 36215 proto.valueOf = valueOf; 36216 proto.creationData = creationData; 36217 proto.eraName = getEraName; 36218 proto.eraNarrow = getEraNarrow; 36219 proto.eraAbbr = getEraAbbr; 36220 proto.eraYear = getEraYear; 36221 proto.year = getSetYear; 36222 proto.isLeapYear = getIsLeapYear; 36223 proto.weekYear = getSetWeekYear; 36224 proto.isoWeekYear = getSetISOWeekYear; 36225 proto.quarter = proto.quarters = getSetQuarter; 36226 proto.month = getSetMonth; 36227 proto.daysInMonth = getDaysInMonth; 36228 proto.week = proto.weeks = getSetWeek; 36229 proto.isoWeek = proto.isoWeeks = getSetISOWeek; 36230 proto.weeksInYear = getWeeksInYear; 36231 proto.weeksInWeekYear = getWeeksInWeekYear; 36232 proto.isoWeeksInYear = getISOWeeksInYear; 36233 proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear; 36234 proto.date = getSetDayOfMonth; 36235 proto.day = proto.days = getSetDayOfWeek; 36236 proto.weekday = getSetLocaleDayOfWeek; 36237 proto.isoWeekday = getSetISODayOfWeek; 36238 proto.dayOfYear = getSetDayOfYear; 36239 proto.hour = proto.hours = getSetHour; 36240 proto.minute = proto.minutes = getSetMinute; 36241 proto.second = proto.seconds = getSetSecond; 36242 proto.millisecond = proto.milliseconds = getSetMillisecond; 36243 proto.utcOffset = getSetOffset; 36244 proto.utc = setOffsetToUTC; 36245 proto.local = setOffsetToLocal; 36246 proto.parseZone = setOffsetToParsedOffset; 36247 proto.hasAlignedHourOffset = hasAlignedHourOffset; 36248 proto.isDST = isDaylightSavingTime; 36249 proto.isLocal = isLocal; 36250 proto.isUtcOffset = isUtcOffset; 36251 proto.isUtc = isUtc; 36252 proto.isUTC = isUtc; 36253 proto.zoneAbbr = getZoneAbbr; 36254 proto.zoneName = getZoneName; 36255 proto.dates = deprecate( 36256 'dates accessor is deprecated. Use date instead.', 36257 getSetDayOfMonth 36258 ); 36259 proto.months = deprecate( 36260 'months accessor is deprecated. Use month instead', 36261 getSetMonth 36262 ); 36263 proto.years = deprecate( 36264 'years accessor is deprecated. Use year instead', 36265 getSetYear 36266 ); 36267 proto.zone = deprecate( 36268 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/', 36269 getSetZone 36270 ); 36271 proto.isDSTShifted = deprecate( 36272 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information', 36273 isDaylightSavingTimeShifted 36274 ); 36275 36276 function createUnix(input) { 36277 return createLocal(input * 1000); 36278 } 36279 36280 function createInZone() { 36281 return createLocal.apply(null, arguments).parseZone(); 36282 } 36283 36284 function preParsePostFormat(string) { 36285 return string; 36286 } 36287 36288 var proto$1 = Locale.prototype; 36289 36290 proto$1.calendar = calendar; 36291 proto$1.longDateFormat = longDateFormat; 36292 proto$1.invalidDate = invalidDate; 36293 proto$1.ordinal = ordinal; 36294 proto$1.preparse = preParsePostFormat; 36295 proto$1.postformat = preParsePostFormat; 36296 proto$1.relativeTime = relativeTime; 36297 proto$1.pastFuture = pastFuture; 36298 proto$1.set = set; 36299 proto$1.eras = localeEras; 36300 proto$1.erasParse = localeErasParse; 36301 proto$1.erasConvertYear = localeErasConvertYear; 36302 proto$1.erasAbbrRegex = erasAbbrRegex; 36303 proto$1.erasNameRegex = erasNameRegex; 36304 proto$1.erasNarrowRegex = erasNarrowRegex; 36305 36306 proto$1.months = localeMonths; 36307 proto$1.monthsShort = localeMonthsShort; 36308 proto$1.monthsParse = localeMonthsParse; 36309 proto$1.monthsRegex = monthsRegex; 36310 proto$1.monthsShortRegex = monthsShortRegex; 36311 proto$1.week = localeWeek; 36312 proto$1.firstDayOfYear = localeFirstDayOfYear; 36313 proto$1.firstDayOfWeek = localeFirstDayOfWeek; 36314 36315 proto$1.weekdays = localeWeekdays; 36316 proto$1.weekdaysMin = localeWeekdaysMin; 36317 proto$1.weekdaysShort = localeWeekdaysShort; 36318 proto$1.weekdaysParse = localeWeekdaysParse; 36319 36320 proto$1.weekdaysRegex = weekdaysRegex; 36321 proto$1.weekdaysShortRegex = weekdaysShortRegex; 36322 proto$1.weekdaysMinRegex = weekdaysMinRegex; 36323 36324 proto$1.isPM = localeIsPM; 36325 proto$1.meridiem = localeMeridiem; 36326 36327 function get$1(format, index, field, setter) { 36328 var locale = getLocale(), 36329 utc = createUTC().set(setter, index); 36330 return locale[field](utc, format); 36331 } 36332 36333 function listMonthsImpl(format, index, field) { 36334 if (isNumber(format)) { 36335 index = format; 36336 format = undefined; 36337 } 36338 36339 format = format || ''; 36340 36341 if (index != null) { 36342 return get$1(format, index, field, 'month'); 36343 } 36344 36345 var i, 36346 out = []; 36347 for (i = 0; i < 12; i++) { 36348 out[i] = get$1(format, i, field, 'month'); 36349 } 36350 return out; 36351 } 36352 36353 // () 36354 // (5) 36355 // (fmt, 5) 36356 // (fmt) 36357 // (true) 36358 // (true, 5) 36359 // (true, fmt, 5) 36360 // (true, fmt) 36361 function listWeekdaysImpl(localeSorted, format, index, field) { 36362 if (typeof localeSorted === 'boolean') { 36363 if (isNumber(format)) { 36364 index = format; 36365 format = undefined; 36366 } 36367 36368 format = format || ''; 36369 } else { 36370 format = localeSorted; 36371 index = format; 36372 localeSorted = false; 36373 36374 if (isNumber(format)) { 36375 index = format; 36376 format = undefined; 36377 } 36378 36379 format = format || ''; 36380 } 36381 36382 var locale = getLocale(), 36383 shift = localeSorted ? locale._week.dow : 0, 36384 i, 36385 out = []; 36386 36387 if (index != null) { 36388 return get$1(format, (index + shift) % 7, field, 'day'); 36389 } 36390 36391 for (i = 0; i < 7; i++) { 36392 out[i] = get$1(format, (i + shift) % 7, field, 'day'); 36393 } 36394 return out; 36395 } 36396 36397 function listMonths(format, index) { 36398 return listMonthsImpl(format, index, 'months'); 36399 } 36400 36401 function listMonthsShort(format, index) { 36402 return listMonthsImpl(format, index, 'monthsShort'); 36403 } 36404 36405 function listWeekdays(localeSorted, format, index) { 36406 return listWeekdaysImpl(localeSorted, format, index, 'weekdays'); 36407 } 36408 36409 function listWeekdaysShort(localeSorted, format, index) { 36410 return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort'); 36411 } 36412 36413 function listWeekdaysMin(localeSorted, format, index) { 36414 return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin'); 36415 } 36416 36417 getSetGlobalLocale('en', { 36418 eras: [ 36419 { 36420 since: '0001-01-01', 36421 until: +Infinity, 36422 offset: 1, 36423 name: 'Anno Domini', 36424 narrow: 'AD', 36425 abbr: 'AD', 36426 }, 36427 { 36428 since: '0000-12-31', 36429 until: -Infinity, 36430 offset: 1, 36431 name: 'Before Christ', 36432 narrow: 'BC', 36433 abbr: 'BC', 36434 }, 36435 ], 36436 dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/, 36437 ordinal: function (number) { 36438 var b = number % 10, 36439 output = 36440 toInt((number % 100) / 10) === 1 36441 ? 'th' 36442 : b === 1 36443 ? 'st' 36444 : b === 2 36445 ? 'nd' 36446 : b === 3 36447 ? 'rd' 36448 : 'th'; 36449 return number + output; 36450 }, 36451 }); 36452 36453 // Side effect imports 36454 36455 hooks.lang = deprecate( 36456 'moment.lang is deprecated. Use moment.locale instead.', 36457 getSetGlobalLocale 36458 ); 36459 hooks.langData = deprecate( 36460 'moment.langData is deprecated. Use moment.localeData instead.', 36461 getLocale 36462 ); 36463 36464 var mathAbs = Math.abs; 36465 36466 function abs() { 36467 var data = this._data; 36468 36469 this._milliseconds = mathAbs(this._milliseconds); 36470 this._days = mathAbs(this._days); 36471 this._months = mathAbs(this._months); 36472 36473 data.milliseconds = mathAbs(data.milliseconds); 36474 data.seconds = mathAbs(data.seconds); 36475 data.minutes = mathAbs(data.minutes); 36476 data.hours = mathAbs(data.hours); 36477 data.months = mathAbs(data.months); 36478 data.years = mathAbs(data.years); 36479 36480 return this; 36481 } 36482 36483 function addSubtract$1(duration, input, value, direction) { 36484 var other = createDuration(input, value); 36485 36486 duration._milliseconds += direction * other._milliseconds; 36487 duration._days += direction * other._days; 36488 duration._months += direction * other._months; 36489 36490 return duration._bubble(); 36491 } 36492 36493 // supports only 2.0-style add(1, 's') or add(duration) 36494 function add$1(input, value) { 36495 return addSubtract$1(this, input, value, 1); 36496 } 36497 36498 // supports only 2.0-style subtract(1, 's') or subtract(duration) 36499 function subtract$1(input, value) { 36500 return addSubtract$1(this, input, value, -1); 36501 } 36502 36503 function absCeil(number) { 36504 if (number < 0) { 36505 return Math.floor(number); 36506 } else { 36507 return Math.ceil(number); 36508 } 36509 } 36510 36511 function bubble() { 36512 var milliseconds = this._milliseconds, 36513 days = this._days, 36514 months = this._months, 36515 data = this._data, 36516 seconds, 36517 minutes, 36518 hours, 36519 years, 36520 monthsFromDays; 36521 36522 // if we have a mix of positive and negative values, bubble down first 36523 // check: https://github.com/moment/moment/issues/2166 36524 if ( 36525 !( 36526 (milliseconds >= 0 && days >= 0 && months >= 0) || 36527 (milliseconds <= 0 && days <= 0 && months <= 0) 36528 ) 36529 ) { 36530 milliseconds += absCeil(monthsToDays(months) + days) * 864e5; 36531 days = 0; 36532 months = 0; 36533 } 36534 36535 // The following code bubbles up values, see the tests for 36536 // examples of what that means. 36537 data.milliseconds = milliseconds % 1000; 36538 36539 seconds = absFloor(milliseconds / 1000); 36540 data.seconds = seconds % 60; 36541 36542 minutes = absFloor(seconds / 60); 36543 data.minutes = minutes % 60; 36544 36545 hours = absFloor(minutes / 60); 36546 data.hours = hours % 24; 36547 36548 days += absFloor(hours / 24); 36549 36550 // convert days to months 36551 monthsFromDays = absFloor(daysToMonths(days)); 36552 months += monthsFromDays; 36553 days -= absCeil(monthsToDays(monthsFromDays)); 36554 36555 // 12 months -> 1 year 36556 years = absFloor(months / 12); 36557 months %= 12; 36558 36559 data.days = days; 36560 data.months = months; 36561 data.years = years; 36562 36563 return this; 36564 } 36565 36566 function daysToMonths(days) { 36567 // 400 years have 146097 days (taking into account leap year rules) 36568 // 400 years have 12 months === 4800 36569 return (days * 4800) / 146097; 36570 } 36571 36572 function monthsToDays(months) { 36573 // the reverse of daysToMonths 36574 return (months * 146097) / 4800; 36575 } 36576 36577 function as(units) { 36578 if (!this.isValid()) { 36579 return NaN; 36580 } 36581 var days, 36582 months, 36583 milliseconds = this._milliseconds; 36584 36585 units = normalizeUnits(units); 36586 36587 if (units === 'month' || units === 'quarter' || units === 'year') { 36588 days = this._days + milliseconds / 864e5; 36589 months = this._months + daysToMonths(days); 36590 switch (units) { 36591 case 'month': 36592 return months; 36593 case 'quarter': 36594 return months / 3; 36595 case 'year': 36596 return months / 12; 36597 } 36598 } else { 36599 // handle milliseconds separately because of floating point math errors (issue #1867) 36600 days = this._days + Math.round(monthsToDays(this._months)); 36601 switch (units) { 36602 case 'week': 36603 return days / 7 + milliseconds / 6048e5; 36604 case 'day': 36605 return days + milliseconds / 864e5; 36606 case 'hour': 36607 return days * 24 + milliseconds / 36e5; 36608 case 'minute': 36609 return days * 1440 + milliseconds / 6e4; 36610 case 'second': 36611 return days * 86400 + milliseconds / 1000; 36612 // Math.floor prevents floating point math errors here 36613 case 'millisecond': 36614 return Math.floor(days * 864e5) + milliseconds; 36615 default: 36616 throw new Error('Unknown unit ' + units); 36617 } 36618 } 36619 } 36620 36621 function makeAs(alias) { 36622 return function () { 36623 return this.as(alias); 36624 }; 36625 } 36626 36627 var asMilliseconds = makeAs('ms'), 36628 asSeconds = makeAs('s'), 36629 asMinutes = makeAs('m'), 36630 asHours = makeAs('h'), 36631 asDays = makeAs('d'), 36632 asWeeks = makeAs('w'), 36633 asMonths = makeAs('M'), 36634 asQuarters = makeAs('Q'), 36635 asYears = makeAs('y'), 36636 valueOf$1 = asMilliseconds; 36637 36638 function clone$1() { 36639 return createDuration(this); 36640 } 36641 36642 function get$2(units) { 36643 units = normalizeUnits(units); 36644 return this.isValid() ? this[units + 's']() : NaN; 36645 } 36646 36647 function makeGetter(name) { 36648 return function () { 36649 return this.isValid() ? this._data[name] : NaN; 36650 }; 36651 } 36652 36653 var milliseconds = makeGetter('milliseconds'), 36654 seconds = makeGetter('seconds'), 36655 minutes = makeGetter('minutes'), 36656 hours = makeGetter('hours'), 36657 days = makeGetter('days'), 36658 months = makeGetter('months'), 36659 years = makeGetter('years'); 36660 36661 function weeks() { 36662 return absFloor(this.days() / 7); 36663 } 36664 36665 var round = Math.round, 36666 thresholds = { 36667 ss: 44, // a few seconds to seconds 36668 s: 45, // seconds to minute 36669 m: 45, // minutes to hour 36670 h: 22, // hours to day 36671 d: 26, // days to month/week 36672 w: null, // weeks to month 36673 M: 11, // months to year 36674 }; 36675 36676 // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize 36677 function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) { 36678 return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture); 36679 } 36680 36681 function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) { 36682 var duration = createDuration(posNegDuration).abs(), 36683 seconds = round(duration.as('s')), 36684 minutes = round(duration.as('m')), 36685 hours = round(duration.as('h')), 36686 days = round(duration.as('d')), 36687 months = round(duration.as('M')), 36688 weeks = round(duration.as('w')), 36689 years = round(duration.as('y')), 36690 a = 36691 (seconds <= thresholds.ss && ['s', seconds]) || 36692 (seconds < thresholds.s && ['ss', seconds]) || 36693 (minutes <= 1 && ['m']) || 36694 (minutes < thresholds.m && ['mm', minutes]) || 36695 (hours <= 1 && ['h']) || 36696 (hours < thresholds.h && ['hh', hours]) || 36697 (days <= 1 && ['d']) || 36698 (days < thresholds.d && ['dd', days]); 36699 36700 if (thresholds.w != null) { 36701 a = 36702 a || 36703 (weeks <= 1 && ['w']) || 36704 (weeks < thresholds.w && ['ww', weeks]); 36705 } 36706 a = a || 36707 (months <= 1 && ['M']) || 36708 (months < thresholds.M && ['MM', months]) || 36709 (years <= 1 && ['y']) || ['yy', years]; 36710 36711 a[2] = withoutSuffix; 36712 a[3] = +posNegDuration > 0; 36713 a[4] = locale; 36714 return substituteTimeAgo.apply(null, a); 36715 } 36716 36717 // This function allows you to set the rounding function for relative time strings 36718 function getSetRelativeTimeRounding(roundingFunction) { 36719 if (roundingFunction === undefined) { 36720 return round; 36721 } 36722 if (typeof roundingFunction === 'function') { 36723 round = roundingFunction; 36724 return true; 36725 } 36726 return false; 36727 } 36728 36729 // This function allows you to set a threshold for relative time strings 36730 function getSetRelativeTimeThreshold(threshold, limit) { 36731 if (thresholds[threshold] === undefined) { 36732 return false; 36733 } 36734 if (limit === undefined) { 36735 return thresholds[threshold]; 36736 } 36737 thresholds[threshold] = limit; 36738 if (threshold === 's') { 36739 thresholds.ss = limit - 1; 36740 } 36741 return true; 36742 } 36743 36744 function humanize(argWithSuffix, argThresholds) { 36745 if (!this.isValid()) { 36746 return this.localeData().invalidDate(); 36747 } 36748 36749 var withSuffix = false, 36750 th = thresholds, 36751 locale, 36752 output; 36753 36754 if (typeof argWithSuffix === 'object') { 36755 argThresholds = argWithSuffix; 36756 argWithSuffix = false; 36757 } 36758 if (typeof argWithSuffix === 'boolean') { 36759 withSuffix = argWithSuffix; 36760 } 36761 if (typeof argThresholds === 'object') { 36762 th = Object.assign({}, thresholds, argThresholds); 36763 if (argThresholds.s != null && argThresholds.ss == null) { 36764 th.ss = argThresholds.s - 1; 36765 } 36766 } 36767 36768 locale = this.localeData(); 36769 output = relativeTime$1(this, !withSuffix, th, locale); 36770 36771 if (withSuffix) { 36772 output = locale.pastFuture(+this, output); 36773 } 36774 36775 return locale.postformat(output); 36776 } 36777 36778 var abs$1 = Math.abs; 36779 36780 function sign(x) { 36781 return (x > 0) - (x < 0) || +x; 36782 } 36783 36784 function toISOString$1() { 36785 // for ISO strings we do not use the normal bubbling rules: 36786 // * milliseconds bubble up until they become hours 36787 // * days do not bubble at all 36788 // * months bubble up until they become years 36789 // This is because there is no context-free conversion between hours and days 36790 // (think of clock changes) 36791 // and also not between days and months (28-31 days per month) 36792 if (!this.isValid()) { 36793 return this.localeData().invalidDate(); 36794 } 36795 36796 var seconds = abs$1(this._milliseconds) / 1000, 36797 days = abs$1(this._days), 36798 months = abs$1(this._months), 36799 minutes, 36800 hours, 36801 years, 36802 s, 36803 total = this.asSeconds(), 36804 totalSign, 36805 ymSign, 36806 daysSign, 36807 hmsSign; 36808 36809 if (!total) { 36810 // this is the same as C#'s (Noda) and python (isodate)... 36811 // but not other JS (goog.date) 36812 return 'P0D'; 36813 } 36814 36815 // 3600 seconds -> 60 minutes -> 1 hour 36816 minutes = absFloor(seconds / 60); 36817 hours = absFloor(minutes / 60); 36818 seconds %= 60; 36819 minutes %= 60; 36820 36821 // 12 months -> 1 year 36822 years = absFloor(months / 12); 36823 months %= 12; 36824 36825 // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js 36826 s = seconds ? seconds.toFixed(3).replace(/\.?0+$/, '') : ''; 36827 36828 totalSign = total < 0 ? '-' : ''; 36829 ymSign = sign(this._months) !== sign(total) ? '-' : ''; 36830 daysSign = sign(this._days) !== sign(total) ? '-' : ''; 36831 hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : ''; 36832 36833 return ( 36834 totalSign + 36835 'P' + 36836 (years ? ymSign + years + 'Y' : '') + 36837 (months ? ymSign + months + 'M' : '') + 36838 (days ? daysSign + days + 'D' : '') + 36839 (hours || minutes || seconds ? 'T' : '') + 36840 (hours ? hmsSign + hours + 'H' : '') + 36841 (minutes ? hmsSign + minutes + 'M' : '') + 36842 (seconds ? hmsSign + s + 'S' : '') 36843 ); 36844 } 36845 36846 var proto$2 = Duration.prototype; 36847 36848 proto$2.isValid = isValid$1; 36849 proto$2.abs = abs; 36850 proto$2.add = add$1; 36851 proto$2.subtract = subtract$1; 36852 proto$2.as = as; 36853 proto$2.asMilliseconds = asMilliseconds; 36854 proto$2.asSeconds = asSeconds; 36855 proto$2.asMinutes = asMinutes; 36856 proto$2.asHours = asHours; 36857 proto$2.asDays = asDays; 36858 proto$2.asWeeks = asWeeks; 36859 proto$2.asMonths = asMonths; 36860 proto$2.asQuarters = asQuarters; 36861 proto$2.asYears = asYears; 36862 proto$2.valueOf = valueOf$1; 36863 proto$2._bubble = bubble; 36864 proto$2.clone = clone$1; 36865 proto$2.get = get$2; 36866 proto$2.milliseconds = milliseconds; 36867 proto$2.seconds = seconds; 36868 proto$2.minutes = minutes; 36869 proto$2.hours = hours; 36870 proto$2.days = days; 36871 proto$2.weeks = weeks; 36872 proto$2.months = months; 36873 proto$2.years = years; 36874 proto$2.humanize = humanize; 36875 proto$2.toISOString = toISOString$1; 36876 proto$2.toString = toISOString$1; 36877 proto$2.toJSON = toISOString$1; 36878 proto$2.locale = locale; 36879 proto$2.localeData = localeData; 36880 36881 proto$2.toIsoString = deprecate( 36882 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)', 36883 toISOString$1 36884 ); 36885 proto$2.lang = lang; 36886 36887 // FORMATTING 36888 36889 addFormatToken('X', 0, 0, 'unix'); 36890 addFormatToken('x', 0, 0, 'valueOf'); 36891 36892 // PARSING 36893 36894 addRegexToken('x', matchSigned); 36895 addRegexToken('X', matchTimestamp); 36896 addParseToken('X', function (input, array, config) { 36897 config._d = new Date(parseFloat(input) * 1000); 36898 }); 36899 addParseToken('x', function (input, array, config) { 36900 config._d = new Date(toInt(input)); 36901 }); 36902 36903 //! moment.js 36904 36905 hooks.version = '2.30.1'; 36906 36907 setHookCallback(createLocal); 36908 36909 hooks.fn = proto; 36910 hooks.min = min; 36911 hooks.max = max; 36912 hooks.now = now; 36913 hooks.utc = createUTC; 36914 hooks.unix = createUnix; 36915 hooks.months = listMonths; 36916 hooks.isDate = isDate; 36917 hooks.locale = getSetGlobalLocale; 36918 hooks.invalid = createInvalid; 36919 hooks.duration = createDuration; 36920 hooks.isMoment = isMoment; 36921 hooks.weekdays = listWeekdays; 36922 hooks.parseZone = createInZone; 36923 hooks.localeData = getLocale; 36924 hooks.isDuration = isDuration; 36925 hooks.monthsShort = listMonthsShort; 36926 hooks.weekdaysMin = listWeekdaysMin; 36927 hooks.defineLocale = defineLocale; 36928 hooks.updateLocale = updateLocale; 36929 hooks.locales = listLocales; 36930 hooks.weekdaysShort = listWeekdaysShort; 36931 hooks.normalizeUnits = normalizeUnits; 36932 hooks.relativeTimeRounding = getSetRelativeTimeRounding; 36933 hooks.relativeTimeThreshold = getSetRelativeTimeThreshold; 36934 hooks.calendarFormat = getCalendarFormat; 36935 hooks.prototype = proto; 36936 36937 // currently HTML5 input type only supports 24-hour formats 36938 hooks.HTML5_FMT = { 36939 DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // <input type="datetime-local" /> 36940 DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // <input type="datetime-local" step="1" /> 36941 DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // <input type="datetime-local" step="0.001" /> 36942 DATE: 'YYYY-MM-DD', // <input type="date" /> 36943 TIME: 'HH:mm', // <input type="time" /> 36944 TIME_SECONDS: 'HH:mm:ss', // <input type="time" step="1" /> 36945 TIME_MS: 'HH:mm:ss.SSS', // <input type="time" step="0.001" /> 36946 WEEK: 'GGGG-[W]WW', // <input type="week" /> 36947 MONTH: 'YYYY-MM', // <input type="month" /> 36948 }; 36949 36950 return hooks; 36951 36952}))); 36953 36954 36955/***/ }), 36956
vendor: 8,509 bytes, lines 36957-37181
36957/***/ "./node_modules/vanillajs-datepicker/js/DateRangePicker.js": 36958/*!*****************************************************************!*\ 36959 !*** ./node_modules/vanillajs-datepicker/js/DateRangePicker.js ***! 36960 \*****************************************************************/ 36961/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { 36962 36963"use strict"; 36964__webpack_require__.r(__webpack_exports__); 36965/* harmony export */ __webpack_require__.d(__webpack_exports__, { 36966/* harmony export */ "default": () => (/* binding */ DateRangePicker) 36967/* harmony export */ }); 36968/* harmony import */ var _lib_event_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./lib/event.js */ "./node_modules/vanillajs-datepicker/js/lib/event.js"); 36969/* harmony import */ var _lib_date_format_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./lib/date-format.js */ "./node_modules/vanillajs-datepicker/js/lib/date-format.js"); 36970/* harmony import */ var _Datepicker_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Datepicker.js */ "./node_modules/vanillajs-datepicker/js/Datepicker.js"); 36971 36972 36973 36974 36975// filter out the config options inapproprite to pass to Datepicker 36976function filterOptions(options) { 36977 const newOpts = Object.assign({}, options); 36978 36979 delete newOpts.inputs; 36980 delete newOpts.allowOneSidedRange; 36981 delete newOpts.maxNumberOfDates; // to ensure each datepicker handles a single date 36982 36983 return newOpts; 36984} 36985 36986function setupDatepicker(rangepicker, changeDateListener, el, options) { 36987 (0,_lib_event_js__WEBPACK_IMPORTED_MODULE_0__.registerListeners)(rangepicker, [ 36988 [el, 'changeDate', changeDateListener], 36989 ]); 36990 new _Datepicker_js__WEBPACK_IMPORTED_MODULE_2__["default"](el, options, rangepicker); 36991} 36992 36993function onChangeDate(rangepicker, ev) { 36994 // to prevent both datepickers trigger the other side's update each other 36995 if (rangepicker._updating) { 36996 return; 36997 } 36998 rangepicker._updating = true; 36999 37000 const target = ev.target; 37001 if (target.datepicker === undefined) { 37002 return; 37003 } 37004 37005 const datepickers = rangepicker.datepickers; 37006 const [datepicker0, datepicker1] = datepickers; 37007 const setDateOptions = {render: false}; 37008 const changedSide = rangepicker.inputs.indexOf(target); 37009 const otherSide = changedSide === 0 ? 1 : 0; 37010 const changedDate = datepickers[changedSide].dates[0]; 37011 const otherDate = datepickers[otherSide].dates[0]; 37012 37013 if (changedDate !== undefined && otherDate !== undefined) { 37014 // if the start of the range > the end, swap them 37015 if (changedSide === 0 && changedDate > otherDate) { 37016 datepicker0.setDate(otherDate, setDateOptions); 37017 datepicker1.setDate(changedDate, setDateOptions); 37018 } else if (changedSide === 1 && changedDate < otherDate) { 37019 datepicker0.setDate(changedDate, setDateOptions); 37020 datepicker1.setDate(otherDate, setDateOptions); 37021 } 37022 } else if (!rangepicker.allowOneSidedRange) { 37023 // to prevent the range from becoming one-sided, copy changed side's 37024 // selection (no matter if it's empty) to the other side 37025 if (changedDate !== undefined || otherDate !== undefined) { 37026 setDateOptions.clear = true; 37027 datepickers[otherSide].setDate(datepickers[changedSide].dates, setDateOptions); 37028 } 37029 } 37030 datepickers.forEach((datepicker) => { 37031 datepicker.picker.update().render(); 37032 }); 37033 delete rangepicker._updating; 37034} 37035 37036/** 37037 * Class representing a date range picker 37038 */ 37039class DateRangePicker { 37040 /** 37041 * Create a date range picker 37042 * @param {Element} element - element to bind a date range picker 37043 * @param {Object} [options] - config options 37044 */ 37045 constructor(element, options = {}) { 37046 let inputs = Array.isArray(options.inputs) 37047 ? options.inputs 37048 : Array.from(element.querySelectorAll('input')); 37049 if (inputs.length < 2) { 37050 return; 37051 } 37052 37053 element.rangepicker = this; 37054 this.element = element; 37055 this.inputs = inputs = inputs.slice(0, 2); 37056 Object.freeze(inputs); 37057 this.allowOneSidedRange = !!options.allowOneSidedRange; 37058 37059 const changeDateListener = onChangeDate.bind(null, this); 37060 const cleanOptions = filterOptions(options); 37061 // in order for initial date setup to work right when pcicLvel > 0, 37062 // let Datepicker constructor add the instance to the rangepicker 37063 const datepickers = this.datepickers = []; 37064 inputs.forEach((input) => { 37065 setupDatepicker(this, changeDateListener, input, cleanOptions); 37066 }); 37067 Object.freeze(datepickers); 37068 Object.defineProperty(this, 'dates', { 37069 get() { 37070 return datepickers.map(datepicker => datepicker.dates[0]); 37071 }, 37072 }); 37073 // normalize the range if inital dates are given 37074 if (datepickers[0].dates.length > 0) { 37075 onChangeDate(this, {target: inputs[0]}); 37076 } else if (datepickers[1].dates.length > 0) { 37077 onChangeDate(this, {target: inputs[1]}); 37078 } 37079 } 37080 37081 /** 37082 * Set new values to the config options 37083 * @param {Object} options - config options to update 37084 */ 37085 setOptions(options) { 37086 this.allowOneSidedRange = !!options.allowOneSidedRange; 37087 37088 const cleanOptions = filterOptions(options); 37089 this.datepickers.forEach((datepicker) => { 37090 datepicker.setOptions(cleanOptions); 37091 }); 37092 } 37093 37094 /** 37095 * Destroy the DateRangePicker instance 37096 * @return {DateRangePicker} - the instance destroyed 37097 */ 37098 destroy() { 37099 this.datepickers.forEach((datepicker) => { 37100 datepicker.destroy(); 37101 }); 37102 (0,_lib_event_js__WEBPACK_IMPORTED_MODULE_0__.unregisterListeners)(this); 37103 delete this.element.rangepicker; 37104 } 37105 37106 /** 37107 * Get the start and end dates of the date range 37108 * 37109 * The method returns Date objects by default. If format string is passed, 37110 * it returns date strings formatted in given format. 37111 * The result array always contains 2 items (start date/end date) and 37112 * undefined is used for unselected side. (e.g. If none is selected, 37113 * the result will be [undefined, undefined]. If only the end date is set 37114 * when allowOneSidedRange config option is true, [undefined, endDate] will 37115 * be returned.) 37116 * 37117 * @param {String} [format] - Format string to stringify the dates 37118 * @return {Array} - Start and end dates 37119 */ 37120 getDates(format = undefined) { 37121 const callback = format 37122 ? date => (0,_lib_date_format_js__WEBPACK_IMPORTED_MODULE_1__.formatDate)(date, format, this.datepickers[0].config.locale) 37123 : date => new Date(date); 37124 37125 return this.dates.map(date => date === undefined ? date : callback(date)); 37126 } 37127 37128 /** 37129 * Set the start and end dates of the date range 37130 * 37131 * The method calls datepicker.setDate() internally using each of the 37132 * arguments in startâend order. 37133 * 37134 * When a clear: true option object is passed instead of a date, the method 37135 * clears the date. 37136 * 37137 * If an invalid date, the same date as the current one or an option object 37138 * without clear: true is passed, the method considers that argument as an 37139 * "ineffective" argument because calling datepicker.setDate() with those 37140 * values makes no changes to the date selection. 37141 * 37142 * When the allowOneSidedRange config option is false, passing {clear: true} 37143 * to clear the range works only when it is done to the last effective 37144 * argument (in other words, passed to rangeEnd or to rangeStart along with 37145 * ineffective rangeEnd). This is because when the date range is changed, 37146 * it gets normalized based on the last change at the end of the changing 37147 * process. 37148 * 37149 * @param {Date|Number|String|Object} rangeStart - Start date of the range 37150 * or {clear: true} to clear the date 37151 * @param {Date|Number|String|Object} rangeEnd - End date of the range 37152 * or {clear: true} to clear the date 37153 */ 37154 setDates(rangeStart, rangeEnd) { 37155 const { 37156 datepickers: [datepicker0, datepicker1], 37157 inputs: [input0, input1], 37158 dates: [origDate0, origDate1], 37159 } = this; 37160 37161 // If range normalization runs on every change, we can't set a new range 37162 // that starts after the end of the current range correctly because the 37163 // normalization process swaps startâï¸end right after setting the new start 37164 // date. To prevent this, the normalization process needs to run once after 37165 // both of the new dates are set. 37166 this._updating = true; 37167 datepicker0.setDate(rangeStart); 37168 datepicker1.setDate(rangeEnd); 37169 delete this._updating; 37170 37171 if (datepicker1.dates[0] !== origDate1) { 37172 onChangeDate(this, {target: input1}); 37173 } else if (datepicker0.dates[0] !== origDate0) { 37174 onChangeDate(this, {target: input0}); 37175 } 37176 } 37177} 37178 37179 37180/***/ }), 37181
vendor: 24,530 bytes, lines 37182-37787
37182/***/ "./node_modules/vanillajs-datepicker/js/Datepicker.js": 37183/*!************************************************************!*\ 37184 !*** ./node_modules/vanillajs-datepicker/js/Datepicker.js ***! 37185 \************************************************************/ 37186/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { 37187 37188"use strict"; 37189__webpack_require__.r(__webpack_exports__); 37190/* harmony export */ __webpack_require__.d(__webpack_exports__, { 37191/* harmony export */ "default": () => (/* binding */ Datepicker) 37192/* harmony export */ }); 37193/* harmony import */ var _lib_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./lib/utils.js */ "./node_modules/vanillajs-datepicker/js/lib/utils.js"); 37194/* harmony import */ var _lib_date_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./lib/date.js */ "./node_modules/vanillajs-datepicker/js/lib/date.js"); 37195/* harmony import */ var _lib_date_format_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./lib/date-format.js */ "./node_modules/vanillajs-datepicker/js/lib/date-format.js"); 37196/* harmony import */ var _lib_dom_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./lib/dom.js */ "./node_modules/vanillajs-datepicker/js/lib/dom.js"); 37197/* harmony import */ var _lib_event_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./lib/event.js */ "./node_modules/vanillajs-datepicker/js/lib/event.js"); 37198/* harmony import */ var _i18n_base_locales_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./i18n/base-locales.js */ "./node_modules/vanillajs-datepicker/js/i18n/base-locales.js"); 37199/* harmony import */ var _options_defaultOptions_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./options/defaultOptions.js */ "./node_modules/vanillajs-datepicker/js/options/defaultOptions.js"); 37200/* harmony import */ var _options_processOptions_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./options/processOptions.js */ "./node_modules/vanillajs-datepicker/js/options/processOptions.js"); 37201/* harmony import */ var _options_shortcutKeys_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./options/shortcutKeys.js */ "./node_modules/vanillajs-datepicker/js/options/shortcutKeys.js"); 37202/* harmony import */ var _picker_Picker_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./picker/Picker.js */ "./node_modules/vanillajs-datepicker/js/picker/Picker.js"); 37203/* harmony import */ var _events_functions_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./events/functions.js */ "./node_modules/vanillajs-datepicker/js/events/functions.js"); 37204/* harmony import */ var _events_elementListeners_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./events/elementListeners.js */ "./node_modules/vanillajs-datepicker/js/events/elementListeners.js"); 37205/* harmony import */ var _events_otherListeners_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./events/otherListeners.js */ "./node_modules/vanillajs-datepicker/js/events/otherListeners.js"); 37206 37207 37208 37209 37210 37211 37212 37213 37214 37215 37216 37217 37218 37219 37220function stringifyDates(dates, config) { 37221 return dates 37222 .map(dt => (0,_lib_date_format_js__WEBPACK_IMPORTED_MODULE_2__.formatDate)(dt, config.format, config.locale)) 37223 .join(config.dateDelimiter); 37224} 37225 37226// parse input dates and create an array of time values for selection 37227// returns undefined if there are no valid dates in inputDates 37228// when origDates (current selection) is passed, the function works to mix 37229// the input dates into the current selection 37230function processInputDates(datepicker, inputDates, clear = false) { 37231 if (inputDates.length === 0) { 37232 // empty input is considered valid unless origiDates is passed 37233 return clear ? [] : undefined; 37234 } 37235 37236 const {config, dates: origDates, rangeSideIndex} = datepicker; 37237 const {pickLevel, maxNumberOfDates} = config; 37238 let newDates = inputDates.reduce((dates, dt) => { 37239 let date = (0,_lib_date_format_js__WEBPACK_IMPORTED_MODULE_2__.parseDate)(dt, config.format, config.locale); 37240 if (date === undefined) { 37241 return dates; 37242 } 37243 // adjust to 1st of the month/Jan 1st of the year 37244 // or to the last day of the monh/Dec 31st of the year if the datepicker 37245 // is the range-end picker of a rangepicker 37246 date = (0,_lib_date_js__WEBPACK_IMPORTED_MODULE_1__.regularizeDate)(date, pickLevel, rangeSideIndex); 37247 if ( 37248 (0,_lib_utils_js__WEBPACK_IMPORTED_MODULE_0__.isInRange)(date, config.minDate, config.maxDate) 37249 && !dates.includes(date) 37250 && !config.checkDisabled(date, pickLevel) 37251 && (pickLevel > 0 || !config.daysOfWeekDisabled.includes(new Date(date).getDay())) 37252 ) { 37253 dates.push(date); 37254 } 37255 return dates; 37256 }, []); 37257 if (newDates.length === 0) { 37258 return; 37259 } 37260 if (config.multidate && !clear) { 37261 // get the synmetric difference between origDates and newDates 37262 newDates = newDates.reduce((dates, date) => { 37263 if (!origDates.includes(date)) { 37264 dates.push(date); 37265 } 37266 return dates; 37267 }, origDates.filter(date => !newDates.includes(date))); 37268 } 37269 // do length check always because user can input multiple dates regardless of the mode 37270 return maxNumberOfDates && newDates.length > maxNumberOfDates 37271 ? newDates.slice(maxNumberOfDates * -1) 37272 : newDates; 37273} 37274 37275// refresh the UI elements 37276// modes: 1: input only, 2, picker only, 3 both 37277function refreshUI(datepicker, mode = 3, quickRender = true, viewDate = undefined) { 37278 const {config, picker, inputField} = datepicker; 37279 if (mode & 2) { 37280 const newView = picker.active ? config.pickLevel : config.startView; 37281 picker.update(viewDate).changeView(newView).render(quickRender); 37282 } 37283 if (mode & 1 && inputField) { 37284 inputField.value = stringifyDates(datepicker.dates, config); 37285 } 37286} 37287 37288function setDate(datepicker, inputDates, options) { 37289 const config = datepicker.config; 37290 let {clear, render, autohide, revert, forceRefresh, viewDate} = options; 37291 if (render === undefined) { 37292 render = true; 37293 } 37294 if (!render) { 37295 autohide = forceRefresh = false; 37296 } else if (autohide === undefined) { 37297 autohide = config.autohide; 37298 } 37299 viewDate = (0,_lib_date_format_js__WEBPACK_IMPORTED_MODULE_2__.parseDate)(viewDate, config.format, config.locale); 37300 37301 const newDates = processInputDates(datepicker, inputDates, clear); 37302 if (!newDates && !revert) { 37303 return; 37304 } 37305 if (newDates && newDates.toString() !== datepicker.dates.toString()) { 37306 datepicker.dates = newDates; 37307 refreshUI(datepicker, render ? 3 : 1, true, viewDate); 37308 (0,_events_functions_js__WEBPACK_IMPORTED_MODULE_10__.triggerDatepickerEvent)(datepicker, 'changeDate'); 37309 } else { 37310 refreshUI(datepicker, forceRefresh ? 3 : 1, true, viewDate); 37311 } 37312 37313 if (autohide) { 37314 datepicker.hide(); 37315 } 37316} 37317 37318function getOutputConverter(datepicker, format) { 37319 return format 37320 ? date => (0,_lib_date_format_js__WEBPACK_IMPORTED_MODULE_2__.formatDate)(date, format, datepicker.config.locale) 37321 : date => new Date(date); 37322} 37323 37324/** 37325 * Class representing a date picker 37326 */ 37327class Datepicker { 37328 /** 37329 * Create a date picker 37330 * @param {Element} element - element to bind a date picker 37331 * @param {Object} [options] - config options 37332 * @param {DateRangePicker} [rangepicker] - DateRangePicker instance the 37333 * date picker belongs to. Use this only when creating date picker as a part 37334 * of date range picker 37335 */ 37336 constructor(element, options = {}, rangepicker = undefined) { 37337 element.datepicker = this; 37338 this.element = element; 37339 this.dates = []; 37340 37341 // initialize config 37342 const config = this.config = Object.assign({ 37343 buttonClass: (options.buttonClass && String(options.buttonClass)) || 'button', 37344 container: null, 37345 defaultViewDate: (0,_lib_date_js__WEBPACK_IMPORTED_MODULE_1__.today)(), 37346 maxDate: undefined, 37347 minDate: undefined, 37348 }, (0,_options_processOptions_js__WEBPACK_IMPORTED_MODULE_7__["default"])(_options_defaultOptions_js__WEBPACK_IMPORTED_MODULE_6__["default"], this)); 37349 37350 // configure by type 37351 let inputField; 37352 if (element.tagName === 'INPUT') { 37353 inputField = this.inputField = element; 37354 inputField.classList.add('datepicker-input'); 37355 if (options.container) { 37356 // omit string type check because it doesn't guarantee to avoid errors 37357 // (invalid selector string causes abend with sytax error) 37358 config.container = options.container instanceof HTMLElement 37359 ? options.container 37360 : document.querySelector(options.container); 37361 } 37362 } else { 37363 config.container = element; 37364 } 37365 if (rangepicker) { 37366 // check validiry 37367 const index = rangepicker.inputs.indexOf(inputField); 37368 const datepickers = rangepicker.datepickers; 37369 if (index < 0 || index > 1 || !Array.isArray(datepickers)) { 37370 throw Error('Invalid rangepicker object.'); 37371 } 37372 // attach itaelf to the rangepicker here so that processInputDates() can 37373 // determine if this is the range-end picker of the rangepicker while 37374 // setting inital values when pickLevel > 0 37375 datepickers[index] = this; 37376 this.rangepicker = rangepicker; 37377 this.rangeSideIndex = index; 37378 } 37379 37380 // set up config 37381 this._options = options; 37382 Object.assign(config, (0,_options_processOptions_js__WEBPACK_IMPORTED_MODULE_7__["default"])(options, this)); 37383 config.shortcutKeys = (0,_options_shortcutKeys_js__WEBPACK_IMPORTED_MODULE_8__["default"])(options.shortcutKeys || {}); 37384 37385 // process initial value 37386 const initialDates = (0,_lib_utils_js__WEBPACK_IMPORTED_MODULE_0__.stringToArray)( 37387 element.value || element.dataset.date, 37388 config.dateDelimiter 37389 ); 37390 delete element.dataset.date; 37391 const inputDateValues = processInputDates(this, initialDates); 37392 if (inputDateValues && inputDateValues.length > 0) { 37393 this.dates = inputDateValues; 37394 } 37395 if (inputField) { 37396 inputField.value = stringifyDates(this.dates, config); 37397 } 37398 37399 // set up picekr element 37400 const picker = this.picker = new _picker_Picker_js__WEBPACK_IMPORTED_MODULE_9__["default"](this); 37401 37402 const keydownListener = [element, 'keydown', _events_elementListeners_js__WEBPACK_IMPORTED_MODULE_11__.onKeydown.bind(null, this)]; 37403 if (inputField) { 37404 (0,_lib_event_js__WEBPACK_IMPORTED_MODULE_4__.registerListeners)(this, [ 37405 keydownListener, 37406 [inputField, 'focus', _events_elementListeners_js__WEBPACK_IMPORTED_MODULE_11__.onFocus.bind(null, this)], 37407 [inputField, 'mousedown', _events_elementListeners_js__WEBPACK_IMPORTED_MODULE_11__.onMousedown.bind(null, this)], 37408 [inputField, 'click', _events_elementListeners_js__WEBPACK_IMPORTED_MODULE_11__.onClickInput.bind(null, this)], 37409 [inputField, 'paste', _events_elementListeners_js__WEBPACK_IMPORTED_MODULE_11__.onPaste.bind(null, this)], 37410 // To detect a click on outside, just listening to mousedown is enough, 37411 // no need to listen to touchstart. 37412 // Actually, listening to touchstart can be a problem because, while 37413 // mousedown is fired only on tapping but not on swiping/pinching, 37414 // touchstart is fired on swiping/pinching as well. 37415 // (issue #95) 37416 [document, 'mousedown', _events_otherListeners_js__WEBPACK_IMPORTED_MODULE_12__.onClickOutside.bind(null, this)], 37417 [window, 'resize', picker.place.bind(picker)] 37418 ]); 37419 } else { 37420 (0,_lib_event_js__WEBPACK_IMPORTED_MODULE_4__.registerListeners)(this, [keydownListener]); 37421 this.show(); 37422 } 37423 } 37424 37425 /** 37426 * Format Date object or time value in given format and language 37427 * @param {Date|Number} date - date or time value to format 37428 * @param {String|Object} format - format string or object that contains 37429 * toDisplay() custom formatter, whose signature is 37430 * - args: 37431 * - date: {Date} - Date instance of the date passed to the method 37432 * - format: {Object} - the format object passed to the method 37433 * - locale: {Object} - locale for the language specified by `lang` 37434 * - return: 37435 * {String} formatted date 37436 * @param {String} [lang=en] - language code for the locale to use 37437 * @return {String} formatted date 37438 */ 37439 static formatDate(date, format, lang) { 37440 return (0,_lib_date_format_js__WEBPACK_IMPORTED_MODULE_2__.formatDate)(date, format, lang && _i18n_base_locales_js__WEBPACK_IMPORTED_MODULE_5__["default"][lang] || _i18n_base_locales_js__WEBPACK_IMPORTED_MODULE_5__["default"].en); 37441 } 37442 37443 /** 37444 * Parse date string 37445 * @param {String|Date|Number} dateStr - date string, Date object or time 37446 * value to parse 37447 * @param {String|Object} format - format string or object that contains 37448 * toValue() custom parser, whose signature is 37449 * - args: 37450 * - dateStr: {String|Date|Number} - the dateStr passed to the method 37451 * - format: {Object} - the format object passed to the method 37452 * - locale: {Object} - locale for the language specified by `lang` 37453 * - return: 37454 * {Date|Number} parsed date or its time value 37455 * @param {String} [lang=en] - language code for the locale to use 37456 * @return {Number} time value of parsed date 37457 */ 37458 static parseDate(dateStr, format, lang) { 37459 return (0,_lib_date_format_js__WEBPACK_IMPORTED_MODULE_2__.parseDate)(dateStr, format, lang && _i18n_base_locales_js__WEBPACK_IMPORTED_MODULE_5__["default"][lang] || _i18n_base_locales_js__WEBPACK_IMPORTED_MODULE_5__["default"].en); 37460 } 37461 37462 /** 37463 * @type {Object} - Installed locales in `[languageCode]: localeObject` format 37464 * en`:_English (US)_ is pre-installed. 37465 */ 37466 static get locales() { 37467 return _i18n_base_locales_js__WEBPACK_IMPORTED_MODULE_5__["default"]; 37468 } 37469 37470 /** 37471 * @type {Boolean} - Whether the picker element is shown. `true` whne shown 37472 */ 37473 get active() { 37474 return !!(this.picker && this.picker.active); 37475 } 37476 37477 /** 37478 * @type {HTMLDivElement} - DOM object of picker element 37479 */ 37480 get pickerElement() { 37481 return this.picker ? this.picker.element : undefined; 37482 } 37483 37484 /** 37485 * Set new values to the config options 37486 * @param {Object} options - config options to update 37487 */ 37488 setOptions(options) { 37489 const newOptions = (0,_options_processOptions_js__WEBPACK_IMPORTED_MODULE_7__["default"])(options, this); 37490 Object.assign(this._options, options); 37491 Object.assign(this.config, newOptions); 37492 this.picker.setOptions(newOptions); 37493 37494 refreshUI(this, 3); 37495 } 37496 37497 /** 37498 * Show the picker element 37499 */ 37500 show() { 37501 if (this.inputField) { 37502 const {config, inputField} = this; 37503 if (inputField.disabled || (inputField.readOnly && !config.enableOnReadonly)) { 37504 return; 37505 } 37506 if (!(0,_lib_dom_js__WEBPACK_IMPORTED_MODULE_3__.isActiveElement)(inputField) && !config.disableTouchKeyboard) { 37507 this._showing = true; 37508 inputField.focus(); 37509 delete this._showing; 37510 } 37511 } 37512 this.picker.show(); 37513 } 37514 37515 /** 37516 * Hide the picker element 37517 * Not available on inline picker 37518 */ 37519 hide() { 37520 if (!this.inputField) { 37521 return; 37522 } 37523 this.picker.hide(); 37524 this.picker.update().changeView(this.config.startView).render(); 37525 } 37526 37527 /** 37528 * Toggle the display of the picker element 37529 * Not available on inline picker 37530 * 37531 * Unlike hide(), the picker does not return to the start view when hiding. 37532 */ 37533 toggle() { 37534 if (!this.picker.active) { 37535 this.show(); 37536 } else if (this.inputField) { 37537 this.picker.hide(); 37538 } 37539 } 37540 37541 /** 37542 * Destroy the Datepicker instance 37543 * @return {Detepicker} - the instance destroyed 37544 */ 37545 destroy() { 37546 this.hide(); 37547 (0,_lib_event_js__WEBPACK_IMPORTED_MODULE_4__.unregisterListeners)(this); 37548 this.picker.detach(); 37549 const element = this.element; 37550 element.classList.remove('datepicker-input'); 37551 delete element.datepicker; 37552 return this; 37553 } 37554 37555 /** 37556 * Get the selected date(s) 37557 * 37558 * The method returns a Date object of selected date by default, and returns 37559 * an array of selected dates in multidate mode. If format string is passed, 37560 * it returns date string(s) formatted in given format. 37561 * 37562 * @param {String} [format] - format string to stringify the date(s) 37563 * @return {Date|String|Date[]|String[]} - selected date(s), or if none is 37564 * selected, empty array in multidate mode and undefined in sigledate mode 37565 */ 37566 getDate(format = undefined) { 37567 const callback = getOutputConverter(this, format); 37568 37569 if (this.config.multidate) { 37570 return this.dates.map(callback); 37571 } 37572 if (this.dates.length > 0) { 37573 return callback(this.dates[0]); 37574 } 37575 } 37576 37577 /** 37578 * Set selected date(s) 37579 * 37580 * In multidate mode, you can pass multiple dates as a series of arguments 37581 * or an array. (Since each date is parsed individually, the type of the 37582 * dates doesn't have to be the same.) 37583 * The given dates are used to toggle the select status of each date. The 37584 * number of selected dates is kept from exceeding the length set to 37585 * maxNumberOfDates. 37586 * 37587 * With clear: true option, the method can be used to clear the selection 37588 * and to replace the selection instead of toggling in multidate mode. 37589 * If the option is passed with no date arguments or an empty dates array, 37590 * it works as "clear" (clear the selection then set nothing), and if the 37591 * option is passed with new dates to select, it works as "replace" (clear 37592 * the selection then set the given dates) 37593 * 37594 * When render: false option is used, the method omits re-rendering the 37595 * picker element. In this case, you need to call refresh() method later in 37596 * order for the picker element to reflect the changes. The input field is 37597 * refreshed always regardless of this option. 37598 * 37599 * When invalid (unparsable, repeated, disabled or out-of-range) dates are 37600 * passed, the method ignores them and applies only valid ones. In the case 37601 * that all the given dates are invalid, which is distinguished from passing 37602 * no dates, the method considers it as an error and leaves the selection 37603 * untouched. (The input field also remains untouched unless revert: true 37604 * option is used.) 37605 * Replacing the selection with the same date(s) also causes a similar 37606 * situation. In both cases, the method does not refresh the picker element 37607 * unless forceRefresh: true option is used. 37608 * 37609 * If viewDate option is used, the method changes the focused date to the 37610 * specified date instead of the last item of the selection. 37611 * 37612 * @param {...(Date|Number|String)|Array} [dates] - Date strings, Date 37613 * objects, time values or mix of those for new selection 37614 * @param {Object} [options] - function options 37615 * - clear: {boolean} - Whether to clear the existing selection 37616 * defualt: false 37617 * - render: {boolean} - Whether to re-render the picker element 37618 * default: true 37619 * - autohide: {boolean} - Whether to hide the picker element after re-render 37620 * Ignored when used with render: false 37621 * default: config.autohide 37622 * - revert: {boolean} - Whether to refresh the input field when all the 37623 * passed dates are invalid 37624 * default: false 37625 * - forceRefresh: {boolean} - Whether to refresh the picker element when 37626 * passed dates don't change the existing selection 37627 * default: false 37628 * - viewDate: {Date|Number|String} - Date to be focused after setiing date(s) 37629 * default: The last item of the resulting selection, or defaultViewDate 37630 * config option if none is selected 37631 */ 37632 setDate(...args) { 37633 const dates = [...args]; 37634 const opts = {}; 37635 const lastArg = (0,_lib_utils_js__WEBPACK_IMPORTED_MODULE_0__.lastItemOf)(args); 37636 if ( 37637 lastArg 37638 && typeof lastArg === 'object' 37639 && !Array.isArray(lastArg) 37640 && !(lastArg instanceof Date) 37641 ) { 37642 Object.assign(opts, dates.pop()); 37643 } 37644 37645 const inputDates = Array.isArray(dates[0]) ? dates[0] : dates; 37646 setDate(this, inputDates, opts); 37647 } 37648 37649 /** 37650 * Update the selected date(s) with input field's value 37651 * Not available on inline picker 37652 * 37653 * The input field will be refreshed with properly formatted date string. 37654 * 37655 * In the case that all the entered dates are invalid (unparsable, repeated, 37656 * disabled or out-of-range), which is distinguished from empty input field, 37657 * the method leaves the input field untouched as well as the selection by 37658 * default. If revert: true option is used in this case, the input field is 37659 * refreshed with the existing selection. 37660 * The method also doesn't refresh the picker element in this case and when 37661 * the entered dates are the same as the existing selection. If 37662 * forceRefresh: true option is used, the picker element is refreshed in 37663 * these cases too. 37664 * 37665 * @param {Object} [options] - function options 37666 * - autohide: {boolean} - whether to hide the picker element after refresh 37667 * default: false 37668 * - revert: {boolean} - Whether to refresh the input field when all the 37669 * passed dates are invalid 37670 * default: false 37671 * - forceRefresh: {boolean} - Whether to refresh the picer element when 37672 * input field's value doesn't change the existing selection 37673 * default: false 37674 */ 37675 update(options = undefined) { 37676 if (!this.inputField) { 37677 return; 37678 } 37679 37680 const opts = Object.assign(options || {}, {clear: true, render: true, viewDate: undefined}); 37681 const inputDates = (0,_lib_utils_js__WEBPACK_IMPORTED_MODULE_0__.stringToArray)(this.inputField.value, this.config.dateDelimiter); 37682 setDate(this, inputDates, opts); 37683 } 37684 37685 /** 37686 * Get the focused date 37687 * 37688 * The method returns a Date object of focused date by default. If format 37689 * string is passed, it returns date string formatted in given format. 37690 * 37691 * @param {String} [format] - format string to stringify the date 37692 * @return {Date|String} - focused date (viewDate) 37693 */ 37694 getFocusedDate(format = undefined) { 37695 return getOutputConverter(this, format)(this.picker.viewDate); 37696 } 37697 37698 /** 37699 * Set focused date 37700 * 37701 * By default, the method updates the focus on the view shown at the time, 37702 * or the one set to the startView config option if the picker is hidden. 37703 * When resetView: true is passed, the view displayed is changed to the 37704 * pickLevel config option's if the picker is shown. 37705 * 37706 * @param {Date|Number|String} viewDate - date string, Date object, time 37707 * values of the date to focus 37708 * @param {Boolean} [resetView] - whether to change the view to pickLevel 37709 * config option's when the picker is shown. Ignored when the picker is 37710 * hidden 37711 */ 37712 setFocusedDate(viewDate, resetView = false) { 37713 const {config, picker, active, rangeSideIndex} = this; 37714 const pickLevel = config.pickLevel; 37715 const newViewDate = (0,_lib_date_format_js__WEBPACK_IMPORTED_MODULE_2__.parseDate)(viewDate, config.format, config.locale); 37716 if (newViewDate === undefined) { 37717 return; 37718 } 37719 37720 picker.changeFocus((0,_lib_date_js__WEBPACK_IMPORTED_MODULE_1__.regularizeDate)(newViewDate, pickLevel, rangeSideIndex)); 37721 if (active && resetView) { 37722 picker.changeView(pickLevel); 37723 } 37724 picker.render(); 37725 } 37726 37727 /** 37728 * Refresh the picker element and the associated input field 37729 * @param {String} [target] - target item when refreshing one item only 37730 * 'picker' or 'input' 37731 * @param {Boolean} [forceRender] - whether to re-render the picker element 37732 * regardless of its state instead of optimized refresh 37733 */ 37734 refresh(target = undefined, forceRender = false) { 37735 if (target && typeof target !== 'string') { 37736 forceRender = target; 37737 target = undefined; 37738 } 37739 37740 let mode; 37741 if (target === 'picker') { 37742 mode = 2; 37743 } else if (target === 'input') { 37744 mode = 1; 37745 } else { 37746 mode = 3; 37747 } 37748 refreshUI(this, mode, !forceRender); 37749 } 37750 37751 /** 37752 * Enter edit mode 37753 * Not available on inline picker or when the picker element is hidden 37754 */ 37755 enterEditMode() { 37756 const inputField = this.inputField; 37757 if (!inputField || inputField.readOnly || !this.picker.active || this.editMode) { 37758 return; 37759 } 37760 this.editMode = true; 37761 inputField.classList.add('in-edit'); 37762 } 37763 37764 /** 37765 * Exit from edit mode 37766 * Not available on inline picker 37767 * @param {Object} [options] - function options 37768 * - update: {boolean} - whether to call update() after exiting 37769 * If false, input field is revert to the existing selection 37770 * default: false 37771 */ 37772 exitEditMode(options = undefined) { 37773 if (!this.inputField || !this.editMode) { 37774 return; 37775 } 37776 const opts = Object.assign({update: false}, options); 37777 delete this.editMode; 37778 this.inputField.classList.remove('in-edit'); 37779 if (opts.update) { 37780 this.update(opts); 37781 } 37782 } 37783} 37784 37785 37786/***/ }), 37787
vendor: 8,075 bytes, lines 37788-38018
37788/***/ "./node_modules/vanillajs-datepicker/js/events/elementListeners.js": 37789/*!*************************************************************************!*\ 37790 !*** ./node_modules/vanillajs-datepicker/js/events/elementListeners.js ***! 37791 \*************************************************************************/ 37792/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { 37793 37794"use strict"; 37795__webpack_require__.r(__webpack_exports__); 37796/* harmony export */ __webpack_require__.d(__webpack_exports__, { 37797/* harmony export */ onClickInput: () => (/* binding */ onClickInput), 37798/* harmony export */ onFocus: () => (/* binding */ onFocus), 37799/* harmony export */ onKeydown: () => (/* binding */ onKeydown), 37800/* harmony export */ onMousedown: () => (/* binding */ onMousedown), 37801/* harmony export */ onPaste: () => (/* binding */ onPaste) 37802/* harmony export */ }); 37803/* harmony import */ var _lib_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../lib/utils.js */ "./node_modules/vanillajs-datepicker/js/lib/utils.js"); 37804/* harmony import */ var _lib_dom_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../lib/dom.js */ "./node_modules/vanillajs-datepicker/js/lib/dom.js"); 37805/* harmony import */ var _lib_date_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../lib/date.js */ "./node_modules/vanillajs-datepicker/js/lib/date.js"); 37806/* harmony import */ var _functions_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./functions.js */ "./node_modules/vanillajs-datepicker/js/events/functions.js"); 37807 37808 37809 37810 37811 37812// Find the closest date that doesn't meet the condition for unavailable date 37813// Returns undefined if no available date is found 37814// addFn: function to calculate the next date 37815// - args: time value, amount 37816// increase: amount to pass to addFn 37817// testFn: function to test the unavailability of the date 37818// - args: time value; return: true if unavailable 37819function findNextAvailableOne(date, addFn, increase, testFn, min, max) { 37820 if (!(0,_lib_utils_js__WEBPACK_IMPORTED_MODULE_0__.isInRange)(date, min, max)) { 37821 return; 37822 } 37823 if (testFn(date)) { 37824 const newDate = addFn(date, increase); 37825 return findNextAvailableOne(newDate, addFn, increase, testFn, min, max); 37826 } 37827 return date; 37828} 37829 37830// direction: -1 (left/up), 1 (right/down) 37831// vertical: true for up/down, false for left/right 37832function moveByArrowKey(datepicker, direction, vertical) { 37833 const picker = datepicker.picker; 37834 const currentView = picker.currentView; 37835 const step = currentView.step || 1; 37836 let viewDate = picker.viewDate; 37837 let addFn; 37838 switch (currentView.id) { 37839 case 0: 37840 viewDate = (0,_lib_date_js__WEBPACK_IMPORTED_MODULE_2__.addDays)(viewDate, vertical ? direction * 7 : direction); 37841 addFn = _lib_date_js__WEBPACK_IMPORTED_MODULE_2__.addDays; 37842 break; 37843 case 1: 37844 viewDate = (0,_lib_date_js__WEBPACK_IMPORTED_MODULE_2__.addMonths)(viewDate, vertical ? direction * 4 : direction); 37845 addFn = _lib_date_js__WEBPACK_IMPORTED_MODULE_2__.addMonths; 37846 break; 37847 default: 37848 viewDate = (0,_lib_date_js__WEBPACK_IMPORTED_MODULE_2__.addYears)(viewDate, direction * (vertical ? 4 : 1) * step); 37849 addFn = _lib_date_js__WEBPACK_IMPORTED_MODULE_2__.addYears; 37850 } 37851 viewDate = findNextAvailableOne( 37852 viewDate, 37853 addFn, 37854 direction < 0 ? -step : step, 37855 (date) => currentView.disabled.includes(date), 37856 currentView.minDate, 37857 currentView.maxDate 37858 ); 37859 if (viewDate !== undefined) { 37860 picker.changeFocus(viewDate).render(); 37861 } 37862} 37863 37864function onKeydown(datepicker, ev) { 37865 const {config, picker, editMode} = datepicker; 37866 const active = picker.active; 37867 const {key, altKey, shiftKey} = ev; 37868 const ctrlOrMetaKey = ev.ctrlKey || ev.metaKey; 37869 const cancelEvent = () => { 37870 ev.preventDefault(); 37871 ev.stopPropagation(); 37872 }; 37873 37874 // tab/enter keys should not be taken by shortcut keys 37875 if (key === 'Tab') { 37876 (0,_functions_js__WEBPACK_IMPORTED_MODULE_3__.unfocus)(datepicker); 37877 return; 37878 } 37879 if (key === 'Enter') { 37880 if (!active) { 37881 datepicker.update(); 37882 } else if (editMode) { 37883 datepicker.exitEditMode({update: true, autohide: config.autohide}); 37884 } else { 37885 const currentView = picker.currentView; 37886 if (currentView.isMinView) { 37887 datepicker.setDate(picker.viewDate); 37888 } else { 37889 picker.changeView(currentView.id - 1).render(); 37890 cancelEvent(); 37891 } 37892 } 37893 return; 37894 } 37895 37896 const shortcutKeys = config.shortcutKeys; 37897 const keyInfo = {key, ctrlOrMetaKey, altKey, shiftKey}; 37898 const shortcut = Object.keys(shortcutKeys).find((item) => { 37899 const keyDef = shortcutKeys[item]; 37900 return !Object.keys(keyDef).find(prop => keyDef[prop] !== keyInfo[prop]); 37901 }); 37902 if (shortcut) { 37903 let action; 37904 if (shortcut === 'toggle') { 37905 action = shortcut; 37906 } else if (editMode) { 37907 if (shortcut === 'exitEditMode') { 37908 action = shortcut; 37909 } 37910 } else if (active) { 37911 if (shortcut === 'hide') { 37912 action = shortcut; 37913 } else if (shortcut === 'prevButton') { 37914 action = [_functions_js__WEBPACK_IMPORTED_MODULE_3__.goToPrevOrNext, [datepicker, -1]]; 37915 } else if (shortcut === 'nextButton') { 37916 action = [_functions_js__WEBPACK_IMPORTED_MODULE_3__.goToPrevOrNext, [datepicker, 1]]; 37917 } else if (shortcut === 'viewSwitch') { 37918 action = [_functions_js__WEBPACK_IMPORTED_MODULE_3__.switchView, [datepicker]]; 37919 } else if (config.clearButton && shortcut === 'clearButton') { 37920 action = [_functions_js__WEBPACK_IMPORTED_MODULE_3__.clearSelection, [datepicker]]; 37921 } else if (config.todayButton && shortcut === 'todayButton') { 37922 action = [_functions_js__WEBPACK_IMPORTED_MODULE_3__.goToOrSelectToday, [datepicker]]; 37923 } 37924 } else if (shortcut === 'show') { 37925 action = shortcut; 37926 } 37927 if (action) { 37928 if (Array.isArray(action)) { 37929 action[0].apply(null, action[1]); 37930 } else { 37931 datepicker[action](); 37932 } 37933 cancelEvent(); 37934 return; 37935 } 37936 } 37937 37938 // perform as a regular <input> when picker in hidden or in edit mode 37939 if (!active || editMode) { 37940 return; 37941 } 37942 37943 const handleArrowKeyPress = (direction, vertical) => { 37944 if (shiftKey || ctrlOrMetaKey || altKey) { 37945 datepicker.enterEditMode(); 37946 } else { 37947 moveByArrowKey(datepicker, direction, vertical); 37948 ev.preventDefault(); 37949 } 37950 }; 37951 37952 if (key === 'ArrowLeft') { 37953 handleArrowKeyPress(-1, false); 37954 } else if (key === 'ArrowRight') { 37955 handleArrowKeyPress(1, false); 37956 } else if (key === 'ArrowUp') { 37957 handleArrowKeyPress(-1, true); 37958 } else if (key === 'ArrowDown') { 37959 handleArrowKeyPress(1, true); 37960 } else if ( 37961 key === 'Backspace' 37962 || key === 'Delete' 37963 // When autofill is performed, Chromium-based browsers trigger fake 37964 // keydown/keyup events that don't have the `key` property (on Edge, 37965 // keyup only) in addition to the input event. Therefore, we need to 37966 // check the existence of `key`'s value before checking the length. 37967 // (issue #144) 37968 || (key && key.length === 1 && !ctrlOrMetaKey) 37969 ) { 37970 datepicker.enterEditMode(); 37971 } 37972} 37973 37974function onFocus(datepicker) { 37975 if (datepicker.config.showOnFocus && !datepicker._showing) { 37976 datepicker.show(); 37977 } 37978} 37979 37980// for the prevention for entering edit mode while getting focus on click 37981function onMousedown(datepicker, ev) { 37982 const el = ev.target; 37983 if (datepicker.picker.active || datepicker.config.showOnClick) { 37984 el._active = (0,_lib_dom_js__WEBPACK_IMPORTED_MODULE_1__.isActiveElement)(el); 37985 el._clicking = setTimeout(() => { 37986 delete el._active; 37987 delete el._clicking; 37988 }, 2000); 37989 } 37990} 37991 37992function onClickInput(datepicker, ev) { 37993 const el = ev.target; 37994 if (!el._clicking) { 37995 return; 37996 } 37997 clearTimeout(el._clicking); 37998 delete el._clicking; 37999 38000 if (el._active) { 38001 datepicker.enterEditMode(); 38002 } 38003 delete el._active; 38004 38005 if (datepicker.config.showOnClick) { 38006 datepicker.show(); 38007 } 38008} 38009 38010function onPaste(datepicker, ev) { 38011 if (ev.clipboardData.types.includes('text/plain')) { 38012 datepicker.enterEditMode(); 38013 } 38014} 38015 38016 38017/***/ }), 38018
vendor: 3,664 bytes, lines 38019-38116
38019/***/ "./node_modules/vanillajs-datepicker/js/events/functions.js": 38020/*!******************************************************************!*\ 38021 !*** ./node_modules/vanillajs-datepicker/js/events/functions.js ***! 38022 \******************************************************************/ 38023/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { 38024 38025"use strict"; 38026__webpack_require__.r(__webpack_exports__); 38027/* harmony export */ __webpack_require__.d(__webpack_exports__, { 38028/* harmony export */ clearSelection: () => (/* binding */ clearSelection), 38029/* harmony export */ goToOrSelectToday: () => (/* binding */ goToOrSelectToday), 38030/* harmony export */ goToPrevOrNext: () => (/* binding */ goToPrevOrNext), 38031/* harmony export */ switchView: () => (/* binding */ switchView), 38032/* harmony export */ triggerDatepickerEvent: () => (/* binding */ triggerDatepickerEvent), 38033/* harmony export */ unfocus: () => (/* binding */ unfocus) 38034/* harmony export */ }); 38035/* harmony import */ var _lib_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../lib/utils.js */ "./node_modules/vanillajs-datepicker/js/lib/utils.js"); 38036/* harmony import */ var _lib_date_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../lib/date.js */ "./node_modules/vanillajs-datepicker/js/lib/date.js"); 38037/* harmony import */ var _lib_dom_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../lib/dom.js */ "./node_modules/vanillajs-datepicker/js/lib/dom.js"); 38038 38039 38040 38041 38042function triggerDatepickerEvent(datepicker, type) { 38043 const options = { 38044 bubbles: true, 38045 cancelable: true, 38046 detail: { 38047 date: datepicker.getDate(), 38048 viewDate: new Date(datepicker.picker.viewDate), 38049 viewId: datepicker.picker.currentView.id, 38050 datepicker, 38051 }, 38052 }; 38053 datepicker.element.dispatchEvent(new CustomEvent(type, options)); 38054} 38055 38056// direction: -1 (to previous), 1 (to next) 38057function goToPrevOrNext(datepicker, direction) { 38058 const {config, picker} = datepicker; 38059 const {currentView, viewDate} = picker; 38060 let newViewDate; 38061 switch (currentView.id) { 38062 case 0: 38063 newViewDate = (0,_lib_date_js__WEBPACK_IMPORTED_MODULE_1__.addMonths)(viewDate, direction); 38064 break; 38065 case 1: 38066 newViewDate = (0,_lib_date_js__WEBPACK_IMPORTED_MODULE_1__.addYears)(viewDate, direction); 38067 break; 38068 default: 38069 newViewDate = (0,_lib_date_js__WEBPACK_IMPORTED_MODULE_1__.addYears)(viewDate, direction * currentView.navStep); 38070 } 38071 newViewDate = (0,_lib_utils_js__WEBPACK_IMPORTED_MODULE_0__.limitToRange)(newViewDate, config.minDate, config.maxDate); 38072 picker.changeFocus(newViewDate).render(); 38073} 38074 38075function switchView(datepicker) { 38076 const viewId = datepicker.picker.currentView.id; 38077 if (viewId === datepicker.config.maxView) { 38078 return; 38079 } 38080 datepicker.picker.changeView(viewId + 1).render(); 38081} 38082 38083function clearSelection(datepicker) { 38084 datepicker.setDate({clear: true}); 38085} 38086 38087function goToOrSelectToday(datepicker) { 38088 const currentDate = (0,_lib_date_js__WEBPACK_IMPORTED_MODULE_1__.today)(); 38089 if (datepicker.config.todayButtonMode === 1) { 38090 datepicker.setDate(currentDate, {forceRefresh: true, viewDate: currentDate}); 38091 } else { 38092 datepicker.setFocusedDate(currentDate, true); 38093 } 38094} 38095 38096function unfocus(datepicker) { 38097 const onBlur = () => { 38098 if (datepicker.config.updateOnBlur) { 38099 datepicker.update({revert: true}); 38100 } else { 38101 datepicker.refresh('input'); 38102 } 38103 datepicker.hide(); 38104 }; 38105 const element = datepicker.element; 38106 38107 if ((0,_lib_dom_js__WEBPACK_IMPORTED_MODULE_2__.isActiveElement)(element)) { 38108 element.addEventListener('blur', onBlur, {once: true}); 38109 } else { 38110 onBlur(); 38111 } 38112} 38113 38114 38115/***/ }), 38116
vendor: 1,916 bytes, lines 38117-38154
38117/***/ "./node_modules/vanillajs-datepicker/js/events/otherListeners.js": 38118/*!***********************************************************************!*\ 38119 !*** ./node_modules/vanillajs-datepicker/js/events/otherListeners.js ***! 38120 \***********************************************************************/ 38121/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { 38122 38123"use strict"; 38124__webpack_require__.r(__webpack_exports__); 38125/* harmony export */ __webpack_require__.d(__webpack_exports__, { 38126/* harmony export */ onClickOutside: () => (/* binding */ onClickOutside) 38127/* harmony export */ }); 38128/* harmony import */ var _lib_dom_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../lib/dom.js */ "./node_modules/vanillajs-datepicker/js/lib/dom.js"); 38129/* harmony import */ var _lib_event_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../lib/event.js */ "./node_modules/vanillajs-datepicker/js/lib/event.js"); 38130/* harmony import */ var _functions_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./functions.js */ "./node_modules/vanillajs-datepicker/js/events/functions.js"); 38131 38132 38133 38134 38135// for the `document` to delegate the events from outside the picker/input field 38136function onClickOutside(datepicker, ev) { 38137 const {element, picker} = datepicker; 38138 // check both picker's and input's activeness to make updateOnBlur work in 38139 // the cases where... 38140 // - picker is hidden by ESC key press â input stays focused 38141 // - input is unfocused by closing mobile keyboard â piker is kept shown 38142 if (!picker.active && !(0,_lib_dom_js__WEBPACK_IMPORTED_MODULE_0__.isActiveElement)(element)) { 38143 return; 38144 } 38145 const pickerElem = picker.element; 38146 if ((0,_lib_event_js__WEBPACK_IMPORTED_MODULE_1__.findElementInEventPath)(ev, el => el === element || el === pickerElem)) { 38147 return; 38148 } 38149 (0,_functions_js__WEBPACK_IMPORTED_MODULE_2__.unfocus)(datepicker); 38150} 38151 38152 38153/***/ }), 38154
vendor: 3,011 bytes, lines 38155-38224
38155/***/ "./node_modules/vanillajs-datepicker/js/events/pickerListeners.js": 38156/*!************************************************************************!*\ 38157 !*** ./node_modules/vanillajs-datepicker/js/events/pickerListeners.js ***! 38158 \************************************************************************/ 38159/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { 38160 38161"use strict"; 38162__webpack_require__.r(__webpack_exports__); 38163/* harmony export */ __webpack_require__.d(__webpack_exports__, { 38164/* harmony export */ onClickNextButton: () => (/* binding */ onClickNextButton), 38165/* harmony export */ onClickPrevButton: () => (/* binding */ onClickPrevButton), 38166/* harmony export */ onClickView: () => (/* binding */ onClickView), 38167/* harmony export */ onClickViewSwitch: () => (/* binding */ onClickViewSwitch), 38168/* harmony export */ onMousedownPicker: () => (/* binding */ onMousedownPicker) 38169/* harmony export */ }); 38170/* harmony import */ var _lib_date_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../lib/date.js */ "./node_modules/vanillajs-datepicker/js/lib/date.js"); 38171/* harmony import */ var _lib_event_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../lib/event.js */ "./node_modules/vanillajs-datepicker/js/lib/event.js"); 38172/* harmony import */ var _functions_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./functions.js */ "./node_modules/vanillajs-datepicker/js/events/functions.js"); 38173 38174 38175 38176 38177function goToSelectedMonthOrYear(datepicker, selection) { 38178 const picker = datepicker.picker; 38179 const viewDate = new Date(picker.viewDate); 38180 const viewId = picker.currentView.id; 38181 const newDate = viewId === 1 38182 ? (0,_lib_date_js__WEBPACK_IMPORTED_MODULE_0__.addMonths)(viewDate, selection - viewDate.getMonth()) 38183 : (0,_lib_date_js__WEBPACK_IMPORTED_MODULE_0__.addYears)(viewDate, selection - viewDate.getFullYear()); 38184 38185 picker.changeFocus(newDate).changeView(viewId - 1).render(); 38186} 38187 38188function onClickViewSwitch(datepicker) { 38189 (0,_functions_js__WEBPACK_IMPORTED_MODULE_2__.switchView)(datepicker); 38190} 38191 38192function onClickPrevButton(datepicker) { 38193 (0,_functions_js__WEBPACK_IMPORTED_MODULE_2__.goToPrevOrNext)(datepicker, -1); 38194} 38195 38196function onClickNextButton(datepicker) { 38197 (0,_functions_js__WEBPACK_IMPORTED_MODULE_2__.goToPrevOrNext)(datepicker, 1); 38198} 38199 38200// For the picker's main block to delegete the events from `datepicker-cell`s 38201function onClickView(datepicker, ev) { 38202 const target = (0,_lib_event_js__WEBPACK_IMPORTED_MODULE_1__.findElementInEventPath)(ev, '.datepicker-cell'); 38203 if (!target || target.classList.contains('disabled')) { 38204 return; 38205 } 38206 38207 const {id, isMinView} = datepicker.picker.currentView; 38208 const data = target.dataset; 38209 if (isMinView) { 38210 datepicker.setDate(Number(data.date)); 38211 } else if (id === 1) { 38212 goToSelectedMonthOrYear(datepicker, Number(data.month)); 38213 } else { 38214 goToSelectedMonthOrYear(datepicker, Number(data.year)); 38215 } 38216} 38217 38218function onMousedownPicker(ev) { 38219 ev.preventDefault(); 38220} 38221 38222 38223/***/ }), 38224
vendor: 1,229 bytes, lines 38225-38252
38225/***/ "./node_modules/vanillajs-datepicker/js/i18n/base-locales.js": 38226/*!*******************************************************************!*\ 38227 !*** ./node_modules/vanillajs-datepicker/js/i18n/base-locales.js ***! 38228 \*******************************************************************/ 38229/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { 38230 38231"use strict"; 38232__webpack_require__.r(__webpack_exports__); 38233/* harmony export */ __webpack_require__.d(__webpack_exports__, { 38234/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) 38235/* harmony export */ }); 38236// default locales 38237/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ 38238 en: { 38239 days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], 38240 daysShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], 38241 daysMin: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"], 38242 months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], 38243 monthsShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], 38244 today: "Today", 38245 clear: "Clear", 38246 titleFormat: "MM y" 38247 } 38248}); 38249 38250 38251/***/ }), 38252
vendor: 6,545 bytes, lines 38253-38457
38253/***/ "./node_modules/vanillajs-datepicker/js/lib/date-format.js": 38254/*!*****************************************************************!*\ 38255 !*** ./node_modules/vanillajs-datepicker/js/lib/date-format.js ***! 38256 \*****************************************************************/ 38257/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { 38258 38259"use strict"; 38260__webpack_require__.r(__webpack_exports__); 38261/* harmony export */ __webpack_require__.d(__webpack_exports__, { 38262/* harmony export */ formatDate: () => (/* binding */ formatDate), 38263/* harmony export */ parseDate: () => (/* binding */ parseDate), 38264/* harmony export */ reFormatTokens: () => (/* binding */ reFormatTokens), 38265/* harmony export */ reNonDateParts: () => (/* binding */ reNonDateParts) 38266/* harmony export */ }); 38267/* harmony import */ var _date_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./date.js */ "./node_modules/vanillajs-datepicker/js/lib/date.js"); 38268/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils.js */ "./node_modules/vanillajs-datepicker/js/lib/utils.js"); 38269 38270 38271 38272// pattern for format parts 38273const reFormatTokens = /dd?|DD?|mm?|MM?|yy?(?:yy)?/; 38274// pattern for non date parts 38275const reNonDateParts = /[\s!-/:-@[-`{-~å¹´ææ¥]+/; 38276// cache for persed formats 38277let knownFormats = {}; 38278// parse funtions for date parts 38279const parseFns = { 38280 y(date, year) { 38281 return new Date(date).setFullYear(parseInt(year, 10)); 38282 }, 38283 m(date, month, locale) { 38284 const newDate = new Date(date); 38285 let monthIndex = parseInt(month, 10) - 1; 38286 38287 if (isNaN(monthIndex)) { 38288 if (!month) { 38289 return NaN; 38290 } 38291 38292 const monthName = month.toLowerCase(); 38293 const compareNames = name => name.toLowerCase().startsWith(monthName); 38294 // compare with both short and full names because some locales have periods 38295 // in the short names (not equal to the first X letters of the full names) 38296 monthIndex = locale.monthsShort.findIndex(compareNames); 38297 if (monthIndex < 0) { 38298 monthIndex = locale.months.findIndex(compareNames); 38299 } 38300 if (monthIndex < 0) { 38301 return NaN; 38302 } 38303 } 38304 38305 newDate.setMonth(monthIndex); 38306 return newDate.getMonth() !== normalizeMonth(monthIndex) 38307 ? newDate.setDate(0) 38308 : newDate.getTime(); 38309 }, 38310 d(date, day) { 38311 return new Date(date).setDate(parseInt(day, 10)); 38312 }, 38313}; 38314// format functions for date parts 38315const formatFns = { 38316 d(date) { 38317 return date.getDate(); 38318 }, 38319 dd(date) { 38320 return padZero(date.getDate(), 2); 38321 }, 38322 D(date, locale) { 38323 return locale.daysShort[date.getDay()]; 38324 }, 38325 DD(date, locale) { 38326 return locale.days[date.getDay()]; 38327 }, 38328 m(date) { 38329 return date.getMonth() + 1; 38330 }, 38331 mm(date) { 38332 return padZero(date.getMonth() + 1, 2); 38333 }, 38334 M(date, locale) { 38335 return locale.monthsShort[date.getMonth()]; 38336 }, 38337 MM(date, locale) { 38338 return locale.months[date.getMonth()]; 38339 }, 38340 y(date) { 38341 return date.getFullYear(); 38342 }, 38343 yy(date) { 38344 return padZero(date.getFullYear(), 2).slice(-2); 38345 }, 38346 yyyy(date) { 38347 return padZero(date.getFullYear(), 4); 38348 }, 38349}; 38350 38351// get month index in normal range (0 - 11) from any number 38352function normalizeMonth(monthIndex) { 38353 return monthIndex > -1 ? monthIndex % 12 : normalizeMonth(monthIndex + 12); 38354} 38355 38356function padZero(num, length) { 38357 return num.toString().padStart(length, '0'); 38358} 38359 38360function parseFormatString(format) { 38361 if (typeof format !== 'string') { 38362 throw new Error("Invalid date format."); 38363 } 38364 if (format in knownFormats) { 38365 return knownFormats[format]; 38366 } 38367 38368 // sprit the format string into parts and seprators 38369 const separators = format.split(reFormatTokens); 38370 const parts = format.match(new RegExp(reFormatTokens, 'g')); 38371 if (separators.length === 0 || !parts) { 38372 throw new Error("Invalid date format."); 38373 } 38374 38375 // collect format functions used in the format 38376 const partFormatters = parts.map(token => formatFns[token]); 38377 38378 // collect parse function keys used in the format 38379 // iterate over parseFns' keys in order to keep the order of the keys. 38380 const partParserKeys = Object.keys(parseFns).reduce((keys, key) => { 38381 const token = parts.find(part => part[0] !== 'D' && part[0].toLowerCase() === key); 38382 if (token) { 38383 keys.push(key); 38384 } 38385 return keys; 38386 }, []); 38387 38388 return knownFormats[format] = { 38389 parser(dateStr, locale) { 38390 const dateParts = dateStr.split(reNonDateParts).reduce((dtParts, part, index) => { 38391 if (part.length > 0 && parts[index]) { 38392 const token = parts[index][0]; 38393 if (token === 'M') { 38394 dtParts.m = part; 38395 } else if (token !== 'D') { 38396 dtParts[token] = part; 38397 } 38398 } 38399 return dtParts; 38400 }, {}); 38401 38402 // iterate over partParserkeys so that the parsing is made in the oder 38403 // of year, month and day to prevent the day parser from correcting last 38404 // day of month wrongly 38405 return partParserKeys.reduce((origDate, key) => { 38406 const newDate = parseFns[key](origDate, dateParts[key], locale); 38407 // ingnore the part failed to parse 38408 return isNaN(newDate) ? origDate : newDate; 38409 }, (0,_date_js__WEBPACK_IMPORTED_MODULE_0__.today)()); 38410 }, 38411 formatter(date, locale) { 38412 let dateStr = partFormatters.reduce((str, fn, index) => { 38413 return str += `${separators[index]}${fn(date, locale)}`; 38414 }, ''); 38415 // separators' length is always parts' length + 1, 38416 return dateStr += (0,_utils_js__WEBPACK_IMPORTED_MODULE_1__.lastItemOf)(separators); 38417 }, 38418 }; 38419} 38420 38421function parseDate(dateStr, format, locale) { 38422 if (dateStr instanceof Date || typeof dateStr === 'number') { 38423 const date = (0,_date_js__WEBPACK_IMPORTED_MODULE_0__.stripTime)(dateStr); 38424 return isNaN(date) ? undefined : date; 38425 } 38426 if (!dateStr) { 38427 return undefined; 38428 } 38429 if (dateStr === 'today') { 38430 return (0,_date_js__WEBPACK_IMPORTED_MODULE_0__.today)(); 38431 } 38432 38433 if (format && format.toValue) { 38434 const date = format.toValue(dateStr, format, locale); 38435 return isNaN(date) ? undefined : (0,_date_js__WEBPACK_IMPORTED_MODULE_0__.stripTime)(date); 38436 } 38437 38438 return parseFormatString(format).parser(dateStr, locale); 38439} 38440 38441function formatDate(date, format, locale) { 38442 if (isNaN(date) || (!date && date !== 0)) { 38443 return ''; 38444 } 38445 38446 const dateObj = typeof date === 'number' ? new Date(date) : date; 38447 38448 if (format.toDisplay) { 38449 return format.toDisplay(dateObj, format, locale); 38450 } 38451 38452 return parseFormatString(format).formatter(dateObj, locale); 38453} 38454 38455 38456/***/ }), 38457
vendor: 6,261 bytes, lines 38458-38622
38458/***/ "./node_modules/vanillajs-datepicker/js/lib/date.js": 38459/*!**********************************************************!*\ 38460 !*** ./node_modules/vanillajs-datepicker/js/lib/date.js ***! 38461 \**********************************************************/ 38462/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { 38463 38464"use strict"; 38465__webpack_require__.r(__webpack_exports__); 38466/* harmony export */ __webpack_require__.d(__webpack_exports__, { 38467/* harmony export */ addDays: () => (/* binding */ addDays), 38468/* harmony export */ addMonths: () => (/* binding */ addMonths), 38469/* harmony export */ addWeeks: () => (/* binding */ addWeeks), 38470/* harmony export */ addYears: () => (/* binding */ addYears), 38471/* harmony export */ dateValue: () => (/* binding */ dateValue), 38472/* harmony export */ dayOfTheWeekOf: () => (/* binding */ dayOfTheWeekOf), 38473/* harmony export */ getIsoWeek: () => (/* binding */ getIsoWeek), 38474/* harmony export */ getMidEasternWeek: () => (/* binding */ getMidEasternWeek), 38475/* harmony export */ getWesternTradWeek: () => (/* binding */ getWesternTradWeek), 38476/* harmony export */ regularizeDate: () => (/* binding */ regularizeDate), 38477/* harmony export */ startOfYearPeriod: () => (/* binding */ startOfYearPeriod), 38478/* harmony export */ stripTime: () => (/* binding */ stripTime), 38479/* harmony export */ today: () => (/* binding */ today) 38480/* harmony export */ }); 38481function stripTime(timeValue) { 38482 return new Date(timeValue).setHours(0, 0, 0, 0); 38483} 38484 38485function today() { 38486 return new Date().setHours(0, 0, 0, 0); 38487} 38488 38489// Get the time value of the start of given date or year, month and day 38490function dateValue(...args) { 38491 switch (args.length) { 38492 case 0: 38493 return today(); 38494 case 1: 38495 return stripTime(args[0]); 38496 } 38497 38498 // use setFullYear() to keep 2-digit year from being mapped to 1900-1999 38499 const newDate = new Date(0); 38500 newDate.setFullYear(...args); 38501 return newDate.setHours(0, 0, 0, 0); 38502} 38503 38504function addDays(date, amount) { 38505 const newDate = new Date(date); 38506 return newDate.setDate(newDate.getDate() + amount); 38507} 38508 38509function addWeeks(date, amount) { 38510 return addDays(date, amount * 7); 38511} 38512 38513function addMonths(date, amount) { 38514 // If the day of the date is not in the new month, the last day of the new 38515 // month will be returned. e.g. Jan 31 + 1 month â Feb 28 (not Mar 03) 38516 const newDate = new Date(date); 38517 const monthsToSet = newDate.getMonth() + amount; 38518 let expectedMonth = monthsToSet % 12; 38519 if (expectedMonth < 0) { 38520 expectedMonth += 12; 38521 } 38522 38523 const time = newDate.setMonth(monthsToSet); 38524 return newDate.getMonth() !== expectedMonth ? newDate.setDate(0) : time; 38525} 38526 38527function addYears(date, amount) { 38528 // If the date is Feb 29 and the new year is not a leap year, Feb 28 of the 38529 // new year will be returned. 38530 const newDate = new Date(date); 38531 const expectedMonth = newDate.getMonth(); 38532 const time = newDate.setFullYear(newDate.getFullYear() + amount); 38533 return expectedMonth === 1 && newDate.getMonth() === 2 ? newDate.setDate(0) : time; 38534} 38535 38536// Calculate the distance bettwen 2 days of the week 38537function dayDiff(day, from) { 38538 return (day - from + 7) % 7; 38539} 38540 38541// Get the date of the specified day of the week of given base date 38542function dayOfTheWeekOf(baseDate, dayOfWeek, weekStart = 0) { 38543 const baseDay = new Date(baseDate).getDay(); 38544 return addDays(baseDate, dayDiff(dayOfWeek, weekStart) - dayDiff(baseDay, weekStart)); 38545} 38546 38547function calcWeekNum(dayOfTheWeek, sameDayOfFirstWeek) { 38548 return Math.round((dayOfTheWeek - sameDayOfFirstWeek) / 604800000) + 1; 38549} 38550 38551// Get the ISO week number of a date 38552function getIsoWeek(date) { 38553 // - Start of ISO week is Monday 38554 // - Use Thursday for culculation because the first Thursday of ISO week is 38555 // always in January 38556 const thuOfTheWeek = dayOfTheWeekOf(date, 4, 1); 38557 // - Week 1 in ISO week is the week including Jan 04 38558 // - Use the Thu of given date's week (instead of given date itself) to 38559 // calculate week 1 of the year so that Jan 01 - 03 won't be miscalculated 38560 // as week 0 when Jan 04 is Mon - Wed 38561 const firstThu = dayOfTheWeekOf(new Date(thuOfTheWeek).setMonth(0, 4), 4, 1); 38562 // return Math.round((thuOfTheWeek - firstThu) / 604800000) + 1; 38563 return calcWeekNum(thuOfTheWeek, firstThu); 38564} 38565 38566// Calculate week number in traditional week number system 38567// @see https://en.wikipedia.org/wiki/Week#Other_week_numbering_systems 38568function calcTraditionalWeekNumber(date, weekStart) { 38569 // - Week 1 of traditional week is the week including the Jan 01 38570 // - Use Jan 01 of given date's year to calculate the start of week 1 38571 const startOfFirstWeek = dayOfTheWeekOf(new Date(date).setMonth(0, 1), weekStart, weekStart); 38572 const startOfTheWeek = dayOfTheWeekOf(date, weekStart, weekStart); 38573 const weekNum = calcWeekNum(startOfTheWeek, startOfFirstWeek); 38574 if (weekNum < 53) { 38575 return weekNum; 38576 } 38577 // If the 53rd week includes Jan 01, it's actually next year's week 1 38578 const weekOneOfNextYear = dayOfTheWeekOf(new Date(date).setDate(32), weekStart, weekStart); 38579 return startOfTheWeek === weekOneOfNextYear ? 1 : weekNum; 38580} 38581 38582// Get the Western traditional week number of a date 38583function getWesternTradWeek(date) { 38584 // Start of Western traditionl week is Sunday 38585 return calcTraditionalWeekNumber(date, 0); 38586} 38587 38588// Get the Middle Eastern week number of a date 38589function getMidEasternWeek(date) { 38590 // Start of Middle Eastern week is Saturday 38591 return calcTraditionalWeekNumber(date, 6); 38592} 38593 38594// Get the start year of the period of years that includes given date 38595// years: length of the year period 38596function startOfYearPeriod(date, years) { 38597 /* @see https://en.wikipedia.org/wiki/Year_zero#ISO_8601 */ 38598 const year = new Date(date).getFullYear(); 38599 return Math.floor(year / years) * years; 38600} 38601 38602// Convert date to the first/last date of the month/year of the date 38603function regularizeDate(date, timeSpan, useLastDate) { 38604 if (timeSpan !== 1 && timeSpan !== 2) { 38605 return date; 38606 } 38607 const newDate = new Date(date); 38608 if (timeSpan === 1) { 38609 useLastDate 38610 ? newDate.setMonth(newDate.getMonth() + 1, 0) 38611 : newDate.setDate(1); 38612 } else { 38613 useLastDate 38614 ? newDate.setFullYear(newDate.getFullYear() + 1, 0, 0) 38615 : newDate.setMonth(0, 1); 38616 } 38617 return newDate.setHours(0, 0, 0, 0); 38618} 38619 38620 38621/***/ }), 38622
vendor: 2,607 bytes, lines 38623-38707
38623/***/ "./node_modules/vanillajs-datepicker/js/lib/dom.js": 38624/*!*********************************************************!*\ 38625 !*** ./node_modules/vanillajs-datepicker/js/lib/dom.js ***! 38626 \*********************************************************/ 38627/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { 38628 38629"use strict"; 38630__webpack_require__.r(__webpack_exports__); 38631/* harmony export */ __webpack_require__.d(__webpack_exports__, { 38632/* harmony export */ emptyChildNodes: () => (/* binding */ emptyChildNodes), 38633/* harmony export */ getParent: () => (/* binding */ getParent), 38634/* harmony export */ hideElement: () => (/* binding */ hideElement), 38635/* harmony export */ isActiveElement: () => (/* binding */ isActiveElement), 38636/* harmony export */ isVisible: () => (/* binding */ isVisible), 38637/* harmony export */ parseHTML: () => (/* binding */ parseHTML), 38638/* harmony export */ replaceChildNodes: () => (/* binding */ replaceChildNodes), 38639/* harmony export */ showElement: () => (/* binding */ showElement) 38640/* harmony export */ }); 38641const range = document.createRange(); 38642 38643function parseHTML(html) { 38644 return range.createContextualFragment(html); 38645} 38646 38647function getParent(el) { 38648 return el.parentElement 38649 || (el.parentNode instanceof ShadowRoot ? el.parentNode.host : undefined); 38650} 38651 38652function isActiveElement(el) { 38653 return el.getRootNode().activeElement === el; 38654} 38655 38656// equivalent to jQuery's :visble 38657function isVisible(el) { 38658 return !!(el.offsetWidth || el.offsetHeight || el.getClientRects().length); 38659} 38660 38661function hideElement(el) { 38662 if (el.style.display === 'none') { 38663 return; 38664 } 38665 // back up the existing display setting in data-style-display 38666 if (el.style.display) { 38667 el.dataset.styleDisplay = el.style.display; 38668 } 38669 el.style.display = 'none'; 38670} 38671 38672function showElement(el) { 38673 if (el.style.display !== 'none') { 38674 return; 38675 } 38676 if (el.dataset.styleDisplay) { 38677 // restore backed-up dispay property 38678 el.style.display = el.dataset.styleDisplay; 38679 delete el.dataset.styleDisplay; 38680 } else { 38681 el.style.display = ''; 38682 } 38683} 38684 38685function emptyChildNodes(el) { 38686 if (el.firstChild) { 38687 el.removeChild(el.firstChild); 38688 emptyChildNodes(el); 38689 } 38690} 38691 38692function replaceChildNodes(el, newChildNodes) { 38693 emptyChildNodes(el); 38694 if (newChildNodes instanceof DocumentFragment) { 38695 el.appendChild(newChildNodes); 38696 } else if (typeof newChildNodes === 'string') { 38697 el.appendChild(parseHTML(newChildNodes)); 38698 } else if (typeof newChildNodes.forEach === 'function') { 38699 newChildNodes.forEach((node) => { 38700 el.appendChild(node); 38701 }); 38702 } 38703} 38704 38705 38706/***/ }), 38707
vendor: 2,908 bytes, lines 38708-38795
38708/***/ "./node_modules/vanillajs-datepicker/js/lib/event.js": 38709/*!***********************************************************!*\ 38710 !*** ./node_modules/vanillajs-datepicker/js/lib/event.js ***! 38711 \***********************************************************/ 38712/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { 38713 38714"use strict"; 38715__webpack_require__.r(__webpack_exports__); 38716/* harmony export */ __webpack_require__.d(__webpack_exports__, { 38717/* harmony export */ findElementInEventPath: () => (/* binding */ findElementInEventPath), 38718/* harmony export */ registerListeners: () => (/* binding */ registerListeners), 38719/* harmony export */ unregisterListeners: () => (/* binding */ unregisterListeners) 38720/* harmony export */ }); 38721const listenerRegistry = new WeakMap(); 38722const {addEventListener, removeEventListener} = EventTarget.prototype; 38723 38724// Register event listeners to a key object 38725// listeners: array of listener definitions; 38726// - each definition must be a flat array of event target and the arguments 38727// used to call addEventListener() on the target 38728function registerListeners(keyObj, listeners) { 38729 let registered = listenerRegistry.get(keyObj); 38730 if (!registered) { 38731 registered = []; 38732 listenerRegistry.set(keyObj, registered); 38733 } 38734 listeners.forEach((listener) => { 38735 addEventListener.call(...listener); 38736 registered.push(listener); 38737 }); 38738} 38739 38740function unregisterListeners(keyObj) { 38741 let listeners = listenerRegistry.get(keyObj); 38742 if (!listeners) { 38743 return; 38744 } 38745 listeners.forEach((listener) => { 38746 removeEventListener.call(...listener); 38747 }); 38748 listenerRegistry.delete(keyObj); 38749} 38750 38751// Event.composedPath() polyfill for Edge 38752// based on https://gist.github.com/kleinfreund/e9787d73776c0e3750dcfcdc89f100ec 38753if (!Event.prototype.composedPath) { 38754 const getComposedPath = (node, path = []) => { 38755 path.push(node); 38756 38757 let parent; 38758 if (node.parentNode) { 38759 parent = node.parentNode; 38760 } else if (node.host) { // ShadowRoot 38761 parent = node.host; 38762 } else if (node.defaultView) { // Document 38763 parent = node.defaultView; 38764 } 38765 return parent ? getComposedPath(parent, path) : path; 38766 }; 38767 38768 Event.prototype.composedPath = function () { 38769 return getComposedPath(this.target); 38770 }; 38771} 38772 38773function findFromPath(path, criteria, currentTarget) { 38774 const [node, ...rest] = path; 38775 if (criteria(node)) { 38776 return node; 38777 } 38778 if (node === currentTarget || node.tagName === 'HTML' || rest.length === 0) { 38779 // stop when reaching currentTarget or <html> 38780 return; 38781 } 38782 return findFromPath(rest, criteria, currentTarget); 38783} 38784 38785// Search for the actual target of a delegated event 38786function findElementInEventPath(ev, selector) { 38787 const criteria = typeof selector === 'function' 38788 ? selector 38789 : el => el instanceof Element && el.matches(selector); 38790 return findFromPath(ev.composedPath(), criteria, ev.currentTarget); 38791} 38792 38793 38794/***/ }), 38795
vendor: 2,412 bytes, lines 38796-38873
38796/***/ "./node_modules/vanillajs-datepicker/js/lib/utils.js": 38797/*!***********************************************************!*\ 38798 !*** ./node_modules/vanillajs-datepicker/js/lib/utils.js ***! 38799 \***********************************************************/ 38800/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { 38801 38802"use strict"; 38803__webpack_require__.r(__webpack_exports__); 38804/* harmony export */ __webpack_require__.d(__webpack_exports__, { 38805/* harmony export */ createTagRepeat: () => (/* binding */ createTagRepeat), 38806/* harmony export */ isInRange: () => (/* binding */ isInRange), 38807/* harmony export */ lastItemOf: () => (/* binding */ lastItemOf), 38808/* harmony export */ limitToRange: () => (/* binding */ limitToRange), 38809/* harmony export */ optimizeTemplateHTML: () => (/* binding */ optimizeTemplateHTML), 38810/* harmony export */ pushUnique: () => (/* binding */ pushUnique), 38811/* harmony export */ stringToArray: () => (/* binding */ stringToArray) 38812/* harmony export */ }); 38813function lastItemOf(arr) { 38814 return arr[arr.length - 1]; 38815} 38816 38817// push only the items not included in the array 38818function pushUnique(arr, ...items) { 38819 items.forEach((item) => { 38820 if (arr.includes(item)) { 38821 return; 38822 } 38823 arr.push(item); 38824 }); 38825 return arr; 38826} 38827 38828function stringToArray(str, separator) { 38829 // convert empty string to an empty array 38830 return str ? str.split(separator) : []; 38831} 38832 38833function isInRange(testVal, min, max) { 38834 const minOK = min === undefined || testVal >= min; 38835 const maxOK = max === undefined || testVal <= max; 38836 return minOK && maxOK; 38837} 38838 38839function limitToRange(val, min, max) { 38840 if (val < min) { 38841 return min; 38842 } 38843 if (val > max) { 38844 return max; 38845 } 38846 return val; 38847} 38848 38849function createTagRepeat(tagName, repeat, attributes = {}, index = 0, html = '') { 38850 const openTagSrc = Object.keys(attributes).reduce((src, attr) => { 38851 let val = attributes[attr]; 38852 if (typeof val === 'function') { 38853 val = val(index); 38854 } 38855 return `${src} ${attr}="${val}"`; 38856 }, tagName); 38857 html += `<${openTagSrc}></${tagName}>`; 38858 38859 const next = index + 1; 38860 return next < repeat 38861 ? createTagRepeat(tagName, repeat, attributes, next, html) 38862 : html; 38863} 38864 38865// Remove the spacing surrounding tags for HTML parser not to create text nodes 38866// before/after elements 38867function optimizeTemplateHTML(html) { 38868 return html.replace(/>\s+/g, '>').replace(/\s+</, '<'); 38869} 38870 38871 38872/***/ }), 38873
vendor: 1,096 bytes, lines 38874-38893
38874/***/ "./node_modules/vanillajs-datepicker/js/main.js": 38875/*!******************************************************!*\ 38876 !*** ./node_modules/vanillajs-datepicker/js/main.js ***! 38877 \******************************************************/ 38878/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { 38879 38880"use strict"; 38881__webpack_require__.r(__webpack_exports__); 38882/* harmony export */ __webpack_require__.d(__webpack_exports__, { 38883/* harmony export */ DateRangePicker: () => (/* reexport safe */ _DateRangePicker_js__WEBPACK_IMPORTED_MODULE_1__["default"]), 38884/* harmony export */ Datepicker: () => (/* reexport safe */ _Datepicker_js__WEBPACK_IMPORTED_MODULE_0__["default"]) 38885/* harmony export */ }); 38886/* harmony import */ var _Datepicker_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Datepicker.js */ "./node_modules/vanillajs-datepicker/js/Datepicker.js"); 38887/* harmony import */ var _DateRangePicker_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./DateRangePicker.js */ "./node_modules/vanillajs-datepicker/js/DateRangePicker.js"); 38888 38889 38890 38891 38892/***/ }), 38893
vendor: 1,556 bytes, lines 38894-38945
38894/***/ "./node_modules/vanillajs-datepicker/js/options/defaultOptions.js": 38895/*!************************************************************************!*\ 38896 !*** ./node_modules/vanillajs-datepicker/js/options/defaultOptions.js ***! 38897 \************************************************************************/ 38898/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { 38899 38900"use strict"; 38901__webpack_require__.r(__webpack_exports__); 38902/* harmony export */ __webpack_require__.d(__webpack_exports__, { 38903/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) 38904/* harmony export */ }); 38905// config options updatable by setOptions() and their default values 38906/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ 38907 autohide: false, 38908 beforeShowDay: null, 38909 beforeShowDecade: null, 38910 beforeShowMonth: null, 38911 beforeShowYear: null, 38912 clearButton: false, 38913 dateDelimiter: ',', 38914 datesDisabled: [], 38915 daysOfWeekDisabled: [], 38916 daysOfWeekHighlighted: [], 38917 defaultViewDate: undefined, // placeholder, defaults to today() by the program 38918 disableTouchKeyboard: false, 38919 enableOnReadonly: true, 38920 format: 'mm/dd/yyyy', 38921 language: 'en', 38922 maxDate: null, 38923 maxNumberOfDates: 1, 38924 maxView: 3, 38925 minDate: null, 38926 nextArrow: '»', 38927 orientation: 'auto', 38928 pickLevel: 0, 38929 prevArrow: '«', 38930 showDaysOfWeek: true, 38931 showOnClick: true, 38932 showOnFocus: true, 38933 startView: 0, 38934 title: '', 38935 todayButton: false, 38936 todayButtonMode: 0, 38937 todayHighlight: false, 38938 updateOnBlur: true, 38939 weekNumbers: 0, 38940 weekStart: 0, 38941}); 38942 38943 38944/***/ }), 38945
vendor: 12,825 bytes, lines 38946-39316
38946/***/ "./node_modules/vanillajs-datepicker/js/options/processOptions.js": 38947/*!************************************************************************!*\ 38948 !*** ./node_modules/vanillajs-datepicker/js/options/processOptions.js ***! 38949 \************************************************************************/ 38950/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { 38951 38952"use strict"; 38953__webpack_require__.r(__webpack_exports__); 38954/* harmony export */ __webpack_require__.d(__webpack_exports__, { 38955/* harmony export */ "default": () => (/* binding */ processOptions) 38956/* harmony export */ }); 38957/* harmony import */ var _lib_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../lib/utils.js */ "./node_modules/vanillajs-datepicker/js/lib/utils.js"); 38958/* harmony import */ var _lib_date_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../lib/date.js */ "./node_modules/vanillajs-datepicker/js/lib/date.js"); 38959/* harmony import */ var _lib_date_format_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../lib/date-format.js */ "./node_modules/vanillajs-datepicker/js/lib/date-format.js"); 38960/* harmony import */ var _lib_dom_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../lib/dom.js */ "./node_modules/vanillajs-datepicker/js/lib/dom.js"); 38961/* harmony import */ var _defaultOptions_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./defaultOptions.js */ "./node_modules/vanillajs-datepicker/js/options/defaultOptions.js"); 38962 38963 38964 38965 38966 38967 38968const { 38969 language: defaultLang, 38970 format: defaultFormat, 38971 weekStart: defaultWeekStart, 38972} = _defaultOptions_js__WEBPACK_IMPORTED_MODULE_4__["default"]; 38973 38974// Reducer function to filter out invalid day-of-week from the input 38975function sanitizeDOW(dow, day) { 38976 return dow.length < 6 && day >= 0 && day < 7 38977 ? (0,_lib_utils_js__WEBPACK_IMPORTED_MODULE_0__.pushUnique)(dow, day) 38978 : dow; 38979} 38980 38981function determineGetWeekMethod(numberingMode, weekStart) { 38982 const methodId = numberingMode === 4 38983 ? (weekStart === 6 ? 3 : !weekStart + 1) 38984 : numberingMode; 38985 switch (methodId) { 38986 case 1: 38987 return _lib_date_js__WEBPACK_IMPORTED_MODULE_1__.getIsoWeek; 38988 case 2: 38989 return _lib_date_js__WEBPACK_IMPORTED_MODULE_1__.getWesternTradWeek; 38990 case 3: 38991 return _lib_date_js__WEBPACK_IMPORTED_MODULE_1__.getMidEasternWeek; 38992 } 38993} 38994 38995function updateWeekStart(newValue, config, weekNumbers) { 38996 config.weekStart = newValue; 38997 config.weekEnd = (newValue + 6) % 7; 38998 if (weekNumbers === 4) { 38999 config.getWeekNumber = determineGetWeekMethod(4, newValue); 39000 } 39001 return newValue; 39002} 39003 39004// validate input date. if invalid, fallback to the original value 39005function validateDate(value, format, locale, origValue) { 39006 const date = (0,_lib_date_format_js__WEBPACK_IMPORTED_MODULE_2__.parseDate)(value, format, locale); 39007 return date !== undefined ? date : origValue; 39008} 39009 39010// Validate viewId. if invalid, fallback to the original value 39011function validateViewId(value, origValue, max = 3) { 39012 const viewId = parseInt(value, 10); 39013 return viewId >= 0 && viewId <= max ? viewId : origValue; 39014} 39015 39016function replaceOptions(options, from, to, convert = undefined) { 39017 if (from in options) { 39018 if (!(to in options)) { 39019 options[to] = convert ? convert(options[from]) : options[from]; 39020 } 39021 delete options[from]; 39022 } 39023} 39024 39025// Create Datepicker configuration to set 39026function processOptions(options, datepicker) { 39027 const inOpts = Object.assign({}, options); 39028 const config = {}; 39029 const locales = datepicker.constructor.locales; 39030 const rangeEnd = !!datepicker.rangeSideIndex; 39031 let { 39032 datesDisabled, 39033 format, 39034 language, 39035 locale, 39036 maxDate, 39037 maxView, 39038 minDate, 39039 pickLevel, 39040 startView, 39041 weekNumbers, 39042 weekStart, 39043 } = datepicker.config || {}; 39044 39045 // for backword compatibility 39046 replaceOptions(inOpts, 'calendarWeeks', 'weekNumbers', val => val ? 1 : 0); 39047 replaceOptions(inOpts, 'clearBtn', 'clearButton'); 39048 replaceOptions(inOpts, 'todayBtn', 'todayButton'); 39049 replaceOptions(inOpts, 'todayBtnMode', 'todayButtonMode'); 39050 39051 if (inOpts.language) { 39052 let lang; 39053 if (inOpts.language !== language) { 39054 if (locales[inOpts.language]) { 39055 lang = inOpts.language; 39056 } else { 39057 // Check if langauge + region tag can fallback to the one without 39058 // region (e.g. fr-CA â fr) 39059 lang = inOpts.language.split('-')[0]; 39060 if (!locales[lang]) { 39061 lang = false; 39062 } 39063 } 39064 } 39065 delete inOpts.language; 39066 if (lang) { 39067 language = config.language = lang; 39068 39069 // update locale as well when updating language 39070 const origLocale = locale || locales[defaultLang]; 39071 // use default language's properties for the fallback 39072 locale = Object.assign({ 39073 format: defaultFormat, 39074 weekStart: defaultWeekStart 39075 }, locales[defaultLang]); 39076 if (language !== defaultLang) { 39077 Object.assign(locale, locales[language]); 39078 } 39079 config.locale = locale; 39080 // if format and/or weekStart are the same as old locale's defaults, 39081 // update them to new locale's defaults 39082 if (format === origLocale.format) { 39083 format = config.format = locale.format; 39084 } 39085 if (weekStart === origLocale.weekStart) { 39086 weekStart = updateWeekStart(locale.weekStart, config, weekNumbers); 39087 } 39088 } 39089 } 39090 39091 if (inOpts.format) { 39092 const hasToDisplay = typeof inOpts.format.toDisplay === 'function'; 39093 const hasToValue = typeof inOpts.format.toValue === 'function'; 39094 const validFormatString = _lib_date_format_js__WEBPACK_IMPORTED_MODULE_2__.reFormatTokens.test(inOpts.format); 39095 if ((hasToDisplay && hasToValue) || validFormatString) { 39096 format = config.format = inOpts.format; 39097 } 39098 delete inOpts.format; 39099 } 39100 39101 //*** pick level ***// 39102 let newPickLevel = pickLevel; 39103 if ('pickLevel' in inOpts) { 39104 newPickLevel = validateViewId(inOpts.pickLevel, pickLevel, 2); 39105 delete inOpts.pickLevel; 39106 } 39107 if (newPickLevel !== pickLevel) { 39108 if (newPickLevel > pickLevel) { 39109 // complement current minDate/madDate so that the existing range will be 39110 // expanded to fit the new level later 39111 if (!('minDate' in inOpts)) { 39112 inOpts.minDate = minDate; 39113 } 39114 if (!('maxDate' in inOpts)) { 39115 inOpts.maxDate = maxDate; 39116 } 39117 } 39118 // complement datesDisabled so that it will be reset later 39119 if (datesDisabled && !inOpts.datesDisabled) { 39120 inOpts.datesDisabled = []; 39121 } 39122 pickLevel = config.pickLevel = newPickLevel; 39123 } 39124 39125 //*** dates ***// 39126 // while min and maxDate for "no limit" in the options are better to be null 39127 // (especially when updating), the ones in the config have to be undefined 39128 // because null is treated as 0 (= unix epoch) when comparing with time value 39129 let minDt = minDate; 39130 let maxDt = maxDate; 39131 if ('minDate' in inOpts) { 39132 const defaultMinDt = (0,_lib_date_js__WEBPACK_IMPORTED_MODULE_1__.dateValue)(0, 0, 1); 39133 minDt = inOpts.minDate === null 39134 ? defaultMinDt // set 0000-01-01 to prevent negative values for year 39135 : validateDate(inOpts.minDate, format, locale, minDt); 39136 if (minDt !== defaultMinDt) { 39137 minDt = (0,_lib_date_js__WEBPACK_IMPORTED_MODULE_1__.regularizeDate)(minDt, pickLevel, false); 39138 } 39139 delete inOpts.minDate; 39140 } 39141 if ('maxDate' in inOpts) { 39142 maxDt = inOpts.maxDate === null 39143 ? undefined 39144 : validateDate(inOpts.maxDate, format, locale, maxDt); 39145 if (maxDt !== undefined) { 39146 maxDt = (0,_lib_date_js__WEBPACK_IMPORTED_MODULE_1__.regularizeDate)(maxDt, pickLevel, true); 39147 } 39148 delete inOpts.maxDate; 39149 } 39150 if (maxDt < minDt) { 39151 minDate = config.minDate = maxDt; 39152 maxDate = config.maxDate = minDt; 39153 } else { 39154 if (minDate !== minDt) { 39155 minDate = config.minDate = minDt; 39156 } 39157 if (maxDate !== maxDt) { 39158 maxDate = config.maxDate = maxDt; 39159 } 39160 } 39161 39162 if (inOpts.datesDisabled) { 39163 const dtsDisabled = inOpts.datesDisabled; 39164 if (typeof dtsDisabled === 'function') { 39165 config.datesDisabled = null; 39166 config.checkDisabled = (timeValue, viewId) => dtsDisabled( 39167 new Date(timeValue), 39168 viewId, 39169 rangeEnd 39170 ); 39171 } else { 39172 const disabled = config.datesDisabled = dtsDisabled.reduce((dates, dt) => { 39173 const date = (0,_lib_date_format_js__WEBPACK_IMPORTED_MODULE_2__.parseDate)(dt, format, locale); 39174 return date !== undefined 39175 ? (0,_lib_utils_js__WEBPACK_IMPORTED_MODULE_0__.pushUnique)(dates, (0,_lib_date_js__WEBPACK_IMPORTED_MODULE_1__.regularizeDate)(date, pickLevel, rangeEnd)) 39176 : dates; 39177 }, []); 39178 config.checkDisabled = timeValue => disabled.includes(timeValue); 39179 } 39180 delete inOpts.datesDisabled; 39181 } 39182 if ('defaultViewDate' in inOpts) { 39183 const viewDate = (0,_lib_date_format_js__WEBPACK_IMPORTED_MODULE_2__.parseDate)(inOpts.defaultViewDate, format, locale); 39184 if (viewDate !== undefined) { 39185 config.defaultViewDate = viewDate; 39186 } 39187 delete inOpts.defaultViewDate; 39188 } 39189 39190 //*** days of week ***// 39191 if ('weekStart' in inOpts) { 39192 const wkStart = Number(inOpts.weekStart) % 7; 39193 if (!isNaN(wkStart)) { 39194 weekStart = updateWeekStart(wkStart, config, weekNumbers); 39195 } 39196 delete inOpts.weekStart; 39197 } 39198 if (inOpts.daysOfWeekDisabled) { 39199 config.daysOfWeekDisabled = inOpts.daysOfWeekDisabled.reduce(sanitizeDOW, []); 39200 delete inOpts.daysOfWeekDisabled; 39201 } 39202 if (inOpts.daysOfWeekHighlighted) { 39203 config.daysOfWeekHighlighted = inOpts.daysOfWeekHighlighted.reduce(sanitizeDOW, []); 39204 delete inOpts.daysOfWeekHighlighted; 39205 } 39206 39207 //*** week numbers ***// 39208 if ('weekNumbers' in inOpts) { 39209 let method = inOpts.weekNumbers; 39210 if (method) { 39211 const getWeekNumber = typeof method === 'function' 39212 ? (timeValue, startOfWeek) => method(new Date(timeValue), startOfWeek) 39213 : determineGetWeekMethod((method = parseInt(method, 10)), weekStart); 39214 if (getWeekNumber) { 39215 weekNumbers = config.weekNumbers = method; 39216 config.getWeekNumber = getWeekNumber; 39217 } 39218 } else { 39219 weekNumbers = config.weekNumbers = 0; 39220 config.getWeekNumber = null; 39221 } 39222 delete inOpts.weekNumbers; 39223 } 39224 39225 //*** multi date ***// 39226 if ('maxNumberOfDates' in inOpts) { 39227 const maxNumberOfDates = parseInt(inOpts.maxNumberOfDates, 10); 39228 if (maxNumberOfDates >= 0) { 39229 config.maxNumberOfDates = maxNumberOfDates; 39230 config.multidate = maxNumberOfDates !== 1; 39231 } 39232 delete inOpts.maxNumberOfDates; 39233 } 39234 if (inOpts.dateDelimiter) { 39235 config.dateDelimiter = String(inOpts.dateDelimiter); 39236 delete inOpts.dateDelimiter; 39237 } 39238 39239 //*** view ***// 39240 let newMaxView = maxView; 39241 if ('maxView' in inOpts) { 39242 newMaxView = validateViewId(inOpts.maxView, maxView); 39243 delete inOpts.maxView; 39244 } 39245 // ensure max view >= pick level 39246 newMaxView = pickLevel > newMaxView ? pickLevel : newMaxView; 39247 if (newMaxView !== maxView) { 39248 maxView = config.maxView = newMaxView; 39249 } 39250 39251 let newStartView = startView; 39252 if ('startView' in inOpts) { 39253 newStartView = validateViewId(inOpts.startView, newStartView); 39254 delete inOpts.startView; 39255 } 39256 // ensure pick level <= start view <= max view 39257 if (newStartView < pickLevel) { 39258 newStartView = pickLevel; 39259 } else if (newStartView > maxView) { 39260 newStartView = maxView; 39261 } 39262 if (newStartView !== startView) { 39263 config.startView = newStartView; 39264 } 39265 39266 //*** template ***// 39267 if (inOpts.prevArrow) { 39268 const prevArrow = (0,_lib_dom_js__WEBPACK_IMPORTED_MODULE_3__.parseHTML)(inOpts.prevArrow); 39269 if (prevArrow.childNodes.length > 0) { 39270 config.prevArrow = prevArrow.childNodes; 39271 } 39272 delete inOpts.prevArrow; 39273 } 39274 if (inOpts.nextArrow) { 39275 const nextArrow = (0,_lib_dom_js__WEBPACK_IMPORTED_MODULE_3__.parseHTML)(inOpts.nextArrow); 39276 if (nextArrow.childNodes.length > 0) { 39277 config.nextArrow = nextArrow.childNodes; 39278 } 39279 delete inOpts.nextArrow; 39280 } 39281 39282 //*** misc ***// 39283 if ('disableTouchKeyboard' in inOpts) { 39284 config.disableTouchKeyboard = 'ontouchstart' in document && !!inOpts.disableTouchKeyboard; 39285 delete inOpts.disableTouchKeyboard; 39286 } 39287 if (inOpts.orientation) { 39288 const orientation = inOpts.orientation.toLowerCase().split(/\s+/g); 39289 config.orientation = { 39290 x: orientation.find(x => (x === 'left' || x === 'right')) || 'auto', 39291 y: orientation.find(y => (y === 'top' || y === 'bottom')) || 'auto', 39292 }; 39293 delete inOpts.orientation; 39294 } 39295 if ('todayButtonMode' in inOpts) { 39296 switch(inOpts.todayButtonMode) { 39297 case 0: 39298 case 1: 39299 config.todayButtonMode = inOpts.todayButtonMode; 39300 } 39301 delete inOpts.todayButtonMode; 39302 } 39303 39304 //*** copy the rest ***// 39305 Object.entries(inOpts).forEach(([key, value]) => { 39306 if (value !== undefined && key in _defaultOptions_js__WEBPACK_IMPORTED_MODULE_4__["default"]) { 39307 config[key] = value; 39308 } 39309 }); 39310 39311 return config; 39312} 39313 39314 39315/***/ }), 39316
vendor: 1,734 bytes, lines 39317-39365
39317/***/ "./node_modules/vanillajs-datepicker/js/options/shortcutKeys.js": 39318/*!**********************************************************************!*\ 39319 !*** ./node_modules/vanillajs-datepicker/js/options/shortcutKeys.js ***! 39320 \**********************************************************************/ 39321/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { 39322 39323"use strict"; 39324__webpack_require__.r(__webpack_exports__); 39325/* harmony export */ __webpack_require__.d(__webpack_exports__, { 39326/* harmony export */ "default": () => (/* binding */ createShortcutKeyConfig) 39327/* harmony export */ }); 39328const defaultShortcutKeys = { 39329 show: {key: 'ArrowDown'}, 39330 hide: null, 39331 toggle: {key: 'Escape'}, 39332 prevButton: {key: 'ArrowLeft', ctrlOrMetaKey: true}, 39333 nextButton: {key: 'ArrowRight', ctrlOrMetaKey: true}, 39334 viewSwitch: {key: 'ArrowUp', ctrlOrMetaKey: true}, 39335 clearButton: {key: 'Backspace', ctrlOrMetaKey: true}, 39336 todayButton: {key: '.', ctrlOrMetaKey: true}, 39337 exitEditMode: {key: 'ArrowDown', ctrlOrMetaKey: true}, 39338}; 39339 39340function createShortcutKeyConfig(options) { 39341 return Object.keys(defaultShortcutKeys).reduce((keyDefs, shortcut) => { 39342 const keyDef = options[shortcut] === undefined 39343 ? defaultShortcutKeys[shortcut] 39344 : options[shortcut]; 39345 const key = keyDef && keyDef.key; 39346 if (!key || typeof key !== 'string') { 39347 return keyDefs; 39348 } 39349 39350 const normalizedDef = { 39351 key, 39352 ctrlOrMetaKey: !!(keyDef.ctrlOrMetaKey || keyDef.ctrlKey || keyDef.metaKey), 39353 }; 39354 if (key.length > 1) { 39355 normalizedDef.altKey = !!keyDef.altKey; 39356 normalizedDef.shiftKey = !!keyDef.shiftKey; 39357 } 39358 keyDefs[shortcut] = normalizedDef; 39359 return keyDefs; 39360 }, {}); 39361} 39362 39363 39364/***/ }), 39365
vendor: 16,629 bytes, lines 39366-39797
39366/***/ "./node_modules/vanillajs-datepicker/js/picker/Picker.js": 39367/*!***************************************************************!*\ 39368 !*** ./node_modules/vanillajs-datepicker/js/picker/Picker.js ***! 39369 \***************************************************************/ 39370/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { 39371 39372"use strict"; 39373__webpack_require__.r(__webpack_exports__); 39374/* harmony export */ __webpack_require__.d(__webpack_exports__, { 39375/* harmony export */ "default": () => (/* binding */ Picker) 39376/* harmony export */ }); 39377/* harmony import */ var _lib_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../lib/utils.js */ "./node_modules/vanillajs-datepicker/js/lib/utils.js"); 39378/* harmony import */ var _lib_date_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../lib/date.js */ "./node_modules/vanillajs-datepicker/js/lib/date.js"); 39379/* harmony import */ var _lib_dom_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../lib/dom.js */ "./node_modules/vanillajs-datepicker/js/lib/dom.js"); 39380/* harmony import */ var _lib_event_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../lib/event.js */ "./node_modules/vanillajs-datepicker/js/lib/event.js"); 39381/* harmony import */ var _templates_pickerTemplate_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./templates/pickerTemplate.js */ "./node_modules/vanillajs-datepicker/js/picker/templates/pickerTemplate.js"); 39382/* harmony import */ var _views_DaysView_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./views/DaysView.js */ "./node_modules/vanillajs-datepicker/js/picker/views/DaysView.js"); 39383/* harmony import */ var _views_MonthsView_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./views/MonthsView.js */ "./node_modules/vanillajs-datepicker/js/picker/views/MonthsView.js"); 39384/* harmony import */ var _views_YearsView_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./views/YearsView.js */ "./node_modules/vanillajs-datepicker/js/picker/views/YearsView.js"); 39385/* harmony import */ var _events_functions_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../events/functions.js */ "./node_modules/vanillajs-datepicker/js/events/functions.js"); 39386/* harmony import */ var _events_pickerListeners_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../events/pickerListeners.js */ "./node_modules/vanillajs-datepicker/js/events/pickerListeners.js"); 39387 39388 39389 39390 39391 39392 39393 39394 39395 39396 39397 39398const orientClasses = ['left', 'top', 'right', 'bottom'].reduce((obj, key) => { 39399 obj[key] = `datepicker-orient-${key}`; 39400 return obj; 39401}, {}); 39402const toPx = num => num ? `${num}px` : num; 39403 39404function processPickerOptions(picker, options) { 39405 if ('title' in options) { 39406 if (options.title) { 39407 picker.controls.title.textContent = options.title; 39408 (0,_lib_dom_js__WEBPACK_IMPORTED_MODULE_2__.showElement)(picker.controls.title); 39409 } else { 39410 picker.controls.title.textContent = ''; 39411 (0,_lib_dom_js__WEBPACK_IMPORTED_MODULE_2__.hideElement)(picker.controls.title); 39412 } 39413 } 39414 if (options.prevArrow) { 39415 const prevButton = picker.controls.prevButton; 39416 (0,_lib_dom_js__WEBPACK_IMPORTED_MODULE_2__.emptyChildNodes)(prevButton); 39417 options.prevArrow.forEach((node) => { 39418 prevButton.appendChild(node.cloneNode(true)); 39419 }); 39420 } 39421 if (options.nextArrow) { 39422 const nextButton = picker.controls.nextButton; 39423 (0,_lib_dom_js__WEBPACK_IMPORTED_MODULE_2__.emptyChildNodes)(nextButton); 39424 options.nextArrow.forEach((node) => { 39425 nextButton.appendChild(node.cloneNode(true)); 39426 }); 39427 } 39428 if (options.locale) { 39429 picker.controls.todayButton.textContent = options.locale.today; 39430 picker.controls.clearButton.textContent = options.locale.clear; 39431 } 39432 if ('todayButton' in options) { 39433 if (options.todayButton) { 39434 (0,_lib_dom_js__WEBPACK_IMPORTED_MODULE_2__.showElement)(picker.controls.todayButton); 39435 } else { 39436 (0,_lib_dom_js__WEBPACK_IMPORTED_MODULE_2__.hideElement)(picker.controls.todayButton); 39437 } 39438 } 39439 if ('minDate' in options || 'maxDate' in options) { 39440 const {minDate, maxDate} = picker.datepicker.config; 39441 picker.controls.todayButton.disabled = !(0,_lib_utils_js__WEBPACK_IMPORTED_MODULE_0__.isInRange)((0,_lib_date_js__WEBPACK_IMPORTED_MODULE_1__.today)(), minDate, maxDate); 39442 } 39443 if ('clearButton' in options) { 39444 if (options.clearButton) { 39445 (0,_lib_dom_js__WEBPACK_IMPORTED_MODULE_2__.showElement)(picker.controls.clearButton); 39446 } else { 39447 (0,_lib_dom_js__WEBPACK_IMPORTED_MODULE_2__.hideElement)(picker.controls.clearButton); 39448 } 39449 } 39450} 39451 39452// Compute view date to reset, which will be... 39453// - the last item of the selected dates or defaultViewDate if no selection 39454// - limitted to minDate or maxDate if it exceeds the range 39455function computeResetViewDate(datepicker) { 39456 const {dates, config, rangeSideIndex} = datepicker; 39457 const viewDate = dates.length > 0 39458 ? (0,_lib_utils_js__WEBPACK_IMPORTED_MODULE_0__.lastItemOf)(dates) 39459 : (0,_lib_date_js__WEBPACK_IMPORTED_MODULE_1__.regularizeDate)(config.defaultViewDate, config.pickLevel, rangeSideIndex); 39460 return (0,_lib_utils_js__WEBPACK_IMPORTED_MODULE_0__.limitToRange)(viewDate, config.minDate, config.maxDate); 39461} 39462 39463// Change current view's view date 39464function setViewDate(picker, newDate) { 39465 if (!('_oldViewDate' in picker) && newDate !== picker.viewDate) { 39466 picker._oldViewDate = picker.viewDate; 39467 } 39468 picker.viewDate = newDate; 39469 39470 // return whether the new date is in different period on time from the one 39471 // displayed in the current view 39472 // when true, the view needs to be re-rendered on the next UI refresh. 39473 const {id, year, first, last} = picker.currentView; 39474 const viewYear = new Date(newDate).getFullYear(); 39475 switch (id) { 39476 case 0: 39477 return newDate < first || newDate > last; 39478 case 1: 39479 return viewYear !== year; 39480 default: 39481 return viewYear < first || viewYear > last; 39482 } 39483} 39484 39485function getTextDirection(el) { 39486 return window.getComputedStyle(el).direction; 39487} 39488 39489// find the closet scrollable ancestor elemnt under the body 39490function findScrollParents(el) { 39491 const parent = (0,_lib_dom_js__WEBPACK_IMPORTED_MODULE_2__.getParent)(el); 39492 if (parent === document.body || !parent) { 39493 return; 39494 } 39495 39496 // checking overflow only is enough because computed overflow cannot be 39497 // visible or a combination of visible and other when either axis is set 39498 // to other than visible. 39499 // (Setting one axis to other than 'visible' while the other is 'visible' 39500 // results in the other axis turning to 'auto') 39501 return window.getComputedStyle(parent).overflow !== 'visible' 39502 ? parent 39503 : findScrollParents(parent); 39504} 39505 39506// Class representing the picker UI 39507class Picker { 39508 constructor(datepicker) { 39509 const {config, inputField} = this.datepicker = datepicker; 39510 39511 const template = _templates_pickerTemplate_js__WEBPACK_IMPORTED_MODULE_4__["default"].replace(/%buttonClass%/g, config.buttonClass); 39512 const element = this.element = (0,_lib_dom_js__WEBPACK_IMPORTED_MODULE_2__.parseHTML)(template).firstChild; 39513 const [header, main, footer] = element.firstChild.children; 39514 const title = header.firstElementChild; 39515 const [prevButton, viewSwitch, nextButton] = header.lastElementChild.children; 39516 const [todayButton, clearButton] = footer.firstChild.children; 39517 const controls = { 39518 title, 39519 prevButton, 39520 viewSwitch, 39521 nextButton, 39522 todayButton, 39523 clearButton, 39524 }; 39525 this.main = main; 39526 this.controls = controls; 39527 39528 const elementClass = inputField ? 'dropdown' : 'inline'; 39529 element.classList.add(`datepicker-${elementClass}`); 39530 39531 processPickerOptions(this, config); 39532 this.viewDate = computeResetViewDate(datepicker); 39533 39534 // set up event listeners 39535 (0,_lib_event_js__WEBPACK_IMPORTED_MODULE_3__.registerListeners)(datepicker, [ 39536 [element, 'mousedown', _events_pickerListeners_js__WEBPACK_IMPORTED_MODULE_9__.onMousedownPicker], 39537 [main, 'click', _events_pickerListeners_js__WEBPACK_IMPORTED_MODULE_9__.onClickView.bind(null, datepicker)], 39538 [controls.viewSwitch, 'click', _events_pickerListeners_js__WEBPACK_IMPORTED_MODULE_9__.onClickViewSwitch.bind(null, datepicker)], 39539 [controls.prevButton, 'click', _events_pickerListeners_js__WEBPACK_IMPORTED_MODULE_9__.onClickPrevButton.bind(null, datepicker)], 39540 [controls.nextButton, 'click', _events_pickerListeners_js__WEBPACK_IMPORTED_MODULE_9__.onClickNextButton.bind(null, datepicker)], 39541 [controls.todayButton, 'click', _events_functions_js__WEBPACK_IMPORTED_MODULE_8__.goToOrSelectToday.bind(null, datepicker)], 39542 [controls.clearButton, 'click', _events_functions_js__WEBPACK_IMPORTED_MODULE_8__.clearSelection.bind(null, datepicker)], 39543 ]); 39544 39545 // set up views 39546 this.views = [ 39547 new _views_DaysView_js__WEBPACK_IMPORTED_MODULE_5__["default"](this), 39548 new _views_MonthsView_js__WEBPACK_IMPORTED_MODULE_6__["default"](this), 39549 new _views_YearsView_js__WEBPACK_IMPORTED_MODULE_7__["default"](this, {id: 2, name: 'years', cellClass: 'year', step: 1}), 39550 new _views_YearsView_js__WEBPACK_IMPORTED_MODULE_7__["default"](this, {id: 3, name: 'decades', cellClass: 'decade', step: 10}), 39551 ]; 39552 this.currentView = this.views[config.startView]; 39553 39554 this.currentView.render(); 39555 this.main.appendChild(this.currentView.element); 39556 if (config.container) { 39557 config.container.appendChild(this.element); 39558 } else { 39559 inputField.after(this.element); 39560 } 39561 } 39562 39563 setOptions(options) { 39564 processPickerOptions(this, options); 39565 this.views.forEach((view) => { 39566 view.init(options, false); 39567 }); 39568 this.currentView.render(); 39569 } 39570 39571 detach() { 39572 this.element.remove(); 39573 } 39574 39575 show() { 39576 if (this.active) { 39577 return; 39578 } 39579 39580 const {datepicker, element} = this; 39581 const inputField = datepicker.inputField; 39582 if (inputField) { 39583 // ensure picker's direction matches input's 39584 const inputDirection = getTextDirection(inputField); 39585 if (inputDirection !== getTextDirection((0,_lib_dom_js__WEBPACK_IMPORTED_MODULE_2__.getParent)(element))) { 39586 element.dir = inputDirection; 39587 } else if (element.dir) { 39588 element.removeAttribute('dir'); 39589 } 39590 39591 // Determine the picker's position first to prevent `orientation: 'auto'` 39592 // from being miscalculated to 'bottom' after the picker temporarily 39593 // shown below the input field expands the document height if the field 39594 // is at the bottom edge of the document 39595 this.place(); 39596 element.classList.add('active'); 39597 39598 if (datepicker.config.disableTouchKeyboard) { 39599 inputField.blur(); 39600 } 39601 } else { 39602 element.classList.add('active'); 39603 } 39604 this.active = true; 39605 (0,_events_functions_js__WEBPACK_IMPORTED_MODULE_8__.triggerDatepickerEvent)(datepicker, 'show'); 39606 } 39607 39608 hide() { 39609 if (!this.active) { 39610 return; 39611 } 39612 this.datepicker.exitEditMode(); 39613 this.element.classList.remove('active'); 39614 this.active = false; 39615 (0,_events_functions_js__WEBPACK_IMPORTED_MODULE_8__.triggerDatepickerEvent)(this.datepicker, 'hide'); 39616 } 39617 39618 place() { 39619 const {classList, style} = this.element; 39620 // temporarily display the picker to get its size and offset parent 39621 style.display = 'block'; 39622 39623 const { 39624 width: calendarWidth, 39625 height: calendarHeight, 39626 } = this.element.getBoundingClientRect(); 39627 const offsetParent = this.element.offsetParent; 39628 // turn the picker back to hidden so that the position is determined with 39629 // the state before it is shown. 39630 style.display = ''; 39631 39632 const {config, inputField} = this.datepicker; 39633 const { 39634 left: inputLeft, 39635 top: inputTop, 39636 right: inputRight, 39637 bottom: inputBottom, 39638 width: inputWidth, 39639 height: inputHeight 39640 } = inputField.getBoundingClientRect(); 39641 let {x: orientX, y: orientY} = config.orientation; 39642 let left = inputLeft; 39643 let top = inputTop; 39644 39645 // caliculate offsetLeft/Top of inputField 39646 if (offsetParent === document.body || !offsetParent) { 39647 left += window.scrollX; 39648 top += window.scrollY; 39649 } else { 39650 const offsetParentRect = offsetParent.getBoundingClientRect(); 39651 left -= offsetParentRect.left - offsetParent.scrollLeft; 39652 top -= offsetParentRect.top - offsetParent.scrollTop; 39653 } 39654 39655 // caliculate the boundaries of the visible area that contains inputField 39656 const scrollParent = findScrollParents(inputField); 39657 let scrollAreaLeft = 0; 39658 let scrollAreaTop = 0; 39659 let { 39660 clientWidth: scrollAreaRight, 39661 clientHeight: scrollAreaBottom, 39662 } = document.documentElement; 39663 39664 if (scrollParent) { 39665 const scrollParentRect = scrollParent.getBoundingClientRect(); 39666 if (scrollParentRect.top > 0) { 39667 scrollAreaTop = scrollParentRect.top; 39668 } 39669 if (scrollParentRect.left > 0) { 39670 scrollAreaLeft = scrollParentRect.left; 39671 } 39672 if (scrollParentRect.right < scrollAreaRight) { 39673 scrollAreaRight = scrollParentRect.right; 39674 } 39675 if (scrollParentRect.bottom < scrollAreaBottom) { 39676 scrollAreaBottom = scrollParentRect.bottom; 39677 } 39678 } 39679 39680 // determine the horizontal orientation and left position 39681 let adjustment = 0; 39682 if (orientX === 'auto') { 39683 if (inputLeft < scrollAreaLeft) { 39684 orientX = 'left'; 39685 adjustment = scrollAreaLeft - inputLeft; 39686 } else if (inputLeft + calendarWidth > scrollAreaRight) { 39687 orientX = 'right'; 39688 if (scrollAreaRight < inputRight) { 39689 adjustment = scrollAreaRight - inputRight; 39690 } 39691 } else if (getTextDirection(inputField) === 'rtl') { 39692 orientX = inputRight - calendarWidth < scrollAreaLeft ? 'left' : 'right'; 39693 } else { 39694 orientX = 'left'; 39695 } 39696 } 39697 if (orientX === 'right') { 39698 left += inputWidth - calendarWidth; 39699 } 39700 left += adjustment; 39701 39702 // determine the vertical orientation and top position 39703 if (orientY === 'auto') { 39704 if (inputTop - calendarHeight > scrollAreaTop) { 39705 orientY = inputBottom + calendarHeight > scrollAreaBottom ? 'top' : 'bottom'; 39706 } else { 39707 orientY = 'bottom'; 39708 } 39709 } 39710 if (orientY === 'top') { 39711 top -= calendarHeight; 39712 } else { 39713 top += inputHeight; 39714 } 39715 39716 classList.remove(...Object.values(orientClasses)); 39717 classList.add(orientClasses[orientX], orientClasses[orientY]); 39718 39719 style.left = toPx(left); 39720 style.top = toPx(top); 39721 } 39722 39723 setViewSwitchLabel(labelText) { 39724 this.controls.viewSwitch.textContent = labelText; 39725 } 39726 39727 setPrevButtonDisabled(disabled) { 39728 this.controls.prevButton.disabled = disabled; 39729 } 39730 39731 setNextButtonDisabled(disabled) { 39732 this.controls.nextButton.disabled = disabled; 39733 } 39734 39735 changeView(viewId) { 39736 const currentView = this.currentView; 39737 if (viewId !== currentView.id) { 39738 if (!this._oldView) { 39739 this._oldView = currentView; 39740 } 39741 this.currentView = this.views[viewId]; 39742 this._renderMethod = 'render'; 39743 } 39744 return this; 39745 } 39746 39747 // Change the focused date (view date) 39748 changeFocus(newViewDate) { 39749 this._renderMethod = setViewDate(this, newViewDate) ? 'render' : 'refreshFocus'; 39750 this.views.forEach((view) => { 39751 view.updateFocus(); 39752 }); 39753 return this; 39754 } 39755 39756 // Apply the change of the selected dates 39757 update(viewDate = undefined) { 39758 const newViewDate = viewDate === undefined 39759 ? computeResetViewDate(this.datepicker) 39760 : viewDate; 39761 this._renderMethod = setViewDate(this, newViewDate) ? 'render' : 'refresh'; 39762 this.views.forEach((view) => { 39763 view.updateFocus(); 39764 view.updateSelection(); 39765 }); 39766 return this; 39767 } 39768 39769 // Refresh the picker UI 39770 render(quickRender = true) { 39771 const {currentView, datepicker, _oldView: oldView} = this; 39772 const oldViewDate = new Date(this._oldViewDate); 39773 const renderMethod = (quickRender && this._renderMethod) || 'render'; 39774 delete this._oldView; 39775 delete this._oldViewDate; 39776 delete this._renderMethod; 39777 39778 currentView[renderMethod](); 39779 if (oldView) { 39780 this.main.replaceChild(currentView.element, oldView.element); 39781 (0,_events_functions_js__WEBPACK_IMPORTED_MODULE_8__.triggerDatepickerEvent)(datepicker, 'changeView'); 39782 } 39783 if (!isNaN(oldViewDate)) { 39784 const newViewDate = new Date(this.viewDate); 39785 if (newViewDate.getFullYear() !== oldViewDate.getFullYear()) { 39786 (0,_events_functions_js__WEBPACK_IMPORTED_MODULE_8__.triggerDatepickerEvent)(datepicker, 'changeYear'); 39787 } 39788 if (newViewDate.getMonth() !== oldViewDate.getMonth()) { 39789 (0,_events_functions_js__WEBPACK_IMPORTED_MODULE_8__.triggerDatepickerEvent)(datepicker, 'changeMonth'); 39790 } 39791 } 39792 } 39793} 39794 39795 39796/***/ }), 39797
vendor: 1,239 bytes, lines 39798-39819
39798/***/ "./node_modules/vanillajs-datepicker/js/picker/templates/daysTemplate.js": 39799/*!*******************************************************************************!*\ 39800 !*** ./node_modules/vanillajs-datepicker/js/picker/templates/daysTemplate.js ***! 39801 \*******************************************************************************/ 39802/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { 39803 39804"use strict"; 39805__webpack_require__.r(__webpack_exports__); 39806/* harmony export */ __webpack_require__.d(__webpack_exports__, { 39807/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) 39808/* harmony export */ }); 39809/* harmony import */ var _lib_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../lib/utils.js */ "./node_modules/vanillajs-datepicker/js/lib/utils.js"); 39810 39811 39812/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_lib_utils_js__WEBPACK_IMPORTED_MODULE_0__.optimizeTemplateHTML)(`<div class="days"> 39813 <div class="days-of-week">${(0,_lib_utils_js__WEBPACK_IMPORTED_MODULE_0__.createTagRepeat)('span', 7, {class: 'dow'})}</div> 39814 <div class="datepicker-grid">${(0,_lib_utils_js__WEBPACK_IMPORTED_MODULE_0__.createTagRepeat)('span', 42)}</div> 39815</div>`)); 39816 39817 39818/***/ }), 39819
vendor: 1,730 bytes, lines 39820-39864
39820/***/ "./node_modules/vanillajs-datepicker/js/picker/templates/pickerTemplate.js": 39821/*!*********************************************************************************!*\ 39822 !*** ./node_modules/vanillajs-datepicker/js/picker/templates/pickerTemplate.js ***! 39823 \*********************************************************************************/ 39824/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { 39825 39826"use strict"; 39827__webpack_require__.r(__webpack_exports__); 39828/* harmony export */ __webpack_require__.d(__webpack_exports__, { 39829/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) 39830/* harmony export */ }); 39831/* harmony import */ var _lib_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../lib/utils.js */ "./node_modules/vanillajs-datepicker/js/lib/utils.js"); 39832 39833 39834const getButtons = buttonList => buttonList 39835 .map(classes => `<button type="button" class="%buttonClass% ${classes}" tabindex="-1"></button>`) 39836 .join(''); 39837 39838/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_lib_utils_js__WEBPACK_IMPORTED_MODULE_0__.optimizeTemplateHTML)(`<div class="datepicker"> 39839 <div class="datepicker-picker"> 39840 <div class="datepicker-header"> 39841 <div class="datepicker-title"></div> 39842 <div class="datepicker-controls"> 39843 ${getButtons([ 39844 'prev-button prev-btn', 39845 'view-switch', 39846 'next-button next-btn', 39847 ])} 39848 </div> 39849 </div> 39850 <div class="datepicker-main"></div> 39851 <div class="datepicker-footer"> 39852 <div class="datepicker-controls"> 39853 ${getButtons([ 39854 'today-button today-btn', 39855 'clear-button clear-btn', 39856 ])} 39857 </div> 39858 </div> 39859 </div> 39860</div>`)); 39861 39862 39863/***/ }), 39864
vendor: 1,230 bytes, lines 39865-39887
39865/***/ "./node_modules/vanillajs-datepicker/js/picker/templates/weekNumbersTemplate.js": 39866/*!**************************************************************************************!*\ 39867 !*** ./node_modules/vanillajs-datepicker/js/picker/templates/weekNumbersTemplate.js ***! 39868 \**************************************************************************************/ 39869/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { 39870 39871"use strict"; 39872__webpack_require__.r(__webpack_exports__); 39873/* harmony export */ __webpack_require__.d(__webpack_exports__, { 39874/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) 39875/* harmony export */ }); 39876/* harmony import */ var _lib_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../lib/utils.js */ "./node_modules/vanillajs-datepicker/js/lib/utils.js"); 39877 39878 39879/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_lib_utils_js__WEBPACK_IMPORTED_MODULE_0__.optimizeTemplateHTML)(`<div class="week-numbers calendar-weeks"> 39880 <div class="days-of-week"><span class="dow"></span></div> 39881 <div class="weeks">${(0,_lib_utils_js__WEBPACK_IMPORTED_MODULE_0__.createTagRepeat)('span', 6, {class: 'week'})}</div> 39882</div>`)); 39883 39884 39885 39886/***/ }), 39887
vendor: 8,124 bytes, lines 39888-40101
39888/***/ "./node_modules/vanillajs-datepicker/js/picker/views/DaysView.js": 39889/*!***********************************************************************!*\ 39890 !*** ./node_modules/vanillajs-datepicker/js/picker/views/DaysView.js ***! 39891 \***********************************************************************/ 39892/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { 39893 39894"use strict"; 39895__webpack_require__.r(__webpack_exports__); 39896/* harmony export */ __webpack_require__.d(__webpack_exports__, { 39897/* harmony export */ "default": () => (/* binding */ DaysView) 39898/* harmony export */ }); 39899/* harmony import */ var _lib_date_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../lib/date.js */ "./node_modules/vanillajs-datepicker/js/lib/date.js"); 39900/* harmony import */ var _lib_date_format_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../lib/date-format.js */ "./node_modules/vanillajs-datepicker/js/lib/date-format.js"); 39901/* harmony import */ var _lib_dom_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../lib/dom.js */ "./node_modules/vanillajs-datepicker/js/lib/dom.js"); 39902/* harmony import */ var _templates_daysTemplate_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../templates/daysTemplate.js */ "./node_modules/vanillajs-datepicker/js/picker/templates/daysTemplate.js"); 39903/* harmony import */ var _templates_weekNumbersTemplate_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../templates/weekNumbersTemplate.js */ "./node_modules/vanillajs-datepicker/js/picker/templates/weekNumbersTemplate.js"); 39904/* harmony import */ var _View_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./View.js */ "./node_modules/vanillajs-datepicker/js/picker/views/View.js"); 39905 39906 39907 39908 39909 39910 39911 39912class DaysView extends _View_js__WEBPACK_IMPORTED_MODULE_5__["default"] { 39913 constructor(picker) { 39914 super(picker, { 39915 id: 0, 39916 name: 'days', 39917 cellClass: 'day', 39918 }); 39919 } 39920 39921 init(options, onConstruction = true) { 39922 if (onConstruction) { 39923 const inner = (0,_lib_dom_js__WEBPACK_IMPORTED_MODULE_2__.parseHTML)(_templates_daysTemplate_js__WEBPACK_IMPORTED_MODULE_3__["default"]).firstChild; 39924 this.dow = inner.firstChild; 39925 this.grid = inner.lastChild; 39926 this.element.appendChild(inner); 39927 } 39928 super.init(options); 39929 } 39930 39931 setOptions(options) { 39932 let updateDOW; 39933 39934 if ('minDate' in options) { 39935 this.minDate = options.minDate; 39936 } 39937 if ('maxDate' in options) { 39938 this.maxDate = options.maxDate; 39939 } 39940 if (options.checkDisabled) { 39941 this.checkDisabled = options.checkDisabled; 39942 } 39943 if (options.daysOfWeekDisabled) { 39944 this.daysOfWeekDisabled = options.daysOfWeekDisabled; 39945 updateDOW = true; 39946 } 39947 if (options.daysOfWeekHighlighted) { 39948 this.daysOfWeekHighlighted = options.daysOfWeekHighlighted; 39949 } 39950 if ('todayHighlight' in options) { 39951 this.todayHighlight = options.todayHighlight; 39952 } 39953 if ('weekStart' in options) { 39954 this.weekStart = options.weekStart; 39955 this.weekEnd = options.weekEnd; 39956 updateDOW = true; 39957 } 39958 if (options.locale) { 39959 const locale = this.locale = options.locale; 39960 this.dayNames = locale.daysMin; 39961 this.switchLabelFormat = locale.titleFormat; 39962 updateDOW = true; 39963 } 39964 if ('beforeShowDay' in options) { 39965 this.beforeShow = typeof options.beforeShowDay === 'function' 39966 ? options.beforeShowDay 39967 : undefined; 39968 } 39969 39970 if ('weekNumbers' in options) { 39971 if (options.weekNumbers && !this.weekNumbers) { 39972 const weeksElem = (0,_lib_dom_js__WEBPACK_IMPORTED_MODULE_2__.parseHTML)(_templates_weekNumbersTemplate_js__WEBPACK_IMPORTED_MODULE_4__["default"]).firstChild; 39973 this.weekNumbers = { 39974 element: weeksElem, 39975 dow: weeksElem.firstChild, 39976 weeks: weeksElem.lastChild, 39977 }; 39978 this.element.insertBefore(weeksElem, this.element.firstChild); 39979 } else if (this.weekNumbers && !options.weekNumbers) { 39980 this.element.removeChild(this.weekNumbers.element); 39981 this.weekNumbers = null; 39982 } 39983 } 39984 39985 if ('getWeekNumber' in options) { 39986 this.getWeekNumber = options.getWeekNumber; 39987 } 39988 39989 if ('showDaysOfWeek' in options) { 39990 if (options.showDaysOfWeek) { 39991 (0,_lib_dom_js__WEBPACK_IMPORTED_MODULE_2__.showElement)(this.dow); 39992 if (this.weekNumbers) { 39993 (0,_lib_dom_js__WEBPACK_IMPORTED_MODULE_2__.showElement)(this.weekNumbers.dow); 39994 } 39995 } else { 39996 (0,_lib_dom_js__WEBPACK_IMPORTED_MODULE_2__.hideElement)(this.dow); 39997 if (this.weekNumbers) { 39998 (0,_lib_dom_js__WEBPACK_IMPORTED_MODULE_2__.hideElement)(this.weekNumbers.dow); 39999 } 40000 } 40001 } 40002 40003 // update days-of-week when locale, daysOfweekDisabled or weekStart is changed 40004 if (updateDOW) { 40005 Array.from(this.dow.children).forEach((el, index) => { 40006 const dow = (this.weekStart + index) % 7; 40007 el.textContent = this.dayNames[dow]; 40008 el.className = this.daysOfWeekDisabled.includes(dow) ? 'dow disabled' : 'dow'; 40009 }); 40010 } 40011 } 40012 40013 // Apply update on the focused date to view's settings 40014 updateFocus() { 40015 const viewDate = new Date(this.picker.viewDate); 40016 const viewYear = viewDate.getFullYear(); 40017 const viewMonth = viewDate.getMonth(); 40018 const firstOfMonth = (0,_lib_date_js__WEBPACK_IMPORTED_MODULE_0__.dateValue)(viewYear, viewMonth, 1); 40019 const start = (0,_lib_date_js__WEBPACK_IMPORTED_MODULE_0__.dayOfTheWeekOf)(firstOfMonth, this.weekStart, this.weekStart); 40020 40021 this.first = firstOfMonth; 40022 this.last = (0,_lib_date_js__WEBPACK_IMPORTED_MODULE_0__.dateValue)(viewYear, viewMonth + 1, 0); 40023 this.start = start; 40024 this.focused = this.picker.viewDate; 40025 } 40026 40027 // Apply update on the selected dates to view's settings 40028 updateSelection() { 40029 const {dates, rangepicker} = this.picker.datepicker; 40030 this.selected = dates; 40031 if (rangepicker) { 40032 this.range = rangepicker.dates; 40033 } 40034 } 40035 40036 // Update the entire view UI 40037 render() { 40038 // update today marker on ever render 40039 this.today = this.todayHighlight ? (0,_lib_date_js__WEBPACK_IMPORTED_MODULE_0__.today)() : undefined; 40040 40041 this.prepareForRender( 40042 (0,_lib_date_format_js__WEBPACK_IMPORTED_MODULE_1__.formatDate)(this.focused, this.switchLabelFormat, this.locale), 40043 this.first <= this.minDate, 40044 this.last >= this.maxDate 40045 ); 40046 40047 if (this.weekNumbers) { 40048 const weekStart = this.weekStart; 40049 const startOfWeek = (0,_lib_date_js__WEBPACK_IMPORTED_MODULE_0__.dayOfTheWeekOf)(this.first, weekStart, weekStart); 40050 Array.from(this.weekNumbers.weeks.children).forEach((el, index) => { 40051 const dateOfWeekStart = (0,_lib_date_js__WEBPACK_IMPORTED_MODULE_0__.addWeeks)(startOfWeek, index); 40052 el.textContent = this.getWeekNumber(dateOfWeekStart, weekStart); 40053 if (index > 3) { 40054 el.classList[dateOfWeekStart > this.last ? 'add' : 'remove']('next'); 40055 } 40056 }); 40057 } 40058 Array.from(this.grid.children).forEach((el, index) => { 40059 const current = (0,_lib_date_js__WEBPACK_IMPORTED_MODULE_0__.addDays)(this.start, index); 40060 const dateObj = new Date(current); 40061 const day = dateObj.getDay(); 40062 const extraClasses = []; 40063 40064 if (this.today === current) { 40065 extraClasses.push('today'); 40066 } 40067 if (this.daysOfWeekHighlighted.includes(day)) { 40068 extraClasses.push('highlighted'); 40069 } 40070 40071 this.renderCell( 40072 el, 40073 dateObj.getDate(), 40074 current, 40075 current, 40076 this, 40077 current < this.minDate 40078 || current > this.maxDate 40079 || this.daysOfWeekDisabled.includes(day), 40080 extraClasses 40081 ); 40082 }); 40083 } 40084 40085 // Update the view UI by applying the changes of selected and focused items 40086 refresh() { 40087 const range = this.range || []; 40088 Array.from(this.grid.children).forEach((el) => { 40089 this.refreshCell(el, Number(el.dataset.date), this.selected, range); 40090 }); 40091 } 40092 40093 // Update the view UI by applying the change of focused item 40094 refreshFocus() { 40095 this.changeFocusedCell(Math.round((this.focused - this.start) / 86400000)); 40096 } 40097} 40098 40099 40100/***/ }), 40101
vendor: 5,878 bytes, lines 40102-40268
40102/***/ "./node_modules/vanillajs-datepicker/js/picker/views/MonthsView.js": 40103/*!*************************************************************************!*\ 40104 !*** ./node_modules/vanillajs-datepicker/js/picker/views/MonthsView.js ***! 40105 \*************************************************************************/ 40106/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { 40107 40108"use strict"; 40109__webpack_require__.r(__webpack_exports__); 40110/* harmony export */ __webpack_require__.d(__webpack_exports__, { 40111/* harmony export */ "default": () => (/* binding */ MonthsView) 40112/* harmony export */ }); 40113/* harmony import */ var _lib_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../lib/utils.js */ "./node_modules/vanillajs-datepicker/js/lib/utils.js"); 40114/* harmony import */ var _lib_date_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../lib/date.js */ "./node_modules/vanillajs-datepicker/js/lib/date.js"); 40115/* harmony import */ var _lib_dom_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../lib/dom.js */ "./node_modules/vanillajs-datepicker/js/lib/dom.js"); 40116/* harmony import */ var _View_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./View.js */ "./node_modules/vanillajs-datepicker/js/picker/views/View.js"); 40117 40118 40119 40120 40121 40122function computeMonthRange(range, thisYear) { 40123 if (!range || !range[0] || !range[1]) { 40124 return; 40125 } 40126 40127 const [[startY, startM], [endY, endM]] = range; 40128 if (startY > thisYear || endY < thisYear) { 40129 return; 40130 } 40131 return [ 40132 startY === thisYear ? startM : -1, 40133 endY === thisYear ? endM : 12, 40134 ]; 40135} 40136 40137class MonthsView extends _View_js__WEBPACK_IMPORTED_MODULE_3__["default"] { 40138 constructor(picker) { 40139 super(picker, { 40140 id: 1, 40141 name: 'months', 40142 cellClass: 'month', 40143 }); 40144 } 40145 40146 init(options, onConstruction = true) { 40147 if (onConstruction) { 40148 this.grid = this.element; 40149 this.element.classList.add('months', 'datepicker-grid'); 40150 this.grid.appendChild((0,_lib_dom_js__WEBPACK_IMPORTED_MODULE_2__.parseHTML)((0,_lib_utils_js__WEBPACK_IMPORTED_MODULE_0__.createTagRepeat)('span', 12, {'data-month': ix => ix}))); 40151 this.first = 0; 40152 this.last = 11; 40153 } 40154 super.init(options); 40155 } 40156 40157 setOptions(options) { 40158 if (options.locale) { 40159 this.monthNames = options.locale.monthsShort; 40160 } 40161 if ('minDate' in options) { 40162 if (options.minDate === undefined) { 40163 this.minYear = this.minMonth = this.minDate = undefined; 40164 } else { 40165 const minDateObj = new Date(options.minDate); 40166 this.minYear = minDateObj.getFullYear(); 40167 this.minMonth = minDateObj.getMonth(); 40168 this.minDate = minDateObj.setDate(1); 40169 } 40170 } 40171 if ('maxDate' in options) { 40172 if (options.maxDate === undefined) { 40173 this.maxYear = this.maxMonth = this.maxDate = undefined; 40174 } else { 40175 const maxDateObj = new Date(options.maxDate); 40176 this.maxYear = maxDateObj.getFullYear(); 40177 this.maxMonth = maxDateObj.getMonth(); 40178 this.maxDate = (0,_lib_date_js__WEBPACK_IMPORTED_MODULE_1__.dateValue)(this.maxYear, this.maxMonth + 1, 0); 40179 } 40180 } 40181 if (options.checkDisabled) { 40182 this.checkDisabled = this.isMinView || options.datesDisabled === null 40183 ? options.checkDisabled 40184 : () => false; 40185 } 40186 if ('beforeShowMonth' in options) { 40187 this.beforeShow = typeof options.beforeShowMonth === 'function' 40188 ? options.beforeShowMonth 40189 : undefined; 40190 } 40191 } 40192 40193 // Update view's settings to reflect the viewDate set on the picker 40194 updateFocus() { 40195 const viewDate = new Date(this.picker.viewDate); 40196 this.year = viewDate.getFullYear(); 40197 this.focused = viewDate.getMonth(); 40198 } 40199 40200 // Update view's settings to reflect the selected dates 40201 updateSelection() { 40202 const {dates, rangepicker} = this.picker.datepicker; 40203 this.selected = dates.reduce((selected, timeValue) => { 40204 const date = new Date(timeValue); 40205 const year = date.getFullYear(); 40206 const month = date.getMonth(); 40207 if (selected[year] === undefined) { 40208 selected[year] = [month]; 40209 } else { 40210 (0,_lib_utils_js__WEBPACK_IMPORTED_MODULE_0__.pushUnique)(selected[year], month); 40211 } 40212 return selected; 40213 }, {}); 40214 if (rangepicker && rangepicker.dates) { 40215 this.range = rangepicker.dates.map(timeValue => { 40216 const date = new Date(timeValue); 40217 return isNaN(date) ? undefined : [date.getFullYear(), date.getMonth()]; 40218 }); 40219 } 40220 } 40221 40222 // Update the entire view UI 40223 render() { 40224 this.prepareForRender( 40225 this.year, 40226 this.year <= this.minYear, 40227 this.year >= this.maxYear 40228 ); 40229 40230 const selected = this.selected[this.year] || []; 40231 const yrOutOfRange = this.year < this.minYear || this.year > this.maxYear; 40232 const isMinYear = this.year === this.minYear; 40233 const isMaxYear = this.year === this.maxYear; 40234 const range = computeMonthRange(this.range, this.year); 40235 40236 Array.from(this.grid.children).forEach((el, index) => { 40237 const date = (0,_lib_date_js__WEBPACK_IMPORTED_MODULE_1__.regularizeDate)(new Date(this.year, index, 1), 1, this.isRangeEnd); 40238 40239 this.renderCell( 40240 el, 40241 this.monthNames[index], 40242 index, 40243 date, 40244 {selected, range}, 40245 yrOutOfRange 40246 || isMinYear && index < this.minMonth 40247 || isMaxYear && index > this.maxMonth 40248 ); 40249 }); 40250 } 40251 40252 // Update the view UI by applying the changes of selected and focused items 40253 refresh() { 40254 const selected = this.selected[this.year] || []; 40255 const range = computeMonthRange(this.range, this.year) || []; 40256 Array.from(this.grid.children).forEach((el, index) => { 40257 this.refreshCell(el, index, selected, range); 40258 }); 40259 } 40260 40261 // Update the view UI by applying the change of focused item 40262 refreshFocus() { 40263 this.changeFocusedCell(this.focused); 40264 } 40265} 40266 40267/***/ }), 40268
vendor: 4,849 bytes, lines 40269-40423
40269/***/ "./node_modules/vanillajs-datepicker/js/picker/views/View.js": 40270/*!*******************************************************************!*\ 40271 !*** ./node_modules/vanillajs-datepicker/js/picker/views/View.js ***! 40272 \*******************************************************************/ 40273/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { 40274 40275"use strict"; 40276__webpack_require__.r(__webpack_exports__); 40277/* harmony export */ __webpack_require__.d(__webpack_exports__, { 40278/* harmony export */ "default": () => (/* binding */ View) 40279/* harmony export */ }); 40280/* harmony import */ var _lib_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../lib/utils.js */ "./node_modules/vanillajs-datepicker/js/lib/utils.js"); 40281/* harmony import */ var _lib_dom_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../lib/dom.js */ "./node_modules/vanillajs-datepicker/js/lib/dom.js"); 40282 40283 40284 40285// Base class of the view classes 40286class View { 40287 constructor(picker, config) { 40288 Object.assign(this, config, { 40289 picker, 40290 element: (0,_lib_dom_js__WEBPACK_IMPORTED_MODULE_1__.parseHTML)(`<div class="datepicker-view"></div>`).firstChild, 40291 selected: [], 40292 isRangeEnd: !!picker.datepicker.rangeSideIndex, 40293 }); 40294 this.init(this.picker.datepicker.config); 40295 } 40296 40297 init(options) { 40298 if ('pickLevel' in options) { 40299 this.isMinView = this.id === options.pickLevel; 40300 } 40301 this.setOptions(options); 40302 this.updateFocus(); 40303 this.updateSelection(); 40304 } 40305 40306 prepareForRender(switchLabel, prevButtonDisabled, nextButtonDisabled) { 40307 // refresh disabled years on every render in order to clear the ones added 40308 // by beforeShow hook at previous render 40309 this.disabled = []; 40310 40311 const picker = this.picker; 40312 picker.setViewSwitchLabel(switchLabel); 40313 picker.setPrevButtonDisabled(prevButtonDisabled); 40314 picker.setNextButtonDisabled(nextButtonDisabled); 40315 } 40316 40317 setDisabled(date, classList) { 40318 classList.add('disabled'); 40319 (0,_lib_utils_js__WEBPACK_IMPORTED_MODULE_0__.pushUnique)(this.disabled, date); 40320 } 40321 40322 // Execute beforeShow() callback and apply the result to the element 40323 // args: 40324 performBeforeHook(el, timeValue) { 40325 let result = this.beforeShow(new Date(timeValue)); 40326 switch (typeof result) { 40327 case 'boolean': 40328 result = {enabled: result}; 40329 break; 40330 case 'string': 40331 result = {classes: result}; 40332 } 40333 40334 if (result) { 40335 const classList = el.classList; 40336 if (result.enabled === false) { 40337 this.setDisabled(timeValue, classList); 40338 } 40339 if (result.classes) { 40340 const extraClasses = result.classes.split(/\s+/); 40341 classList.add(...extraClasses); 40342 if (extraClasses.includes('disabled')) { 40343 this.setDisabled(timeValue, classList); 40344 } 40345 } 40346 if (result.content) { 40347 (0,_lib_dom_js__WEBPACK_IMPORTED_MODULE_1__.replaceChildNodes)(el, result.content); 40348 } 40349 } 40350 } 40351 40352 renderCell(el, content, cellVal, date, {selected, range}, outOfScope, extraClasses = []) { 40353 el.textContent = content; 40354 if (this.isMinView) { 40355 el.dataset.date = date; 40356 } 40357 40358 const classList = el.classList; 40359 el.className = `datepicker-cell ${this.cellClass}`; 40360 if (cellVal < this.first) { 40361 classList.add('prev'); 40362 } else if (cellVal > this.last) { 40363 classList.add('next'); 40364 } 40365 classList.add(...extraClasses); 40366 if (outOfScope || this.checkDisabled(date, this.id)) { 40367 this.setDisabled(date, classList); 40368 } 40369 if (range) { 40370 const [rangeStart, rangeEnd] = range; 40371 if (cellVal > rangeStart && cellVal < rangeEnd) { 40372 classList.add('range'); 40373 } 40374 if (cellVal === rangeStart) { 40375 classList.add('range-start'); 40376 } 40377 if (cellVal === rangeEnd) { 40378 classList.add('range-end'); 40379 } 40380 } 40381 if (selected.includes(cellVal)) { 40382 classList.add('selected'); 40383 } 40384 if (cellVal === this.focused) { 40385 classList.add('focused'); 40386 } 40387 40388 if (this.beforeShow) { 40389 this.performBeforeHook(el, date); 40390 } 40391 } 40392 40393 refreshCell(el, cellVal, selected, [rangeStart, rangeEnd]) { 40394 const classList = el.classList; 40395 classList.remove('range', 'range-start', 'range-end', 'selected', 'focused'); 40396 if (cellVal > rangeStart && cellVal < rangeEnd) { 40397 classList.add('range'); 40398 } 40399 if (cellVal === rangeStart) { 40400 classList.add('range-start'); 40401 } 40402 if (cellVal === rangeEnd) { 40403 classList.add('range-end'); 40404 } 40405 if (selected.includes(cellVal)) { 40406 classList.add('selected'); 40407 } 40408 if (cellVal === this.focused) { 40409 classList.add('focused'); 40410 } 40411 } 40412 40413 changeFocusedCell(cellIndex) { 40414 this.grid.querySelectorAll('.focused').forEach((el) => { 40415 el.classList.remove('focused'); 40416 }); 40417 this.grid.children[cellIndex].classList.add('focused'); 40418 } 40419} 40420 40421 40422/***/ }), 40423
vendor: 5,412 bytes, lines 40424-40559
40424/***/ "./node_modules/vanillajs-datepicker/js/picker/views/YearsView.js": 40425/*!************************************************************************!*\ 40426 !*** ./node_modules/vanillajs-datepicker/js/picker/views/YearsView.js ***! 40427 \************************************************************************/ 40428/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { 40429 40430"use strict"; 40431__webpack_require__.r(__webpack_exports__); 40432/* harmony export */ __webpack_require__.d(__webpack_exports__, { 40433/* harmony export */ "default": () => (/* binding */ YearsView) 40434/* harmony export */ }); 40435/* harmony import */ var _lib_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../lib/utils.js */ "./node_modules/vanillajs-datepicker/js/lib/utils.js"); 40436/* harmony import */ var _lib_date_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../lib/date.js */ "./node_modules/vanillajs-datepicker/js/lib/date.js"); 40437/* harmony import */ var _lib_dom_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../lib/dom.js */ "./node_modules/vanillajs-datepicker/js/lib/dom.js"); 40438/* harmony import */ var _View_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./View.js */ "./node_modules/vanillajs-datepicker/js/picker/views/View.js"); 40439 40440 40441 40442 40443 40444function toTitleCase(word) { 40445 return [...word].reduce((str, ch, ix) => str += ix ? ch : ch.toUpperCase(), ''); 40446} 40447 40448// Class representing the years and decades view elements 40449class YearsView extends _View_js__WEBPACK_IMPORTED_MODULE_3__["default"] { 40450 constructor(picker, config) { 40451 super(picker, config); 40452 } 40453 40454 init(options, onConstruction = true) { 40455 if (onConstruction) { 40456 this.navStep = this.step * 10; 40457 this.beforeShowOption = `beforeShow${toTitleCase(this.cellClass)}`; 40458 this.grid = this.element; 40459 this.element.classList.add(this.name, 'datepicker-grid'); 40460 this.grid.appendChild((0,_lib_dom_js__WEBPACK_IMPORTED_MODULE_2__.parseHTML)((0,_lib_utils_js__WEBPACK_IMPORTED_MODULE_0__.createTagRepeat)('span', 12))); 40461 } 40462 super.init(options); 40463 } 40464 40465 setOptions(options) { 40466 if ('minDate' in options) { 40467 if (options.minDate === undefined) { 40468 this.minYear = this.minDate = undefined; 40469 } else { 40470 this.minYear = (0,_lib_date_js__WEBPACK_IMPORTED_MODULE_1__.startOfYearPeriod)(options.minDate, this.step); 40471 this.minDate = (0,_lib_date_js__WEBPACK_IMPORTED_MODULE_1__.dateValue)(this.minYear, 0, 1); 40472 } 40473 } 40474 if ('maxDate' in options) { 40475 if (options.maxDate === undefined) { 40476 this.maxYear = this.maxDate = undefined; 40477 } else { 40478 this.maxYear = (0,_lib_date_js__WEBPACK_IMPORTED_MODULE_1__.startOfYearPeriod)(options.maxDate, this.step); 40479 this.maxDate = (0,_lib_date_js__WEBPACK_IMPORTED_MODULE_1__.dateValue)(this.maxYear, 11, 31); 40480 } 40481 } 40482 if (options.checkDisabled) { 40483 this.checkDisabled = this.isMinView || options.datesDisabled === null 40484 ? options.checkDisabled 40485 : () => false; 40486 } 40487 if (this.beforeShowOption in options) { 40488 const beforeShow = options[this.beforeShowOption]; 40489 this.beforeShow = typeof beforeShow === 'function' ? beforeShow : undefined; 40490 } 40491 } 40492 40493 // Update view's settings to reflect the viewDate set on the picker 40494 updateFocus() { 40495 const viewDate = new Date(this.picker.viewDate); 40496 const first = (0,_lib_date_js__WEBPACK_IMPORTED_MODULE_1__.startOfYearPeriod)(viewDate, this.navStep); 40497 const last = first + 9 * this.step; 40498 40499 this.first = first; 40500 this.last = last; 40501 this.start = first - this.step; 40502 this.focused = (0,_lib_date_js__WEBPACK_IMPORTED_MODULE_1__.startOfYearPeriod)(viewDate, this.step); 40503 } 40504 40505 // Update view's settings to reflect the selected dates 40506 updateSelection() { 40507 const {dates, rangepicker} = this.picker.datepicker; 40508 this.selected = dates.reduce((years, timeValue) => { 40509 return (0,_lib_utils_js__WEBPACK_IMPORTED_MODULE_0__.pushUnique)(years, (0,_lib_date_js__WEBPACK_IMPORTED_MODULE_1__.startOfYearPeriod)(timeValue, this.step)); 40510 }, []); 40511 if (rangepicker && rangepicker.dates) { 40512 this.range = rangepicker.dates.map(timeValue => { 40513 if (timeValue !== undefined) { 40514 return (0,_lib_date_js__WEBPACK_IMPORTED_MODULE_1__.startOfYearPeriod)(timeValue, this.step); 40515 } 40516 }); 40517 } 40518 } 40519 40520 // Update the entire view UI 40521 render() { 40522 this.prepareForRender( 40523 `${this.first}-${this.last}`, 40524 this.first <= this.minYear, 40525 this.last >= this.maxYear 40526 ); 40527 40528 Array.from(this.grid.children).forEach((el, index) => { 40529 const current = this.start + (index * this.step); 40530 const date = (0,_lib_date_js__WEBPACK_IMPORTED_MODULE_1__.regularizeDate)(new Date(current, 0, 1), 2, this.isRangeEnd); 40531 40532 el.dataset.year = current; 40533 this.renderCell( 40534 el, 40535 current, 40536 current, 40537 date, 40538 this, 40539 current < this.minYear || current > this.maxYear 40540 ); 40541 }); 40542 } 40543 40544 // Update the view UI by applying the changes of selected and focused items 40545 refresh() { 40546 const range = this.range || []; 40547 Array.from(this.grid.children).forEach((el) => { 40548 this.refreshCell(el, Number(el.textContent), this.selected, range); 40549 }); 40550 } 40551 40552 // Update the view UI by applying the change of focused item 40553 refreshFocus() { 40554 this.changeFocusedCell(Math.round((this.focused - this.start) / this.step)); 40555 } 40556} 40557 40558 40559/***/ })
vendor: 3,395 bytes, lines 40559-40649
40559 40560 40561/******/ }); 40562/************************************************************************/ 40563/******/ // The module cache 40564/******/ var __webpack_module_cache__ = {}; 40565/******/ 40566/******/ // The require function 40567/******/ function __webpack_require__(moduleId) { 40568/******/ // Check if module is in cache 40569/******/ var cachedModule = __webpack_module_cache__[moduleId]; 40570/******/ if (cachedModule !== undefined) { 40571/******/ return cachedModule.exports; 40572/******/ } 40573/******/ // Create a new module (and put it into the cache) 40574/******/ var module = __webpack_module_cache__[moduleId] = { 40575/******/ id: moduleId, 40576/******/ loaded: false, 40577/******/ exports: {} 40578/******/ }; 40579/******/ 40580/******/ // Execute the module function 40581/******/ __webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__); 40582/******/ 40583/******/ // Flag the module as loaded 40584/******/ module.loaded = true; 40585/******/ 40586/******/ // Return the exports of the module 40587/******/ return module.exports; 40588/******/ } 40589/******/ 40590/************************************************************************/ 40591/******/ /* webpack/runtime/compat get default export */ 40592/******/ (() => { 40593/******/ // getDefaultExport function for compatibility with non-harmony modules 40594/******/ __webpack_require__.n = (module) => { 40595/******/ var getter = module && module.__esModule ? 40596/******/ () => (module['default']) : 40597/******/ () => (module); 40598/******/ __webpack_require__.d(getter, { a: getter }); 40599/******/ return getter; 40600/******/ }; 40601/******/ })(); 40602/******/ 40603/******/ /* webpack/runtime/define property getters */ 40604/******/ (() => { 40605/******/ // define getter functions for harmony exports 40606/******/ __webpack_require__.d = (exports, definition) => { 40607/******/ for(var key in definition) { 40608/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { 40609/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); 40610/******/ } 40611/******/ } 40612/******/ }; 40613/******/ })(); 40614/******/ 40615/******/ /* webpack/runtime/hasOwnProperty shorthand */ 40616/******/ (() => { 40617/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) 40618/******/ })(); 40619/******/ 40620/******/ /* webpack/runtime/make namespace object */ 40621/******/ (() => { 40622/******/ // define __esModule on exports 40623/******/ __webpack_require__.r = (exports) => { 40624/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { 40625/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); 40626/******/ } 40627/******/ Object.defineProperty(exports, '__esModule', { value: true }); 40628/******/ }; 40629/******/ })(); 40630/******/ 40631/******/ /* webpack/runtime/node module decorator */ 40632/******/ (() => { 40633/******/ __webpack_require__.nmd = (module) => { 40634/******/ module.paths = []; 40635/******/ if (!module.children) module.children = []; 40636/******/ return module; 40637/******/ }; 40638/******/ })(); 40639/******/ 40640/************************************************************************/ 40641/******/ 40642/******/ // startup 40643/******/ // Load entry module and return exports 40644/******/ // This entry module is referenced by other modules so it can't be inlined 40645/******/ var __webpack_exports__ = __webpack_require__("./js/formbuilder.js"); 40646/******/ 40647/******/ })() 40648; 40649//# sourceMappingURL=build.js.map
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.